cutdown.opp.exp 552 Bytes
Newer Older
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 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
%{ %}
%start goal
%token R_BRACKET
%token NEW
%token L_BRACKET
%token <string> INTEGER_LITERAL
%token EOF
%token ASSIGN

%type <unit> goal
%%

goal:
| assignment EOF
    { }

primary:
| INTEGER_LITERAL
    { }
| array_access
    { }

primary_not_name:
| array_access
    { }
| NEW L_BRACKET expression R_BRACKET
    { }

array_access:
| expression L_BRACKET primary_not_name R_BRACKET
    { }

expression:
| primary
    { }
| assignment
    { }

assignment:
| left_hand_side ASSIGN expression
    { }

left_hand_side:
| primary_not_name
    { }

%%