{
module Parser (parse) where
import Lexer (lex_tok)
import ParserM (Token(..), Tree(..), ParserM, run_parser, get_pos, show_pos,
happyError)
}
%name parsex tree
%tokentype { Token }
%monad { ParserM }
%lexer { lex_tok } { TEOF }
%token
fork { TFork }
leaf { TLeaf }
%%
tree :: { Tree }
tree : leaf { Leaf }
| fork tree tree { Fork $2 $3 }
{
parse :: String -> Either String Tree
parse = run_parser parsex
}