# File lib/treetop/compiler/metagrammar.rb, line 1773 def _nt_optional_suffix start_index = index if node_cache[:optional_suffix].has_key?(index) cached = node_cache[:optional_suffix][index] if cached cached = SyntaxNode.new(input, index...(index + 1)) if cached == true @index = cached.interval.end end return cached end if has_terminal?('?', false, index) r0 = instantiate_node(Optional,input, index...(index + 1)) @index += 1 else terminal_parse_failure('?') r0 = nil end node_cache[:optional_suffix][start_index] = r0 r0 end