private MatchInfo matchBody() { int rule_id; int match_length = patternMatcher.MatchInput(body, out rule_id, id => ruleIdFilter(id), scanningPosition); if (match_length > 0) { return(new MatchInfo(this.State, new SymbolPosition(filename, line, column), rules[rule_id], body.Substring(scanningPosition, match_length))); } return(null); }