summaryrefslogtreecommitdiff
path: root/src/lexer.l
diff options
context:
space:
mode:
authorMarius Kintel <marius@kintel.net>2011-11-05 15:22:48 (GMT)
committerMarius Kintel <marius@kintel.net>2011-11-05 15:22:48 (GMT)
commit04bc3ed890451de881034fee9f000761c4f0e068 (patch)
tree060a7df5be3ad9aec2ec6cfd0795800ff581f232 /src/lexer.l
parent5ff79c6393acd2fa4143f340f95646c07d357007 (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.l9
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>{
contact: Jan Huwald // Impressum