diff --git a/sources/zweic/Tree.scala b/sources/zweic/Tree.scala index f081ed4..e320a6f 100755 --- a/sources/zweic/Tree.scala +++ b/sources/zweic/Tree.scala @@ -78,48 +78,32 @@ //############################################################################ // Tree nodes for statements -/** - * A common superclass for all statements - */ +/* A common superclass for all statements */ abstract class Stat extends Tree; -/** - * S = While E { S } - */ +/* S = While E { S } */ case class While(cond: Expr, stats: List[Stat]) extends Stat; -/** - * S = Var name T E - */ +/* S = Var name T E */ case class Var(varname: Name, vartype: TypeTree, init: Expr) extends Stat; -/** - * S = Set name E - */ +/* S = Set name E */ case class Set(name: Name, expr: Expr) extends Stat; -/** - * S = Do E - */ +/* S = Do E */ case class Do(expr: Expr) extends Stat; -/** - * S = PrintInt E - */ +/* S = PrintInt E */ case class PrintInt(expr: Expr) extends Stat; -/** - * S = PrintChar E - */ +/* S = PrintChar E */ case class PrintChar(expr: Expr) extends Stat; //############################################################################ // Tree nodes for expressions -/** - * A common superclass for expressions - */ +/* A common superclass for expressions */ abstract class Expr extends Tree; /* E = Ident name */ @@ -134,6 +118,12 @@ /* E = Call E name { E } */ case class Call(func: Expr, name: Name, args: List[Expr]) extends Expr; +/* E = NullLit */ +case class NullLit extends Expr; + +/* E = IntLit int */ +case class IntLit(value: int) extends Expr; + /* E = Unop O E */ case class Unop(op: Operator, expr: Expr) extends Expr; @@ -152,5 +142,4 @@ /* E = Block { S } E */ case class Block(stats: List[Stat], expression: Expr) extends Expr; - //############################################################################