From d17423cba7c15a26f835a6fa578ecb48b80d8aab Mon Sep 17 00:00:00 2001 From: Charles Date: Mon, 16 Mar 2020 12:09:27 +0100 Subject: split parser in multiple modules, parsing of assignment and statement --- src/parser/assignment.hs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 src/parser/assignment.hs (limited to 'src/parser/assignment.hs') diff --git a/src/parser/assignment.hs b/src/parser/assignment.hs new file mode 100644 index 0000000..bb782f5 --- /dev/null +++ b/src/parser/assignment.hs @@ -0,0 +1,15 @@ +module Parser.Assignment where + +import Control.Applicative +import Parser.Core +import qualified Parser.Expr as E +import Assignment + +variableP :: Parser Assignment +variableP = Variable <$> alphaStringP <* char '=' <*> E.exprP + +functionP :: Parser Assignment +functionP = Function <$> alphaStringP <*> parenthesize alphaStringP <* char '=' <*> E.exprP + +assignmentP :: Parser Assignment +assignmentP = variableP <|> functionP -- cgit