X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=AST.dcl;h=4fd4121eb851c93414e49efb011767977604b22a;hb=2953e6cc260d8243e5434b7e787258ab073d34d2;hp=0d8644f494e31ff4071d4d91f852e25f09030e23;hpb=cbaff96b96d2def874b8a1fa9454414c6602a829;p=cc1516.git diff --git a/AST.dcl b/AST.dcl index 0d8644f..4fd4121 100644 --- a/AST.dcl +++ b/AST.dcl @@ -9,11 +9,13 @@ from StdOverloaded import class toString :: Type = TupleType (Type, Type) | ListType Type - | IdType String + | IdType String | IntType | BoolType | CharType | VarType + | VoidType + | (->>) infixl 7 Type Type :: Expr = VarExpr Pos VarDef | Op2Expr Pos Expr Op2 Expr @@ -29,8 +31,7 @@ from StdOverloaded import class toString :: Op1 = UnNegation | UnMinus :: Op2 = BiPlus | BiMinus | BiTimes | BiDivide | BiMod | BiEquals | BiLesser | BiGreater | BiLesserEq | BiGreaterEq | BiUnEqual | BiAnd | BiOr | BiCons -:: FunDecl = FunDecl Pos String [String] (Maybe FunType) [VarDecl] [Stmt] -:: FunType = FunType [Type] (Maybe Type) +:: FunDecl = FunDecl Pos String [String] (Maybe Type) [VarDecl] [Stmt] :: FunCall = FunCall String [Expr] :: Stmt = IfStmt Expr [Stmt] [Stmt] @@ -40,3 +41,9 @@ from StdOverloaded import class toString | ReturnStmt (Maybe Expr) instance toString AST +instance toString Type +instance toString Pos +instance toString Op2 +instance == Op2 +instance == Type +instance toString FieldSelector