diff options
| author | jackkoenig | 2016-03-14 22:35:06 -0700 |
|---|---|---|
| committer | jackkoenig | 2016-03-15 13:43:57 -0700 |
| commit | 373d3cfcb5566c448dcad6b679dee43bf66f878a (patch) | |
| tree | 6a80e496588f56f5c52be40bcc0155ba8987811a /src/main/scala/firrtl/Serialize.scala | |
| parent | 5737a8ccbf54a6d22095023205867e851e204c3f (diff) | |
Revamp string literal handling
Diffstat (limited to 'src/main/scala/firrtl/Serialize.scala')
| -rw-r--r-- | src/main/scala/firrtl/Serialize.scala | 5 |
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" |
