From 77a9a95e8edf5967017f051d943a97639603d5e1 Mon Sep 17 00:00:00 2001 From: Alan Knowles Date: Thu, 25 Sep 2014 18:26:47 +0800 Subject: [PATCH] tests/TreeBuilder.vala --- tests/TreeBuilder.vala | 56 ++++++++++++++++++++++++++++++++++++++---- 1 file changed, 51 insertions(+), 5 deletions(-) diff --git a/tests/TreeBuilder.vala b/tests/TreeBuilder.vala index 231b566bf..3bd1067d6 100644 --- a/tests/TreeBuilder.vala +++ b/tests/TreeBuilder.vala @@ -2,10 +2,56 @@ public class TreeBuilder : Vala.CodeVisitor { - private ArrayList packages = new ArrayList (); - private PackageMetaData source_package; + + private Vala.CodeContext create_valac_tree (Settings settings) { + // init context: + var context = new Vala.CodeContext (); + Vala.CodeContext.push (context); + + context.experimental = false; + context.experimental_non_null = false; + context.vapi_directories = { "/usr/share/vala-0.24/vapi" }; + context.report.enable_warnings = true; + context.metadata_directories = { }; + context.gir_directories = {}; - private HashMap files = new HashMap (); - private HashMap symbol_map = new HashMap (); + if (settings.basedir == null) { + context.basedir = realpath ("."); + } else { + context.basedir = realpath (settings.basedir); + } - private ErrorReporter reporter; \ No newline at end of file + if (settings.directory != null) { + context.directory = realpath (settings.directory); + } else { + context.directory = context.basedir; + } + + + // add default packages: + if (settings.profile == "gobject-2.0" || settings.profile == "gobject" || settings.profile == null) { + context.profile = Vala.Profile.GOBJECT; + context.add_define ("GOBJECT"); + } + + Vala.Parser parser = new Vala.Parser (); + parser.parse (context); + gir_parser.parse (context); + if (context.report.get_errors () > 0) { + return context; + } + + + + // check context: + context.check (); + if (context.report.get_errors () > 0) { + return context; + } + } +} + +int main (string[] args) { + + var a = new TreeBuilder(); + a.create_valac_tree( \ No newline at end of file -- 2.39.2