Esempio n. 1
0
        public static void REPL()
        {
            init();
            while (true)
            {
                Console.Write(">> ");
                KObject datum = readDatum();
                if (datum == null)
                {
                    continue;
                }
                if (datum is KPair)
                {
                    KPair p = datum as KPair;
                    if (p.Car is KSymbol && ((KSymbol)p.Car).Value.Equals("exit") && p.Cdr is KNil)
                    {
                        break;
                    }
                }
                try {
                    datum = Evaluator.Eval(datum, env);
                    Console.WriteLine("\n" + datum.Write() + "\n");
                } catch (RuntimeException e) {
                    Console.WriteLine("\nRuntimeException: " + e.Message);
                }

                /*catch (Exception e)
                 * {
                 *  Console.WriteLine("Something went really wrong: " + e.Message);
                 * }*/
            }
        }
Esempio n. 2
0
        public override RecursionResult <KObject> Combine(KObject args, KEnvironment env, Continuation <KObject> cont)
        {
            var res = CheckParameter(args, 1, "write");

            if (res != null)
            {
                return(CPS.Error(res, cont));
            }
            KObject datum = First(args);

            Console.WriteLine(datum.Write());
            return(Return(new KInert(), cont));
        }