Method: Bindy::Language#_nt_true

Defined in:
lib/bindy/language.rb

#_nt_trueObject



632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
# File 'lib/bindy/language.rb', line 632

def _nt_true
  start_index = index
  if node_cache[:true].has_key?(index)
    cached = node_cache[:true][index]
    if cached
      node_cache[:true][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
      @index = cached.interval.end
    end
    return cached
  end

  if (match_len = has_terminal?('true', false, index))
    r0 = instantiate_node(LiteralTrue,input, index...(index + match_len))
    @index += match_len
  else
    terminal_parse_failure('\'true\'')
    r0 = nil
  end

  node_cache[:true][start_index] = r0

  r0
end