diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/main/stanza/firrtl-main.stanza | 2 | ||||
| -rw-r--r-- | src/main/stanza/firrtl-test-main.stanza | 33 | ||||
| -rw-r--r-- | src/main/stanza/passes.stanza | 10 |
3 files changed, 39 insertions, 6 deletions
diff --git a/src/main/stanza/firrtl-main.stanza b/src/main/stanza/firrtl-main.stanza index 1f87b1da..4c7ecaab 100644 --- a/src/main/stanza/firrtl-main.stanza +++ b/src/main/stanza/firrtl-main.stanza @@ -9,7 +9,7 @@ include("ir-parser.stanza") include("passes.stanza") include("widthsolver.stanza") -defpackage chmain : +defpackage firrtl-main : import core import verse import firrtl.parser diff --git a/src/main/stanza/firrtl-test-main.stanza b/src/main/stanza/firrtl-test-main.stanza new file mode 100644 index 00000000..8904bd27 --- /dev/null +++ b/src/main/stanza/firrtl-test-main.stanza @@ -0,0 +1,33 @@ +include<"core/stringeater.stanza"> +include<"compiler/lexer.stanza"> +include<"compiler/parser.stanza"> +include<"compiler/rdparser2.stanza"> +include<"compiler/macro-utils.stanza"> +include("firrtl-ir.stanza") +include("ir-utils.stanza") +include("ir-parser.stanza") +include("passes.stanza") +include("widthsolver.stanza") + +defpackage firrtl-main : + import core + import verse + import firrtl.parser + import firrtl.passes + import stanza.lexer + import stanza.parser + import firrtl.ir-utils + +public var PRINT-TYPES : True|False = false + +defn main () : + val arg = commandline-arguments() + val args = split(arg,' ') + val lexed = lex-file(args[1]) + val c = parse-firrtl(lexed) + ;println(c) + run-passes(c,to-list(args[2])) + +main() + + diff --git a/src/main/stanza/passes.stanza b/src/main/stanza/passes.stanza index f1c9b248..4a5634d0 100644 --- a/src/main/stanza/passes.stanza +++ b/src/main/stanza/passes.stanza @@ -4,6 +4,7 @@ defpackage firrtl.passes : import firrtl.ir2 import firrtl.ir-utils import widthsolver + import firrtl-main ;============== EXCEPTIONS ================================= defclass PassException <: Exception @@ -62,11 +63,10 @@ defmethod print (o:OutputStream, k:Kind) : (k:StructuralMemKind) : "smem:" defmethod print (o:OutputStream, e:WRef) : - match(type(e)) : - (t:UnknownType) : - print-all(o,[kind(e) name(e)]) - (t) : - print-all(o,[kind(e) name(e) ":" type(e)]) + if PRINT-TYPES : + print-all(o,[kind(e) name(e) ":" type(e)]) + else : + print-all(o,[kind(e) name(e)]) defmethod print (o:OutputStream, e:WField) : print-all(o,[exp(e) "." name(e)]) |
