/**
* {@inheritDoc}
*/
- internal override void process_comments (Settings settings, DocumentationParser parser) {
+ internal override void parse_comments (Settings settings, DocumentationParser parser) {
if (documentation != null) {
return ;
}
documentation = parser.parse (this, source_comment);
}
- base.process_comments (settings, parser);
+ base.parse_comments (settings, parser);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ internal override void check_comments (Settings settings, DocumentationParser parser) {
+ if (documentation != null) {
+ parser.check (this, documentation);
+ }
+
+ base.check_comments (settings, parser);
}
/**
/**
* {@inheritDoc}
*/
- internal override void process_comments (Settings settings, DocumentationParser parser) {
+ internal override void parse_comments (Settings settings, DocumentationParser parser) {
if (documentation != null) {
return ;
}
documentation = parser.parse (this, source_comment);
}
- base.process_comments (settings, parser);
+ base.parse_comments (settings, parser);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ internal override void check_comments (Settings settings, DocumentationParser parser) {
+ if (documentation != null) {
+ parser.check (this, documentation);
+ }
+
+ base.check_comments (settings, parser);
}
/**
this.data = data;
}
- internal virtual void process_comments (Settings settings, DocumentationParser parser) {
+ internal virtual void parse_comments (Settings settings, DocumentationParser parser) {
}
+ internal virtual void check_comments (Settings settings, DocumentationParser parser) {
+ }
+
+
/**
* The signature of this item.
*/
this.source_comment = comment;
}
- internal override void process_comments (Settings settings, DocumentationParser parser) {
+
+ /**
+ * {@inheritDoc}
+ */
+ internal override void parse_comments (Settings settings, DocumentationParser parser) {
if (documentation != null) {
return ;
}
documentation = parser.parse (this, source_comment);
}
- base.process_comments (settings, parser);
+ base.parse_comments (settings, parser);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ internal override void check_comments (Settings settings, DocumentationParser parser) {
+ if (documentation != null) {
+ parser.check (this, documentation);
+ }
+
+ base.check_comments (settings, parser);
}
}
this.source_comment = comment;
}
+
/**
* {@inheritDoc}
*/
- internal override void process_comments (Settings settings, DocumentationParser parser) {
+ internal override void parse_comments (Settings settings, DocumentationParser parser) {
if (documentation != null) {
return ;
}
documentation = parser.parse (this, source_comment);
}
- base.process_comments (settings, parser);
+ base.parse_comments (settings, parser);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ internal override void check_comments (Settings settings, DocumentationParser parser) {
+ if (documentation != null) {
+ parser.check (this, documentation);
+ }
+
+ base.check_comments (settings, parser);
}
+
/**
* {@inheritDoc}
*/
/**
* {@inheritDoc}
*/
- internal override void process_comments (Settings settings, DocumentationParser parser) {
+ internal override void parse_comments (Settings settings, DocumentationParser parser) {
do_document = true;
foreach (Node node in per_name_children.values) {
if (node.is_browsable (settings)) {
- node.process_comments (settings, parser);
+ node.parse_comments (settings, parser);
}
}
}
+ /**
+ * {@inheritDoc}
+ */
+ internal override void check_comments (Settings settings, DocumentationParser parser) {
+
+ foreach (Node node in per_name_children.values) {
+ if (node.is_browsable (settings)) {
+ node.check_comments (settings, parser);
+ }
+ }
+ }
+
+
/**
* Specifies whether this node has at least one visible child with the given type
*
/**
* {@inheritDoc}
*/
- internal override void process_comments (Settings settings, DocumentationParser parser) {
+ internal override void parse_comments (Settings settings, DocumentationParser parser) {
if (getter != null && getter.is_browsable (settings)) {
- getter.process_comments (settings, parser);
+ getter.parse_comments (settings, parser);
}
if (setter != null && setter.is_browsable (settings)) {
- setter.process_comments (settings, parser);
+ setter.parse_comments (settings, parser);
}
- base.process_comments (settings, parser);
+ base.parse_comments (settings, parser);
}
+ /**
+ * {@inheritDoc}
+ */
+ internal override void check_comments (Settings settings, DocumentationParser parser) {
+ if (getter != null && getter.is_browsable (settings)) {
+ getter.check_comments (settings, parser);
+ }
+
+ if (setter != null && setter.is_browsable (settings)) {
+ setter.check_comments (settings, parser);
+ }
+
+ base.check_comments (settings, parser);
+ }
+
+
/**
* {@inheritDoc}
*/
* Represents a source file
*/
public class Valadoc.Api.SourceFile : Object {
+
public Package package {
private set;
get;
private Settings settings;
private ErrorReporter reporter;
private CTypeResolver _cresolver = null;
+ private Package _source_package;
public void add_package(Package package) {
this.packages.add (package);
}
private Package? get_source_package () {
- foreach (Package pkg in packages) {
- if (!pkg.is_package) {
- return pkg;
+ if (_source_package == null) {
+ foreach (Package pkg in packages) {
+ if (!pkg.is_package) {
+ _source_package = pkg;
+ break;
+ }
}
}
- return null;
+ return _source_package;
+ }
+
+ public void process_comments (DocumentationParser docparser) {
+ parse_comments (docparser);
+ check_comments (docparser);
}
- private void process_wiki (DocumentationParser docparser) {
- this.wikitree = new WikiPageTree(reporter, settings);
+ private void parse_wiki (DocumentationParser docparser) {
+ this.wikitree = new WikiPageTree ();
var pkg = get_source_package ();
if (pkg != null) {
- wikitree.create_tree (docparser, pkg, reporter);
+ wikitree.parse (settings, docparser, pkg, reporter);
}
}
- public void process_comments (DocumentationParser docparser) {
- process_wiki (docparser);
+ private void check_wiki (DocumentationParser docparser) {
+ var pkg = get_source_package ();
+ if (pkg != null) {
+ wikitree.check (settings, docparser, pkg);
+ }
+ }
+
+ private void parse_comments (DocumentationParser docparser) {
+ parse_wiki (docparser);
foreach (Package pkg in this.packages) {
if (pkg.is_browsable (settings)) {
- pkg.process_comments (settings, docparser);
+ pkg.parse_comments (settings, docparser);
}
}
+ }
+
+ private void check_comments (DocumentationParser docparser) {
+ check_wiki (docparser);
+
+ foreach (Package pkg in this.packages) {
+ if (pkg.is_browsable (settings)) {
+ pkg.check_comments (settings, docparser);
+ }
+ }
+
- // parse inherited non-public comments
+ // Parse & check inherited non-public comments:
while (!this.unbrowsable_documentation_dependencies.is_empty) {
var node = this.unbrowsable_documentation_dependencies.poll_head ();
- node.process_comments (settings, docparser);
+ node.parse_comments (settings, docparser);
+ node.check_comments (settings, docparser);
}
}
/**
* {@inheritDoc}
*/
- internal override void process_comments (Settings settings, DocumentationParser parser) {
+ internal override void parse_comments (Settings settings, DocumentationParser parser) {
if (documentation != null) {
return ;
}
documentation = parser.parse (this, source_comment);
}
- base.process_comments (settings, parser);
+ base.parse_comments (settings, parser);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ internal override void check_comments (Settings settings, DocumentationParser parser) {
+ if (documentation != null) {
+ parser.check (this, documentation);
+ }
+
+ base.check_comments (settings, parser);
}
}
public Gee.List<Taglet> taglets { get { return _taglets; } }
private Gee.List<Taglet> _taglets;
+ private bool checked = false;
+
+
internal Comment () {
base ();
_taglets = new ArrayList<Taglet> ();
public override void check (Api.Tree api_root, Api.Node container, string file_path,
ErrorReporter reporter, Settings settings)
{
+ if (checked == true) {
+ return ;
+ }
+
+ checked = true;
+
+
base.check (api_root, container, file_path, reporter, settings);
foreach (Taglet element in _taglets) {
public class Valadoc.Content.Page : BlockContent {
+ private bool checked = false;
+
+
internal Page () {
base ();
}
visitor.visit_page (this);
}
+ public override void check (Api.Tree api_root, Api.Node container, string file_path,
+ ErrorReporter reporter, Settings settings)
+ {
+ if (checked == true) {
+ return ;
+ }
+
+ checked = true;
+
+
+ base.check (api_root, container, file_path, reporter, settings);
+ }
+
public override ContentElement copy (ContentElement? new_parent = null) {
assert (new_parent == null);
{
try {
Comment doc_comment = parse_comment (content, filename, first_line, first_column);
- doc_comment.check (_tree, element, filename, _reporter, _settings);
return doc_comment;
} catch (ParserError error) {
return null;
}
}
- public Page? parse_wikipage (WikiPage page, Api.Package pkg) {
+ public Page? parse_wikipage (Api.Package pkg, WikiPage page) {
if (page.documentation != null) {
return page.documentation;
}
try {
Page documentation = parse_wiki (page.documentation_str, page.get_filename ());
- documentation.check (_tree, pkg, page.path, _reporter, _settings);
return documentation;
} catch (ParserError error) {
return null;
return (Page) pop ();
}
+ public void check (Api.Node element, Comment comment) {
+ comment.check (_tree, element, element.get_source_file ().get_name (), _reporter, _settings);
+ }
+
+ public void check_wikipage (Api.Package package, Page page) {
+ page.check (_tree, package, package.get_source_file ().get_name (), _reporter, _settings);
+ }
+
private GirMetaData get_metadata_for_comment (Api.GirSourceComment gir_comment) {
GirMetaData metadata = metadata.get (gir_comment.file);
if (metadata != null) {
first = false;
}
- comment.check (tree, element, gir_comment.file.relative_path, reporter, settings);
return comment;
}
}
- cmnt.check (_tree, element, gir_comment.file.relative_path, _reporter, _settings);
-
this.metadata = null;
this.gir_comment = null;
this.element = element;
using Gee;
+
public class Valadoc.WikiPage : Object, Documentation {
public Content.Page documentation {
protected set;
}
}
- public bool parse (DocumentationParser docparser, Api.Package pkg) {
- documentation = docparser.parse_wikipage (this, pkg);
- return true;
+ public void parse (DocumentationParser docparser, Api.Package pkg) {
+ documentation = docparser.parse_wikipage (pkg, this);
+ }
+
+ public void check (DocumentationParser docparser, Api.Package pkg) {
+ docparser.check_wikipage (pkg, documentation);
}
}
public class Valadoc.WikiPageTree : Object {
private ArrayList<WikiPage> wikipages;
- private ErrorReporter reporter;
- private Settings settings;
- //TODO: reporter, settings -> create_tree
- public WikiPageTree (ErrorReporter reporter, Settings settings) {
- this.reporter = reporter;
- this.settings = settings;
+
+ public WikiPageTree () {
}
public Collection<WikiPage> get_pages () {
}
private void create_tree_from_path (DocumentationParser docparser, Api.Package package,
- ErrorReporter reporer, string path, string? nameoffset = null)
+ ErrorReporter reporter, string path, string? nameoffset = null)
{
try {
Dir dir = Dir.open (path);
}
}
- public void create_tree (DocumentationParser docparser, Api.Package package, ErrorReporter reporer) {
- weak string path = this.settings.wiki_directory;
+ public void parse (Settings settings, DocumentationParser docparser, Api.Package package, ErrorReporter reporter) {
+ weak string path = settings.wiki_directory;
if (path == null) {
- return;
+ return ;
}
this.wikipages = new ArrayList<WikiPage> ();
page.parse (docparser, package);
}
}
+
+ public void check (Settings settings, DocumentationParser docparser, Api.Package pkg) {
+ if (this.wikipages == null) {
+ return ;
+ }
+
+ foreach (WikiPage page in this.wikipages) {
+ page.check (docparser, pkg);
+ }
+ }
}