221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
|
# File 'lib/duby/transform.rb', line 221
def transform(transformer, parent)
Arguments.new(parent, position) do |args_node|
arg_list = args.child_nodes.map do |node|
if !node.respond_to?(:type_node) || node.type_node.respond_to?(:type_reference)
RequiredArgument.new(args_node, node.position, node.name)
else
OptionalArgument.new(args_node, node.position, node.name) {|opt_arg| [transformer.transform(node, opt_arg)]}
end
end if args
opt_list = optional.child_nodes.map do |node|
OptionalArgument.new(args_node, node.position) {|opt_arg| [transformer.transform(node, opt_arg)]}
end if false && optional
rest_arg = RestArgument.new(args_node, rest.position, rest.name) if rest
block_arg = BlockArgument.new(args_node, block.position, block.name) if block
[arg_list, opt_list, rest_arg, block_arg]
end
end
|