summaryrefslogtreecommitdiff
path: root/Compiler/Program.cs
diff options
context:
space:
mode:
authorMelodi <62381002+Melodi17@users.noreply.github.com>2025-08-27 21:22:55 +1000
committerMelodi <62381002+Melodi17@users.noreply.github.com>2025-08-27 21:22:55 +1000
commit634681ce2bb36cd686943102a0f071cd6a09049f (patch)
tree6710047aa231d50f57114bdd54a27c559fb20a73 /Compiler/Program.cs
parent94ddc02e03ab942d0c881e29053e8df3d2940c30 (diff)
fixed bugs and revolutionized the universe
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)
{