Example #1
0
        private void InternalRun(string code)
        {
            // Convert code to tokens
            LexerResult <TokenType> result = lexer.Tokenize(code);

            // Error out if lexer fails
            if (result.IsError)
            {
                WriteLineColor($"Parsing Error: {result.Error}", Red);
                return;
            }

            // Get tokens
            TokenList tokens = result.Tokens;

            // Build tree
            InterpreterState state = new InterpreterState();

            InterpreterState.Init(ref state);
            RootNode root = BuildTree <RootNode>(new Queue <Token <TokenType> >(tokens), ref state);

#if DEBUG
            root.Dump();
#endif

            // Run
            root.Run(ref state);
        }