From 18868128e18d38b706e7df14e8e683e1a9739c17 Mon Sep 17 00:00:00 2001 From: Melodi <62381002+Melodi17@users.noreply.github.com> Date: Tue, 17 Mar 2026 20:49:22 +1000 Subject: chore: Initial commit --- Compiler/Program.cs | 73 ----------------------------------------------------- 1 file changed, 73 deletions(-) delete mode 100644 Compiler/Program.cs (limited to 'Compiler/Program.cs') diff --git a/Compiler/Program.cs b/Compiler/Program.cs deleted file mode 100644 index 7ecbf8e..0000000 --- a/Compiler/Program.cs +++ /dev/null @@ -1,73 +0,0 @@ -namespace Q1.Compiler; - -using System.Text; -using Antlr4.Runtime; -using CommandLine; -using visitors; -using Parser = CommandLine.Parser; - -public class Program -{ - static void Main(string[] args) - { - Parser commandLineParser = new(with => - { - with.CaseInsensitiveEnumValues = true; - }); - - commandLineParser - .ParseArguments(args) - .WithParsed(Program.Main); - } - - public static void Main(CompilerOptions options) - { - options.InputFile = options.InputFile; - - try - { - ICharStream inputStream = new PreprocessingCharStream(options.InputFile); - IEnumerable result = Program.Compile(options, inputStream); - - File.WriteAllLines(options.OutputFile, result); - if (options.Verbose) - { - Console.WriteLine(); - foreach (string line in result) - Console.WriteLine(line); - Console.WriteLine(); - } - - Console.WriteLine($"Compilation successful. ({result.Count(x=>x != string.Empty)} instructions)"); - } - catch (CompilerException ex) - { - Console.ForegroundColor = ConsoleColor.Red; - Console.Error.WriteLine($"Error: {ex.Message}"); - Console.ResetColor(); - Environment.Exit(1); - } - } - public static IEnumerable Compile(CompilerOptions options, ICharStream inputStream) - { - CGrammarLexer lexer = new(inputStream); - lexer.RemoveErrorListeners(); - - ITokenStream tokenStream = new BufferedTokenStream(lexer); - CGrammarParser parser = new(tokenStream); - parser.RemoveErrorListeners(); - - Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); - Encoding encoding = Encoding.GetEncoding(437); - CCompilerVisitor compiler = new(options.CommentCompilationMode, encoding); - IEnumerable result = compiler.Compile(parser.program()); - - return result; - } - - public static string Optimize(IEnumerable instructions) - { - Optimizer optimizer = new(instructions.ToList()); - return optimizer.Optimize(); - } -} \ No newline at end of file -- cgit v1.3.1