Esempio n. 1
0
        private void ProcessEndIf(Lexem lastStack)
        {
            int iterator = labels.Pop();

            int position = LabelFinder.PositionOpenLabel(poliz, "m" + (iterator + 1).ToString());

            if (position == -1)             // without "else"
            {
                this.poliz.Add(new Lexem(lastStack.LineNumber, "m" + (iterator).ToString(),
                                         PolizOperarionsList.kLexemKeyLabelEnd));
            }
            else             // with "else"
            {
                this.poliz.Add(new Lexem(lastStack.LineNumber, "m" + (iterator + 1).ToString(),
                                         PolizOperarionsList.kLexemKeyLabelEnd));
            }
        }