public PolishResult Run(OuterLexemes lexemes)
        {
            _i            = 3;  // skip program <program name> & delimiter
            _outerLexemes = lexemes;
            _labelNumber  = 0;
            _labelAddresses.Clear();
            ReversePolishNotation.Clear();

            ParseStatementsList();

            return(new PolishResult
            {
                ReversePolishNotation = ReversePolishNotation,
                Trace = Trace,
                LabelAddresses = _labelAddresses
            });
        }