Method: Bindy::Language#_nt_null

Defined in:
lib/bindy/language.rb

#_nt_nullObject



680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
# File 'lib/bindy/language.rb', line 680

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

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

  node_cache[:null][start_index] = r0

  r0
end