using System; using System.Collections.Generic; using System.IO; namespace luaaaaah; public class Program { public static void Main(string[] args) { switch(args[0]) { case "test": { Test(args[1]); } break; case "run": { Run(args[1], true); } break; } } public static void Run(string file, bool debug) { Token[] tokens = new Tokenizer().Tokenize(File.ReadAllText(file)); if(debug) { foreach(Token token in tokens) { Console.WriteLine($"{token.region}: {token.type} {{{token.data}}}"); } } } static readonly Dictionary failedFiles = []; public static void Test(string directory) { TestRecursive(directory); Console.WriteLine("===FAILED==="); foreach(KeyValuePair entry in failedFiles) { Console.WriteLine($"{entry.Key}: {entry.Value}"); } } public static void TestRecursive(string directory) { foreach(string file in Directory.EnumerateFiles(directory)) { if(file.EndsWith(".lua")) { try { Run(file, false); } catch(Exception e) { Console.WriteLine($"{file}: {e}"); failedFiles.Add(file, e.ToString()); } } } foreach(string dir in Directory.EnumerateDirectories(directory)) { TestRecursive(dir); } } }