From 9b6ff229538070b2b9be71bc00be4f91c5ee2b01 Mon Sep 17 00:00:00 2001 From: Jack Koenig Date: Fri, 15 Jun 2018 15:27:30 -0700 Subject: Improve Parser and Visitor (#819) * Update Parser to use ANTLR CharStreams This removes some unnecessary object creation in String reading and manipulation * Remove two unnecessary traversals from Block construction in Visitor --- src/main/scala/firrtl/Visitor.scala | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/main/scala/firrtl/Visitor.scala') diff --git a/src/main/scala/firrtl/Visitor.scala b/src/main/scala/firrtl/Visitor.scala index f47d7ee3..7b965bff 100644 --- a/src/main/scala/firrtl/Visitor.scala +++ b/src/main/scala/firrtl/Visitor.scala @@ -144,10 +144,10 @@ class Visitor(infoMode: InfoMode) extends FIRRTLBaseVisitor[FirrtlNode] { } private def visitBlock[FirrtlNode](ctx: FIRRTLParser.ModuleBlockContext): Statement = - Block(ctx.simple_stmt().asScala.map(_.stmt).filter(_ != null).map(visitStmt)) + Block(ctx.simple_stmt().asScala.flatMap(x => Option(x.stmt).map(visitStmt))) private def visitSuite[FirrtlNode](ctx: FIRRTLParser.SuiteContext): Statement = - Block(ctx.simple_stmt().asScala.map(_.stmt).filter(_ != null).map(visitStmt)) + Block(ctx.simple_stmt().asScala.flatMap(x => Option(x.stmt).map(visitStmt))) // Memories are fairly complicated to translate thus have a dedicated method -- cgit v1.2.3