diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/main/stanza/firrtl-main.stanza | 10 | ||||
| -rw-r--r-- | src/main/stanza/passes.stanza | 13 |
2 files changed, 14 insertions, 9 deletions
diff --git a/src/main/stanza/firrtl-main.stanza b/src/main/stanza/firrtl-main.stanza index 92bb066f..fe9b49fa 100644 --- a/src/main/stanza/firrtl-main.stanza +++ b/src/main/stanza/firrtl-main.stanza @@ -21,10 +21,16 @@ defpackage firrtl-main : defn main () : val arg = commandline-arguments() val args = split(arg,' ') - val lexed = lex-file(args[1]) + val pathname = args[1] + val lexed = lex-file(pathname) val c = parse-firrtl(lexed) ;println(c) - run-passes(c,to-list(args[2])) + val dir = "." ;; could have dir arg + val name = last(split(pathname,'/')) + val basename = split(name,'.')[0] + val outname = string-join([dir "/" basename ".flo"]) + val c* = run-passes(c, to-list(args[2]), outname) + ;; run-passes(c,to-list(args[2])) main() diff --git a/src/main/stanza/passes.stanza b/src/main/stanza/passes.stanza index f05f9482..5c4f7ccf 100644 --- a/src/main/stanza/passes.stanza +++ b/src/main/stanza/passes.stanza @@ -1954,6 +1954,12 @@ public defn emit-flo (file:String, c:Circuit) : false c +public defn emit-flo (pathname:String, c:Circuit) : + val out = FileOutputStream(pathname) + emit-flo(out, c) + close(out) + c + ;============= DRIVER ====================================== public defn run-passes (c: Circuit, p: List<Char>,file:String) : var c*:Circuit = c @@ -1986,10 +1992,3 @@ public defn run-passes (c: Circuit, p: List<Char>,file:String) : if contains(p,'X') or contains(p,'F') : do-stage("To Flo", emit-flo{file,_}) println("Done!") - - - ;; println("Shim for Jonathan's Passes") - ;; c* = shim(c*) - ;; println("Inline Modules") - ;; c* = inline-modules(c*) - ; c* |
