Update num rule to match 1e+1 like numbers

This commit is contained in:
Iaroslav 2020-07-27 15:45:05 +07:00
parent 45087f8b2d
commit a5499260fa
No known key found for this signature in database
GPG Key ID: 46E15E4A31B3BCD7
2 changed files with 5 additions and 5 deletions

View File

@ -2,11 +2,11 @@ grammar ArithmeticsEvaluator;
fragment DIGIT: '0'..'9';
fragment LETTER: 'a'..'z';
fragment CAPITAL_LETTER: 'A'..'Z'
fragment CAPITAL_LETTER: 'A'..'Z';
fragment UNDERSCORE: '_';
ID: (LETTER | UNDERSCORE | CAPITAL_LETTER) (LETTER | UNDERSCORE | DIGIT | CAPITAL_LETTER)*;
NUM: (DIGIT | '.')+ ([eE] MINUS? DIGIT+)?;
NUM: (DIGIT | '.')+ ([eE] (MINUS? | PLUS?) DIGIT+)?;
MUL: '*';
DIV: '/';
PLUS: '+';
@ -17,7 +17,7 @@ LPAR: '(';
RPAR: ')';
WS: [ \n\t\r]+ -> skip;
number
num
: NUM
;
@ -34,7 +34,7 @@ binaryFunction
;
term
: number
: num
| singular
| unaryFunction
| binaryFunction

View File

@ -18,7 +18,7 @@ import scientifik.kmath.operations.SpaceOperations
* TODO move to common
*/
object ArithmeticsEvaluator : Grammar<MST>() {
private val num: Token by token("[\\d.]+(?:[eE]-?\\d+)?".toRegex())
private val num: Token by token("[\\d.]+(?:[eE][-+]?\\d+)?".toRegex())
private val id: Token by token("[a-z_A-Z][\\da-z_A-Z]*".toRegex())
private val lpar: Token by token("\\(".toRegex())
private val rpar: Token by token("\\)".toRegex())