aboutsummaryrefslogtreecommitdiff
path: root/src/main/stanza/firrtl-test-main.stanza
diff options
context:
space:
mode:
authorazidar2015-07-30 18:26:40 -0700
committerazidar2015-07-30 18:26:40 -0700
commit2440b824c68e4604d174e92e26af2c3eca1ec171 (patch)
treeda4417c923631571cb4247f351f17bfb7739f13d /src/main/stanza/firrtl-test-main.stanza
parent30d3b50982a40eefeb5a2abcc8d85da1af88d84f (diff)
Added module name to error messages.
Diffstat (limited to 'src/main/stanza/firrtl-test-main.stanza')
-rw-r--r--src/main/stanza/firrtl-test-main.stanza32
1 files changed, 27 insertions, 5 deletions
diff --git a/src/main/stanza/firrtl-test-main.stanza b/src/main/stanza/firrtl-test-main.stanza
index 315033c7..e5aad984 100644
--- a/src/main/stanza/firrtl-test-main.stanza
+++ b/src/main/stanza/firrtl-test-main.stanza
@@ -61,6 +61,11 @@ defn main () :
val pass-args = Vector<String>()
var printvars = ""
var last-s = ""
+
+ val prev-out = CURRENT-OUTPUT-STREAM
+ CURRENT-OUTPUT-STREAM = STANDARD-ERROR
+
+
for (s in args, i in 0 to false) do :
if s == "-i" : last-s = s
else if s == "-o" : last-s = s
@@ -78,10 +83,25 @@ defn main () :
if last-s == "-s" : add(pass-args,args[i])
if last-s == "-m" : add(firms,args[i])
+ var with-output =
+ fn (f:()->False) :
+ val prev-stream = CURRENT-OUTPUT-STREAM
+ CURRENT-OUTPUT-STREAM = STANDARD-OUTPUT
+ f()
+ CURRENT-OUTPUT-STREAM = prev-stream
+
if input == false :
error("No input file provided. Use -i flag.")
- if output == false :
- error("No output file provided. Use -o flag.")
+ if output != false and output != "-":
+ with-output =
+ fn (f:()->False) :
+ val prev-stream = CURRENT-OUTPUT-STREAM
+ val out-stream = FileOutputStream(output as String)
+ CURRENT-OUTPUT-STREAM = out-stream
+ f()
+ CURRENT-OUTPUT-STREAM = prev-stream
+ close(out-stream)
+
if compiler == false and length(pass-names) == 0 :
error("Must specify a compiler. Use -X flag.")
@@ -109,10 +129,12 @@ defn main () :
run-passes(circuit*,get-passes(to-list(pass-names)))
else :
switch {_ == compiler} :
- "flo" : run-passes(circuit*,StandardFlo(output as String))
- "verilog" : run-passes(circuit*,StandardVerilog(output as String))
- "verilute" : run-passes(circuit*,InstrumentedVerilog(output as String,to-list $ pass-args))
+ "flo" : run-passes(circuit*,StandardFlo(with-output))
+ "verilog" : run-passes(circuit*,StandardVerilog(with-output))
+ "verilute" : run-passes(circuit*,InstrumentedVerilog(with-output,to-list $ pass-args))
else : error("Invalid compiler flag")
+ CURRENT-OUTPUT-STREAM = prev-out
+
main()