示例#1
0
        static void Main(string[] args)
        {
            var interpreter = new GramInterpreter();

            interpreter.Execute("local import \"" + preludePath + "\";");

            while (true)
            {
                Console.Write("$ ");
                var    input = new StreamReader(Console.OpenStandardInput());
                string text  = input.ReadLine();
                while (text.LastOrDefault() != ';')
                {
                    Console.Write("...\t");
                    text += input.ReadLine();
                }
                Console.WriteLine("| " + interpreter.GetParseTree(text));
                Console.Write("> ");
                try {
                    IValue result = interpreter.Execute(text);
                    if (result.Type.RawTypeOf != ValueType.ANY)
                    {
                        Console.WriteLine(result + ": " + result.Type);
                    }
                    Console.WriteLine();
                } catch (GramException ex) {
                    Console.WriteLine(ex.GetType().FullName + ": " + ex.Message);
                } catch (Exception ex) {
                    Console.WriteLine("Exception at runtime: " + ex.ToString());
                }
            }
        }