diff options
author | tomsmeding <tom.smeding@gmail.com> | 2017-01-23 20:38:30 +0100 |
---|---|---|
committer | tomsmeding <tom.smeding@gmail.com> | 2017-01-23 20:38:30 +0100 |
commit | 285847e5e404bea2941f1ce4b15fb3c8c27993c2 (patch) | |
tree | 2f323f80900f8178b0971150a4b7f51aac285478 /parser.hs | |
parent | fbed3a4b44823256f17c6a4473e0ec3f63792be6 (diff) |
Code now typechecks
Diffstat (limited to 'parser.hs')
-rw-r--r-- | parser.hs | 10 |
1 files changed, 5 insertions, 5 deletions
@@ -85,14 +85,14 @@ exprTable = [binary "&&" BoolAnd E.AssocLeft, binary "||" BoolOr E.AssocLeft]] where - binary name op assoc = E.Infix (ExBinOp op <$ symbol name) assoc - prefix name op = E.Prefix (ExUnOp op <$ symbol name) + binary name op assoc = E.Infix (exBinOp_ op <$ symbol name) assoc + prefix name op = E.Prefix (exUnOp_ op <$ symbol name) pExpression :: Parser Expression pExpression = E.buildExpressionParser exprTable pExLit pExLit :: Parser Expression -pExLit = ExLit <$> pLiteral +pExLit = exLit_ <$> pLiteral pLiteral :: Parser Literal pLiteral = (LitInt <$> pInteger) <|> (LitString <$> pString) @@ -109,7 +109,7 @@ pLitCall = do pStatement :: Parser Statement pStatement = pStEmpty <|> pStIf <|> pStWhile <|> pStReturn <|> pStBlock - <|> try pStAssignment <|> pStVarDeclaration <|> pStExpr + <|> try pStAssignment <|> try pStVarDeclaration <|> pStExpr pStEmpty :: Parser Statement pStEmpty = symbol ";" >> return StEmpty @@ -165,7 +165,7 @@ pStReturn = do primitiveTypes :: Map.Map String Type primitiveTypes = Map.fromList - [("i8", TypeInt 8), ("i16", TypeInt 16), ("i32", TypeInt 32), ("i64", TypeInt 64), + [("i1", TypeInt 1), ("i8", TypeInt 8), ("i16", TypeInt 16), ("i32", TypeInt 32), ("i64", TypeInt 64), ("u8", TypeUInt 8), ("u16", TypeUInt 16), ("u32", TypeUInt 32), ("u64", TypeUInt 64), ("float", TypeFloat), ("double", TypeDouble)] |