Identifier List etc.
idlist : IDENTIFIER COMMA idlist { $$ = cons($1, $3); } | IDENTIFIER { $$ = cons($1, NULL); } ; vblock : VAR varspecs block { $$ = $3; } | block ; varspecs : vargroup SEMICOLON varspecs | vargroup SEMICOLON ; vargroup : idlist COLON type { instvars($1, $3); } ; type : simpletype | ... ; simpletype : IDENTIFIER { $$ = findtype($1); } | ... ; /* $1->symtype returns type */ block : BEGINBEGIN statement endpart { $$ = makeprogn($1,cons($2, $3)); }