+// valac TreeBuilder.vala --pkg libvala-0.24 --pkg posix -o /tmp/treebuilder
+public class MyReport : Vala.Report {
+
+ public override void err (Vala.SourceReference? source, string message) {
+ errors++;
+ if (source == null) {
+ stderr.printf ("My error: %s\n", message);
+ } else {
+ stderr.printf ("%s: My error: %s\n", source.to_string (), message);
+
+ //Vala.Report.report_source (source);
+
+ }
+ }
+
+
+}
public class TreeBuilder : Vala.CodeVisitor {
- private Vala.CodeContext create_valac_tree () {
+ public Vala.CodeContext create_valac_tree () {
// init context:
var context = new Vala.CodeContext ();
Vala.CodeContext.push (context);
context.report.enable_warnings = true;
context.metadata_directories = { };
context.gir_directories = {};
-
+ context.report = new MyReport();
context.basedir = Posix.realpath (".");
// return context;
//}
+ var testcode = new Vala.SourceFile (
+ context,
+ Vala.SourceFileType.SOURCE,
+ "/dev/null",
+ "void atest() {
+ var x = 1;
+ a++;
+ }"
+ );
+ context.add_source_file (testcode);
+
+
var source_file = new Vala.SourceFile (context,
Vala.SourceFileType.SOURCE,
- "/home/alan/gitlive/app.Builder/tests/TreeBuilder.vala");
+ "/home/alan/gitlive/app.Builder.js/tests/TreeBuilder.vala");
//if (source_package == null) {
//source_package = register_package (new Package (settings.pkg_name, false, null));
//register_source_file (source_package, source_file);
+ context.add_external_package ("glib-2.0");
+ context.add_external_package ("gobject-2.0");
+ context.add_external_package ("libvala-0.24");
+ context.add_external_package ("posix");
//if (context.profile == Vala.Profile.GOBJECT) {
// import the GLib namespace by default (namespace of backend-specific standard library)
var ns_ref = new Vala.UsingDirective (new Vala.UnresolvedSymbol (null, "GLib", null));
if (context.report.get_errors () > 0) {
return context;
}
+ return context;
}
//
// startpoint:
var a = new TreeBuilder();
a.create_valac_tree();
+ return 0;
}