X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=src%2Fparse.dcl;h=baef54567d9bd2e19a8643509fe0664925ac8f4b;hb=3faf0ef4123af219f9f10560b5fe1aa041a37c4a;hp=8a368ba349e883be4f7e6a99ff41b468334ae7cd;hpb=bcbe06dff81439abede5659925d0474c36a6e887;p=cc1516.git diff --git a/src/parse.dcl b/src/parse.dcl index 8a368ba..baef545 100644 --- a/src/parse.dcl +++ b/src/parse.dcl @@ -17,28 +17,30 @@ import lex | BoolType | CharType | VarType - :: Expr - = VarExpr String (Maybe FieldSelector) + = VarExpr VarDef | Op2Expr Expr Op2 Expr | Op1Expr Op1 Expr | IntExpr Int | CharExpr Char | BoolExpr Bool - | FunExpr String [Expr] + | FunExpr FunCall | EmptyListExpr | TupleExpr Expr Expr - +:: VarDef = VarDef String [FieldSelector] :: FieldSelector = FieldHd | FieldTl | FieldFst | FieldSnd :: Op1 = UnNegation | UnMinus :: Op2 = BiPlus | BiMinus | BiTimes | BiDivide | BiMod | BiEquals | BiLesser | BiGreater | BiLesserEq | BiGreaterEq | BiUnEqual | BiAnd | BiOr | BiCons - -//TODO - :: FunDecl = FunDecl String [String] FunType [VarDecl] [Stmt] -:: FunType = Stub -:: Stmt = Stubbel +:: FunType = FunType [Type] (Maybe Type) +:: FunCall = FunCall String [Expr] +:: Stmt + = IfStmt Expr [Stmt] [Stmt] + | WhileStmt Expr [Stmt] + | AssStmt VarDef Expr + | FunStmt FunCall + | ReturnStmt (Maybe Expr) instance toString AST