type
[cc1516.git] / src / parse.dcl
index 62a0461..281c804 100644 (file)
@@ -2,10 +2,11 @@ definition module parse
 
 from Data.Either import :: Either
 from Data.Maybe import :: Maybe
+from StdString import class toString
 
 import lex
 
-:: ParserOutput :== Either String AST
+:: ParserOutput :== Either Error AST
 
 :: AST = AST [VarDecl] [FunDecl]
 :: VarDecl = VarDecl Type String Expr
@@ -32,7 +33,7 @@ import lex
 :: Op1 = UnNegation | UnMinus
 :: Op2 = BiPlus | BiMinus | BiTimes | BiDivide | BiMod | BiEquals | BiLesser |
        BiGreater | BiLesserEq | BiGreaterEq | BiUnEqual | BiAnd | BiOr | BiCons
-:: FunDecl = FunDecl String [String] FunType [VarDecl] [Stmt]
+:: FunDecl = FunDecl String [String] (Maybe FunType) [VarDecl] [Stmt]
 :: FunType = FunType [Type] (Maybe Type)
 :: FunCall = FunCall String [Expr]
 :: Stmt