module Language.Eiffel.Parser.Note where import Control.Applicative hiding ((<|>), optional) import Language.Eiffel.Syntax import Language.Eiffel.Parser.Lex import Language.Eiffel.Parser.Expr import Text.Parsec note :: Parser [Note] note = keyword TokNote >> many1 noteEntry noteEntry :: Parser Note noteEntry = Note <$> (identifier <* colon) <*> noteItem `sepBy1` comma <* optional semicolon noteItem :: Parser UnPosExpr noteItem = VarOrCall <$> identifier <|> manifest