api/typereference.vala \
api/typesymbol.vala \
api/visitor.vala \
- api/driver.vala \
content/block.vala \
content/blockcontent.vala \
content/comment.vala \
+++ /dev/null
-/* driver.vala
- *
- * Copyright (C) 2011 Florian Brosch
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *
- * Author:
- * Florian Brosch <flo.brosch@gmail.com>
- */
-
-
-using Valadoc.Api;
-
-/**
- * A plugin register function for drivers
- *
- * @see ModuleLoader
- */
-[CCode (has_target = false)]
-public delegate Type Valadoc.DriverRegisterFunction (ModuleLoader module_loader);
-
-
-
-public interface Valadoc.Driver : Object {
- public abstract void write_gir (Settings settings, ErrorReporter reporter);
-
- public abstract Api.Tree? build (Settings settings, ErrorReporter reporter);
-}
-
-
bin_PROGRAMS = valadoc
valadoc_VALASOURCES = \
- driver.vala \
girwriter.vala \
initializerbuilder.vala \
symbolresolver.vala \
+++ /dev/null
-/* driver.vala
- *
- * Copyright (C) 2011 Florian Brosch
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *
- * Author:
- * Florian Brosch <flo.brosch@gmail.com>
- */
-
-
-using Valadoc.Api;
-
-/**
- * Creates an simpler, minimized, more abstract AST for valacs AST.
- */
-public class Valadoc.Drivers.Driver : Object, Valadoc.Driver {
- private SymbolResolver resolver;
- private Api.Tree? tree;
-
- public void write_gir (Settings settings, ErrorReporter reporter) {
- var gir_writer = new Drivers.GirWriter (resolver);
-
- // put .gir file in current directory unless -d has been explicitly specified
- string gir_directory = ".";
- if (settings.gir_directory != null) {
- gir_directory = settings.gir_directory;
- }
-
- gir_writer.write_file (tree.context,
- gir_directory,
- "%s-%s.gir".printf (settings.gir_namespace, settings.gir_version),
- settings.gir_namespace,
- settings.gir_version,
- settings.pkg_name);
- }
-
- public Api.Tree? build (Settings settings, ErrorReporter reporter) {
- TreeBuilder builder = new TreeBuilder ();
- tree = builder.build (settings, reporter);
- if (reporter.errors > 0) {
- return null;
- }
-
- resolver = new SymbolResolver (builder);
- tree.accept (resolver);
-
- return tree;
- }
-}
-
-
-public Type register_plugin (Valadoc.ModuleLoader module_loader) {
- return typeof (Valadoc.Drivers.Driver);
-}
-
/**
* Code visitor generating .gir file for the public interface.
*/
-public class Valadoc.Drivers.GirWriter : Vala.GIRWriter {
+public class Valadoc.GirWriter : Vala.GIRWriter {
private GtkdocRenderer renderer;
private SymbolResolver resolver;
using Valadoc.Api;
-public class Valadoc.Drivers.SymbolResolver : Visitor {
+public class Valadoc.SymbolResolver : Visitor {
private Vala.HashMap<Vala.Symbol, Symbol> symbol_map;
private Valadoc.Api.Class glib_error;
private Api.Tree root;
driver_VALASOURCES = \
drivers/driver-test.vala \
drivers/generic-api-test.vala \
- $(top_srcdir)/valadoc/driver.vala \
$(top_srcdir)/valadoc/girwriter.vala \
$(top_srcdir)/valadoc/initializerbuilder.vala \
$(top_srcdir)/valadoc/symbolresolver.vala \
driver.vala.stamp \
drivers/driver-test.c \
drivers/generic-api-test.c \
- driver.c \
girwriter.c \
initializerbuilder.c \
symbolresolver.c \
settings.path = "out";
- var driver = new Valadoc.Drivers.Driver ();
- assert (driver != null);
-
-
- Api.Tree? doctree = driver.build (settings, reporter);
+ TreeBuilder builder = new TreeBuilder ();
+ Api.Tree? doctree = builder.build (settings, reporter);
assert (reporter.errors == 0);
assert (doctree != null);
+ SymbolResolver resolver = new SymbolResolver (builder);
+ doctree.accept (resolver);
bool tmp = doctree.create_tree ();
/**
* Creates an simpler, minimized, more abstract AST for valacs AST.
*/
-public class Valadoc.Drivers.TreeBuilder : Vala.CodeVisitor {
+public class Valadoc.TreeBuilder : Vala.CodeVisitor {
private Vala.ArrayList<PackageMetaData> packages = new Vala.ArrayList<PackageMetaData> ();
private PackageMetaData source_package;
settings.alternative_resource_dirs = alternative_resource_dirs;
- var driver = new Valadoc.Drivers.Driver ();
-
// load plugins:
Doclet? doclet = null;
ModuleLoader? modules = create_module_loader (reporter, out doclet);
}
// Create tree:
- Valadoc.Api.Tree doctree = driver.build (settings, reporter);
+ TreeBuilder builder = new TreeBuilder ();
+ Valadoc.Api.Tree doctree = builder.build (settings, reporter);
if (reporter.errors > 0) {
doclet = null;
return quit (reporter);
}
+ SymbolResolver resolver = new SymbolResolver (builder);
+ doctree.accept (resolver);
// register child symbols:
Valadoc.Api.ChildSymbolRegistrar registrar = new Valadoc.Api.ChildSymbolRegistrar ();
}
if (ValaDoc.gir_name != null) {
- driver.write_gir (settings, reporter);
+ var gir_writer = new GirWriter (resolver);
+ gir_writer.write_file (doctree.context,
+ settings.gir_directory,
+ "%s-%s.gir".printf (settings.gir_namespace, settings.gir_version),
+ settings.gir_namespace,
+ settings.gir_version,
+ settings.pkg_name);
if (reporter.errors > 0) {
return quit (reporter);
}