Esempio n. 1
0
        static void Main(string[] args)
        {
            if (args.Length == 1)
            {
                debug = false;
            }

            switch (args.Length)
            {
            case 0:
                Console.WriteLine("Specify a file path.");
                break;

            default:
                FileStream fs;
                try
                {
                    fs = System.IO.File.OpenRead(args[0]);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                    break;
                }

                MiniPL          miniPL = MiniPL.GetInstance();
                Scanner         sc     = miniPL.Scanner;
                Parser          ps     = miniPL.Parser;
                ParseTree       ptree  = ps.Parse(sc.Tokenize(fs));
                MiniPL.Runnable prog   = miniPL.ProcessParseTree(ptree, ps.Errors, ps.IsValidParseTree);
                prog.Execute(Console.In, Console.Out);

                break;
            }
        }
Esempio n. 2
0
        private string RunWithInput(string program, string input)
        {
            MiniPL  miniPL = MiniPL.GetInstance();
            Scanner sc     = miniPL.Scanner;
            Parser  ps     = miniPL.Parser;

            ParseTree ptree = ps.Parse(sc.Tokenize(program));

            MiniPL.Runnable prog = miniPL.ProcessParseTree(ptree, ps.Errors, ps.IsValidParseTree);

            StringWriter writer = new StringWriter();
            StringReader reader = new StringReader(input);

            prog.Execute(reader, writer);

            return(writer.ToString());
        }