summaryrefslogtreecommitdiff
path: root/lib/Language/Elna/Frontend/Parser.hs
diff options
context:
space:
mode:
authorEugen Wissner <belka@caraus.de>2024-10-17 00:37:42 +0200
committerEugen Wissner <belka@caraus.de>2024-10-17 00:37:42 +0200
commitbf5ec1f3e2325e28154b9796532d37ee84753349 (patch)
tree247eb0160bb7a415d1210c8a6246c8c49abc6231 /lib/Language/Elna/Frontend/Parser.hs
parent582040e5d3f6a5fb5b9046964b6823891d2802dd (diff)
downloadelna-bf5ec1f3e2325e28154b9796532d37ee84753349.tar.gz
Parse type declarations
Diffstat (limited to 'lib/Language/Elna/Frontend/Parser.hs')
-rw-r--r--lib/Language/Elna/Frontend/Parser.hs6
1 files changed, 3 insertions, 3 deletions
diff --git a/lib/Language/Elna/Frontend/Parser.hs b/lib/Language/Elna/Frontend/Parser.hs
index e85f3b1..89853f0 100644
--- a/lib/Language/Elna/Frontend/Parser.hs
+++ b/lib/Language/Elna/Frontend/Parser.hs
@@ -52,14 +52,14 @@ literalP
where
charP = fromIntegral . fromEnum
<$> between (char '\'') (char '\'') Lexer.charLiteral
-{-
+
typeDefinitionP :: Parser Declaration
typeDefinitionP = TypeDefinition
<$> (symbol "type" *> identifierP)
<*> (symbol "=" *> typeExpressionP)
<* semicolonP
<?> "type definition"
--}
+
termP :: Parser Expression
termP = choice
[ parensP expressionP
@@ -214,7 +214,7 @@ variableDeclarationP = VariableDeclaration
<?> "variable declaration"
declarationP :: Parser Declaration
-declarationP = procedureDeclarationP -- <|> typeDefinitionP
+declarationP = procedureDeclarationP <|> typeDefinitionP
programP :: Parser Program
programP = Program <$> many declarationP <* eof