summaryrefslogtreecommitdiff
path: root/Compiler/Program.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Compiler/Program.cs')
-rw-r--r--Compiler/Program.cs20
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)
{