Thanks Hongwei! I will take a look to see if this is what my syntax

definition captures tomorrow.

Here’s the code, in a gist:

It can be tested by visiting:

https://microsoft.github.io/monaco-editor/monarch.html

and pasting the syntax definition into the textbox. I’ve also provided an

example input (some rubbish to help figure out if hilighting is

well-behaved).

This needs more testing and tuning, but seems like a worthwhile effort!On Monday, June 27, 2016 at 9:20:16 PM UTC+6, gmhwxi wrote:

Let

INT0 = [0-9]*

INT1 = (0 | 1-9)

DOT = [.]

EXP = eE

Then FLOAT is

(INT1)(EXP) | (INT1)(DOT)(INT0)(EXP)? | (DOT)(INT1)(EXP)?

There are also hexadecimal floating point numbers:

HEX0 = [0-9a-z]*

HEX1 = (0 | 1-9a-z)

DOT = [.]

EXP = pP

HEXFLOAT = (HEX1)(EXP) | (HEX1)(DOT)(HEX0)(EXP?) | (DOT)(HEX1)(EXP?)

In C, EXP? should be EXP for hexadecimal floating point numbers.

On Monday, June 27, 2016 at 4:06:42 AM UTC-4, Artyom Shalkhakov wrote:

I’m doing a syntax highlighter for ATS based on the Monarch editor (used

in Visual Studio Code) and I’m interested to know what’s the lexical

grammar for floating-point constants?

I’ve tried looking through the lexer source code, but I find it quite

complicated. I’d like some help on this one.