module OracleSqlParser::Grammar::Expression::Function
Public Instance Methods
_nt_function_arg()
click to toggle source
# File lib/oracle-sql-parser/grammar/expression/function.rb, line 301 def _nt_function_arg start_index = index if node_cache[:function_arg].has_key?(index) cached = node_cache[:function_arg][index] if cached node_cache[:function_arg][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true @index = cached.interval.end end return cached end r0 = _nt_expr r0.extend(FunctionArg0) r0.extend(FunctionArg0) node_cache[:function_arg][start_index] = r0 r0 end
_nt_function_args()
click to toggle source
# File lib/oracle-sql-parser/grammar/expression/function.rb, line 217 def _nt_function_args start_index = index if node_cache[:function_args].has_key?(index) cached = node_cache[:function_args][index] if cached node_cache[:function_args][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true @index = cached.interval.end end return cached end i0, s0 = index, [] r1 = _nt_function_arg 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_function_arg s3 << r9 end end end if s3.last r3 = instantiate_node(SyntaxNode,input, i3...index, s3) r3.extend(FunctionArgs0) 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(FunctionArgs1) r0.extend(FunctionArgs2) else @index = i0 r0 = nil end node_cache[:function_args][start_index] = r0 r0 end
_nt_function_expression()
click to toggle source
# File lib/oracle-sql-parser/grammar/expression/function.rb, line 32 def _nt_function_expression start_index = index if node_cache[:function_expression].has_key?(index) cached = node_cache[:function_expression][index] if cached node_cache[:function_expression][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true @index = cached.interval.end end return cached end i0, s0 = index, [] r1 = _nt_function_name 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 r8 = _nt_function_args if r8 r7 = r8 else r7 = instantiate_node(SyntaxNode,input, index...index) end s0 << r7 if r7 r10 = _nt_space if r10 r9 = r10 else r9 = instantiate_node(SyntaxNode,input, index...index) end s0 << r9 if r9 if (match_len = has_terminal?(')', false, index)) r11 = true @index += match_len else terminal_parse_failure('\')\'') r11 = nil end s0 << r11 end end end end end end if s0.last r0 = instantiate_node(SyntaxNode,input, i0...index, s0) r0.extend(FunctionExpression0) r0.extend(FunctionExpression1) else @index = i0 r0 = nil end node_cache[:function_expression][start_index] = r0 r0 end
_nt_function_name()
click to toggle source
# File lib/oracle-sql-parser/grammar/expression/function.rb, line 132 def _nt_function_name start_index = index if node_cache[:function_name].has_key?(index) cached = node_cache[:function_name][index] if cached node_cache[:function_name][index] = 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_package_name s1 << r2 if r2 if (match_len = has_terminal?('.', false, index)) r3 = true @index += match_len else terminal_parse_failure('\'.\'') r3 = nil end s1 << r3 if r3 r4 = _nt_procedure_name s1 << r4 end end if s1.last r1 = instantiate_node(SyntaxNode,input, i1...index, s1) r1.extend(FunctionName0) else @index = i1 r1 = nil end if r1 r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true r0 = r1 r0.extend(FunctionName1) r0.extend(FunctionName1) else r5 = _nt_procedure_name if r5 r5 = SyntaxNode.new(input, (index-1)...index) if r5 == true r0 = r5 r0.extend(FunctionName1) r0.extend(FunctionName1) else @index = i0 r0 = nil end end node_cache[:function_name][start_index] = r0 r0 end
root()
click to toggle source
# File lib/oracle-sql-parser/grammar/expression/function.rb, line 8 def root @root ||= :function_expression end