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} |