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)); }