aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/firrtl/Visitor.scala
diff options
context:
space:
mode:
authorazidar2016-02-09 14:48:12 -0800
committerazidar2016-02-09 18:57:08 -0800
commitbb5f68948c6d75d1f02c614f3e0ae4ef9bc6e689 (patch)
tree0ac38af05f64eb454d2c0925f34f5dae53d41f61 /src/main/scala/firrtl/Visitor.scala
parent57473f4c6a9f35752bb71fc7b8d6b54471aeaa07 (diff)
Added remaining check passes. Ready for open sourcing
Diffstat (limited to 'src/main/scala/firrtl/Visitor.scala')
-rw-r--r--src/main/scala/firrtl/Visitor.scala7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/main/scala/firrtl/Visitor.scala b/src/main/scala/firrtl/Visitor.scala
index 76759687..3fe8c176 100644
--- a/src/main/scala/firrtl/Visitor.scala
+++ b/src/main/scala/firrtl/Visitor.scala
@@ -57,7 +57,10 @@ class Visitor(val fullFilename: String) extends FIRRTLBaseVisitor[AST]
Circuit(getInfo(ctx), ctx.module.map(visitModule), (ctx.id.getText))
private def visitModule[AST](ctx: FIRRTLParser.ModuleContext): Module =
- InModule(getInfo(ctx), (ctx.id.getText), ctx.port.map(visitPort), visitBlock(ctx.block))
+ ctx.getChild(0).getText match {
+ case "module" => InModule(getInfo(ctx), (ctx.id.getText), ctx.port.map(visitPort), visitBlock(ctx.block))
+ case "extmodule" => ExModule(getInfo(ctx), (ctx.id.getText), ctx.port.map(visitPort))
+ }
private def visitPort[AST](ctx: FIRRTLParser.PortContext): Port =
Port(getInfo(ctx), (ctx.id.getText), visitDir(ctx.dir), visitType(ctx.`type`))
@@ -206,7 +209,7 @@ class Visitor(val fullFilename: String) extends FIRRTLBaseVisitor[AST]
(IntWidth(string2BigInt(ctx.IntLit(0).getText)), string2BigInt(ctx.IntLit(1).getText))
else {
val bigint = string2BigInt(ctx.IntLit(0).getText)
- (IntWidth(BigInt(bigint.bitLength)),bigint)
+ (IntWidth(BigInt(scala.math.max(bigint.bitLength,1))),bigint)
}
UIntValue(value, width)
}