Ejemplo n.º 1
0
        public StoreActionTests()
        {
            // https://xunit.net/docs/shared-context

            _interpreter = InterpreterFactory.CreateWithDefaults();
            _interpreter.AddCoreLibrary();
            _storeWord = _interpreter.GetWord("!");
        }
Ejemplo n.º 2
0
 public CommaActionTests()
 {
     _interpreter = InterpreterFactory.CreateWithDefaults();
     _interpreter.AddCoreLibrary();
     _commaWord = _interpreter.GetWord(",");
 }
Ejemplo n.º 3
0
 public WithinWordTests()
 {
     _interpreter = InterpreterFactory.CreateWithDefaults();
     _interpreter.AddCoreExtLibrary();
     _withinWord = _interpreter.GetWord("WITHIN");
 }
Ejemplo n.º 4
0
 public PlusStoreActionTests()
 {
     _interpreter = InterpreterFactory.CreateWithDefaults();
     _interpreter.AddCoreLibrary();
     _plusStoreWord = _interpreter.GetWord("+!");
 }
Ejemplo n.º 5
0
 public SlashModWordTests()
 {
     _interpreter = InterpreterFactory.CreateWithDefaults();
     _interpreter.AddCoreLibrary();
     _slashModWord = _interpreter.GetWord("/MOD");
 }
Ejemplo n.º 6
0
        static void Main(string[] args)
        {
            var interpreter = InterpreterFactory.CreateWithDefaults();

            interpreter.Output = new ConsoleWriter();
            interpreter
            .AddCoreLibrary()
            .AddCoreExtLibrary()
            .AddExceptionLibrary()
            .AddDoubleLibrary()
            .AddDoubleExtLibrary()
            .AddFloatingLibrary()
            .AddFloatingExtLibrary()
            .AddObjectLibrary()
            .AddStringLibrary()
            .AddToolsLibrary()
            .AddToolsExtLibrary();

            interpreter.AddPrimitiveWord("TRACE", () =>
            {
                interpreter.StackExpect(1);

                _tracing = interpreter.Pop() != 0;

                return(1);
            });

            interpreter.ExecutingWord += Interpreter_ExecutingWord;

            while (true)
            {
                try
                {
                    // Show a prompt.
                    Console.Write(interpreter.IsCompiling ? ":> " : "-> ");

                    // Interpret.
                    interpreter.Evaluate(Console.ReadLine());
                }
                catch (Exception ex)
                {
                    Console.WriteLine();
                    Console.WriteLine(ex.Message);
                }

                // TODO: Breaking state.

                if (interpreter.InterpreterState == InterpreterStateCode.Terminating)
                {
                    Console.WriteLine();
                    Console.WriteLine("Bye!");

                    break;
                }
            }

            //WordsListTest();


            //Console.WriteLine(Marshal.SizeOf(typeof(EfrtValue)));

            //var ds = new DataStack();

            //ds.Push(123);
            //Console.WriteLine(ds.Pop().Int);

            //ds.Push((short)11, 12);
            //var s = ds.Pop();
            //Console.WriteLine(s.Short + " " + s.Short2);
            //s.Short2 = 33;
            //Console.WriteLine(s.Short + " " + s.Short2);
        }
Ejemplo n.º 7
0
 public InterpreterHeapExtensionsTests()
 {
     _interpreter = InterpreterFactory.CreateWithDefaults();
 }