lib/nql/grammar.rb in nql-0.0.3 vs lib/nql/grammar.rb in nql-0.0.4

- old
+ new

@@ -1,761 +1,761 @@ -# Autogenerated from a Treetop grammar. Edits may be lost. - - -module NQL - module Syntax - include Treetop::Runtime - - def root - @root ||= :expression - end - - def _nt_expression - start_index = index - if node_cache[:expression].has_key?(index) - cached = node_cache[:expression][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_boolean - if r1 - r0 = r1 - else - r2 = _nt_primary - if r2 - r0 = r2 - else - @index = i0 - r0 = nil - end - end - - node_cache[:expression][start_index] = r0 - - r0 - end - - module Boolean0 - def left - elements[0] - end - - def space1 - elements[1] - end - - def coordinator - elements[2] - end - - def space2 - elements[3] - end - - def right - elements[4] - end - end - - module Boolean1 - def to_ransack - group = {g: [{m: coordinator.to_ransack}]} - - [left, right].each do |side| - if side.is_node?(:boolean) - group[:g][0].merge! side.to_ransack - else - group[:g][0][:c] ||= [] - group[:g][0][:c] << side.to_ransack - end - end - - group - end - - def is_node?(node_type) - node_type.to_sym == :boolean - end - end - - 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, s0 = index, [] - r1 = _nt_primary - s0 << r1 - if r1 - r2 = _nt_space - s0 << r2 - if r2 - r3 = _nt_coordinator - s0 << r3 - if r3 - r4 = _nt_space - s0 << r4 - if r4 - r5 = _nt_expression - s0 << r5 - end - end - end - end - if s0.last - r0 = instantiate_node(SyntaxNode,input, i0...index, s0) - r0.extend(Boolean0) - r0.extend(Boolean1) - else - @index = i0 - r0 = nil - end - - node_cache[:boolean][start_index] = r0 - - r0 - end - - module Primary0 - def space1 - elements[0] - end - - def comparison - elements[1] - end - - def space2 - elements[2] - end - end - - module Primary1 - def space1 - elements[1] - end - - def expression - elements[2] - end - - def space2 - elements[3] - end - - end - - module Primary2 - def to_ransack - detect_node.to_ransack - end - - def detect_node - self.send %w(comparison expression).detect { |m| self.respond_to? m } - end - - def is_node?(node_type) - detect_node.is_node?(node_type) - end - end - - def _nt_primary - start_index = index - if node_cache[:primary].has_key?(index) - cached = node_cache[:primary][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_space - s1 << r2 - if r2 - r3 = _nt_comparison - s1 << r3 - if r3 - r4 = _nt_space - s1 << r4 - end - end - if s1.last - r1 = instantiate_node(SyntaxNode,input, i1...index, s1) - r1.extend(Primary0) - else - @index = i1 - r1 = nil - end - if r1 - r0 = r1 - r0.extend(Primary2) - else - i5, s5 = index, [] - if has_terminal?('(', false, index) - r6 = instantiate_node(SyntaxNode,input, index...(index + 1)) - @index += 1 - else - terminal_parse_failure('(') - r6 = nil - end - s5 << r6 - if r6 - r7 = _nt_space - s5 << r7 - if r7 - r8 = _nt_expression - s5 << r8 - if r8 - r9 = _nt_space - s5 << r9 - if r9 - if has_terminal?(')', false, index) - r10 = instantiate_node(SyntaxNode,input, index...(index + 1)) - @index += 1 - else - terminal_parse_failure(')') - r10 = nil - end - s5 << r10 - end - end - end - end - if s5.last - r5 = instantiate_node(SyntaxNode,input, i5...index, s5) - r5.extend(Primary1) - else - @index = i5 - r5 = nil - end - if r5 - r0 = r5 - r0.extend(Primary2) - else - @index = i0 - r0 = nil - end - end - - node_cache[:primary][start_index] = r0 - - r0 - end - - module Coordinator0 - def to_ransack - coordinators = {'|' => 'or', '&' => 'and'} - coordinators[text_value] - end - end - - def _nt_coordinator - start_index = index - if node_cache[:coordinator].has_key?(index) - cached = node_cache[:coordinator][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 - r0.extend(Coordinator0) - 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 - r0.extend(Coordinator0) - else - @index = i0 - r0 = nil - end - end - - node_cache[:coordinator][start_index] = r0 - - r0 - end - - module Comparison0 - def variable - elements[0] - end - - def space1 - elements[1] - end - - def comparator - elements[2] - end - - def space2 - elements[3] - end - - def value - elements[4] - end - end - - module Comparison1 - def to_ransack - hash = {a: {'0' => {name: self.variable.text_value.gsub('.', '_')}}, p: self.comparator.to_ransack, v: {'0' => {value: self.value.text_value}}} - hash = {c: [hash]} if !parent || !parent.parent || text_value == parent.parent.text_value - hash - end - - def is_node?(node_type) - node_type.to_sym == :comparison - end - end - - def _nt_comparison - start_index = index - if node_cache[:comparison].has_key?(index) - cached = node_cache[:comparison][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_alphanumeric - s0 << r1 - if r1 - r2 = _nt_space - s0 << r2 - if r2 - r3 = _nt_comparator - s0 << r3 - if r3 - r4 = _nt_space - s0 << r4 - if r4 - r5 = _nt_text - s0 << r5 - end - end - end - end - if s0.last - r0 = instantiate_node(SyntaxNode,input, i0...index, s0) - r0.extend(Comparison0) - r0.extend(Comparison1) - else - @index = i0 - r0 = nil - end - - node_cache[:comparison][start_index] = r0 - - r0 - end - - module Comparator0 - def to_ransack - comparators = { - '=' => 'eq', - '!=' => 'not_eq', - '>' => 'gt', - '>=' => 'gteq', - '<' => 'lt', - '<=' => 'lteq', - ':' => 'cont' - } - comparators[text_value] - end - end - - def _nt_comparator - start_index = index - if node_cache[:comparator].has_key?(index) - cached = node_cache[:comparator][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 - i1 = index - if has_terminal?('=', false, index) - r2 = instantiate_node(SyntaxNode,input, index...(index + 1)) - @index += 1 - else - terminal_parse_failure('=') - r2 = nil - end - if r2 - r1 = r2 - else - if has_terminal?('!=', false, index) - r3 = instantiate_node(SyntaxNode,input, index...(index + 2)) - @index += 2 - else - terminal_parse_failure('!=') - r3 = nil - end - if r3 - r1 = r3 - else - if has_terminal?('>', false, index) - r4 = instantiate_node(SyntaxNode,input, index...(index + 1)) - @index += 1 - else - terminal_parse_failure('>') - r4 = nil - end - if r4 - r1 = r4 - else - if has_terminal?('>=', false, index) - r5 = instantiate_node(SyntaxNode,input, index...(index + 2)) - @index += 2 - else - terminal_parse_failure('>=') - r5 = nil - end - if r5 - r1 = r5 - else - if has_terminal?('<', false, index) - r6 = instantiate_node(SyntaxNode,input, index...(index + 1)) - @index += 1 - else - terminal_parse_failure('<') - r6 = nil - end - if r6 - r1 = r6 - else - if has_terminal?('<=', false, index) - r7 = instantiate_node(SyntaxNode,input, index...(index + 2)) - @index += 2 - else - terminal_parse_failure('<=') - r7 = nil - end - if r7 - r1 = r7 - else - if has_terminal?(':', false, index) - r8 = instantiate_node(SyntaxNode,input, index...(index + 1)) - @index += 1 - else - terminal_parse_failure(':') - r8 = nil - end - if r8 - r1 = r8 - else - @index = i1 - r1 = nil - end - end - end - end - end - end - end - if r1 - s0 << r1 - else - break - end - end - if s0.empty? - @index = i0 - r0 = nil - else - r0 = instantiate_node(SyntaxNode,input, i0...index, s0) - r0.extend(Comparator0) - end - - node_cache[:comparator][start_index] = r0 - - r0 - end - - module Text0 - def space - elements[0] - end - - end - - module Text1 - end - - def _nt_text - start_index = index - if node_cache[:text].has_key?(index) - cached = node_cache[:text][index] - if cached - cached = SyntaxNode.new(input, index...(index + 1)) if cached == true - @index = cached.interval.end - end - return cached - end - - i0, s0 = index, [] - s1, i1 = [], index - loop do - i2 = index - r3 = _nt_alphanumeric - if r3 - r2 = r3 - else - r4 = _nt_utf8 - if r4 - r2 = r4 - else - r5 = _nt_symbol - if r5 - r2 = r5 - else - @index = i2 - r2 = nil - end - end - end - if r2 - s1 << r2 - else - break - end - end - if s1.empty? - @index = i1 - r1 = nil - else - r1 = instantiate_node(SyntaxNode,input, i1...index, s1) - end - s0 << r1 - if r1 - s6, i6 = [], index - loop do - i7, s7 = index, [] - r8 = _nt_space - s7 << r8 - if r8 - s9, i9 = [], index - loop do - i10 = index - r11 = _nt_alphanumeric - if r11 - r10 = r11 - else - r12 = _nt_utf8 - if r12 - r10 = r12 - else - r13 = _nt_symbol - if r13 - r10 = r13 - else - @index = i10 - r10 = nil - end - end - 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 - s7 << r9 - end - if s7.last - r7 = instantiate_node(SyntaxNode,input, i7...index, s7) - r7.extend(Text0) - else - @index = i7 - r7 = nil - end - if r7 - s6 << r7 - else - break - end - end - r6 = instantiate_node(SyntaxNode,input, i6...index, s6) - s0 << r6 - end - if s0.last - r0 = instantiate_node(SyntaxNode,input, i0...index, s0) - r0.extend(Text1) - else - @index = i0 - r0 = nil - end - - node_cache[:text][start_index] = r0 - - r0 - end - - def _nt_alphanumeric - start_index = index - if node_cache[:alphanumeric].has_key?(index) - cached = node_cache[:alphanumeric][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[a-zA-Z0-9_.]', 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(SyntaxNode,input, i0...index, s0) - end - - node_cache[:alphanumeric][start_index] = r0 - - r0 - end - - 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?(' ', false, index) - r1 = instantiate_node(SyntaxNode,input, index...(index + 1)) - @index += 1 - else - terminal_parse_failure(' ') - r1 = nil - end - if r1 - s0 << r1 - else - break - end - end - r0 = instantiate_node(SyntaxNode,input, i0...index, s0) - - node_cache[:space][start_index] = r0 - - r0 - end - - def _nt_symbol - start_index = index - if node_cache[:symbol].has_key?(index) - cached = node_cache[:symbol][index] - if cached - cached = SyntaxNode.new(input, index...(index + 1)) if cached == true - @index = cached.interval.end - end - return cached - end - - if has_terminal?('\G[><=+-\\/\\\\@#$%!?:]', true, index) - r0 = instantiate_node(SyntaxNode,input, index...(index + 1)) - @index += 1 - else - r0 = nil - end - - node_cache[:symbol][start_index] = r0 - - r0 - end - - def _nt_utf8 - start_index = index - if node_cache[:utf8].has_key?(index) - cached = node_cache[:utf8][index] - if cached - cached = SyntaxNode.new(input, index...(index + 1)) if cached == true - @index = cached.interval.end - end - return cached - end - - if has_terminal?('\G[\\u00c1\\u00c0\\u00c9\\u00c8\\u00cd\\u00cc\\u00d3\\u00d2\\u00da\\u00d9\\u00dc\\u00d1\\u00c7\\u00e1\\u00e0\\u00e9\\u00e8\\u00ed\\u00ec\\u00f3\\u00f2\\u00fa\\u00f9\\u00fc\\u00f1\\u00e7]', true, index) - r0 = instantiate_node(SyntaxNode,input, index...(index + 1)) - @index += 1 - else - r0 = nil - end - - node_cache[:utf8][start_index] = r0 - - r0 - end - - end - - class SyntaxParser < Treetop::Runtime::CompiledParser - include Syntax - end - +# Autogenerated from a Treetop grammar. Edits may be lost. + + +module NQL + module Syntax + include Treetop::Runtime + + def root + @root ||= :expression + end + + def _nt_expression + start_index = index + if node_cache[:expression].has_key?(index) + cached = node_cache[:expression][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_boolean + if r1 + r0 = r1 + else + r2 = _nt_primary + if r2 + r0 = r2 + else + @index = i0 + r0 = nil + end + end + + node_cache[:expression][start_index] = r0 + + r0 + end + + module Boolean0 + def left + elements[0] + end + + def space1 + elements[1] + end + + def coordinator + elements[2] + end + + def space2 + elements[3] + end + + def right + elements[4] + end + end + + module Boolean1 + def to_ransack + group = {g: [{m: coordinator.to_ransack}]} + + [left, right].each do |side| + if side.is_node?(:boolean) + group[:g][0].merge! side.to_ransack + else + group[:g][0][:c] ||= [] + group[:g][0][:c] << side.to_ransack + end + end + + group + end + + def is_node?(node_type) + node_type.to_sym == :boolean + end + end + + 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, s0 = index, [] + r1 = _nt_primary + s0 << r1 + if r1 + r2 = _nt_space + s0 << r2 + if r2 + r3 = _nt_coordinator + s0 << r3 + if r3 + r4 = _nt_space + s0 << r4 + if r4 + r5 = _nt_expression + s0 << r5 + end + end + end + end + if s0.last + r0 = instantiate_node(SyntaxNode,input, i0...index, s0) + r0.extend(Boolean0) + r0.extend(Boolean1) + else + @index = i0 + r0 = nil + end + + node_cache[:boolean][start_index] = r0 + + r0 + end + + module Primary0 + def space1 + elements[0] + end + + def comparison + elements[1] + end + + def space2 + elements[2] + end + end + + module Primary1 + def space1 + elements[1] + end + + def expression + elements[2] + end + + def space2 + elements[3] + end + + end + + module Primary2 + def to_ransack + detect_node.to_ransack + end + + def detect_node + self.send %w(comparison expression).detect { |m| self.respond_to? m } + end + + def is_node?(node_type) + detect_node.is_node?(node_type) + end + end + + def _nt_primary + start_index = index + if node_cache[:primary].has_key?(index) + cached = node_cache[:primary][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_space + s1 << r2 + if r2 + r3 = _nt_comparison + s1 << r3 + if r3 + r4 = _nt_space + s1 << r4 + end + end + if s1.last + r1 = instantiate_node(SyntaxNode,input, i1...index, s1) + r1.extend(Primary0) + else + @index = i1 + r1 = nil + end + if r1 + r0 = r1 + r0.extend(Primary2) + else + i5, s5 = index, [] + if has_terminal?('(', false, index) + r6 = instantiate_node(SyntaxNode,input, index...(index + 1)) + @index += 1 + else + terminal_parse_failure('(') + r6 = nil + end + s5 << r6 + if r6 + r7 = _nt_space + s5 << r7 + if r7 + r8 = _nt_expression + s5 << r8 + if r8 + r9 = _nt_space + s5 << r9 + if r9 + if has_terminal?(')', false, index) + r10 = instantiate_node(SyntaxNode,input, index...(index + 1)) + @index += 1 + else + terminal_parse_failure(')') + r10 = nil + end + s5 << r10 + end + end + end + end + if s5.last + r5 = instantiate_node(SyntaxNode,input, i5...index, s5) + r5.extend(Primary1) + else + @index = i5 + r5 = nil + end + if r5 + r0 = r5 + r0.extend(Primary2) + else + @index = i0 + r0 = nil + end + end + + node_cache[:primary][start_index] = r0 + + r0 + end + + module Coordinator0 + def to_ransack + coordinators = {'|' => 'or', '&' => 'and'} + coordinators[text_value] + end + end + + def _nt_coordinator + start_index = index + if node_cache[:coordinator].has_key?(index) + cached = node_cache[:coordinator][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 + r0.extend(Coordinator0) + 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 + r0.extend(Coordinator0) + else + @index = i0 + r0 = nil + end + end + + node_cache[:coordinator][start_index] = r0 + + r0 + end + + module Comparison0 + def variable + elements[0] + end + + def space1 + elements[1] + end + + def comparator + elements[2] + end + + def space2 + elements[3] + end + + def value + elements[4] + end + end + + module Comparison1 + def to_ransack + hash = {a: {'0' => {name: self.variable.text_value.gsub('.', '_')}}, p: self.comparator.to_ransack, v: {'0' => {value: self.value.text_value}}} + hash = {c: [hash]} if !parent || !parent.parent || text_value == parent.parent.text_value + hash + end + + def is_node?(node_type) + node_type.to_sym == :comparison + end + end + + def _nt_comparison + start_index = index + if node_cache[:comparison].has_key?(index) + cached = node_cache[:comparison][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_alphanumeric + s0 << r1 + if r1 + r2 = _nt_space + s0 << r2 + if r2 + r3 = _nt_comparator + s0 << r3 + if r3 + r4 = _nt_space + s0 << r4 + if r4 + r5 = _nt_text + s0 << r5 + end + end + end + end + if s0.last + r0 = instantiate_node(SyntaxNode,input, i0...index, s0) + r0.extend(Comparison0) + r0.extend(Comparison1) + else + @index = i0 + r0 = nil + end + + node_cache[:comparison][start_index] = r0 + + r0 + end + + module Comparator0 + def to_ransack + comparators = { + '=' => 'eq', + '!=' => 'not_eq', + '>' => 'gt', + '>=' => 'gteq', + '<' => 'lt', + '<=' => 'lteq', + ':' => 'cont' + } + comparators[text_value] + end + end + + def _nt_comparator + start_index = index + if node_cache[:comparator].has_key?(index) + cached = node_cache[:comparator][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 + i1 = index + if has_terminal?('=', false, index) + r2 = instantiate_node(SyntaxNode,input, index...(index + 1)) + @index += 1 + else + terminal_parse_failure('=') + r2 = nil + end + if r2 + r1 = r2 + else + if has_terminal?('!=', false, index) + r3 = instantiate_node(SyntaxNode,input, index...(index + 2)) + @index += 2 + else + terminal_parse_failure('!=') + r3 = nil + end + if r3 + r1 = r3 + else + if has_terminal?('>', false, index) + r4 = instantiate_node(SyntaxNode,input, index...(index + 1)) + @index += 1 + else + terminal_parse_failure('>') + r4 = nil + end + if r4 + r1 = r4 + else + if has_terminal?('>=', false, index) + r5 = instantiate_node(SyntaxNode,input, index...(index + 2)) + @index += 2 + else + terminal_parse_failure('>=') + r5 = nil + end + if r5 + r1 = r5 + else + if has_terminal?('<', false, index) + r6 = instantiate_node(SyntaxNode,input, index...(index + 1)) + @index += 1 + else + terminal_parse_failure('<') + r6 = nil + end + if r6 + r1 = r6 + else + if has_terminal?('<=', false, index) + r7 = instantiate_node(SyntaxNode,input, index...(index + 2)) + @index += 2 + else + terminal_parse_failure('<=') + r7 = nil + end + if r7 + r1 = r7 + else + if has_terminal?(':', false, index) + r8 = instantiate_node(SyntaxNode,input, index...(index + 1)) + @index += 1 + else + terminal_parse_failure(':') + r8 = nil + end + if r8 + r1 = r8 + else + @index = i1 + r1 = nil + end + end + end + end + end + end + end + if r1 + s0 << r1 + else + break + end + end + if s0.empty? + @index = i0 + r0 = nil + else + r0 = instantiate_node(SyntaxNode,input, i0...index, s0) + r0.extend(Comparator0) + end + + node_cache[:comparator][start_index] = r0 + + r0 + end + + module Text0 + def space + elements[0] + end + + end + + module Text1 + end + + def _nt_text + start_index = index + if node_cache[:text].has_key?(index) + cached = node_cache[:text][index] + if cached + cached = SyntaxNode.new(input, index...(index + 1)) if cached == true + @index = cached.interval.end + end + return cached + end + + i0, s0 = index, [] + s1, i1 = [], index + loop do + i2 = index + r3 = _nt_alphanumeric + if r3 + r2 = r3 + else + r4 = _nt_utf8 + if r4 + r2 = r4 + else + r5 = _nt_symbol + if r5 + r2 = r5 + else + @index = i2 + r2 = nil + end + end + end + if r2 + s1 << r2 + else + break + end + end + if s1.empty? + @index = i1 + r1 = nil + else + r1 = instantiate_node(SyntaxNode,input, i1...index, s1) + end + s0 << r1 + if r1 + s6, i6 = [], index + loop do + i7, s7 = index, [] + r8 = _nt_space + s7 << r8 + if r8 + s9, i9 = [], index + loop do + i10 = index + r11 = _nt_alphanumeric + if r11 + r10 = r11 + else + r12 = _nt_utf8 + if r12 + r10 = r12 + else + r13 = _nt_symbol + if r13 + r10 = r13 + else + @index = i10 + r10 = nil + end + end + 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 + s7 << r9 + end + if s7.last + r7 = instantiate_node(SyntaxNode,input, i7...index, s7) + r7.extend(Text0) + else + @index = i7 + r7 = nil + end + if r7 + s6 << r7 + else + break + end + end + r6 = instantiate_node(SyntaxNode,input, i6...index, s6) + s0 << r6 + end + if s0.last + r0 = instantiate_node(SyntaxNode,input, i0...index, s0) + r0.extend(Text1) + else + @index = i0 + r0 = nil + end + + node_cache[:text][start_index] = r0 + + r0 + end + + def _nt_alphanumeric + start_index = index + if node_cache[:alphanumeric].has_key?(index) + cached = node_cache[:alphanumeric][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[a-zA-Z0-9_.]', 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(SyntaxNode,input, i0...index, s0) + end + + node_cache[:alphanumeric][start_index] = r0 + + r0 + end + + 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?(' ', false, index) + r1 = instantiate_node(SyntaxNode,input, index...(index + 1)) + @index += 1 + else + terminal_parse_failure(' ') + r1 = nil + end + if r1 + s0 << r1 + else + break + end + end + r0 = instantiate_node(SyntaxNode,input, i0...index, s0) + + node_cache[:space][start_index] = r0 + + r0 + end + + def _nt_symbol + start_index = index + if node_cache[:symbol].has_key?(index) + cached = node_cache[:symbol][index] + if cached + cached = SyntaxNode.new(input, index...(index + 1)) if cached == true + @index = cached.interval.end + end + return cached + end + + if has_terminal?('\G[><=+-\\/\\\\@#$%!?:]', true, index) + r0 = instantiate_node(SyntaxNode,input, index...(index + 1)) + @index += 1 + else + r0 = nil + end + + node_cache[:symbol][start_index] = r0 + + r0 + end + + def _nt_utf8 + start_index = index + if node_cache[:utf8].has_key?(index) + cached = node_cache[:utf8][index] + if cached + cached = SyntaxNode.new(input, index...(index + 1)) if cached == true + @index = cached.interval.end + end + return cached + end + + if has_terminal?('\G[\\u00c0\\u00c1\\u00c2\\u00c3\\u00c4\\u00c7\\u00c8\\u00c9\\u00ca\\u00cb\\u00cc\\u00cd\\u00ce\\u00cf\\u00d1\\u00d2\\u00d3\\u00d4\\u00d5\\u00d6\\u00d9\\u00da\\u00db\\u00dc\\u00e0\\u00e1\\u00e2\\u00e3\\u00e4\\u00e7\\u00e8\\u00e9\\u00ea\\u00eb\\u00ec\\u00ed\\u00ee\\u00ef\\u00f1\\u00f2\\u00f3\\u00f4\\u00f5\\u00f6\\u00f9\\u00fa\\u00fb\\u00fc]', true, index) + r0 = instantiate_node(SyntaxNode,input, index...(index + 1)) + @index += 1 + else + r0 = nil + end + + node_cache[:utf8][start_index] = r0 + + r0 + end + + end + + class SyntaxParser < Treetop::Runtime::CompiledParser + include Syntax + end + end \ No newline at end of file