class Treetop::Runtime::CompiledParser
def terminal_parse_failure(expected_string, unexpected = false)
def terminal_parse_failure(expected_string, unexpected = false) if @max_terminal_failure_index == -1 @max_terminal_failure_index = 0 return nil end return nil if index < max_terminal_failure_index if index > max_terminal_failure_index @max_terminal_failure_index = index @terminal_failures = [] end @terminal_failures << [index, expected_string, unexpected] # It's very slow, but this shows the last 5 nested rules: # caller.reject{|l| l =~ /`loop'|`block in /}[0..5].reverse.map{|l| l.sub(/[^`]*`_nt_/,'').sub(/'/,'')} terminal_failures return nil end