summaryrefslogtreecommitdiff
path: root/src
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
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')
-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