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 defn set-printvars! (p:List) : if contains(p,'t') : PRINT-TYPES = true if contains(p,'k') : PRINT-KINDS = true if contains(p,'w') : PRINT-WIDTHS = true if contains(p,'g') : PRINT-GENDERS = true if contains(p,'c') : PRINT-CIRCUITS = true defn main () : val arg = commandline-arguments() val args = split(arg,' ') val lexed = lex-file(args[1]) val c = parse-firrtl(lexed) if length(args) >= 4 : set-printvars!(to-list(args[3])) run-passes(c,to-list(args[2])) main()