language-ocaml-0.1.31: lib/Language/OCaml/Parser/FunDef.hs
module Language.OCaml.Parser.FunDef
( funDefP
) where
import Text.Megaparsec
import Language.OCaml.Definitions.Parsing.ParseTree
import Language.OCaml.Parser.Common
import Language.OCaml.Parser.LabeledSimplePattern
import Language.OCaml.Parser.Pattern
import Language.OCaml.Parser.Tokens
import Language.OCaml.Parser.Utils.Types
import Language.OCaml.PrettyPrinter ()
funDefP :: Parser Expression -> Parser Expression
funDefP seqExprP = choice
[ do
minusGreaterT
seqExprP
-- TODO
, do
(l, o, p) <- labeledSimplePatternP patternP
d <- funDefP'
return $ ghexp $ PexpFun l o p d
]
where
funDefP' = funDefP seqExprP