blob: bc82cb32c1be4a9043cf33d175a329cbece9c299 (
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
36
37
38
39
|
-terminal NUM IDEN ATOM
COMMA SEMICOL DOT COLON
RPAREN LPAREN RBRACE LBRACE
TYPELIST_START TYPELIST_END
T_INT T_ENUM T_STRUCT
ST_FUNCTION ST_BIG ST_LITTLE ST_NATIVE;
-nonterminal S exprlist expr sym fieldlist basetype subtypelist.
-left LPAREN;
-left COMMA SEMICOL.
S: exprlist DOT {};
exprlist: expr {}
| exprlist expr {}
| exprlist COMMA exprlist {}
| exprlist SEMICOL exprlist {};
expr: NUM {}
| sym {}
| sym fieldlist {}
| sym TYPELIST_START basetype TYPELIST_END {}
| sym TYPELIST_START basetype subtypelist TYPELIST_END {}
| LBRACE exprlist DOT RBRACE {}
| LPAREN exprlist RPAREN {};
sym: IDEN {} | ATOM {};
fieldlist: COLON IDEN {}
| fieldlist fieldlist {};
basetype: T_INT {}
| T_STRUCT {} | T_STRUCT LPAREN ATOM RPAREN {}
| T_ENUM {} | T_ENUM LPAREN ATOM RPAREN {};
subtypelist: ST_FUNCTION LPAREN exprlist RPAREN {}
| ST_BIG {} | ST_LITTLE {} | ST_NATIVE {}
| subtypelist subtypelist {}.
|