Method: Q#_nt_neq

Defined in:
lib/q/parser.rb

#_nt_neqObject



1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
# File 'lib/q/parser.rb', line 1839

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

  if (match_len = has_terminal?('!=', false, index))
    r0 = instantiate_node(SyntaxNode,input, index...(index + match_len))
    r0.extend(Neq0)
    @index += match_len
  else
    terminal_parse_failure('!=')
    r0 = nil
  end

  node_cache[:neq][start_index] = r0

  r0
end