public ExpressionEvaluator(Interpreter _interpreter)
        {
            interpreter            = _interpreter;
            interpreterEnvironment = _interpreter.VariablesEnvironment;
            tokensProvider         = _interpreter.TokensProvider;

            valueTokens     = new Stack <ValueToken>();
            operatorTokens  = new Stack <Token>();
            operatorActions = new Stack <Func <Token, ValueToken> >();
            arrayCount      = new Stack <int>();
        }
Beispiel #2
0
        public Interpreter(IConsole console = null)
        {
            TokensProvider = new TokensProvider();
            TokensProvider.RegisterTokens();
            tokenizer            = new Tokenizer(TokensProvider);
            Lines                = new SortedList <int, Line>();
            VariablesEnvironment = new InterpreterVariables(this);
            ExpressionEvaluator  = new ExpressionEvaluator(this);

            CurrentStatementMarker = new StatementMarker(Lines);
            CurrentImmediateModeStatementMarker = null;

            NextStatementMarker = null;
            DataStatementMarker = new StatementMarker(Lines);
            DataTokenMarker     = null;

            GosubMarkers = new Stack <StatementMarker>();
            ForNextLoops = new Stack <ForNextLoopState>();

            ContinueRunning = false;
            InterpreterMode = InterpreterMode.Immmediate;

            Console = console;
        }