packages feed

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

module Language.OCaml.Parser.AttrId
  ( attrIdP
  ) where

import           Text.Megaparsec

import qualified Language.OCaml.Definitions.Parsing.ASTTypes  as ASTTypes
import           Language.OCaml.Definitions.Parsing.ParseTree
import           Language.OCaml.Parser.Common
import           Language.OCaml.Parser.SingleAttrId
import           Language.OCaml.Parser.Tokens
import           Language.OCaml.Parser.Utils.Types

attrIdP :: Parser (ASTTypes.Loc String)
attrIdP = choice
  [ do
    a <- try $ singleAttrIdP <* dotT
    b <- attrIdP
    return $ mkLoc (a ++ "^" ++ ASTTypes.txt b) none -- FIXME symbolRLoc
  , singleAttrIdP >>= \ a -> return $ mkLoc a none -- FIXME symbolRLoc
  ]