Update grammar

This commit is contained in:
Boolean-True 2024-05-01 12:06:14 +02:00
parent 87766d28c0
commit a1cc591220
2 changed files with 25 additions and 9 deletions

View File

@ -28,7 +28,7 @@ stmt : 'if' '(' expr ')' block ('else' block)? #If
stmtexpr : id '=' expr ';' #Assign
| methCall ';' #MethodCall
| NEW type '(' args? ')' #New
| NEW type '(' args? ')' #New
;
expr : expr binaryOp expr #BinaryOperation
@ -39,15 +39,13 @@ expr : expr binaryOp expr #BinaryOperation
| stmtexpr #StatementExpressionexpr
;
binaryOp : ADD | SUB | MUL;
binaryOp : ADD | SUB | MUL | GT | LT | GE | LE | EQ | NE | AND | OR | NOT;
methCall : id '(' args? ')';
args : expr (',' expr)*;
literal : NUMBER | boolean | CHAR;
boolean : 'true' | 'false' ;
literal : NUMBER | BOOLEANLITERAL | CHARLITERAL;
id : IDENTIFIER;
@ -58,14 +56,23 @@ NEW : 'new';
SUB : '-';
ADD : '+';
MUL : '*';
GT : '>';
LT : '<';
GE : '>=';
LE : '<=';
EQ : '==';
NE : '!=';
AND : '&&';
OR : '||';
NOT : '!';
INT : 'int';
BOOL : 'boolean';
VOID : 'void';
CHAR : 'char';
CHAR: ['][a-zA-Z]['];
BOOLEANLITERAL : 'true' | 'false' ;
CHARLITERAL : ['][a-zA-Z]['];
IDENTIFIER : [a-zA-Z]+;
NUMBER : [0-9]+;
WS : [ \t\r\n] -> skip;

View File

@ -3,5 +3,14 @@ package de.maishai.ast;
public enum Operator {
ADD,
SUB,
MUL
MUL,
GT,
LT,
GE,
LE,
EQ,
NE,
AND,
OR,
NOT
}