diff options
Diffstat (limited to 'Compiler/Program.cs')
| -rw-r--r-- | Compiler/Program.cs | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/Compiler/Program.cs b/Compiler/Program.cs index 9259205..3a277a1 100644 --- a/Compiler/Program.cs +++ b/Compiler/Program.cs @@ -1,10 +1,12 @@ namespace Q1.Compiler; +using System.Text; using Antlr4.Runtime; using CommandLine; +using visitors; using Parser = CommandLine.Parser; -class Program +public class Program { static void Main(string[] args) { @@ -12,15 +14,15 @@ class Program { with.CaseInsensitiveEnumValues = true; }); - - commandLineParser.ParseArguments<CompilerOptions>(args) + + commandLineParser + .ParseArguments<CompilerOptions>(args) .WithParsed(Program.Main); } - static void Main(CompilerOptions options) + public static void Main(CompilerOptions options) { - Environment.CurrentDirectory = Path.GetDirectoryName(options.InputFile) ?? Environment.CurrentDirectory; - options.InputFile = Path.GetFileName(options.InputFile); + options.InputFile = options.InputFile; try { @@ -32,10 +34,14 @@ class Program CGrammarParser parser = new(tokenStream); parser.RemoveErrorListeners(); - CCompilerVisitor compiler = new(options.CommentCompilationMode); + Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); + Encoding encoding = Encoding.GetEncoding(437); + CCompilerVisitor compiler = new(options.CommentCompilationMode, encoding); IEnumerable<string> result = compiler.Compile(parser.program()); File.WriteAllLines(options.OutputFile, result); + + Console.WriteLine("Compilation successful."); } catch (CompilerException ex) { |
