module OracleSqlParser::Grammar::Expression::Interval
Public Instance Methods
_nt_fractional_second_precision()
click to toggle source
# File lib/oracle-sql-parser/grammar/expression/interval.rb, line 540 def _nt_fractional_second_precision start_index = index if node_cache[:fractional_second_precision].has_key?(index) cached = node_cache[:fractional_second_precision][index] if cached node_cache[:fractional_second_precision][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true @index = cached.interval.end end return cached end if has_terminal?(@regexps[gr = '\A[0-9]'] ||= Regexp.new(gr), :regexp, index) r0 = instantiate_node(SyntaxNode,input, index...(index + 1)) r0.extend(FractionalSecondPrecision0) r0.extend(FractionalSecondPrecision0) @index += 1 else terminal_parse_failure('[0-9]') r0 = nil end node_cache[:fractional_second_precision][start_index] = r0 r0 end
_nt_interval_expression()
click to toggle source
# File lib/oracle-sql-parser/grammar/expression/interval.rb, line 103 def _nt_interval_expression start_index = index if node_cache[:interval_expression].has_key?(index) cached = node_cache[:interval_expression][index] if cached node_cache[:interval_expression][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true @index = cached.interval.end end return cached end i0, s0 = index, [] if (match_len = has_terminal?('(', false, index)) r1 = true @index += match_len else terminal_parse_failure('\'(\'') r1 = nil end 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_not_loop_sql_expression s0 << r4 if r4 r6 = _nt_space if r6 r5 = r6 else r5 = instantiate_node(SyntaxNode,input, index...index) end s0 << r5 if r5 if (match_len = has_terminal?('-', false, index)) r7 = true @index += match_len else terminal_parse_failure('\'-\'') r7 = nil end s0 << r7 if r7 r9 = _nt_space if r9 r8 = r9 else r8 = instantiate_node(SyntaxNode,input, index...index) end s0 << r8 if r8 r10 = _nt_expr s0 << r10 if r10 r12 = _nt_space if r12 r11 = r12 else r11 = instantiate_node(SyntaxNode,input, index...index) end s0 << r11 if r11 if (match_len = has_terminal?(')', false, index)) r13 = true @index += match_len else terminal_parse_failure('\')\'') r13 = nil end s0 << r13 if r13 i14 = index i15, s15 = index, [] r17 = _nt_space if r17 r16 = r17 else r16 = instantiate_node(SyntaxNode,input, index...index) end s15 << r16 if r16 r18 = _nt_day_keyword s15 << r18 if r18 i20, s20 = index, [] r22 = _nt_space if r22 r21 = r22 else r21 = instantiate_node(SyntaxNode,input, index...index) end s20 << r21 if r21 if (match_len = has_terminal?('(', false, index)) r23 = true @index += match_len else terminal_parse_failure('\'(\'') r23 = nil end s20 << r23 if r23 r25 = _nt_space if r25 r24 = r25 else r24 = instantiate_node(SyntaxNode,input, index...index) end s20 << r24 if r24 r26 = _nt_leading_field_precision s20 << r26 if r26 r28 = _nt_space if r28 r27 = r28 else r27 = instantiate_node(SyntaxNode,input, index...index) end s20 << r27 if r27 if (match_len = has_terminal?(')', false, index)) r29 = true @index += match_len else terminal_parse_failure('\')\'') r29 = nil end s20 << r29 end end end end end if s20.last r20 = instantiate_node(SyntaxNode,input, i20...index, s20) r20.extend(IntervalExpression0) else @index = i20 r20 = nil end if r20 r19 = r20 else r19 = instantiate_node(SyntaxNode,input, index...index) end s15 << r19 if r19 r31 = _nt_space if r31 r30 = r31 else r30 = instantiate_node(SyntaxNode,input, index...index) end s15 << r30 if r30 r32 = _nt_to_keyword s15 << r32 if r32 r34 = _nt_space if r34 r33 = r34 else r33 = instantiate_node(SyntaxNode,input, index...index) end s15 << r33 if r33 r35 = _nt_second_keyword s15 << r35 if r35 i37, s37 = index, [] r39 = _nt_space if r39 r38 = r39 else r38 = instantiate_node(SyntaxNode,input, index...index) end s37 << r38 if r38 if (match_len = has_terminal?('(', false, index)) r40 = true @index += match_len else terminal_parse_failure('\'(\'') r40 = nil end s37 << r40 if r40 r42 = _nt_space if r42 r41 = r42 else r41 = instantiate_node(SyntaxNode,input, index...index) end s37 << r41 if r41 r43 = _nt_fractional_second_precision s37 << r43 if r43 r45 = _nt_space if r45 r44 = r45 else r44 = instantiate_node(SyntaxNode,input, index...index) end s37 << r44 if r44 if (match_len = has_terminal?(')', false, index)) r46 = true @index += match_len else terminal_parse_failure('\')\'') r46 = nil end s37 << r46 end end end end end if s37.last r37 = instantiate_node(SyntaxNode,input, i37...index, s37) r37.extend(IntervalExpression1) else @index = i37 r37 = nil end if r37 r36 = r37 else r36 = instantiate_node(SyntaxNode,input, index...index) end s15 << r36 end end end end end end end if s15.last r15 = instantiate_node(SyntaxNode,input, i15...index, s15) r15.extend(IntervalExpression2) else @index = i15 r15 = nil end if r15 r15 = SyntaxNode.new(input, (index-1)...index) if r15 == true r14 = r15 else i47, s47 = index, [] r49 = _nt_space if r49 r48 = r49 else r48 = instantiate_node(SyntaxNode,input, index...index) end s47 << r48 if r48 r50 = _nt_year_keyword s47 << r50 if r50 i52, s52 = index, [] r54 = _nt_space if r54 r53 = r54 else r53 = instantiate_node(SyntaxNode,input, index...index) end s52 << r53 if r53 if (match_len = has_terminal?('(', false, index)) r55 = true @index += match_len else terminal_parse_failure('\'(\'') r55 = nil end s52 << r55 if r55 r57 = _nt_space if r57 r56 = r57 else r56 = instantiate_node(SyntaxNode,input, index...index) end s52 << r56 if r56 r58 = _nt_leading_field_precision s52 << r58 if r58 r60 = _nt_space if r60 r59 = r60 else r59 = instantiate_node(SyntaxNode,input, index...index) end s52 << r59 if r59 if (match_len = has_terminal?(')', false, index)) r61 = true @index += match_len else terminal_parse_failure('\')\'') r61 = nil end s52 << r61 end end end end end if s52.last r52 = instantiate_node(SyntaxNode,input, i52...index, s52) r52.extend(IntervalExpression3) else @index = i52 r52 = nil end if r52 r51 = r52 else r51 = instantiate_node(SyntaxNode,input, index...index) end s47 << r51 if r51 r63 = _nt_space if r63 r62 = r63 else r62 = instantiate_node(SyntaxNode,input, index...index) end s47 << r62 if r62 r64 = _nt_to_keyword s47 << r64 if r64 r66 = _nt_space if r66 r65 = r66 else r65 = instantiate_node(SyntaxNode,input, index...index) end s47 << r65 if r65 r67 = _nt_month_keyword s47 << r67 end end end end end end if s47.last r47 = instantiate_node(SyntaxNode,input, i47...index, s47) r47.extend(IntervalExpression4) else @index = i47 r47 = nil end if r47 r47 = SyntaxNode.new(input, (index-1)...index) if r47 == true r14 = r47 else @index = i14 r14 = nil end end s0 << r14 end end end end end end end end end if s0.last r0 = instantiate_node(SyntaxNode,input, i0...index, s0) r0.extend(IntervalExpression5) r0.extend(IntervalExpression6) else @index = i0 r0 = nil end node_cache[:interval_expression][start_index] = r0 r0 end
_nt_leading_field_precision()
click to toggle source
# File lib/oracle-sql-parser/grammar/expression/interval.rb, line 508 def _nt_leading_field_precision start_index = index if node_cache[:leading_field_precision].has_key?(index) cached = node_cache[:leading_field_precision][index] if cached node_cache[:leading_field_precision][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true @index = cached.interval.end end return cached end if has_terminal?(@regexps[gr = '\A[0-9]'] ||= Regexp.new(gr), :regexp, index) r0 = instantiate_node(SyntaxNode,input, index...(index + 1)) r0.extend(LeadingFieldPrecision0) r0.extend(LeadingFieldPrecision0) @index += 1 else terminal_parse_failure('[0-9]') r0 = nil end node_cache[:leading_field_precision][start_index] = r0 r0 end
root()
click to toggle source
# File lib/oracle-sql-parser/grammar/expression/interval.rb, line 8 def root @root ||= :interval_expression end