packages feed

language-ocaml-0.1.31: lib/Language/OCaml/Parser/LblExpr.hs

module Language.OCaml.Parser.LblExpr
  ( lblExprP
  ) where

import Text.Megaparsec

import Language.OCaml.Definitions.Parsing.ASTTypes
import Language.OCaml.Definitions.Parsing.ParseTree
import Language.OCaml.Parser.Common
import Language.OCaml.Parser.LabelLongident
import Language.OCaml.Parser.OptTypeConstraint
import Language.OCaml.Parser.Tokens
import Language.OCaml.Parser.Utils.Types

lblExprP :: Parser Expression -> Parser (Loc Longident, Expression)
lblExprP exprP = choice
  [ do
    i <- labelLongidentP
    c <- optTypeConstraintP
    equalT
    e <- exprP
    return (mkRHS i 1, mkexpOptConstraint e c)
  ]