aboutsummaryrefslogtreecommitdiff
path: root/runtime/CSharp3/Sources/Antlr3.Runtime.Test/Composition/VecMath_Parser.g3
blob: 406ec1381c40e0f2e2bc23cfa01c9c6aa680e029 (plain)
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
26
27
28
29
30
31
32
33
34
35
parser grammar VecMath_Parser;

options {
    output=AST;
}

tokens {
    SHIFT;    
    VEC;      
}

public
prog
   : stat+ ;

stat
   : ID EQUAL expr -> ^( EQUAL ID expr )
   | PRINT^ expr
   ;

expr
   : multExpr ( PLUS^ multExpr )*
   ;

multExpr
   : primary ( ( MULT^ | DOT^ ) primary )*
   ;

primary
   :   INT
   |   ID
   |   OPEN_SQUARE expr ( COMMA expr )* CLOSE_SQUARE -> ^( VEC expr+ )
   |   OPEN_BRACE expr CLOSE_BRACE             -> expr
   ;