module OracleSqlParser::Grammar::Select::Join
Public Instance Methods
_nt_column_list()
click to toggle source
# File lib/oracle-sql-parser/grammar/select/join.rb, line 684 def _nt_column_list start_index = index if node_cache[:column_list].has_key?(index) cached = node_cache[:column_list][index] if cached node_cache[:column_list][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true @index = cached.interval.end end return cached end i0, s0 = index, [] r1 = _nt_column_name s0 << r1 if r1 s2, i2 = [], index loop do i3, s3 = index, [] r5 = _nt_space if r5 r4 = r5 else r4 = instantiate_node(SyntaxNode,input, index...index) end s3 << r4 if r4 if (match_len = has_terminal?(',', false, index)) r6 = true @index += match_len else terminal_parse_failure('\',\'') r6 = nil end s3 << r6 if r6 r8 = _nt_space if r8 r7 = r8 else r7 = instantiate_node(SyntaxNode,input, index...index) end s3 << r7 if r7 r9 = _nt_column_name s3 << r9 end end end if s3.last r3 = instantiate_node(SyntaxNode,input, i3...index, s3) r3.extend(ColumnList0) else @index = i3 r3 = nil end if r3 s2 << r3 else break end end r2 = instantiate_node(SyntaxNode,input, i2...index, s2) s0 << r2 end if s0.last r0 = instantiate_node(SyntaxNode,input, i0...index, s0) r0.extend(ColumnList1) r0.extend(ColumnList2) else @index = i0 r0 = nil end node_cache[:column_list][start_index] = r0 r0 end
_nt_cross_join_clause()
click to toggle source
# File lib/oracle-sql-parser/grammar/select/join.rb, line 478 def _nt_cross_join_clause start_index = index if node_cache[:cross_join_clause].has_key?(index) cached = node_cache[:cross_join_clause][index] if cached node_cache[:cross_join_clause][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true @index = cached.interval.end end return cached end i0, s0 = index, [] r1 = _nt_cross_natural_join s0 << r1 if r1 r2 = _nt_space s0 << r2 if r2 r3 = _nt_table_reference s0 << r3 end end if s0.last r0 = instantiate_node(SyntaxNode,input, i0...index, s0) r0.extend(CrossJoinClause0) r0.extend(CrossJoinClause1) else @index = i0 r0 = nil end node_cache[:cross_join_clause][start_index] = r0 r0 end
_nt_cross_natural_join()
click to toggle source
# File lib/oracle-sql-parser/grammar/select/join.rb, line 565 def _nt_cross_natural_join start_index = index if node_cache[:cross_natural_join].has_key?(index) cached = node_cache[:cross_natural_join][index] if cached node_cache[:cross_natural_join][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, [] r3 = _nt_cross_keyword s2 << r3 if s2.last r2 = instantiate_node(SyntaxNode,input, i2...index, s2) r2.extend(CrossNaturalJoin0) else @index = i2 r2 = nil end if r2 r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true r1 = r2 else i4, s4 = index, [] r5 = _nt_natural_keyword s4 << r5 if r5 i7, s7 = index, [] r8 = _nt_space s7 << r8 if r8 r9 = _nt_inner_keyword s7 << r9 end if s7.last r7 = instantiate_node(SyntaxNode,input, i7...index, s7) r7.extend(CrossNaturalJoin1) else @index = i7 r7 = nil end if r7 r6 = r7 else r6 = instantiate_node(SyntaxNode,input, index...index) end s4 << r6 end if s4.last r4 = instantiate_node(SyntaxNode,input, i4...index, s4) r4.extend(CrossNaturalJoin2) else @index = i4 r4 = nil end if r4 r4 = SyntaxNode.new(input, (index-1)...index) if r4 == true r1 = r4 else @index = i1 r1 = nil end end s0 << r1 if r1 r10 = _nt_space s0 << r10 if r10 r11 = _nt_join_keyword s0 << r11 end end if s0.last r0 = instantiate_node(SyntaxNode,input, i0...index, s0) r0.extend(CrossNaturalJoin3) r0.extend(CrossNaturalJoin4) else @index = i0 r0 = nil end node_cache[:cross_natural_join][start_index] = r0 r0 end
_nt_inner_cross_join_clause()
click to toggle source
# File lib/oracle-sql-parser/grammar/select/join.rb, line 90 def _nt_inner_cross_join_clause start_index = index if node_cache[:inner_cross_join_clause].has_key?(index) cached = node_cache[:inner_cross_join_clause][index] if cached node_cache[:inner_cross_join_clause][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true @index = cached.interval.end end return cached end i0 = index r1 = _nt_inner_join_clause if r1 r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true r0 = r1 else r2 = _nt_cross_join_clause r2.extend(InnerCrossJoinClause0) r2.extend(InnerCrossJoinClause0) if r2 r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true r0 = r2 else @index = i0 r0 = nil end end node_cache[:inner_cross_join_clause][start_index] = r0 r0 end
_nt_inner_join()
click to toggle source
# File lib/oracle-sql-parser/grammar/select/join.rb, line 213 def _nt_inner_join start_index = index if node_cache[:inner_join].has_key?(index) cached = node_cache[:inner_join][index] if cached node_cache[:inner_join][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true @index = cached.interval.end end return cached end i0, s0 = index, [] r1 = _nt_inner_keyword s0 << r1 if r1 r3 = _nt_space if r3 r2 = r3 else r2 = instantiate_node(SyntaxNode,input, index...index) end s0 << r2 if r2 r4 = _nt_join_keyword s0 << r4 end end if s0.last r0 = instantiate_node(SyntaxNode,input, i0...index, s0) r0.extend(InnerJoin0) else @index = i0 r0 = nil end node_cache[:inner_join][start_index] = r0 r0 end
_nt_inner_join_clause()
click to toggle source
# File lib/oracle-sql-parser/grammar/select/join.rb, line 149 def _nt_inner_join_clause start_index = index if node_cache[:inner_join_clause].has_key?(index) cached = node_cache[:inner_join_clause][index] if cached node_cache[:inner_join_clause][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true @index = cached.interval.end end return cached end i0, s0 = index, [] r1 = _nt_inner_join s0 << r1 if r1 r3 = _nt_space if r3 r2 = r3 else r2 = instantiate_node(SyntaxNode,input, index...index) end s0 << r2 if r2 r4 = _nt_table_reference s0 << r4 if r4 r6 = _nt_space if r6 r5 = r6 else r5 = instantiate_node(SyntaxNode,input, index...index) end s0 << r5 if r5 r7 = _nt_on_or_using_clause s0 << r7 end end end end if s0.last r0 = instantiate_node(SyntaxNode,input, i0...index, s0) r0.extend(InnerJoinClause0) r0.extend(InnerJoinClause1) else @index = i0 r0 = nil end node_cache[:inner_join_clause][start_index] = r0 r0 end
_nt_join_clause()
click to toggle source
# File lib/oracle-sql-parser/grammar/select/join.rb, line 34 def _nt_join_clause start_index = index if node_cache[:join_clause].has_key?(index) cached = node_cache[:join_clause][index] if cached node_cache[:join_clause][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true @index = cached.interval.end end return cached end i0, s0 = index, [] r1 = _nt_table_reference s0 << r1 if r1 r2 = _nt_space s0 << r2 if r2 i3 = index r4 = _nt_outer_join_clause if r4 r4 = SyntaxNode.new(input, (index-1)...index) if r4 == true r3 = r4 else r5 = _nt_inner_cross_join_clause if r5 r5 = SyntaxNode.new(input, (index-1)...index) if r5 == true r3 = r5 else @index = i3 r3 = nil end end s0 << r3 end end if s0.last r0 = instantiate_node(SyntaxNode,input, i0...index, s0) r0.extend(JoinClause0) r0.extend(JoinClause1) else @index = i0 r0 = nil end node_cache[:join_clause][start_index] = r0 r0 end
_nt_on_clause()
click to toggle source
# File lib/oracle-sql-parser/grammar/select/join.rb, line 312 def _nt_on_clause start_index = index if node_cache[:on_clause].has_key?(index) cached = node_cache[:on_clause][index] if cached node_cache[:on_clause][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true @index = cached.interval.end end return cached end i0, s0 = index, [] r1 = _nt_on_keyword s0 << r1 if r1 r3 = _nt_space if r3 r2 = r3 else r2 = instantiate_node(SyntaxNode,input, index...index) end s0 << r2 if r2 r4 = _nt_condition s0 << r4 end end if s0.last r0 = instantiate_node(SyntaxNode,input, i0...index, s0) r0.extend(OnClause0) r0.extend(OnClause1) else @index = i0 r0 = nil end node_cache[:on_clause][start_index] = r0 r0 end
_nt_on_or_using_clause()
click to toggle source
# File lib/oracle-sql-parser/grammar/select/join.rb, line 259 def _nt_on_or_using_clause start_index = index if node_cache[:on_or_using_clause].has_key?(index) cached = node_cache[:on_or_using_clause][index] if cached node_cache[:on_or_using_clause][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true @index = cached.interval.end end return cached end i0 = index r1 = _nt_on_clause if r1 r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true r0 = r1 else r2 = _nt_using_clause r2.extend(OnOrUsingClause0) r2.extend(OnOrUsingClause0) if r2 r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true r0 = r2 else @index = i0 r0 = nil end end node_cache[:on_or_using_clause][start_index] = r0 r0 end
_nt_outer_join_clause()
click to toggle source
# File lib/oracle-sql-parser/grammar/select/join.rb, line 821 def _nt_outer_join_clause start_index = index if node_cache[:outer_join_clause].has_key?(index) cached = node_cache[:outer_join_clause][index] if cached node_cache[:outer_join_clause][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true @index = cached.interval.end end return cached end i0, s0 = index, [] r2 = _nt_query_partition_clause if r2 r1 = r2 else r1 = instantiate_node(SyntaxNode,input, index...index) end s0 << r1 if r1 i3, s3 = index, [] r5 = _nt_natural_keyword if r5 r4 = r5 else r4 = instantiate_node(SyntaxNode,input, index...index) end s3 << r4 if r4 r7 = _nt_space if r7 r6 = r7 else r6 = instantiate_node(SyntaxNode,input, index...index) end s3 << r6 if r6 r9 = _nt_outer_join_type if r9 r8 = r9 else r8 = instantiate_node(SyntaxNode,input, index...index) end s3 << r8 if r8 r11 = _nt_space if r11 r10 = r11 else r10 = instantiate_node(SyntaxNode,input, index...index) end s3 << r10 if r10 r12 = _nt_join_keyword s3 << r12 end end end end if s3.last r3 = instantiate_node(SyntaxNode,input, i3...index, s3) r3.extend(OuterJoinClause0) else @index = i3 r3 = nil end s0 << r3 if r3 r13 = _nt_space s0 << r13 if r13 r14 = _nt_table_reference s0 << r14 if r14 r15 = _nt_space s0 << r15 if r15 i17, s17 = index, [] r18 = _nt_query_partition_clause s17 << r18 if r18 r19 = _nt_space s17 << r19 end if s17.last r17 = instantiate_node(SyntaxNode,input, i17...index, s17) r17.extend(OuterJoinClause1) else @index = i17 r17 = nil end if r17 r16 = r17 else r16 = instantiate_node(SyntaxNode,input, index...index) end s0 << r16 if r16 r20 = _nt_on_or_using_clause s0 << r20 end end end end end end if s0.last r0 = instantiate_node(SyntaxNode,input, i0...index, s0) r0.extend(OuterJoinClause2) r0.extend(OuterJoinClause3) else @index = i0 r0 = nil end node_cache[:outer_join_clause][start_index] = r0 r0 end
_nt_outer_join_type()
click to toggle source
# File lib/oracle-sql-parser/grammar/select/join.rb, line 998 def _nt_outer_join_type start_index = index if node_cache[:outer_join_type].has_key?(index) cached = node_cache[:outer_join_type][index] if cached node_cache[:outer_join_type][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true @index = cached.interval.end end return cached end i0, s0 = index, [] i1 = index r2 = _nt_full_keyword if r2 r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true r1 = r2 else r3 = _nt_left_keyword if r3 r3 = SyntaxNode.new(input, (index-1)...index) if r3 == true r1 = r3 else r4 = _nt_right_keyword if r4 r4 = SyntaxNode.new(input, (index-1)...index) if r4 == true r1 = r4 else @index = i1 r1 = nil end end end s0 << r1 if r1 i6, s6 = index, [] r7 = _nt_space s6 << r7 if r7 r8 = _nt_outer_keyword s6 << r8 end if s6.last r6 = instantiate_node(SyntaxNode,input, i6...index, s6) r6.extend(OuterJoinType0) else @index = i6 r6 = nil end if r6 r5 = r6 else r5 = instantiate_node(SyntaxNode,input, index...index) end s0 << r5 end if s0.last r0 = instantiate_node(SyntaxNode,input, i0...index, s0) r0.extend(OuterJoinType1) r0.extend(OuterJoinType2) else @index = i0 r0 = nil end node_cache[:outer_join_type][start_index] = r0 r0 end
_nt_query_partition_clause()
click to toggle source
# File lib/oracle-sql-parser/grammar/select/join.rb, line 947 def _nt_query_partition_clause start_index = index if node_cache[:query_partition_clause].has_key?(index) cached = node_cache[:query_partition_clause][index] if cached node_cache[:query_partition_clause][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true @index = cached.interval.end end return cached end if (match_len = has_terminal?('query_partition_clause', false, index)) r0 = instantiate_node(SyntaxNode,input, index...(index + match_len)) r0.extend(QueryPartitionClause0) @index += match_len else terminal_parse_failure('\'query_partition_clause\'') r0 = nil end node_cache[:query_partition_clause][start_index] = r0 r0 end
_nt_using_clause()
click to toggle source
# File lib/oracle-sql-parser/grammar/select/join.rb, line 373 def _nt_using_clause start_index = index if node_cache[:using_clause].has_key?(index) cached = node_cache[:using_clause][index] if cached node_cache[:using_clause][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true @index = cached.interval.end end return cached end i0, s0 = index, [] r1 = _nt_using_keyword s0 << r1 if r1 r3 = _nt_space if r3 r2 = r3 else r2 = instantiate_node(SyntaxNode,input, index...index) end s0 << r2 if r2 if (match_len = has_terminal?('(', false, index)) r4 = true @index += match_len else terminal_parse_failure('\'(\'') r4 = nil end s0 << r4 if r4 r6 = _nt_space if r6 r5 = r6 else r5 = instantiate_node(SyntaxNode,input, index...index) end s0 << r5 if r5 r7 = _nt_column_list s0 << r7 if r7 r9 = _nt_space if r9 r8 = r9 else r8 = instantiate_node(SyntaxNode,input, index...index) end s0 << r8 if r8 if (match_len = has_terminal?(')', false, index)) r10 = true @index += match_len else terminal_parse_failure('\')\'') r10 = nil end s0 << r10 end end end end end end if s0.last r0 = instantiate_node(SyntaxNode,input, i0...index, s0) r0.extend(UsingClause0) r0.extend(UsingClause1) else @index = i0 r0 = nil end node_cache[:using_clause][start_index] = r0 r0 end
root()
click to toggle source
# File lib/oracle-sql-parser/grammar/select/join.rb, line 8 def root @root ||= :join_clause end