From: Florian Brosch Date: Wed, 8 Sep 2010 16:49:34 +0000 (+0200) Subject: libvaladoc/importer: Allow nodes without documentation in valadoc files X-Git-Tag: 0.37.1~3^2~422 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1d97c944314c7cf53a40c59dfee5cedf3b9d0ead;p=thirdparty%2Fvala.git libvaladoc/importer: Allow nodes without documentation in valadoc files --- diff --git a/src/libvaladoc/importer/valadocdocumentationimporter.vala b/src/libvaladoc/importer/valadocdocumentationimporter.vala index 5603b6e2a..ee6ef02c4 100644 --- a/src/libvaladoc/importer/valadocdocumentationimporter.vala +++ b/src/libvaladoc/importer/valadocdocumentationimporter.vala @@ -73,27 +73,33 @@ public class Valadoc.Importer.ValadocDocumentationImporter : DocumentationImport empty_lines }); - Rule documentation = Rule.seq ({ - TokenType.VALADOC_COMMENT_START.action ((token) => { _comment_location = token.end; }), - Rule.many ({ - Rule.one_of ({ - TokenType.ANY_WORD.action ((token) => { _comment.append (token.to_string ()); }), - TokenType.VALADOC_COMMENT_START.action ((token) => { _comment.append (token.to_string ()); }), - TokenType.VALADOC_SPACE.action ((token) => { _comment.append (token.to_string ()); }), - TokenType.VALADOC_TAB.action ((token) => { _comment.append (token.to_string ()); }), - TokenType.VALADOC_EOL.action ((token) => { _comment.append (token.to_string ()); }) - }) + Rule documentation = Rule.one_of ({ + Rule.seq ({ + TokenType.VALADOC_COMMENT_START.action ((token) => { _comment_location = token.end; }), + Rule.many ({ + Rule.one_of ({ + TokenType.ANY_WORD.action ((token) => { _comment.append (token.to_string ()); }), + TokenType.VALADOC_COMMENT_START.action ((token) => { _comment.append (token.to_string ()); }), + TokenType.VALADOC_SPACE.action ((token) => { _comment.append (token.to_string ()); }), + TokenType.VALADOC_TAB.action ((token) => { _comment.append (token.to_string ()); }), + TokenType.VALADOC_EOL.action ((token) => { _comment.append (token.to_string ()); }) + }) + }), + TokenType.VALADOC_COMMENT_END, + optional_empty_lines, + TokenType.ANY_WORD.action ((token) => { _cname = token.to_string (); }) + }) + .set_reduce (() => { + add_documentation (_cname, _comment, _filename, _comment_location); + _comment.erase (); + _cname = null; }), - TokenType.VALADOC_COMMENT_END, - optional_empty_lines, - TokenType.ANY_WORD.action ((token) => { _cname = token.to_string (); }) + + TokenType.ANY_WORD.action ((token) => { + add_documentation (token.to_string (), null, _filename, _comment_location); + }) }) - .set_name ("Documentation") - .set_reduce (() => { - add_documentation (_cname, _comment, _filename, _comment_location); - _comment.erase (); - _cname = null; - }); + .set_name ("Documentation"); Rule file = Rule.many ({ optional_empty_lines, @@ -105,7 +111,7 @@ public class Valadoc.Importer.ValadocDocumentationImporter : DocumentationImport _parser.set_root_rule (file); } - private void add_documentation (string symbol_name, StringBuilder comment, string filename, SourceLocation src_ref) { + private void add_documentation (string symbol_name, StringBuilder? comment, string filename, SourceLocation src_ref) { Api.Node? symbol = null; if (symbol_name.has_prefix ("c::")) { @@ -116,7 +122,10 @@ public class Valadoc.Importer.ValadocDocumentationImporter : DocumentationImport if (symbol == null) { reporter.simple_warning ("%s does not exist".printf (symbol_name)); - } else { + return ; + } + + if (comment != null) { var docu = _doc_parser.parse_comment_str (symbol, comment.str, filename, src_ref.line, src_ref.column); if (docu != null) { symbol.documentation = docu; @@ -136,4 +145,3 @@ public class Valadoc.Importer.ValadocDocumentationImporter : DocumentationImport } } -