/// <summary> /// Reads the Mini-PL source code and executes it. /// </summary> /// <param name="args">File name or path/fileName</param> public static void Main(string[] args) { if ( args.Length < 1 ) { Console.WriteLine("You must give a file name or a path/fileName as a parameter"); return; } if ( args.Length > 1 ) { Console.WriteLine("Too many parameters"); return; } var fileReader = new FileReader(FileExtension); try { var lines = fileReader.ReadFile(args[0]); var scanner = new Scanner(); var tokens = scanner.Tokenize(lines); var parser = new Parser(); var tree = parser.Parse(tokens); tree.Execute(); } catch(AssertFailedException) { // Code had an assert statement, which failed } catch (Exception e) { Console.WriteLine(e.Message); Console.ReadKey(); } }