System.Text.RegularExpressions.RegexCompiler.GenerateForwardSection C# (CSharp) Method

GenerateForwardSection() private method

private GenerateForwardSection ( ) : void
return void
        internal void GenerateForwardSection() {
            int codepos;

            _labels = new Label[_codes.Length];
            _goto   = new int[_codes.Length];

            // initialize

            for (codepos = 0; codepos < _codes.Length; codepos += RegexCode.OpcodeSize(_codes[codepos])) {
                _goto[codepos]   = -1;
                _labels[codepos] = _ilg.DefineLabel();
            }

            _uniquenote   = new int[uniquecount];
            for (int i = 0; i < uniquecount; i++)
                _uniquenote[i] = -1;

            // emit variable initializers

            Mvfldloc(_textF,      _textV);
            Mvfldloc(_textstartF, _textstartV);
            Mvfldloc(_textbegF,   _textbegV);
            Mvfldloc(_textendF,   _textendV);
            Mvfldloc(_textposF,   _textposV);
            Mvfldloc(_trackF,     _trackV);
            Mvfldloc(_trackposF,  _trackposV);
            Mvfldloc(_stackF,     _stackV);
            Mvfldloc(_stackposF,  _stackposV);

            _backpos = -1;

            for (codepos = 0; codepos < _codes.Length; codepos += RegexCode.OpcodeSize(_codes[codepos])) {
                MarkLabel(_labels[codepos]);
                _codepos = codepos;
                _regexopcode = _codes[codepos];
                GenerateOneCode();
            }
        }