# HG changeset patch # User Christian Urban # Date 1642669118 0 # Node ID 8fb3b6d3be70e3e7a323671ae1a60855f75b2716 # Parent 54bcd848d71614e9d25776085845a2048f207c46 updated to Doubles trhoughout diff -r 54bcd848d716 -r 8fb3b6d3be70 cws/cw05.pdf Binary file cws/cw05.pdf has changed diff -r 54bcd848d716 -r 8fb3b6d3be70 cws/cw05.tex --- a/cws/cw05.tex Mon Jan 10 23:52:51 2022 +0000 +++ b/cws/cw05.tex Thu Jan 20 08:58:38 2022 +0000 @@ -108,13 +108,13 @@ ty: String, body: Exp) extends Decl case class Main(e: Exp) extends Decl case class Const(name: String, v: Int) extends Decl -case class FConst(name: String, x: Float) extends Decl +case class FConst(name: String, x: Double) extends Decl case class Call(name: String, args: List[Exp]) extends Exp case class If(a: BExp, e1: Exp, e2: Exp) extends Exp case class Var(s: String) extends Exp case class Num(i: Int) extends Exp // integer numbers -case class FNum(i: Float) extends Exp // floating numbers +case class FNum(i: Double) extends Exp // floating numbers case class ChConst(c: Int) extends Exp // char constants case class Aop(o: String, a1: Exp, a2: Exp) extends Exp case class Sequence(e1: Exp, e2: Exp) extends Exp diff -r 54bcd848d716 -r 8fb3b6d3be70 solution/cw5/fun_llvm.sc --- a/solution/cw5/fun_llvm.sc Mon Jan 10 23:52:51 2022 +0000 +++ b/solution/cw5/fun_llvm.sc Thu Jan 20 08:58:38 2022 +0000 @@ -63,7 +63,7 @@ case class KVar(s: String, ty: Ty = "UNDEF") extends KVal case class KLoad(v: KVal) extends KVal case class KNum(i: Int) extends KVal -case class KFNum(i: Float) extends KVal +case class KFNum(i: Double) extends KVal case class KChr(c: Int) extends KVal case class Kop(o: String, v1: KVal, v2: KVal, ty: Ty = "UNDEF") extends KVal case class KCall(o: String, vrs: List[KVal], ty: Ty = "UNDEF") extends KVal diff -r 54bcd848d716 -r 8fb3b6d3be70 solution/cw5/fun_parser.sc --- a/solution/cw5/fun_parser.sc Mon Jan 10 23:52:51 2022 +0000 +++ b/solution/cw5/fun_parser.sc Thu Jan 20 08:58:38 2022 +0000 @@ -92,7 +92,7 @@ } } -case object FNumParser extends Parser[List[Token], Float] { +case object FNumParser extends Parser[List[Token], Double] { def parse(ts: List[Token]) = ts match { case T_FNUM(x)::ts => Set((x, ts)) case _ => Set() @@ -129,13 +129,13 @@ case class Def(name: String, args: List[(String, String)], ty: String, body: Exp) extends Decl case class Main(e: Exp) extends Decl case class Const(name: String, v: Int) extends Decl -case class FConst(name: String, x: Float) extends Decl +case class FConst(name: String, x: Double) extends Decl case class Call(name: String, args: List[Exp]) extends Exp case class If(a: BExp, e1: Exp, e2: Exp) extends Exp case class Var(s: String) extends Exp case class Num(i: Int) extends Exp // integer numbers -case class FNum(i: Float) extends Exp // floating numbers +case class FNum(i: Double) extends Exp // floating numbers case class ChConst(c: Int) extends Exp // char constant case class Aop(o: String, a1: Exp, a2: Exp) extends Exp case class Sequence(e1: Exp, e2: Exp) extends Exp diff -r 54bcd848d716 -r 8fb3b6d3be70 solution/cw5/fun_tokens.sc --- a/solution/cw5/fun_tokens.sc Mon Jan 10 23:52:51 2022 +0000 +++ b/solution/cw5/fun_tokens.sc Thu Jan 20 08:58:38 2022 +0000 @@ -244,7 +244,7 @@ case class T_FID(s: String) extends Token case class T_OP(s: String) extends Token case class T_NUM(n: Int) extends Token -case class T_FNUM(x: Float) extends Token +case class T_FNUM(x: Double) extends Token case class T_KWD(s: String) extends Token case class T_TY(s: String) extends Token case class T_CHR(i: Int) extends Token @@ -256,7 +256,7 @@ case ("o", s) => T_OP(s) case ("n", s) => T_NUM(s.toInt) case ("ch", s) => if (s == "'\\n'") T_CHR(10) else T_CHR(s(1).toInt) - case ("f", s) => T_FNUM(s.toFloat) + case ("f", s) => T_FNUM(s.toDouble) case ("s", _) => T_SEMI case ("c", _) => T_COMMA case ("co", _) => T_COLON