diff --git a/sources/zweic/Tree.scala b/sources/zweic/Tree.scala index 438783b..f081ed4 100755 --- a/sources/zweic/Tree.scala +++ b/sources/zweic/Tree.scala @@ -122,12 +122,35 @@ */ abstract class Expr extends Tree; -// ... � compl�ter ... +/* E = Ident name */ +case class Ident(name: Name) extends Expr; -/** - * E = Unop O E - */ +/* E = New name { E } */ +case class New(name: Name, args: List[Expr]) extends Expr; + +/* E = Select E name */ +case class Select(varname: Expr, name: Name) extends Expr; + +/* E = Call E name { E } */ +case class Call(func: Expr, name: Name, args: List[Expr]) extends Expr; + +/* E = Unop O E */ case class Unop(op: Operator, expr: Expr) extends Expr; +/* E = Binop O E E */ +case class Binop(op: Operator, left: Expr, right: Expr) extends Expr; + +/* E = ReadInt */ +case class ReadInt extends Expr; + +/* E = ReadChar */ +case class ReadChar extends Expr; + +/* E = If E E E */ +case class If(cond: Expr, stata: Expr, statb: Expr) extends Expr; + +/* E = Block { S } E */ +case class Block(stats: List[Stat], expression: Expr) extends Expr; + //############################################################################