diff options
author | Marius Kintel <marius@kintel.net> | 2011-11-05 15:22:48 (GMT) |
---|---|---|
committer | Marius Kintel <marius@kintel.net> | 2011-11-05 15:22:48 (GMT) |
commit | 04bc3ed890451de881034fee9f000761c4f0e068 (patch) | |
tree | 060a7df5be3ad9aec2ec6cfd0795800ff581f232 /src/lexer.l | |
parent | 5ff79c6393acd2fa4143f340f95646c07d357007 (diff) |
Added support for parsing numbers in scientific notation, e.g. to allow roundtripping of written csg files as well as parsing of externally generated scad files
Diffstat (limited to 'src/lexer.l')
-rw-r--r-- | src/lexer.l | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/lexer.l b/src/lexer.l index d9ccd76..2760b07 100644 --- a/src/lexer.l +++ b/src/lexer.l @@ -88,7 +88,8 @@ QString filepath; %x comment string %x include -DIGIT [0-9] +D [0-9] +E [Ee][+-]?{D}+ %% @@ -155,8 +156,10 @@ use[ \t\r\n>]*"<"[^\t\r\n>]+">" { "false" return TOK_FALSE; "undef" return TOK_UNDEF; -{DIGIT}+|{DIGIT}*\.{DIGIT}+|{DIGIT}+\.{DIGIT}* { parserlval.number = QString(yytext).toDouble(); return TOK_NUMBER; } -"$"?[a-zA-Z0-9_]+ { parserlval.text = strdup(yytext); return TOK_ID; } +{D}+{E}? | +{D}*\.{D}+{E}? | +{D}+\.{D}*{E}? { parserlval.number = QString(yytext).toDouble(); return TOK_NUMBER; } +"$"?[a-zA-Z0-9_]+ { parserlval.text = strdup(yytext); return TOK_ID; } \" { BEGIN(string); stringcontents = new QString(); } <string>{ |