diff options
| author | jackkoenig | 2016-05-11 23:44:14 -0700 |
|---|---|---|
| committer | jackkoenig | 2016-05-12 00:15:40 -0700 |
| commit | 0ee659e85c7fe46c2678a49866ef1eca8f4a2c65 (patch) | |
| tree | a78810b137d106a59b56d9d38e985796ea8da97f /src/main/scala/firrtl/Parser.scala | |
| parent | 6d72dfbb50a9ccd7944b90d509d9796704aa69a9 (diff) | |
Implement File Info
Diffstat (limited to 'src/main/scala/firrtl/Parser.scala')
| -rw-r--r-- | src/main/scala/firrtl/Parser.scala | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/main/scala/firrtl/Parser.scala b/src/main/scala/firrtl/Parser.scala index 070a3619..e6489b2f 100644 --- a/src/main/scala/firrtl/Parser.scala +++ b/src/main/scala/firrtl/Parser.scala @@ -41,7 +41,7 @@ case class InvalidEscapeCharException(message: String) extends ParserException(m object Parser extends LazyLogging { /** Takes Iterator over lines of FIRRTL, returns AST (root node is Circuit) */ - def parse(filename: String, lines: Iterator[String], useInfo: Boolean = true): Circuit = { + def parse(lines: Iterator[String], infoMode: InfoMode = UseInfo): Circuit = { val fixedInput = time("Translator") { Translator.addBrackets(lines) } val antlrStream = new ANTLRInputStream(fixedInput.result) val lexer = new FIRRTLLexer(antlrStream) @@ -56,7 +56,7 @@ object Parser extends LazyLogging val numSyntaxErrors = parser.getNumberOfSyntaxErrors if (numSyntaxErrors > 0) throw new ParserException(s"${numSyntaxErrors} syntax error(s) detected") - val visitor = new Visitor(filename, useInfo) + val visitor = new Visitor(infoMode) val ast = time("Visitor") { visitor.visit(cst) } match { case c: Circuit => c case x => throw new ClassCastException("Error! AST not rooted with Circuit node!") @@ -65,6 +65,11 @@ object Parser extends LazyLogging ast } - def parse(lines: Seq[String]): Circuit = parse("<None>", lines.iterator) + def parse(lines: Seq[String]): Circuit = parse(lines.iterator) + sealed abstract class InfoMode + case object IgnoreInfo extends InfoMode + case object UseInfo extends InfoMode + case class GenInfo(filename: String) extends InfoMode + case class AppendInfo(filename: String) extends InfoMode } |
