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:
and pasting the syntax definition into the textbox. I've also provided an
example input (some rubbish to help figure out if hilighting is
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:
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.