method
parse_method_or_yield_parameters
v2_2_9 -
Show latest stable
- Class:
RDoc::Parser::Ruby
parse_method_or_yield_parameters(method = nil, modifiers = RDoc::METHOD_MODIFIERS)public
Extracts yield parameters from method
# File lib/rdoc/parser/ruby.rb, line 1479
def parse_method_or_yield_parameters(method = nil,
modifiers = RDoc::METHOD_MODIFIERS)
skip_tkspace false
tk = get_tk
end_token = get_end_token tk
return '' unless end_token
nest = 0
loop do
case tk
when TkSEMICOLON then
break if nest == 0
when TkLBRACE, TkfLBRACE then
nest += 1
when TkRBRACE then
nest -= 1
if nest <= 0
# we might have a.each { |i| yield i }
unget_tk(tk) if nest < 0
break
end
when TkLPAREN, TkfLPAREN then
nest += 1
when end_token then
if end_token == TkRPAREN
nest -= 1
break if nest <= 0
else
break unless @scanner.continue
end
when TkRPAREN then
nest -= 1
when method && method.block_params.nil? && TkCOMMENT then
unget_tk tk
read_documentation_modifiers method, modifiers
@read.pop
when TkCOMMENT then
@read.pop
when nil then
break
end
tk = get_tk
end
get_tkread_clean(/\s+/, ' ')
end Related methods
- Instance methods
- collect_first_comment
- consume_trailing_spaces
- create_attr
- create_module_alias
- error
- get_bool
- get_class_or_module
- get_class_specification
- get_constant
- get_constant_with_optional_parens
- get_end_token
- get_method_container
- get_symbol_or_name
- get_tkread_clean
- get_visibility_information
- look_for_directives_in
- make_message
- new_comment
- parse_alias
- parse_attr
- parse_attr_accessor
- parse_call_parameters
- parse_class
- parse_class_regular
- parse_class_singleton
- parse_comment
- parse_comment_attr
- parse_comment_ghost
- parse_comment_tomdoc
- parse_constant
- parse_constant_body
- parse_extend_or_include
- parse_identifier
- parse_meta_attr
- parse_meta_method
- parse_meta_method_name
- parse_meta_method_params
- parse_method
- parse_method_dummy
- parse_method_name
- parse_method_name_regular
- parse_method_name_singleton
- parse_method_or_yield_parameters
- parse_method_parameters
- parse_method_params_and_body
- parse_module
- parse_require
- parse_rescue
- parse_statements
- parse_symbol_arg
- parse_symbol_arg_paren
- parse_symbol_arg_space
- parse_symbol_in_arg
- parse_top_level_statements
- parse_visibility
- parse_yield
- read_directive
- read_documentation_modifiers
- record_location
- remove_private_comments
- scan
- skip_for_variable
- skip_method
- skip_optional_do_after_expression
- skip_tkspace_comment
- stop_at_EXPR_END
- suppress_parents
- update_visibility
- warn
- Class methods
- new