 
 M: ebnf-non-terminal (transform) ( ast -- parser )
   symbol>>  [
-    , \ dup , parser get , \ at , [ parser-not-found ] , \ unless* , \ nip ,     ] [ ] make box ;
+    , \ dup , parser get , \ at , [ parser-not-found ] , \ unless* , \ nip ,   
+  ] [ ] make box ;
 
 : transform-ebnf ( string -- object )
   'ebnf' parse transform ;


M: redefined-rule summary
  name>> "Rule '" "' defined more than once" surround ;
M: ebnf-rule (transform) ( ast -- parser )
  dup elements>>
  (transform) [
    swap symbol>> dup get parser? [ redefined-rule ] [ set ] if

: ebnf-transform ( ast -- parser quot )
  [ parser>> (transform) ]
  [ code>> insert-escapes ]
  [ parser>> ] tri build-locals 
  [ string-lines parse-lines ] call( string -- quot ) ;

M: ebnf-action (transform) ( ast -- parser )
  ebnf-transform check-action-effect action ;

M: ebnf-semantic (transform) ( ast -- parser )
