module OracleSqlParser::Grammar::Select::Order
Public Instance Methods
_nt_order_by_clause()
click to toggle source
# File lib/oracle-sql-parser/grammar/select/order.rb, line 47 def _nt_order_by_clause start_index = index if node_cache[:order_by_clause].has_key?(index) cached = node_cache[:order_by_clause][index] if cached node_cache[:order_by_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_order_keyword s0 << r1 if r1 r2 = _nt_space s0 << r2 if r2 r4 = _nt_siblings_keyword if r4 r3 = r4 else r3 = instantiate_node(SyntaxNode,input, index...index) end s0 << r3 if r3 r6 = _nt_space if r6 r5 = r6 else r5 = instantiate_node(SyntaxNode,input, index...index) end s0 << r5 if r5 r7 = _nt_by_keyword s0 << r7 if r7 r8 = _nt_space s0 << r8 if r8 r9 = _nt_order_by_clause_items s0 << r9 end end end end end end if s0.last r0 = instantiate_node(SyntaxNode,input, i0...index, s0) r0.extend(OrderByClause0) r0.extend(OrderByClause1) else @index = i0 r0 = nil end node_cache[:order_by_clause][start_index] = r0 r0 end
_nt_order_by_clause_item()
click to toggle source
# File lib/oracle-sql-parser/grammar/select/order.rb, line 263 def _nt_order_by_clause_item start_index = index if node_cache[:order_by_clause_item].has_key?(index) cached = node_cache[:order_by_clause_item][index] if cached node_cache[:order_by_clause_item][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_expr if r2 r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true r1 = r2 else r3 = _nt_position if r3 r3 = SyntaxNode.new(input, (index-1)...index) if r3 == true r1 = r3 else r4 = _nt_c_alias 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 r6 = _nt_space if r6 r5 = r6 else r5 = instantiate_node(SyntaxNode,input, index...index) end s0 << r5 if r5 i8 = index r9 = _nt_asc_keyword if r9 r9 = SyntaxNode.new(input, (index-1)...index) if r9 == true r8 = r9 else r10 = _nt_desc_keyword if r10 r10 = SyntaxNode.new(input, (index-1)...index) if r10 == true r8 = r10 else @index = i8 r8 = nil end end if r8 r7 = r8 else r7 = instantiate_node(SyntaxNode,input, index...index) end s0 << r7 if r7 r12 = _nt_space if r12 r11 = r12 else r11 = instantiate_node(SyntaxNode,input, index...index) end s0 << r11 if r11 i14, s14 = index, [] r15 = _nt_nulls_keyword s14 << r15 if r15 r16 = _nt_space s14 << r16 if r16 i17 = index r18 = _nt_first_keyword if r18 r18 = SyntaxNode.new(input, (index-1)...index) if r18 == true r17 = r18 else r19 = _nt_last_keyword if r19 r19 = SyntaxNode.new(input, (index-1)...index) if r19 == true r17 = r19 else @index = i17 r17 = nil end end s14 << r17 end end if s14.last r14 = instantiate_node(SyntaxNode,input, i14...index, s14) r14.extend(OrderByClauseItem0) else @index = i14 r14 = nil end if r14 r13 = r14 else r13 = instantiate_node(SyntaxNode,input, index...index) end s0 << r13 end end end end if s0.last r0 = instantiate_node(SyntaxNode,input, i0...index, s0) r0.extend(OrderByClauseItem1) r0.extend(OrderByClauseItem2) else @index = i0 r0 = nil end node_cache[:order_by_clause_item][start_index] = r0 r0 end
_nt_order_by_clause_items()
click to toggle source
# File lib/oracle-sql-parser/grammar/select/order.rb, line 138 def _nt_order_by_clause_items start_index = index if node_cache[:order_by_clause_items].has_key?(index) cached = node_cache[:order_by_clause_items][index] if cached node_cache[:order_by_clause_items][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true @index = cached.interval.end end return cached end i0, s0 = index, [] r1 = _nt_order_by_clause_item 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_order_by_clause_item s3 << r9 if r9 r11 = _nt_space if r11 r10 = r11 else r10 = instantiate_node(SyntaxNode,input, index...index) end s3 << r10 end end end end if s3.last r3 = instantiate_node(SyntaxNode,input, i3...index, s3) r3.extend(OrderByClauseItems0) 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(OrderByClauseItems1) r0.extend(OrderByClauseItems2) else @index = i0 r0 = nil end node_cache[:order_by_clause_items][start_index] = r0 r0 end
root()
click to toggle source
# File lib/oracle-sql-parser/grammar/select/order.rb, line 8 def root @root ||= :order_by_clause end