 TUPLE: ebnf-choice options ;
 TUPLE: ebnf-sequence elements ;
 TUPLE: ebnf-rule symbol elements ;
+TUPLE: ebnf rules ;
 
 C: <ebnf-non-terminal> ebnf-non-terminal
 C: <ebnf-terminal> ebnf-terminal
 C: <ebnf-choice> ebnf-choice
 C: <ebnf-sequence> ebnf-sequence
 C: <ebnf-rule> ebnf-rule
+C: <ebnf> ebnf
 
 GENERIC: ebnf-compile ( ast -- quot )
 

  "=" token sp hide 
  'rhs' 
  3array seq [ first2 <ebnf-rule> ] action ;


M: ebnf-non-terminal ebnf-compile ( ast -- quot )
  [
    ebnf-non-terminal-symbol , \ in , \ get , \ lookup , \ execute ,
  ] [ ] make ;

M: ebnf-choice ebnf-compile ( ast -- quot )
