items are the things a program is made of


  
  items: item 
       | items item { $$ = mkterm("#;:",$1,$2); }
       ;
  
  item : command { $$ = mkterm("#item:",$1); }
       | clause  { $$ = mkterm("#item:",$1);}
       | declarative { $$ = mkterm("#item:",$1); }
       | object { $$ = mkterm("#item:",$1); }
       ;
  
  clause : fact | rule ;
  
  declarative : DECL clist stop { $$ = mkterm("#declare:",$1,$2); } 
              | COMM DECL clist stop { $$ = mkterm("#declare:",$2,$3); } 
              ;
  
  command : COMM clist stop { $$ = mkterm("#command:",$2); }
          ;
  
  fact : term stop                { $$ = mkterm("#fact:",$1); } ;
  rule : term COMM literals stop  { $$ = mkterm("#rule:",$1,$3); } ;
  
  

slide: items are the things a program is made of