Skip to content

Commit 4338a8a

Browse files
committed
nits: Extract to prepare_argument_parts
1 parent 8432a5e commit 4338a8a

File tree

1 file changed

+25
-14
lines changed
  • _tools/ruby_h_to_go/lib/ruby_header_parser

1 file changed

+25
-14
lines changed

_tools/ruby_h_to_go/lib/ruby_header_parser/parser.rb

Lines changed: 25 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -291,20 +291,7 @@ def generate_argument_definition(function_name:, arg:, arg_pos:)
291291
# - pointer [Symbol]
292292
# - length [Integer]
293293
def analyze_argument_type(function_name:, arg_pos:, parts:)
294-
pointer = nil
295-
length = 0
296-
297-
if parts[-1] =~ /\[([0-9]+)?\]$/
298-
parts[-1].gsub!(/\[([0-9]+)?\]$/, "")
299-
length = ::Regexp.last_match(1).to_i
300-
pointer = :array
301-
end
302-
303-
unless parts[-1] =~ /^[0-9a-zA-Z_]+$/
304-
# last elements isn't dummy argument
305-
parts << "arg#{arg_pos}"
306-
end
307-
294+
pointer, length = prepare_argument_parts(arg_pos:, parts:)
308295
original_type = Util.sanitize_type(parts[0...-1].join(" "))
309296

310297
case original_type
@@ -326,6 +313,30 @@ def analyze_argument_type(function_name:, arg_pos:, parts:)
326313
[type, pointer, length]
327314
end
328315

316+
# @param arg_pos [Integer]
317+
# @param parts [Array<String>]
318+
#
319+
# @return [Array<Symbol, Integer>]
320+
# - pointer [Symbol,nil]
321+
# - length [Integer]
322+
def prepare_argument_parts(parts:, arg_pos:)
323+
pointer = nil
324+
length = 0
325+
326+
if parts[-1] =~ /\[([0-9]+)?\]$/
327+
parts[-1].gsub!(/\[([0-9]+)?\]$/, "")
328+
length = ::Regexp.last_match(1).to_i
329+
pointer = :array
330+
end
331+
332+
unless parts[-1] =~ /^[0-9a-zA-Z_]+$/
333+
# last elements isn't dummy argument
334+
parts << "arg#{arg_pos}"
335+
end
336+
337+
[pointer, length]
338+
end
339+
329340
# @param type [String]
330341
def pointer_length(type)
331342
type =~ /(\*+)$/

0 commit comments

Comments
 (0)