Expr.g4.bck 472 Bytes
Newer Older
doc. Ing. Jaroslav Porubän PhD.'s avatar
doc. Ing. Jaroslav Porubän PhD. committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
grammar Expr;

prog:   stat+;

stat:   expr NL         #print
    |   ID '=' expr NL  #assign
    |   NL              #blank
    ;

expr: expr op=('*'|'/') expr    #mulDiv
    | expr op=('+'|'-') expr    #addSub
    | INT                       #int
    | ID                        #var
    | '(' expr ')'              #parens
    ;

MUL :   '*' ;
DIV :   '/' ;
ADD :   '+' ;
SUB :   '-' ;

INT :   [0-9]+ ;
ID  :   [a-zA-Z]+ ;
NL  :   '\r'? '\n' ;
WS  :   [ \t] -> skip ;