diff options
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)] |