/// <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();
            }
        }
        protected void SetUp()
        {
            _fileName = "test";
            _fileExtension = ".txt";
            _file = _fileName + _fileExtension;
            _filePath = System.IO.Directory.GetCurrentDirectory() + "\\";
            _fileReader = new FileReader(_fileExtension);
            const string lines = "multiple lines1\n" +
                                 "multiple lines2\n" +
                                 "multiple lines3";

            System.IO.File.WriteAllText(_filePath + _file, lines);
        }