summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/rdoc/parsers/parse_c.rb21
-rw-r--r--lib/rdoc/parsers/parse_rb.rb12
2 files changed, 24 insertions, 9 deletions
diff --git a/lib/rdoc/parsers/parse_c.rb b/lib/rdoc/parsers/parse_c.rb
index d491e3d..d97e08b 100644
--- a/lib/rdoc/parsers/parse_c.rb
+++ b/lib/rdoc/parsers/parse_c.rb
@@ -44,6 +44,27 @@
#
# C classes can be diagramed (see /tc/dl/ruby/ruby/error.c), and RDoc
# integrates C and Ruby source into one tree
+ #
+ # The comment blocks may include special direcives:
+ #
+ # [Document-class: <i>name</i>]
+ # This comment block is documentation for the given class. Use this
+ # when the <tt>Init_xxx</tt> method is not named after the class.
+ #
+ # [Document-method: <i>name</i>]
+ # This comment documents the named method. Use when RDoc cannot outomatically
+ # find the method from it's declaration
+ #
+ # [call-seq: <i>text up to an empty line</i>]
+ # Because C source doesn't give descripive names to Ruby-level parameters,
+ # you need to document the calling sequence explicitly
+ #
+ # In additon, RDoc assumes by default that the C method implementing a
+ # Ruby function is in the same source file as the rb_define_method call.
+ # If this isn't the case, add the comment
+ #
+ # rb_define_method(....); // in: filename
+ #
# Classes and modules built in to the interpreter. We need
# these to define superclasses of user objects
diff --git a/lib/rdoc/parsers/parse_rb.rb b/lib/rdoc/parsers/parse_rb.rb
index 472da55..413167a 100644
--- a/lib/rdoc/parsers/parse_rb.rb
+++ b/lib/rdoc/parsers/parse_rb.rb
@@ -1999,10 +1999,6 @@ module RDoc
break
when TkLBRACE
nest += 1
- when TkLBRACE
- nest += 1
- when TkLBRACE
- nest += 1
when TkRBRACE
nest -= 1
break if nest <= 0
@@ -2045,8 +2041,7 @@ module RDoc
"#{@scanner.lex_state} #{nest}") if $DEBUG
case tk
when TkSEMICOLON
- nest -= 1
- break if nest <= 0
+ break
when TkLPAREN, TkfLPAREN
nest += 1
when TkDO
@@ -2117,8 +2112,7 @@ module RDoc
"#{@scanner.lex_state} #{nest}") if $DEBUG
case tk
when TkSEMICOLON
- nest -= 1
- break if nest <= 0
+ break
when TkLPAREN, TkfLPAREN
nest += 1
when end_token
@@ -2313,13 +2307,13 @@ module RDoc
skip_tkspace
new_name = get_symbol_or_name
@scanner.instance_eval{@lex_state = EXPR_FNAME}
-
skip_tkspace
if (peek_tk.kind_of? TkCOMMA)
get_tk
skip_tkspace
end
old_name = get_symbol_or_name
+
al = Alias.new(get_tkread, old_name, new_name, comment)
read_documentation_modifiers(al, ATTR_MODIFIERS)
if al.document_self