Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > 8de1f55ea6a1a64d0f3f3ea116288458 > files > 80

happy-1.17-3mdv2009.0.i586.rpm


{
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
}