diff options
| author | Schuyler Eldridge | 2019-04-22 21:20:08 -0400 |
|---|---|---|
| committer | Schuyler Eldridge | 2019-04-25 16:24:15 -0400 |
| commit | ef8f06f23b9ee6cf86de2450752dfd0fcd32da80 (patch) | |
| tree | 79e2e8c5753903ca6d14e9b952c26a07442bd980 /src/main/scala/firrtl/options/Shell.scala | |
| parent | 47fe781c4ace38dff7f31da7e78f772e131d689e (diff) | |
Add ShellOption, DeletedWrapper
Abstracts away option writing such that users no longer have to
understand scopt semantics. This adds a ShellOption class and a
HasShellOptions trait for something which provides one or more
ShellOptions. This refactors the FIRRTL codebase to use this style of
option specification.
Adds and uses DeletedWrapper to automatically generate
DeletedAnnotations.
Signed-off-by: Schuyler Eldridge <schuyler.eldridge@ibm.com>
Diffstat (limited to 'src/main/scala/firrtl/options/Shell.scala')
| -rw-r--r-- | src/main/scala/firrtl/options/Shell.scala | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/main/scala/firrtl/options/Shell.scala b/src/main/scala/firrtl/options/Shell.scala index dbc403a5..28c0554a 100644 --- a/src/main/scala/firrtl/options/Shell.scala +++ b/src/main/scala/firrtl/options/Shell.scala @@ -16,10 +16,10 @@ import java.util.ServiceLoader class Shell(val applicationName: String) { /** Command line argument parser (OptionParser) with modifications */ - final val parser = new OptionParser[AnnotationSeq](applicationName) with DuplicateHandling with ExceptOnError + protected val parser = new OptionParser[AnnotationSeq](applicationName) with DuplicateHandling with ExceptOnError /** Contains all discovered [[RegisteredLibrary]] */ - lazy val registeredLibraries: Seq[RegisteredLibrary] = { + final lazy val registeredLibraries: Seq[RegisteredLibrary] = { val libraries = scala.collection.mutable.ArrayBuffer[RegisteredLibrary]() val iter = ServiceLoader.load(classOf[RegisteredLibrary]).iterator() while (iter.hasNext) { @@ -33,7 +33,7 @@ class Shell(val applicationName: String) { } /** Contains all discovered [[RegisteredTransform]] */ - lazy val registeredTransforms: Seq[RegisteredTransform] = { + final lazy val registeredTransforms: Seq[RegisteredTransform] = { val transforms = scala.collection.mutable.ArrayBuffer[RegisteredTransform]() val iter = ServiceLoader.load(classOf[RegisteredTransform]).iterator() if (iter.hasNext) { parser.note("FIRRTL Transform Options") } @@ -61,11 +61,11 @@ class Shell(val applicationName: String) { } parser.note("Shell Options") + ProgramArgsAnnotation.addOptions(parser) Seq( TargetDirAnnotation, - ProgramArgsAnnotation, InputAnnotationFileAnnotation, OutputAnnotationFileAnnotation ) - .map(_.addOptions(parser)) + .foreach(_.addOptions(parser)) parser.opt[Unit]("show-registrations") .action{ (_, c) => @@ -85,5 +85,5 @@ class Shell(val applicationName: String) { ClassLogLevelAnnotation, LogFileAnnotation, LogClassNamesAnnotation ) - .map(_.addOptions(parser)) + .foreach(_.addOptions(parser)) } |
