cws/cw05.tex
changeset 868 8fb3b6d3be70
parent 865 bc2a862a00d4
child 873 a25da86f7c8c
equal deleted inserted replaced
867:54bcd848d716 868:8fb3b6d3be70
   106 
   106 
   107 case class Def(name: String, args: List[(String, String)],
   107 case class Def(name: String, args: List[(String, String)],
   108                ty: String, body: Exp) extends Decl
   108                ty: String, body: Exp) extends Decl
   109 case class Main(e: Exp) extends Decl
   109 case class Main(e: Exp) extends Decl
   110 case class Const(name: String, v: Int) extends Decl
   110 case class Const(name: String, v: Int) extends Decl
   111 case class FConst(name: String, x: Float) extends Decl
   111 case class FConst(name: String, x: Double) extends Decl
   112 
   112 
   113 case class Call(name: String, args: List[Exp]) extends Exp
   113 case class Call(name: String, args: List[Exp]) extends Exp
   114 case class If(a: BExp, e1: Exp, e2: Exp) extends Exp
   114 case class If(a: BExp, e1: Exp, e2: Exp) extends Exp
   115 case class Var(s: String) extends Exp
   115 case class Var(s: String) extends Exp
   116 case class Num(i: Int) extends Exp     // integer numbers
   116 case class Num(i: Int) extends Exp     // integer numbers
   117 case class FNum(i: Float) extends Exp  // floating numbers
   117 case class FNum(i: Double) extends Exp  // floating numbers
   118 case class ChConst(c: Int) extends Exp // char constants
   118 case class ChConst(c: Int) extends Exp // char constants
   119 case class Aop(o: String, a1: Exp, a2: Exp) extends Exp
   119 case class Aop(o: String, a1: Exp, a2: Exp) extends Exp
   120 case class Sequence(e1: Exp, e2: Exp) extends Exp
   120 case class Sequence(e1: Exp, e2: Exp) extends Exp
   121 case class Bop(o: String, a1: Exp, a2: Exp) extends BExp
   121 case class Bop(o: String, a1: Exp, a2: Exp) extends BExp
   122 \end{lstlisting}
   122 \end{lstlisting}