diff options
Diffstat (limited to 'src/parser/grammar.pegjs')
-rw-r--r-- | src/parser/grammar.pegjs | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/parser/grammar.pegjs b/src/parser/grammar.pegjs index 007bc1d..d267b58 100644 --- a/src/parser/grammar.pegjs +++ b/src/parser/grammar.pegjs @@ -269,6 +269,7 @@ ArithmeticOperation / "/" / "*" / "**" + / "%" BitOperation = ">>" @@ -285,17 +286,17 @@ ComparisonOperation / ">" / "<" -Integer = digits:[0-9]+ !"." { return parseInt(digits.join(''), 10); } +Integer = digits:("-"? [0-9]+) !"." { return { int: parseInt(digits.join(''), 10) }; } QuotedString = "'" content:[^']* "'" { return content.join(''); } / "\"" content:[^"]* "\"" { return content.join(''); } Real - = value:("-"? [0-9]+ "." [0-9]+) { - return parseFloat( + = value:("-"? [0-9]+ ("." [0-9]+)?) { + return { real: parseFloat( value.map(x => (Array.isArray(x) ? x.join('') : x)).join(''), - ); + ) }; } Literal |