diff --git a/Main.lean b/RunBenchmarks.lean similarity index 100% rename from Main.lean rename to RunBenchmarks.lean diff --git a/VeirOpt.lean b/VeirOpt.lean new file mode 100644 index 0000000..e75b1dd --- /dev/null +++ b/VeirOpt.lean @@ -0,0 +1,23 @@ +import Veir.Parser.MlirParser +import Veir.Printer +import Veir.IR.Basic + +open Veir.Parser +open Veir + +def main (args : List String) : IO Unit := do + match args with + | [filename] => + let fileContent ← IO.FS.readBinFile filename + let some (ctx, _) := IRContext.create | IO.println "Failed to create IR context"; return + match ParserState.fromInput fileContent with + | .ok parser => + match (parseOp none).run (MlirParserState.fromContext ctx) parser with + | .ok (op, state, _) => + IO.println "Parsed Operation:" + Veir.Printer.printOperation state.ctx op + | .error errMsg => IO.eprintln s!"Error parsing operation: {errMsg}" + | .error errMsg => IO.eprintln s!"Error reading file: {errMsg}"; return + | _ => + IO.eprintln "Wrong number of arguments." + IO.eprintln "Usage: veir_parser " diff --git a/lakefile.toml b/lakefile.toml index 1235804..2e47d5c 100644 --- a/lakefile.toml +++ b/lakefile.toml @@ -1,6 +1,6 @@ name = "VeIR" version = "0.1.0" -defaultTargets = ["veir-opt"] +defaultTargets = ["veir-opt", "run-benchmarks", "Veir"] testRunner = "Test" [leanOptions] @@ -16,4 +16,8 @@ root = "Test" [[lean_exe]] name = "veir-opt" -root = "Main" +root = "VeirOpt" + +[[lean_exe]] +name = "run-benchmarks" +root = "RunBenchmarks"