| import init.IO | |
| import init.Lean.Ir.lirc | |
| open Lean.Ir IO | |
| def main : IO Unit := | |
| do args ← IO.cmdlineArgs; | |
| unless (args.length = 1) $ | |
| IO.fail "Error: incorrect number of arguments, expected `lirc file.Lean`"; | |
| let fname := args.head; | |
| input ← Fs.readFile fname; | |
| match lirc input {mainProc := some "main"} with | |
| | Except.ok r := Fs.writeFile (fname ++ ".cpp") r | |
| | Except.error e := IO.fail (toString e) |