Exemplo n.º 1
0
        private void Context_DebuggerCallback(Context sender, DebuggerCallbackEventArgs e)
        {
            Console.Clear();
            for (var i = 0; i < _code.Length; i++)
            {
                if (i >= e.Statement.Position && i <= e.Statement.EndPosition)
                {
                    Console.BackgroundColor = ConsoleColor.Yellow;
                }
                else
                {
                    Console.BackgroundColor = ConsoleColor.Black;
                }

                Console.Write(_code[i]);
            }

            Console.WriteLine();

            Console.WriteLine("Variables:");
            Console.WriteLine(string.Join(Environment.NewLine, new ContextDebuggerProxy(sender).Variables.Select(x => x.Key + ": " + x.Value)));

            Console.WriteLine();
            Console.WriteLine("Output:");

            while (Console.ReadKey().Key != ConsoleKey.Spacebar)
            {
                ;
            }
        }
Exemplo n.º 2
0
    private void Debugger(Context sender, DebuggerCallbackEventArgs e)
    {
        //Debug.Log(e.Statement);
        if (recentCode.Count > debuggerLength)
        {
            recentCode.Dequeue();
        }
        CodeInfo info = new CodeInfo();

        info.code          = e.Statement.ToString();
        info.startPosition = e.Statement.Position;
        info.endPosition   = e.Statement.EndPosition;
        recentCode.Enqueue(info);
    }
Exemplo n.º 3
0
        private void Context_DebuggerCallback(Context sender, DebuggerCallbackEventArgs e)
        {
            Console.Clear();
            for (var i = 0; i < _code.Length; i++)
            {
                if (i >= e.Statement.Position && i <= e.Statement.EndPosition)
                {
                    Console.BackgroundColor = ConsoleColor.Yellow;
                }
                else
                {
                    Console.BackgroundColor = ConsoleColor.Black;
                }

                Console.Write(_code[i]);
            }

            Console.WriteLine();

            var debugger = new ContextDebuggerProxy(sender);

            if (debugger.CurrFunction.Name != "")
            {
                Console.WriteLine("Current Function:" + debugger.CurrFunction.Name);
                var ps   = debugger.CurrFunction.ParamNames;
                var args = debugger.CurrFunction.RunArguments;

                Console.WriteLine("Current Function ParamNames:");
                var index = 0;
                foreach (var item in args)
                {
                    var name = "";
                    if (ps.Count > index)
                    {
                        name = ps[index];
                    }
                    Console.WriteLine($"[{index}] {name}: {item.Value.Value} ({item.Value.ValueType})");
                    index++;
                }
                while (index < ps.Count)
                {
                    var name = ps[index];
                    Console.WriteLine($"[{index}] {name}:  (Undefined) ");
                    index++;
                }
                Console.WriteLine("Variables:");
                var variables = debugger.LocalVariables;
                foreach (var item in variables)
                {
                    Console.WriteLine($"{item.Name}: {item.Value} ({item.ValueType})");
                }
            }
            else
            {
                Console.WriteLine("Variables:");
                var variables = debugger.Variables;
                foreach (var item in variables)
                {
                    Console.WriteLine($"{item.Key}: {item.Value.Value} ({item.Value.ValueType})");
                }
            }

            Console.WriteLine();
            Console.WriteLine("Output:");

            while (Console.ReadKey().Key != ConsoleKey.Spacebar)
            {
                ;
            }
        }