diff options
Diffstat (limited to 'lib/rdoc/parsers/parse_rb.rb')
-rw-r--r-- | lib/rdoc/parsers/parse_rb.rb | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/lib/rdoc/parsers/parse_rb.rb b/lib/rdoc/parsers/parse_rb.rb index 8a23b6881..bd2414826 100644 --- a/lib/rdoc/parsers/parse_rb.rb +++ b/lib/rdoc/parsers/parse_rb.rb @@ -1675,7 +1675,15 @@ module RDoc "line #{tk.line_no}" if $DEBUG skip_optional_do_after_expression - when TkCASE, TkDO, TkIF, TkUNLESS, TkBEGIN, TkFOR + # 'for' is trickier + when TkFOR + nest += 1 + puts "FOUND #{tk.class} in #{container.name}, nest = #{nest}, " + + "line #{tk.line_no}" if $DEBUG + skip_for_variable + skip_optional_do_after_expression + + when TkCASE, TkDO, TkIF, TkUNLESS, TkBEGIN nest += 1 puts "Found #{tk.class} in #{container.name}, nest = #{nest}, " + "line #{tk.line_no}" if $DEBUG @@ -2046,6 +2054,15 @@ module RDoc res end + # skip the var [in] part of a 'for' statement + def skip_for_variable + skip_tkspace(false) + tk = get_tk + skip_tkspace(false) + tk = get_tk + unget_tk(tk) unless tk.kind_of?(TkIN) + end + # while, until, and for have an optional def skip_optional_do_after_expression skip_tkspace(false) |