diff options
author | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2016-02-12 12:49:59 +0100 |
---|---|---|
committer | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2016-02-12 12:49:59 +0100 |
commit | b3e8d72770b4100843c60b35633e529e6e69d543 (patch) | |
tree | f50070c3c31dd862b837bb514a9e0b10e68216a1 /src/libexpr/lexer.l | |
parent | ae4a3cfa030438ca05ad3bf61fa301dee6c1dbb5 (diff) | |
parent | 5cdcaf5e8edd6679f667502eec421ac4e725d4ef (diff) |
Merge pull request #762 from ctheune/ctheune-floats
Implement floats
Diffstat (limited to 'src/libexpr/lexer.l')
-rw-r--r-- | src/libexpr/lexer.l | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/libexpr/lexer.l b/src/libexpr/lexer.l index 478f41641..701c01aff 100644 --- a/src/libexpr/lexer.l +++ b/src/libexpr/lexer.l @@ -86,6 +86,7 @@ static Expr * unescapeStr(SymbolTable & symbols, const char * s) ID [a-zA-Z\_][a-zA-Z0-9\_\'\-]* INT [0-9]+ +FLOAT (([1-9][0-9]*\.[0-9]*)|(0?\.[0-9]+))([Ee][+-]?[0-9]+)? PATH [a-zA-Z0-9\.\_\-\+]*(\/[a-zA-Z0-9\.\_\-\+]+)+ HPATH \~(\/[a-zA-Z0-9\.\_\-\+]+)+ SPATH \<[a-zA-Z0-9\.\_\-\+]+(\/[a-zA-Z0-9\.\_\-\+]+)*\> @@ -126,6 +127,12 @@ or { return OR_KW; } throw ParseError(format("invalid integer ‘%1%’") % yytext); return INT; } +{FLOAT} { errno = 0; + yylval->nf = strtod(yytext, 0); + if (errno != 0) + throw ParseError(format("invalid float ‘%1%’") % yytext); + return FLOAT; + } \$\{ { PUSH_STATE(INSIDE_DOLLAR_CURLY); return DOLLAR_CURLY; } } |