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