aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/firrtl/Visitor.scala
diff options
context:
space:
mode:
authorjackkoenig2016-09-23 13:44:57 -0700
committerJack Koenig2016-10-26 15:15:37 -0700
commit4c3b4f4dc10c380a101df75cb561e3f79f1a6abe (patch)
treefeb382146fff5d5496079b6d7c4d3d530bd65cda /src/main/scala/firrtl/Visitor.scala
parent4b8a0d2af52ceeb3ff5d05082af53bac76744361 (diff)
Add RawString ExtModule parameter support
While unsafe, this supports Verilog parameter types. Tests now require Verilator 3.884+ to pass.
Diffstat (limited to 'src/main/scala/firrtl/Visitor.scala')
-rw-r--r--src/main/scala/firrtl/Visitor.scala9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/main/scala/firrtl/Visitor.scala b/src/main/scala/firrtl/Visitor.scala
index 03be0c4e..5e07668a 100644
--- a/src/main/scala/firrtl/Visitor.scala
+++ b/src/main/scala/firrtl/Visitor.scala
@@ -119,10 +119,11 @@ class Visitor(infoMode: InfoMode) extends FIRRTLBaseVisitor[FirrtlNode] {
private def visitParameter[FirrtlNode](ctx: FIRRTLParser.ParameterContext): Param = {
val name = ctx.id.getText
- (ctx.IntLit, ctx.StringLit, ctx.DoubleLit) match {
- case (int, null, null) => IntParam(name, string2BigInt(int.getText))
- case (null, str, null) => StringParam(name, visitStringLit(str))
- case (null, null, dbl) => DoubleParam(name, dbl.getText.toDouble)
+ (ctx.IntLit, ctx.StringLit, ctx.DoubleLit, ctx.RawString) match {
+ case (int, null, null, null) => IntParam(name, string2BigInt(int.getText))
+ case (null, str, null, null) => StringParam(name, visitStringLit(str))
+ case (null, null, dbl, null) => DoubleParam(name, dbl.getText.toDouble)
+ case (null, null, null, raw) => RawStringParam(name, raw.getText.tail.init) // Remove "\'"s
case _ => throw new Exception(s"Internal error: Visiting impossible parameter ${ctx.getText}")
}
}