aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/firrtl/Serialize.scala
diff options
context:
space:
mode:
authorjackkoenig2016-03-14 22:35:06 -0700
committerjackkoenig2016-03-15 13:43:57 -0700
commit373d3cfcb5566c448dcad6b679dee43bf66f878a (patch)
tree6a80e496588f56f5c52be40bcc0155ba8987811a /src/main/scala/firrtl/Serialize.scala
parent5737a8ccbf54a6d22095023205867e851e204c3f (diff)
Revamp string literal handling
Diffstat (limited to 'src/main/scala/firrtl/Serialize.scala')
-rw-r--r--src/main/scala/firrtl/Serialize.scala5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/main/scala/firrtl/Serialize.scala b/src/main/scala/firrtl/Serialize.scala
index 6692063c..02b9ebc2 100644
--- a/src/main/scala/firrtl/Serialize.scala
+++ b/src/main/scala/firrtl/Serialize.scala
@@ -45,6 +45,7 @@ private object Serialize {
case r: Port => serialize(r)
case r: Module => serialize(r)
case r: Circuit => serialize(r)
+ case r: StringLit => serialize(r)
case _ => throw new Exception("serialize called on unknown AST node!")
}
}
@@ -55,6 +56,8 @@ private object Serialize {
def serialize(op: PrimOp): String = op.getString
+ def serialize(lit: StringLit): String = FIRRTLStringLitHandler.escape(lit)
+
def serialize(exp: Expression): String = {
exp match {
case v: UIntValue => s"UInt${serialize(v.width)}(${serialize(v.value)})"
@@ -131,7 +134,7 @@ private object Serialize {
case s: Stop => s"stop(${serialize(s.clk)}, ${serialize(s.en)}, ${s.ret})"
case p: Print => {
val q = '"'.toString
- s"printf(${serialize(p.clk)}, ${serialize(p.en)}, ${q}${p.string}${q}" +
+ s"printf(${serialize(p.clk)}, ${serialize(p.en)}, ${q}${serialize(p.string)}${q}" +
(if (p.args.nonEmpty) p.args.map(serialize).mkString(", ", ", ", "") else "") + ")"
}
case s:Empty => "skip"