Added Expressions.
1 parent 6425573 commit f6791f4ccd0de84cecb4e202845ec2906bd24368
@glproj03 glproj03 authored on 29 Nov 2005
Showing 1 changed file
View
39
sources/zweic/Tree.scala
* A common superclass for expressions
*/
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;
 
 
//############################################################################