-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 {}.