mirror of
https://github.com/NixOS/nix
synced 2025-07-02 21:51:50 +02:00
First hit at providing support for floats in the language.
This commit is contained in:
parent
b8258a4475
commit
14ebde5289
16 changed files with 207 additions and 23 deletions
|
@ -85,6 +85,7 @@ static Expr * unescapeStr(SymbolTable & symbols, const char * s)
|
|||
|
||||
ID [a-zA-Z\_][a-zA-Z0-9\_\'\-]*
|
||||
INT [0-9]+
|
||||
FLOAT {INT}[0-9]+\.[0-9]+[eE]-?{INT}
|
||||
PATH [a-zA-Z0-9\.\_\-\+]*(\/[a-zA-Z0-9\.\_\-\+]+)+
|
||||
HPATH \~(\/[a-zA-Z0-9\.\_\-\+]+)+
|
||||
SPATH \<[a-zA-Z0-9\.\_\-\+]+(\/[a-zA-Z0-9\.\_\-\+]+)*\>
|
||||
|
@ -123,6 +124,12 @@ or { return OR_KW; }
|
|||
throw ParseError(format("invalid integer ‘%1%’") % yytext);
|
||||
return INT;
|
||||
}
|
||||
{FLOAT} { errno = 0;
|
||||
yylval->n = strtod(yytext, 0);
|
||||
if (errno != 0)
|
||||
throw ParseError(format("invalid float ‘%1%’") % yytext);
|
||||
return FLOAT;
|
||||
}
|
||||
|
||||
\$\{ { PUSH_STATE(INITIAL); return DOLLAR_CURLY; }
|
||||
\{ { PUSH_STATE(INITIAL); return '{'; }
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue