module TagQueryGrammar

Extensions to the TagQueryGrammar module, generated by Treetop. The classes contained in this module are applied to the nodes of the parsed syntax tree for easier interpretation later.

@see treetop.rubyforge.org/

@author Josh Lindsey @since 2.3.0

Autogenerated from a Treetop grammar. Edits may be lost.

Public Instance Methods

_nt_AND() click to toggle source
# File lib/rutty/treetop/tag_query.rb, line 395
def _nt_AND
  start_index = index
  if node_cache[:AND].has_key?(index)
    cached = node_cache[:AND][index]
    if cached
      cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
      @index = cached.interval.end
    end
    return cached
  end

  if has_terminal?('AND', false, index)
    r0 = instantiate_node(AndLiteral,input, index...(index + 3))
    @index += 3
  else
    terminal_parse_failure('AND')
    r0 = nil
  end

  node_cache[:AND][start_index] = r0

  r0
end
_nt_OR() click to toggle source
# File lib/rutty/treetop/tag_query.rb, line 419
def _nt_OR
  start_index = index
  if node_cache[:OR].has_key?(index)
    cached = node_cache[:OR][index]
    if cached
      cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
      @index = cached.interval.end
    end
    return cached
  end

  if has_terminal?('OR', false, index)
    r0 = instantiate_node(OrLiteral,input, index...(index + 2))
    @index += 2
  else
    terminal_parse_failure('OR')
    r0 = nil
  end

  node_cache[:OR][start_index] = r0

  r0
end
_nt_boolean() click to toggle source
# File lib/rutty/treetop/tag_query.rb, line 280
def _nt_boolean
  start_index = index
  if node_cache[:boolean].has_key?(index)
    cached = node_cache[:boolean][index]
    if cached
      cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
      @index = cached.interval.end
    end
    return cached
  end

  i0 = index
  r1 = _nt_AND
  if r1
    r0 = r1
  else
    r2 = _nt_OR
    if r2
      r0 = r2
    else
      @index = i0
      r0 = nil
    end
  end

  node_cache[:boolean][start_index] = r0

  r0
end
_nt_group() click to toggle source
# File lib/rutty/treetop/tag_query.rb, line 245
def _nt_group
  start_index = index
  if node_cache[:group].has_key?(index)
    cached = node_cache[:group][index]
    if cached
      cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
      @index = cached.interval.end
    end
    return cached
  end

  i0, s0 = index, []
  r1 = _nt_group_start
  s0 << r1
  if r1
    r2 = _nt_query
    s0 << r2
    if r2
      r3 = _nt_group_end
      s0 << r3
    end
  end
  if s0.last
    r0 = instantiate_node(QueryGroup,input, i0...index, s0)
    r0.extend(Group0)
  else
    @index = i0
    r0 = nil
  end

  node_cache[:group][start_index] = r0

  r0
end
_nt_group_end() click to toggle source
# File lib/rutty/treetop/tag_query.rb, line 371
def _nt_group_end
  start_index = index
  if node_cache[:group_end].has_key?(index)
    cached = node_cache[:group_end][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(GroupEnd,input, index...(index + 1))
    @index += 1
  else
    terminal_parse_failure(')')
    r0 = nil
  end

  node_cache[:group_end][start_index] = r0

  r0
end
_nt_group_start() click to toggle source
# File lib/rutty/treetop/tag_query.rb, line 347
def _nt_group_start
  start_index = index
  if node_cache[:group_start].has_key?(index)
    cached = node_cache[:group_start][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(GroupStart,input, index...(index + 1))
    @index += 1
  else
    terminal_parse_failure('(')
    r0 = nil
  end

  node_cache[:group_start][start_index] = r0

  r0
end
_nt_query() click to toggle source
# File lib/rutty/treetop/tag_query.rb, line 30
def _nt_query
  start_index = index
  if node_cache[:query].has_key?(index)
    cached = node_cache[:query][index]
    if cached
      cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
      @index = cached.interval.end
    end
    return cached
  end

  i0 = index
  i1, s1 = index, []
  r2 = _nt_tag
  s1 << r2
  if r2
    r3 = _nt_space
    s1 << r3
    if r3
      r4 = _nt_boolean
      s1 << r4
      if r4
        r5 = _nt_space
        s1 << r5
        if r5
          i6 = index
          r7 = _nt_query
          if r7
            r6 = r7
          else
            r8 = _nt_group
            if r8
              r6 = r8
            else
              @index = i6
              r6 = nil
            end
          end
          s1 << r6
        end
      end
    end
  end
  if s1.last
    r1 = instantiate_node(SyntaxNode,input, i1...index, s1)
    r1.extend(Query0)
  else
    @index = i1
    r1 = nil
  end
  if r1
    r0 = r1
  else
    r9 = _nt_tag
    if r9
      r0 = r9
    else
      @index = i0
      r0 = nil
    end
  end

  node_cache[:query][start_index] = r0

  r0
end
_nt_quote() click to toggle source
# File lib/rutty/treetop/tag_query.rb, line 189
def _nt_quote
  start_index = index
  if node_cache[:quote].has_key?(index)
    cached = node_cache[:quote][index]
    if cached
      cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
      @index = cached.interval.end
    end
    return cached
  end

  i0 = index
  if has_terminal?('"', false, index)
    r1 = instantiate_node(SyntaxNode,input, index...(index + 1))
    @index += 1
  else
    terminal_parse_failure('"')
    r1 = nil
  end
  if r1
    r0 = r1
  else
    if has_terminal?("'", false, index)
      r2 = instantiate_node(SyntaxNode,input, index...(index + 1))
      @index += 1
    else
      terminal_parse_failure("'")
      r2 = nil
    end
    if r2
      r0 = r2
    else
      @index = i0
      r0 = nil
    end
  end

  node_cache[:quote][start_index] = r0

  r0
end
_nt_space() click to toggle source
# File lib/rutty/treetop/tag_query.rb, line 310
def _nt_space
  start_index = index
  if node_cache[:space].has_key?(index)
    cached = node_cache[:space][index]
    if cached
      cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
      @index = cached.interval.end
    end
    return cached
  end

  s0, i0 = [], index
  loop do
    if has_terminal?('\G[\\s]', true, index)
      r1 = true
      @index += 1
    else
      r1 = nil
    end
    if r1
      s0 << r1
    else
      break
    end
  end
  if s0.empty?
    @index = i0
    r0 = nil
  else
    r0 = instantiate_node(Whitespace,input, i0...index, s0)
  end

  node_cache[:space][start_index] = r0

  r0
end
_nt_tag() click to toggle source
# File lib/rutty/treetop/tag_query.rb, line 100
def _nt_tag
  start_index = index
  if node_cache[:tag].has_key?(index)
    cached = node_cache[:tag][index]
    if cached
      cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
      @index = cached.interval.end
    end
    return cached
  end

  i0, s0 = index, []
  i1 = index
  i2 = index
  r3 = _nt_quote
  if r3
    r2 = r3
  else
    r4 = _nt_group
    if r4
      r2 = r4
    else
      r5 = _nt_boolean
      if r5
        r2 = r5
      else
        r6 = _nt_space
        if r6
          r2 = r6
        else
          r7 = _nt_group_start
          if r7
            r2 = r7
          else
            r8 = _nt_group_end
            if r8
              r2 = r8
            else
              @index = i2
              r2 = nil
            end
          end
        end
      end
    end
  end
  if r2
    r1 = nil
  else
    @index = i1
    r1 = instantiate_node(SyntaxNode,input, index...index)
  end
  s0 << r1
  if r1
    s9, i9 = [], index
    loop do
      if has_terminal?('\G[\\w-]', true, index)
        r10 = true
        @index += 1
      else
        r10 = nil
      end
      if r10
        s9 << r10
      else
        break
      end
    end
    if s9.empty?
      @index = i9
      r9 = nil
    else
      r9 = instantiate_node(SyntaxNode,input, i9...index, s9)
    end
    s0 << r9
  end
  if s0.last
    r0 = instantiate_node(Tag,input, i0...index, s0)
    r0.extend(Tag0)
  else
    @index = i0
    r0 = nil
  end

  node_cache[:tag][start_index] = r0

  r0
end
root() click to toggle source
# File lib/rutty/treetop/tag_query.rb, line 7
def root
  @root ||= :query
end