method
skip_optional_do_after_expression
v1_8_7_330 -
Show latest stable
- Class:
RDoc::RubyParser
skip_optional_do_after_expression()private
while, until, and for have an optional
# File lib/rdoc/parsers/parse_rb.rb, line 2088
def skip_optional_do_after_expression
skip_tkspace(false)
tk = get_tk
case tk
when TkLPAREN, TkfLPAREN
end_token = TkRPAREN
else
end_token = TkNL
end
nest = 0
@scanner.instance_eval{@continue = false}
loop do
puts("\nWhile: #{tk}, #{@scanner.continue} " +
"#{@scanner.lex_state} #{nest}") if $DEBUG
case tk
when TkSEMICOLON
break
when TkLPAREN, TkfLPAREN
nest += 1
when TkDO
break if nest.zero?
when end_token
if end_token == TkRPAREN
nest -= 1
break if @scanner.lex_state == EXPR_END and nest.zero?
else
break unless @scanner.continue
end
end
tk = get_tk
end
skip_tkspace(false)
if peek_tk.kind_of? TkDO
get_tk
end
end Related methods
- Instance methods
- scan
- Class methods
- new
- Private methods
-
add_token_listener -
collect_first_comment -
error -
get_bool -
get_class_or_module -
get_class_specification -
get_constant -
get_constant_with_optional_parens -
get_symbol_or_name -
get_tk -
get_tkread -
look_for_directives_in -
make_message -
parse_alias -
parse_attr -
parse_attr_accessor -
parse_call_parameters -
parse_class -
parse_constant -
parse_include -
parse_method -
parse_method_or_yield_parameters -
parse_method_parameters -
parse_module -
parse_require -
parse_statements -
parse_symbol_arg -
parse_symbol_in_arg -
parse_toplevel_statements -
parse_visibility -
parse_yield -
parse_yield_parameters -
peek_read -
peek_tk -
progress -
read_directive -
read_documentation_modifiers -
remove_private_comments -
remove_token_listener -
skip_for_variable -
skip_method -
skip_optional_do_after_expression -
skip_tkspace -
skip_tkspace_comment -
unget_tk -
warn