 M: ebnf-action (transform) ( ast -- parser )
   [ parser>> (transform) ] keep
   code>> string-lines [ parse-lines ] with-compilation-unit action ;
+
+M: ebnf-var (transform) ( ast -- parser )
+  parser>> (transform) ;
 
 M: ebnf-terminal (transform) ( ast -- parser )
   symbol>> token sp ;

C: <ebnf-optional> ebnf-optional
C: <ebnf-rule> ebnf-rule
C: <ebnf-action> ebnf-action
C: <ebnf> ebnf

: syntax ( string -- parser )

      [ dup CHAR: * = ]
      [ dup CHAR: + = ]
      [ dup CHAR: ? = ]
      [ dup CHAR: : = ]
    } || not nip    
  ] satisfy repeat1 [ >string <ebnf-non-terminal> ] action ;

