public static string CompileProgram(string fname, bool is_dynamic) { try { _mokkosu = new Mokkosu.Main.Mokkosu(); _mokkosu.AddSourceFile(fname); var name = Path.GetFileNameWithoutExtension(fname); _mokkosu.Compile(fname, is_dynamic); return(_mokkosu.GetVersionString() + "\n" + _mokkosu.GetOutput()); } catch (Mokkosu.Utils.MError e) { if (_mokkosu == null) { return("エラー:\n" + e.Message); } else { return(_mokkosu.GetVersionString() + "\n" + _mokkosu.GetOutput() + "エラー:\n" + e.Message); } } catch (Exception e) { return("致命的なエラー:\n" + e.ToString()); } finally { if (_mokkosu != null) { _mokkosu.Close(); } } }
static int Main(string[] args) { var mokkosu = new Mokkosu.Main.Mokkosu(); try { mokkosu.OutputVersion(); Console.WriteLine(); foreach (var fname in args) { mokkosu.AddSourceFile(fname); } if (args.Length != 0) { var name = Path.GetFileNameWithoutExtension(args.Last()); mokkosu.Compile(name, false); Console.WriteLine(mokkosu.GetOutput()); mokkosu.SaveExe(name + ".exe"); Console.WriteLine("コンパイルに成功しました。\n"); } return(0); } catch (Mokkosu.Utils.MError e) { Console.WriteLine(mokkosu.GetOutput()); Console.WriteLine(e.Message); return(1); } catch (Exception e) { Console.WriteLine("致命的なエラー:"); Console.WriteLine(e.ToString()); return(2); } }
public static string GetLogoString() { _mokkosu = new Mokkosu.Main.Mokkosu(); return(_mokkosu.GetVersionString()); }