module OracleSqlParser::Grammar::Expression::Compound
Public Instance Methods
_nt_compound_expression()
click to toggle source
# File lib/oracle-sql-parser/grammar/expression/compound.rb, line 67 def _nt_compound_expression start_index = index if node_cache[:compound_expression].has_key?(index) cached = node_cache[:compound_expression][index] if cached node_cache[:compound_expression][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true @index = cached.interval.end end return cached end i0, s0 = index, [] i1 = index i2, s2 = index, [] if (match_len = has_terminal?('(', false, index)) r3 = true @index += match_len else terminal_parse_failure('\'(\'') r3 = nil end s2 << r3 if r3 r5 = _nt_space if r5 r4 = r5 else r4 = instantiate_node(SyntaxNode,input, index...index) end s2 << r4 if r4 r6 = _nt_expr s2 << r6 if r6 r8 = _nt_space if r8 r7 = r8 else r7 = instantiate_node(SyntaxNode,input, index...index) end s2 << r7 if r7 if (match_len = has_terminal?(')', false, index)) r9 = true @index += match_len else terminal_parse_failure('\')\'') r9 = nil end s2 << r9 end end end end if s2.last r2 = instantiate_node(SyntaxNode,input, i2...index, s2) r2.extend(CompoundExpression0) else @index = i2 r2 = nil end if r2 r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true r1 = r2 else i10, s10 = index, [] r11 = _nt_not_loop_sql_expression s10 << r11 if r11 r13 = _nt_space if r13 r12 = r13 else r12 = instantiate_node(SyntaxNode,input, index...index) end s10 << r12 if r12 i14 = index if (match_len = has_terminal?('*', false, index)) r15 = true @index += match_len else terminal_parse_failure('\'*\'') r15 = nil end if r15 r15 = SyntaxNode.new(input, (index-1)...index) if r15 == true r14 = r15 else if (match_len = has_terminal?('/', false, index)) r16 = true @index += match_len else terminal_parse_failure('\'/\'') r16 = nil end if r16 r16 = SyntaxNode.new(input, (index-1)...index) if r16 == true r14 = r16 else if (match_len = has_terminal?('+', false, index)) r17 = true @index += match_len else terminal_parse_failure('\'+\'') r17 = nil end if r17 r17 = SyntaxNode.new(input, (index-1)...index) if r17 == true r14 = r17 else if (match_len = has_terminal?('-', false, index)) r18 = true @index += match_len else terminal_parse_failure('\'-\'') r18 = nil end if r18 r18 = SyntaxNode.new(input, (index-1)...index) if r18 == true r14 = r18 else if (match_len = has_terminal?('||', false, index)) r19 = instantiate_node(SyntaxNode,input, index...(index + match_len)) @index += match_len else terminal_parse_failure('\'||\'') r19 = nil end if r19 r19 = SyntaxNode.new(input, (index-1)...index) if r19 == true r14 = r19 else @index = i14 r14 = nil end end end end end s10 << r14 if r14 r21 = _nt_space if r21 r20 = r21 else r20 = instantiate_node(SyntaxNode,input, index...index) end s10 << r20 if r20 r22 = _nt_expr s10 << r22 end end end end if s10.last r10 = instantiate_node(SyntaxNode,input, i10...index, s10) r10.extend(CompoundExpression1) else @index = i10 r10 = nil end if r10 r10 = SyntaxNode.new(input, (index-1)...index) if r10 == true r1 = r10 else i23, s23 = index, [] i24 = index r25 = _nt_number_literal if r25 @index = i24 r24 = nil else @index = i24 r24 = instantiate_node(SyntaxNode,input, index...index) end s23 << r24 if r24 i26 = index r27 = _nt_prior_keyword if r27 r27 = SyntaxNode.new(input, (index-1)...index) if r27 == true r26 = r27 else if (match_len = has_terminal?('-', false, index)) r28 = true @index += match_len else terminal_parse_failure('\'-\'') r28 = nil end if r28 r28 = SyntaxNode.new(input, (index-1)...index) if r28 == true r26 = r28 else if (match_len = has_terminal?('+', false, index)) r29 = true @index += match_len else terminal_parse_failure('\'+\'') r29 = nil end if r29 r29 = SyntaxNode.new(input, (index-1)...index) if r29 == true r26 = r29 else @index = i26 r26 = nil end end end s23 << r26 if r26 r31 = _nt_space if r31 r30 = r31 else r30 = instantiate_node(SyntaxNode,input, index...index) end s23 << r30 if r30 r32 = _nt_expr s23 << r32 end end end if s23.last r23 = instantiate_node(SyntaxNode,input, i23...index, s23) r23.extend(CompoundExpression2) else @index = i23 r23 = nil end if r23 r23 = SyntaxNode.new(input, (index-1)...index) if r23 == true r1 = r23 else @index = i1 r1 = nil end end end s0 << r1 if s0.last r0 = instantiate_node(SyntaxNode,input, i0...index, s0) r0.extend(CompoundExpression3) r0.extend(CompoundExpression4) else @index = i0 r0 = nil end node_cache[:compound_expression][start_index] = r0 r0 end
root()
click to toggle source
# File lib/oracle-sql-parser/grammar/expression/compound.rb, line 8 def root @root ||= :compound_expression end