- trans1 EmptyListToken EmptyListExpr <|>
- trans1 TrueToken (BoolExpr True) <|>
- trans1 FalseToken (BoolExpr False) <|>
- trans2 (NumberToken zero) (\(NumberToken i)->IntExpr i) <|>
- trans2 (CharToken zero) (\(CharToken c)->CharExpr c) <|>
- (Op1Expr <$> parseOp1 <*> parseExpr) <|>
- (VarExpr <$> parseVarDef)
-
-parseFunCall :: Parser Token FunCall
-parseFunCall = FunCall <$> parseIdent <*> (parseBBraces $ parseSepList CommaToken parseExpr)
+ trans1 EmptyListToken (EmptyListExpr pos) <|>
+ trans1 TrueToken (BoolExpr pos True) <|>
+ trans1 FalseToken (BoolExpr pos False) <|>
+ trans2 (NumberToken zero) (\(NumberToken i)->IntExpr pos i) <|>
+ trans2 (CharToken zero) (\(CharToken c)->CharExpr pos c) <|>
+ (Op1Expr pos <$> parseOp1 <*> parseExpr) <|>
+ (VarExpr pos <$> parseVarDef)
+
+parseFunCall :: Parser Token (String, [Expr])
+parseFunCall = tuple <$> parseIdent <*> (
+ (parseBBraces $ parseSepList CommaToken parseExpr) <|> pure [])