aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/firrtl/Driver.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/scala/firrtl/Driver.scala')
-rw-r--r--src/main/scala/firrtl/Driver.scala16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/main/scala/firrtl/Driver.scala b/src/main/scala/firrtl/Driver.scala
index 97d0ce4e..2315ad55 100644
--- a/src/main/scala/firrtl/Driver.scala
+++ b/src/main/scala/firrtl/Driver.scala
@@ -148,6 +148,16 @@ object Driver {
LegacyAnnotation.convertLegacyAnnos(annos)
}
+ private sealed trait FileExtension
+ private case object FirrtlFile extends FileExtension
+ private case object ProtoBufFile extends FileExtension
+
+ private def getFileExtension(filename: String): FileExtension =
+ filename.drop(filename.lastIndexOf('.')) match {
+ case ".pb" => ProtoBufFile
+ case _ => FirrtlFile // Default to FIRRTL File
+ }
+
// Useful for handling erros in the options
case class OptionsException(msg: String) extends Exception(msg)
@@ -183,7 +193,11 @@ object Driver {
}
val inputFileName = firrtlConfig.getInputFileName(optionsManager)
try {
- Parser.parseFile(inputFileName, firrtlConfig.infoMode)
+ // TODO What does InfoMode mean to ProtoBuf?
+ getFileExtension(inputFileName) match {
+ case ProtoBufFile => proto.FromProto.fromFile(inputFileName)
+ case FirrtlFile => Parser.parseFile(inputFileName, firrtlConfig.infoMode)
+ }
}
catch {
case _: FileNotFoundException =>