objects are indicated by specifiers
specifier: SPEC
| QUAL SPEC { $$ = mkterm("#qual:",$1,$2); }
| COMM specifier { $$ = $2; }
;
object: specifier term begin { in_obj++; } program end
{ in_obj--;
term* name = $2;
term* header = mkterm("#object:",name);
term* end = mkterm("#end:",$5,name);
$$ = mkterm("#;:",header,end);
}
| specifier term ':' slist begin { in_obj++; } program end
{ in_obj--;
term* name = $2;
term* header = mkterm("#object:",name,$4);
term* end = mkterm("#end:",$7,name);
$$ = mkterm("#;:",header,end);
}
;
stop: '.' | STOP;
begin: '{' | stop;
end: '}'
| END
| END term stop { $$ = $2; }
;
slide: objects are indicated by specifiers