public void ProcessBacktrace()
        {
            Console.WriteLine(@"ProcessBacktrace");

            var stack = new List <BacktraceModel>();

            while (true)
            {
                Scanner.yylex();
                var trace = ((Scanner)Scanner).yytext;

                Scanner.yylex();
                Scanner.yylex();
                var file = ((Scanner)Scanner).yytext;

                if (string.IsNullOrWhiteSpace(trace) && string.IsNullOrWhiteSpace(file))
                {
                    break;
                }

                stack.Add(BuildBacktraceModel(trace, file));

                Scanner.yylex();
                if (trace.StartsWith("#0"))
                {
                    break;
                }
            }

            BacktraceProcessed?.Invoke(stack);
        }
        public void ProcessBacktraceLine()
        {
            Console.WriteLine(@"ProcessBacktraceLine");

            var tc = ((TelnetScanner)Scanner);

            var trace = tc.GetToken(3);
            var file  = tc.GetToken(1);

            var model = BuildBacktraceModel(trace, file);

            _stack.Add(model);

            if (trace.StartsWith("#0"))
            {
                BacktraceProcessed?.Invoke(_stack.ToList());
                _stack.Clear();
            }
        }