summaryrefslogtreecommitdiff
path: root/Compiler/Program.cs
diff options
context:
space:
mode:
authorMelodi <62381002+Melodi17@users.noreply.github.com>2025-08-29 07:33:48 +1000
committerMelodi <62381002+Melodi17@users.noreply.github.com>2025-08-29 07:33:48 +1000
commit40473797a117e6791e94140b0f01d034bce8bbb1 (patch)
tree553b84b0c2491343523bc7ebf91dda54080991aa /Compiler/Program.cs
parent5d012f16b2a0200087afe9dffc906046d258b3b8 (diff)
some cleanup
Diffstat (limited to 'Compiler/Program.cs')
-rw-r--r--Compiler/Program.cs36
1 files changed, 12 insertions, 24 deletions
diff --git a/Compiler/Program.cs b/Compiler/Program.cs
index 09f7127..cde49a5 100644
--- a/Compiler/Program.cs
+++ b/Compiler/Program.cs
@@ -2,7 +2,6 @@
using System.Text;
using Antlr4.Runtime;
-using Antlr4.Runtime.Misc;
using CommandLine;
using visitors;
using Parser = CommandLine.Parser;
@@ -41,33 +40,22 @@ public class Program
IEnumerable<string> result = compiler.Compile(parser.program());
File.WriteAllLines(options.OutputFile, result);
+ if (options.Verbose)
+ {
+ Console.WriteLine();
+ foreach (string line in result)
+ Console.WriteLine(line);
+ Console.WriteLine();
+ }
- Console.WriteLine("Compilation successful.");
+ Console.WriteLine($"Compilation successful. ({result.Count(x=>x != string.Empty)} instructions)");
}
catch (CompilerException ex)
{
- Console.WriteLine($"{ex.Message}");
+ Console.ForegroundColor = ConsoleColor.Red;
+ Console.Error.WriteLine($"Error: {ex.Message}");
+ Console.ResetColor();
+ Environment.Exit(1);
}
}
-}
-
-public class PreprocessingCharStream : ICharStream
-{
- private readonly AntlrInputStream inner;
-
- public PreprocessingCharStream(string filePath)
- {
- string preprocessed = Preprocessor.Process(filePath);
- inner = new AntlrInputStream(preprocessed);
- }
-
- public int Index => inner.Index;
- public int Size => inner.Size;
- public string SourceName => inner.SourceName;
- public void Consume() => inner.Consume();
- public int LA(int i) => inner.LA(i);
- public int Mark() => inner.Mark();
- public void Release(int marker) => inner.Release(marker);
- public void Seek(int index) => inner.Seek(index);
- public string GetText(Interval interval) => inner.GetText(interval);
} \ No newline at end of file