   p1>> compiled-parser 1quotation '[ @ check-optional ] ;
 
 TUPLE: semantic-parser p1 quot ;
-MATCH-VARS: ?quot ;
-
-MATCH-VARS: ?parser ;
 
 : check-semantic ( result quot -- result )
   over [

  p1>> compiled-parser 1quotation '[ input-slice @ check-ensure-not ] ;

TUPLE: action-parser p1 quot ;

MATCH-VARS: ?action ;

: check-action ( result quot -- result )
  over [


TUPLE: token-parser symbol ;

: parse-token ( input string -- result )
  #! Parse the string, returning a parse result
  dup >r ?head-slice [
