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();
}
}