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)
