diff options
| author | Adam Izraelevitz | 2016-06-09 12:53:48 -0700 |
|---|---|---|
| committer | GitHub | 2016-06-09 12:53:48 -0700 |
| commit | 71e1bc9b96507a3346c96f8ea17b00aa42ea1775 (patch) | |
| tree | 8e985e37534ad30a5d01629d2225ff886bea5855 /src/main/scala/firrtl/Serialize.scala | |
| parent | 4562e2cb8468d7021320754aeaff395de1a22206 (diff) | |
| parent | cc4e7e39ebad106ff72f7ac97dcdc99048ee5347 (diff) | |
Merge branch 'master' into fix-warning
Diffstat (limited to 'src/main/scala/firrtl/Serialize.scala')
| -rw-r--r-- | src/main/scala/firrtl/Serialize.scala | 30 |
1 files changed, 17 insertions, 13 deletions
diff --git a/src/main/scala/firrtl/Serialize.scala b/src/main/scala/firrtl/Serialize.scala index 0229bb57..1735c270 100644 --- a/src/main/scala/firrtl/Serialize.scala +++ b/src/main/scala/firrtl/Serialize.scala @@ -31,25 +31,29 @@ import firrtl.PrimOps._ import firrtl.Utils._ private object Serialize { - def serialize(root: AST): String = { + lazy val ser = new Serialize root match { - case r: PrimOp => serialize(r) - case r: Expression => serialize(r) - case r: Stmt => serialize(r) - case r: Width => serialize(r) - case r: Flip => serialize(r) - case r: Field => serialize(r) - case r: Type => serialize(r) - case r: Direction => serialize(r) - case r: Port => serialize(r) - case r: Module => serialize(r) - case r: Circuit => serialize(r) - case r: StringLit => serialize(r) + case r: PrimOp => ser.serialize(r) + case r: Expression => ser.serialize(r) + case r: Stmt => ser.serialize(r) + case r: Width => ser.serialize(r) + case r: Flip => ser.serialize(r) + case r: Field => ser.serialize(r) + case r: Type => ser.serialize(r) + case r: Direction => ser.serialize(r) + case r: Port => ser.serialize(r) + case r: Module => ser.serialize(r) + case r: Circuit => ser.serialize(r) + case r: StringLit => ser.serialize(r) case _ => throw new Exception("serialize called on unknown AST node!") } } + /** Creates new instance of Serialize */ + def apply() = new Serialize +} +class Serialize { def serialize(bi: BigInt): String = if (bi < BigInt(0)) "\"h" + bi.toString(16).substring(1) + "\"" else "\"h" + bi.toString(16) + "\"" |
