summaryrefslogtreecommitdiff
path: root/impl/EquationSystem.g
diff options
context:
space:
mode:
Diffstat (limited to 'impl/EquationSystem.g')
-rw-r--r--impl/EquationSystem.g9
1 files changed, 6 insertions, 3 deletions
diff --git a/impl/EquationSystem.g b/impl/EquationSystem.g
index cec400f..4884ca9 100644
--- a/impl/EquationSystem.g
+++ b/impl/EquationSystem.g
@@ -26,16 +26,19 @@ maxExpr : MAXIMUM^ '('! minExpr ( ','! minExpr )* ')'! | minExpr ;
minExpr : MINIMUM^ '('! maxExpr ( ','! maxExpr )* ')'! | expr ;
expr : '(' expr GREATER_EQUAL expr QUESTION_MARK expr ')' -> ^(GUARD expr expr expr)
+ | GUARD^ '('! maxExpr ','! maxExpr ','! maxExpr ')'!
+ | 'add'^ '('! maxExpr ( ','! maxExpr )* ')'!
+ | 'sub'^ '('! maxExpr ( ','! maxExpr )* ')'!
+ | 'mult'^ '('! maxExpr ( ','! maxExpr )* ')'!
| term ( (PLUS | MULT | SUB | COMMA)^ expr )* ;
term : NUMBER
| VARIABLE
- | '-'^ term
- | '('! maxExpr ')'! ;
+ | '-'^ term ;
NUMBER : (DIGIT)+ ;
-VARIABLE: (LETTER) (LETTER | DIGIT)* ;
+VARIABLE: (LETTER) (LETTER | DIGIT | '-' | '\[' | ']' )* ;
WHITESPACE : ( '\t' | ' ' | '\u000C' )+
{
$channel = HIDDEN;