forked from lix-project/lix
Merge pull request #2378 from aszlig/int64
libexpr: Use int64_t for NixInt
This commit is contained in:
commit
20d74a3257
|
@ -12,6 +12,8 @@
|
||||||
|
|
||||||
|
|
||||||
%{
|
%{
|
||||||
|
#include <boost/lexical_cast.hpp>
|
||||||
|
|
||||||
#include "nixexpr.hh"
|
#include "nixexpr.hh"
|
||||||
#include "parser-tab.hh"
|
#include "parser-tab.hh"
|
||||||
|
|
||||||
|
@ -124,9 +126,11 @@ or { return OR_KW; }
|
||||||
|
|
||||||
{ID} { yylval->id = strdup(yytext); return ID; }
|
{ID} { yylval->id = strdup(yytext); return ID; }
|
||||||
{INT} { errno = 0;
|
{INT} { errno = 0;
|
||||||
yylval->n = strtol(yytext, 0, 10);
|
try {
|
||||||
if (errno != 0)
|
yylval->n = boost::lexical_cast<int64_t>(yytext);
|
||||||
|
} catch (const boost::bad_lexical_cast &) {
|
||||||
throw ParseError(format("invalid integer '%1%'") % yytext);
|
throw ParseError(format("invalid integer '%1%'") % yytext);
|
||||||
|
}
|
||||||
return INT;
|
return INT;
|
||||||
}
|
}
|
||||||
{FLOAT} { errno = 0;
|
{FLOAT} { errno = 0;
|
||||||
|
|
|
@ -43,7 +43,7 @@ class XMLWriter;
|
||||||
class JSONPlaceholder;
|
class JSONPlaceholder;
|
||||||
|
|
||||||
|
|
||||||
typedef long NixInt;
|
typedef int64_t NixInt;
|
||||||
typedef double NixFloat;
|
typedef double NixFloat;
|
||||||
|
|
||||||
/* External values must descend from ExternalValueBase, so that
|
/* External values must descend from ExternalValueBase, so that
|
||||||
|
|
Loading…
Reference in a new issue