static void Main(string[] Args) { AssembledProgram Prog = new AssembledProgram(); foreach (var Arg in Args) { if (File.Exists(Arg)) { Assemble(Arg, Prog); } } if (File.Exists("system_calls.fishasm")) { Assemble("system_calls.fishasm", Prog); } Prog.RelocateAll(); File.WriteAllBytes("program.fishcode", Prog.Link()); }
static void Assemble(string SrcFile, AssembledProgram Prog) { Console.WriteLine("Assembling '{0}'", SrcFile); string[] Lines = File.ReadAllLines(SrcFile); for (int i = 0; i < Lines.Length; i++) { if (Debugger.IsAttached) { Prog.AssembleLine(Lines[i]); } else { try { Prog.AssembleLine(Lines[i]); } catch (Exception E) { Error(SrcFile, i + 1, E.Message); return; } } } }