--- /dev/null
+/* Gtk.vala.c generated by valac 0.24.0, the Vala compiler
+ * generated from Gtk.vala, do not modify */
+
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gee.h>
+#include <json-glib/json-glib.h>
+
+
+#define JS_RENDER_TYPE_JS_RENDER (js_render_js_render_get_type ())
+#define JS_RENDER_JS_RENDER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JS_RENDER_TYPE_JS_RENDER, JsRenderJsRender))
+#define JS_RENDER_JS_RENDER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JS_RENDER_TYPE_JS_RENDER, JsRenderJsRenderClass))
+#define JS_RENDER_IS_JS_RENDER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JS_RENDER_TYPE_JS_RENDER))
+#define JS_RENDER_IS_JS_RENDER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JS_RENDER_TYPE_JS_RENDER))
+#define JS_RENDER_JS_RENDER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JS_RENDER_TYPE_JS_RENDER, JsRenderJsRenderClass))
+
+typedef struct _JsRenderJsRender JsRenderJsRender;
+typedef struct _JsRenderJsRenderClass JsRenderJsRenderClass;
+typedef struct _JsRenderJsRenderPrivate JsRenderJsRenderPrivate;
+
+#define PROJECT_TYPE_PROJECT (project_project_get_type ())
+#define PROJECT_PROJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PROJECT_TYPE_PROJECT, ProjectProject))
+#define PROJECT_PROJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PROJECT_TYPE_PROJECT, ProjectProjectClass))
+#define PROJECT_IS_PROJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PROJECT_TYPE_PROJECT))
+#define PROJECT_IS_PROJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PROJECT_TYPE_PROJECT))
+#define PROJECT_PROJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PROJECT_TYPE_PROJECT, ProjectProjectClass))
+
+typedef struct _ProjectProject ProjectProject;
+typedef struct _ProjectProjectClass ProjectProjectClass;
+
+#define JS_RENDER_TYPE_NODE (js_render_node_get_type ())
+#define JS_RENDER_NODE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JS_RENDER_TYPE_NODE, JsRenderNode))
+#define JS_RENDER_NODE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JS_RENDER_TYPE_NODE, JsRenderNodeClass))
+#define JS_RENDER_IS_NODE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JS_RENDER_TYPE_NODE))
+#define JS_RENDER_IS_NODE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JS_RENDER_TYPE_NODE))
+#define JS_RENDER_NODE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JS_RENDER_TYPE_NODE, JsRenderNodeClass))
+
+typedef struct _JsRenderNode JsRenderNode;
+typedef struct _JsRenderNodeClass JsRenderNodeClass;
+
+#define JS_RENDER_TYPE_GTK (js_render_gtk_get_type ())
+#define JS_RENDER_GTK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JS_RENDER_TYPE_GTK, JsRenderGtk))
+#define JS_RENDER_GTK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JS_RENDER_TYPE_GTK, JsRenderGtkClass))
+#define JS_RENDER_IS_GTK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JS_RENDER_TYPE_GTK))
+#define JS_RENDER_IS_GTK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JS_RENDER_TYPE_GTK))
+#define JS_RENDER_GTK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JS_RENDER_TYPE_GTK, JsRenderGtkClass))
+
+typedef struct _JsRenderGtk JsRenderGtk;
+typedef struct _JsRenderGtkClass JsRenderGtkClass;
+typedef struct _JsRenderGtkPrivate JsRenderGtkPrivate;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _g_free0(var) (var = (g_free (var), NULL))
+#define __vala_JsonNode_free0(var) ((var == NULL) ? NULL : (var = (_vala_JsonNode_free (var), NULL)))
+#define _js_render_node_unref0(var) ((var == NULL) ? NULL : (var = (js_render_node_unref (var), NULL)))
+#define _json_object_unref0(var) ((var == NULL) ? NULL : (var = (json_object_unref (var), NULL)))
+#define _json_array_unref0(var) ((var == NULL) ? NULL : (var = (json_array_unref (var), NULL)))
+
+struct _JsRenderJsRender {
+ GObject parent_instance;
+ JsRenderJsRenderPrivate * priv;
+ GList* doubleStringProps;
+ gchar* id;
+ gchar* name;
+ gchar* fullname;
+ gchar* path;
+ gchar* parent;
+ gchar* title;
+ gchar* permname;
+ gchar* modOrder;
+ gchar* xtype;
+ ProjectProject* project;
+ JsRenderNode* tree;
+ GList* cn;
+ gboolean hasParent;
+};
+
+struct _JsRenderJsRenderClass {
+ GObjectClass parent_class;
+};
+
+struct _JsRenderGtk {
+ JsRenderJsRender parent_instance;
+ JsRenderGtkPrivate * priv;
+};
+
+struct _JsRenderGtkClass {
+ JsRenderJsRenderClass parent_class;
+};
+
+struct _JsRenderGtkPrivate {
+ GeeHashMap* ctors;
+};
+
+typedef enum {
+ JS_RENDER_ERROR_INVALID_FORMAT
+} JsRenderError;
+#define JS_RENDER_ERROR js_render_error_quark ()
+
+extern gint js_render_gid;
+gint js_render_gid = 1;
+static gpointer js_render_gtk_parent_class = NULL;
+
+GType js_render_js_render_get_type (void) G_GNUC_CONST;
+gpointer project_project_ref (gpointer instance);
+void project_project_unref (gpointer instance);
+GParamSpec* project_param_spec_project (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void project_value_set_project (GValue* value, gpointer v_object);
+void project_value_take_project (GValue* value, gpointer v_object);
+gpointer project_value_get_project (const GValue* value);
+GType project_project_get_type (void) G_GNUC_CONST;
+gpointer js_render_node_ref (gpointer instance);
+void js_render_node_unref (gpointer instance);
+GParamSpec* js_render_param_spec_node (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void js_render_value_set_node (GValue* value, gpointer v_object);
+void js_render_value_take_node (GValue* value, gpointer v_object);
+gpointer js_render_value_get_node (const GValue* value);
+GType js_render_node_get_type (void) G_GNUC_CONST;
+GType js_render_gtk_get_type (void) G_GNUC_CONST;
+#define JS_RENDER_GTK_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), JS_RENDER_TYPE_GTK, JsRenderGtkPrivate))
+enum {
+ JS_RENDER_GTK_DUMMY_PROPERTY
+};
+JsRenderGtk* js_render_gtk_new (ProjectProject* project, const gchar* path);
+JsRenderGtk* js_render_gtk_construct (GType object_type, ProjectProject* project, const gchar* path);
+JsRenderJsRender* js_render_js_render_new (ProjectProject* project, const gchar* path);
+JsRenderJsRender* js_render_js_render_construct (GType object_type, ProjectProject* project, const gchar* path);
+GQuark js_render_error_quark (void);
+void js_render_gtk_loadItems (JsRenderGtk* self, GError** error);
+static JsonNode* _vala_JsonNode_copy (JsonNode* self);
+static void _vala_JsonNode_free (JsonNode* self);
+JsRenderNode* js_render_node_new (void);
+JsRenderNode* js_render_node_construct (GType object_type);
+void js_render_node_loadFromJson (JsRenderNode* self, JsonObject* obj);
+static void js_render_gtk_finalize (GObject* obj);
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static gint _vala_array_length (gpointer array);
+
+
+JsRenderGtk* js_render_gtk_construct (GType object_type, ProjectProject* project, const gchar* path) {
+ JsRenderGtk * self = NULL;
+ gchar* _tmp0_ = NULL;
+ ProjectProject* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gchar* _tmp4_ = NULL;
+ gchar** cc = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ gchar** _tmp10_ = NULL;
+ gint cc_length1 = 0;
+ gint _cc_size_ = 0;
+ GeeHashMap* _tmp11_ = NULL;
+ g_return_val_if_fail (project != NULL, NULL);
+ g_return_val_if_fail (path != NULL, NULL);
+ _tmp0_ = g_strdup ("Gtk");
+ _g_free0 (((JsRenderJsRender*) self)->xtype);
+ ((JsRenderJsRender*) self)->xtype = _tmp0_;
+ _tmp1_ = project;
+ _tmp2_ = path;
+ self = (JsRenderGtk*) js_render_js_render_construct (object_type, _tmp1_, _tmp2_);
+ _tmp3_ = js_render_gid;
+ js_render_gid = _tmp3_ + 1;
+ _tmp4_ = g_strdup_printf ("file-gtk-%d", _tmp3_);
+ _g_free0 (((JsRenderJsRender*) self)->id);
+ ((JsRenderJsRender*) self)->id = _tmp4_;
+ _tmp5_ = g_strdup ("Gtk.MessageDialog=parent:null|flags:Gtk.DialogFlags.MODAL|message_type" \
+"|buttons|text");
+ _tmp6_ = g_strdup ("Gtk.ToolButton=icon_widget:null|label:null");
+ _tmp7_ = g_strdup ("Gtk.ScrolledWindow=hadjustment:null|vadjustment:null");
+ _tmp8_ = g_strdup ("Gtk.SourceBuffer=table:null");
+ _tmp9_ = g_strdup ("Gtk.VBox=homogeneous:true|spacing:0");
+ _tmp10_ = g_new0 (gchar*, 5 + 1);
+ _tmp10_[0] = _tmp5_;
+ _tmp10_[1] = _tmp6_;
+ _tmp10_[2] = _tmp7_;
+ _tmp10_[3] = _tmp8_;
+ _tmp10_[4] = _tmp9_;
+ cc = _tmp10_;
+ cc_length1 = 5;
+ _cc_size_ = cc_length1;
+ _tmp11_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL, NULL);
+ _g_object_unref0 (self->priv->ctors);
+ self->priv->ctors = _tmp11_;
+ {
+ gint i = 0;
+ i = 0;
+ {
+ gboolean _tmp12_ = FALSE;
+ _tmp12_ = TRUE;
+ while (TRUE) {
+ gint _tmp14_ = 0;
+ gchar** _tmp15_ = NULL;
+ gint _tmp15__length1 = 0;
+ gchar** ar = NULL;
+ gchar** _tmp16_ = NULL;
+ gint _tmp16__length1 = 0;
+ gint _tmp17_ = 0;
+ const gchar* _tmp18_ = NULL;
+ gchar** _tmp19_ = NULL;
+ gchar** _tmp20_ = NULL;
+ gint ar_length1 = 0;
+ gint _ar_size_ = 0;
+ GeeHashMap* _tmp21_ = NULL;
+ gchar** _tmp22_ = NULL;
+ gint _tmp22__length1 = 0;
+ const gchar* _tmp23_ = NULL;
+ gchar** _tmp24_ = NULL;
+ gint _tmp24__length1 = 0;
+ const gchar* _tmp25_ = NULL;
+ if (!_tmp12_) {
+ gint _tmp13_ = 0;
+ _tmp13_ = i;
+ i = _tmp13_ + 1;
+ }
+ _tmp12_ = FALSE;
+ _tmp14_ = i;
+ _tmp15_ = cc;
+ _tmp15__length1 = cc_length1;
+ if (!(_tmp14_ < _tmp15__length1)) {
+ break;
+ }
+ _tmp16_ = cc;
+ _tmp16__length1 = cc_length1;
+ _tmp17_ = i;
+ _tmp18_ = _tmp16_[_tmp17_];
+ _tmp20_ = _tmp19_ = g_strsplit (_tmp18_, "=", 0);
+ ar = _tmp20_;
+ ar_length1 = _vala_array_length (_tmp19_);
+ _ar_size_ = ar_length1;
+ _tmp21_ = self->priv->ctors;
+ _tmp22_ = ar;
+ _tmp22__length1 = ar_length1;
+ _tmp23_ = _tmp22_[0];
+ _tmp24_ = ar;
+ _tmp24__length1 = ar_length1;
+ _tmp25_ = _tmp24_[1];
+ gee_abstract_map_set ((GeeAbstractMap*) _tmp21_, _tmp23_, _tmp25_);
+ ar = (_vala_array_free (ar, ar_length1, (GDestroyNotify) g_free), NULL);
+ }
+ }
+ }
+ cc = (_vala_array_free (cc, cc_length1, (GDestroyNotify) g_free), NULL);
+ return self;
+}
+
+
+JsRenderGtk* js_render_gtk_new (ProjectProject* project, const gchar* path) {
+ return js_render_gtk_construct (JS_RENDER_TYPE_GTK, project, path);
+}
+
+
+static JsonNode* _vala_JsonNode_copy (JsonNode* self) {
+ return g_boxed_copy (json_node_get_type (), self);
+}
+
+
+static gpointer __vala_JsonNode_copy0 (gpointer self) {
+ return self ? _vala_JsonNode_copy (self) : NULL;
+}
+
+
+static void _vala_JsonNode_free (JsonNode* self) {
+ g_boxed_free (json_node_get_type (), self);
+}
+
+
+static gpointer _json_object_ref0 (gpointer self) {
+ return self ? json_object_ref (self) : NULL;
+}
+
+
+static gpointer _json_array_ref0 (gpointer self) {
+ return self ? json_array_ref (self) : NULL;
+}
+
+
+void js_render_gtk_loadItems (JsRenderGtk* self, GError** error) {
+ JsRenderNode* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ JsonParser* pa = NULL;
+ JsonParser* _tmp4_ = NULL;
+ JsonParser* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ JsonNode* node = NULL;
+ JsonParser* _tmp7_ = NULL;
+ JsonNode* _tmp8_ = NULL;
+ JsonNode* _tmp9_ = NULL;
+ JsonNode* _tmp10_ = NULL;
+ JsonNodeType _tmp11_ = 0;
+ JsonObject* obj = NULL;
+ JsonNode* _tmp15_ = NULL;
+ JsonObject* _tmp16_ = NULL;
+ JsonObject* _tmp17_ = NULL;
+ JsonObject* _tmp18_ = NULL;
+ const gchar* _tmp19_ = NULL;
+ gchar* _tmp20_ = NULL;
+ JsonObject* _tmp21_ = NULL;
+ const gchar* _tmp22_ = NULL;
+ gchar* _tmp23_ = NULL;
+ JsonObject* _tmp24_ = NULL;
+ const gchar* _tmp25_ = NULL;
+ gchar* _tmp26_ = NULL;
+ JsonArray* ar = NULL;
+ JsonObject* _tmp27_ = NULL;
+ JsonArray* _tmp28_ = NULL;
+ JsonArray* _tmp29_ = NULL;
+ JsonObject* tree_base = NULL;
+ JsonArray* _tmp30_ = NULL;
+ JsonObject* _tmp31_ = NULL;
+ JsonObject* _tmp32_ = NULL;
+ JsRenderNode* _tmp33_ = NULL;
+ JsRenderNode* _tmp34_ = NULL;
+ JsonObject* _tmp35_ = NULL;
+ GError * _inner_error_ = NULL;
+ g_return_if_fail (self != NULL);
+ g_print ("load Items!");
+ _tmp0_ = ((JsRenderJsRender*) self)->tree;
+ if (_tmp0_ != NULL) {
+ return;
+ }
+ _tmp1_ = ((JsRenderJsRender*) self)->path;
+ _tmp2_ = g_strconcat ("load: ", _tmp1_, NULL);
+ _tmp3_ = _tmp2_;
+ g_print ("%s", _tmp3_);
+ _g_free0 (_tmp3_);
+ _tmp4_ = json_parser_new ();
+ pa = _tmp4_;
+ _tmp5_ = pa;
+ _tmp6_ = ((JsRenderJsRender*) self)->path;
+ json_parser_load_from_file (_tmp5_, _tmp6_, &_inner_error_);
+ if (_inner_error_ != NULL) {
+ if (_inner_error_->domain == JS_RENDER_ERROR) {
+ g_propagate_error (error, _inner_error_);
+ _g_object_unref0 (pa);
+ return;
+ } else {
+ _g_object_unref0 (pa);
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+ g_clear_error (&_inner_error_);
+ return;
+ }
+ }
+ _tmp7_ = pa;
+ _tmp8_ = json_parser_get_root (_tmp7_);
+ _tmp9_ = __vala_JsonNode_copy0 (_tmp8_);
+ node = _tmp9_;
+ _tmp10_ = node;
+ _tmp11_ = json_node_get_node_type (_tmp10_);
+ if (_tmp11_ != JSON_NODE_OBJECT) {
+ JsonNode* _tmp12_ = NULL;
+ const gchar* _tmp13_ = NULL;
+ GError* _tmp14_ = NULL;
+ _tmp12_ = node;
+ _tmp13_ = json_node_type_name (_tmp12_);
+ _tmp14_ = g_error_new (JS_RENDER_ERROR, JS_RENDER_ERROR_INVALID_FORMAT, "Unexpected element type %s", _tmp13_);
+ _inner_error_ = _tmp14_;
+ if (_inner_error_->domain == JS_RENDER_ERROR) {
+ g_propagate_error (error, _inner_error_);
+ __vala_JsonNode_free0 (node);
+ _g_object_unref0 (pa);
+ return;
+ } else {
+ __vala_JsonNode_free0 (node);
+ _g_object_unref0 (pa);
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+ g_clear_error (&_inner_error_);
+ return;
+ }
+ }
+ _tmp15_ = node;
+ _tmp16_ = json_node_get_object (_tmp15_);
+ _tmp17_ = _json_object_ref0 (_tmp16_);
+ obj = _tmp17_;
+ _tmp18_ = obj;
+ _tmp19_ = json_object_get_string_member (_tmp18_, "name");
+ _tmp20_ = g_strdup (_tmp19_);
+ _g_free0 (((JsRenderJsRender*) self)->name);
+ ((JsRenderJsRender*) self)->name = _tmp20_;
+ _tmp21_ = obj;
+ _tmp22_ = json_object_get_string_member (_tmp21_, "parent");
+ _tmp23_ = g_strdup (_tmp22_);
+ _g_free0 (((JsRenderJsRender*) self)->parent);
+ ((JsRenderJsRender*) self)->parent = _tmp23_;
+ _tmp24_ = obj;
+ _tmp25_ = json_object_get_string_member (_tmp24_, "title");
+ _tmp26_ = g_strdup (_tmp25_);
+ _g_free0 (((JsRenderJsRender*) self)->title);
+ ((JsRenderJsRender*) self)->title = _tmp26_;
+ _tmp27_ = obj;
+ _tmp28_ = json_object_get_array_member (_tmp27_, "items");
+ _tmp29_ = _json_array_ref0 (_tmp28_);
+ ar = _tmp29_;
+ _tmp30_ = ar;
+ _tmp31_ = json_array_get_object_element (_tmp30_, (guint) 1);
+ _tmp32_ = _json_object_ref0 (_tmp31_);
+ tree_base = _tmp32_;
+ _tmp33_ = js_render_node_new ();
+ _js_render_node_unref0 (((JsRenderJsRender*) self)->tree);
+ ((JsRenderJsRender*) self)->tree = _tmp33_;
+ _tmp34_ = ((JsRenderJsRender*) self)->tree;
+ _tmp35_ = tree_base;
+ js_render_node_loadFromJson (_tmp34_, _tmp35_);
+ _json_object_unref0 (tree_base);
+ _json_array_unref0 (ar);
+ _json_object_unref0 (obj);
+ __vala_JsonNode_free0 (node);
+ _g_object_unref0 (pa);
+}
+
+
+static void js_render_gtk_class_init (JsRenderGtkClass * klass) {
+ js_render_gtk_parent_class = g_type_class_peek_parent (klass);
+ g_type_class_add_private (klass, sizeof (JsRenderGtkPrivate));
+ G_OBJECT_CLASS (klass)->finalize = js_render_gtk_finalize;
+}
+
+
+static void js_render_gtk_instance_init (JsRenderGtk * self) {
+ self->priv = JS_RENDER_GTK_GET_PRIVATE (self);
+}
+
+
+static void js_render_gtk_finalize (GObject* obj) {
+ JsRenderGtk * self;
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, JS_RENDER_TYPE_GTK, JsRenderGtk);
+ _g_object_unref0 (self->priv->ctors);
+ G_OBJECT_CLASS (js_render_gtk_parent_class)->finalize (obj);
+}
+
+
+GType js_render_gtk_get_type (void) {
+ static volatile gsize js_render_gtk_type_id__volatile = 0;
+ if (g_once_init_enter (&js_render_gtk_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (JsRenderGtkClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) js_render_gtk_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (JsRenderGtk), 0, (GInstanceInitFunc) js_render_gtk_instance_init, NULL };
+ GType js_render_gtk_type_id;
+ js_render_gtk_type_id = g_type_register_static (JS_RENDER_TYPE_JS_RENDER, "JsRenderGtk", &g_define_type_info, 0);
+ g_once_init_leave (&js_render_gtk_type_id__volatile, js_render_gtk_type_id);
+ }
+ return js_render_gtk_type_id__volatile;
+}
+
+
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ if ((array != NULL) && (destroy_func != NULL)) {
+ int i;
+ for (i = 0; i < array_length; i = i + 1) {
+ if (((gpointer*) array)[i] != NULL) {
+ destroy_func (((gpointer*) array)[i]);
+ }
+ }
+ }
+}
+
+
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ _vala_array_destroy (array, array_length, destroy_func);
+ g_free (array);
+}
+
+
+static gint _vala_array_length (gpointer array) {
+ int length;
+ length = 0;
+ if (array) {
+ while (((gpointer*) array)[length]) {
+ length++;
+ }
+ }
+ return length;
+}
+
+
+
--- /dev/null
+/* JsRender.vala.c generated by valac 0.24.0, the Vala compiler
+ * generated from JsRender.vala, do not modify */
+
+/*<Script type="text/javascript">*/
+/**
+ *
+ * load from a javascript file.. rather than bjs..
+ *
+ *
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <json-glib/json-glib.h>
+
+
+#define JS_RENDER_TYPE_JS_RENDER (js_render_js_render_get_type ())
+#define JS_RENDER_JS_RENDER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JS_RENDER_TYPE_JS_RENDER, JsRenderJsRender))
+#define JS_RENDER_JS_RENDER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JS_RENDER_TYPE_JS_RENDER, JsRenderJsRenderClass))
+#define JS_RENDER_IS_JS_RENDER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JS_RENDER_TYPE_JS_RENDER))
+#define JS_RENDER_IS_JS_RENDER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JS_RENDER_TYPE_JS_RENDER))
+#define JS_RENDER_JS_RENDER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JS_RENDER_TYPE_JS_RENDER, JsRenderJsRenderClass))
+
+typedef struct _JsRenderJsRender JsRenderJsRender;
+typedef struct _JsRenderJsRenderClass JsRenderJsRenderClass;
+typedef struct _JsRenderJsRenderPrivate JsRenderJsRenderPrivate;
+
+#define PROJECT_TYPE_PROJECT (project_project_get_type ())
+#define PROJECT_PROJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PROJECT_TYPE_PROJECT, ProjectProject))
+#define PROJECT_PROJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PROJECT_TYPE_PROJECT, ProjectProjectClass))
+#define PROJECT_IS_PROJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PROJECT_TYPE_PROJECT))
+#define PROJECT_IS_PROJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PROJECT_TYPE_PROJECT))
+#define PROJECT_PROJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PROJECT_TYPE_PROJECT, ProjectProjectClass))
+
+typedef struct _ProjectProject ProjectProject;
+typedef struct _ProjectProjectClass ProjectProjectClass;
+
+#define JS_RENDER_TYPE_NODE (js_render_node_get_type ())
+#define JS_RENDER_NODE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JS_RENDER_TYPE_NODE, JsRenderNode))
+#define JS_RENDER_NODE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JS_RENDER_TYPE_NODE, JsRenderNodeClass))
+#define JS_RENDER_IS_NODE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JS_RENDER_TYPE_NODE))
+#define JS_RENDER_IS_NODE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JS_RENDER_TYPE_NODE))
+#define JS_RENDER_NODE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JS_RENDER_TYPE_NODE, JsRenderNodeClass))
+
+typedef struct _JsRenderNode JsRenderNode;
+typedef struct _JsRenderNodeClass JsRenderNodeClass;
+#define __g_list_free__g_free0_0(var) ((var == NULL) ? NULL : (var = (_g_list_free__g_free0_ (var), NULL)))
+#define _g_free0(var) (var = (g_free (var), NULL))
+#define _project_project_unref0(var) ((var == NULL) ? NULL : (var = (project_project_unref (var), NULL)))
+#define _js_render_node_unref0(var) ((var == NULL) ? NULL : (var = (js_render_node_unref (var), NULL)))
+#define __g_list_free__g_object_unref0_0(var) ((var == NULL) ? NULL : (var = (_g_list_free__g_object_unref0_ (var), NULL)))
+#define _g_regex_unref0(var) ((var == NULL) ? NULL : (var = (g_regex_unref (var), NULL)))
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+
+#define JS_RENDER_TYPE_GTK (js_render_gtk_get_type ())
+#define JS_RENDER_GTK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JS_RENDER_TYPE_GTK, JsRenderGtk))
+#define JS_RENDER_GTK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JS_RENDER_TYPE_GTK, JsRenderGtkClass))
+#define JS_RENDER_IS_GTK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JS_RENDER_TYPE_GTK))
+#define JS_RENDER_IS_GTK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JS_RENDER_TYPE_GTK))
+#define JS_RENDER_GTK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JS_RENDER_TYPE_GTK, JsRenderGtkClass))
+
+typedef struct _JsRenderGtk JsRenderGtk;
+typedef struct _JsRenderGtkClass JsRenderGtkClass;
+
+#define JS_RENDER_TYPE_ROO (js_render_roo_get_type ())
+#define JS_RENDER_ROO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JS_RENDER_TYPE_ROO, JsRenderRoo))
+#define JS_RENDER_ROO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JS_RENDER_TYPE_ROO, JsRenderRooClass))
+#define JS_RENDER_IS_ROO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JS_RENDER_TYPE_ROO))
+#define JS_RENDER_IS_ROO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JS_RENDER_TYPE_ROO))
+#define JS_RENDER_ROO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JS_RENDER_TYPE_ROO, JsRenderRooClass))
+
+typedef struct _JsRenderRoo JsRenderRoo;
+typedef struct _JsRenderRooClass JsRenderRooClass;
+#define _json_object_unref0(var) ((var == NULL) ? NULL : (var = (json_object_unref (var), NULL)))
+#define __vala_JsonNode_free0(var) ((var == NULL) ? NULL : (var = (_vala_JsonNode_free (var), NULL)))
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+typedef enum {
+ JS_RENDER_ERROR_INVALID_FORMAT
+} JsRenderError;
+#define JS_RENDER_ERROR js_render_error_quark ()
+struct _JsRenderJsRender {
+ GObject parent_instance;
+ JsRenderJsRenderPrivate * priv;
+ GList* doubleStringProps;
+ gchar* id;
+ gchar* name;
+ gchar* fullname;
+ gchar* path;
+ gchar* parent;
+ gchar* title;
+ gchar* permname;
+ gchar* modOrder;
+ gchar* xtype;
+ ProjectProject* project;
+ JsRenderNode* tree;
+ GList* cn;
+ gboolean hasParent;
+};
+
+struct _JsRenderJsRenderClass {
+ GObjectClass parent_class;
+};
+
+
+static gpointer js_render_js_render_parent_class = NULL;
+
+GQuark js_render_error_quark (void);
+GType js_render_js_render_get_type (void) G_GNUC_CONST;
+gpointer project_project_ref (gpointer instance);
+void project_project_unref (gpointer instance);
+GParamSpec* project_param_spec_project (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void project_value_set_project (GValue* value, gpointer v_object);
+void project_value_take_project (GValue* value, gpointer v_object);
+gpointer project_value_get_project (const GValue* value);
+GType project_project_get_type (void) G_GNUC_CONST;
+gpointer js_render_node_ref (gpointer instance);
+void js_render_node_unref (gpointer instance);
+GParamSpec* js_render_param_spec_node (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void js_render_value_set_node (GValue* value, gpointer v_object);
+void js_render_value_take_node (GValue* value, gpointer v_object);
+gpointer js_render_value_get_node (const GValue* value);
+GType js_render_node_get_type (void) G_GNUC_CONST;
+enum {
+ JS_RENDER_JS_RENDER_DUMMY_PROPERTY
+};
+static void _g_free0_ (gpointer var);
+static void _g_list_free__g_free0_ (GList* self);
+static void _g_object_unref0_ (gpointer var);
+static void _g_list_free__g_object_unref0_ (GList* self);
+JsRenderJsRender* js_render_js_render_new (ProjectProject* project, const gchar* path);
+JsRenderJsRender* js_render_js_render_construct (GType object_type, ProjectProject* project, const gchar* path);
+JsRenderJsRender* js_render_js_render_factory (const gchar* xt, ProjectProject* project, const gchar* path);
+JsRenderGtk* js_render_gtk_new (ProjectProject* project, const gchar* path);
+JsRenderGtk* js_render_gtk_construct (GType object_type, ProjectProject* project, const gchar* path);
+GType js_render_gtk_get_type (void) G_GNUC_CONST;
+JsRenderRoo* js_render_roo_new (ProjectProject* project, const gchar* path);
+JsRenderRoo* js_render_roo_construct (GType object_type, ProjectProject* project, const gchar* path);
+GType js_render_roo_get_type (void) G_GNUC_CONST;
+void js_render_js_render_save (JsRenderJsRender* self);
+JsonObject* js_render_js_render_toJsonArray (JsRenderJsRender* self);
+static void _vala_JsonNode_free (JsonNode* self);
+void js_render_js_render_saveHTML (JsRenderJsRender* self);
+void js_render_js_render_loadItems (JsRenderJsRender* self);
+gchar* js_render_js_render_getTitle (JsRenderJsRender* self);
+gchar* js_render_js_render_getTitleTip (JsRenderJsRender* self);
+gchar* js_render_js_render_guessName (JsRenderJsRender* self, JsRenderNode* ar);
+gboolean js_render_node_hasXnsType (JsRenderNode* self);
+gchar* js_render_node_get (JsRenderNode* self, const gchar* key);
+gchar* js_render_js_render_mungeToString (JsRenderJsRender* self, const gchar* pad);
+gchar* js_render_node_mungeToString (JsRenderNode* self, gboolean isListener, const gchar* pad, GList* doubleStringProps);
+static void js_render_js_render_finalize (GObject* obj);
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static gint _vala_array_length (gpointer array);
+
+
+GQuark js_render_error_quark (void) {
+ return g_quark_from_static_string ("js_render_error-quark");
+}
+
+
+static void _g_free0_ (gpointer var) {
+ var = (g_free (var), NULL);
+}
+
+
+static void _g_list_free__g_free0_ (GList* self) {
+ g_list_foreach (self, (GFunc) _g_free0_, NULL);
+ g_list_free (self);
+}
+
+
+static void _g_object_unref0_ (gpointer var) {
+ (var == NULL) ? NULL : (var = (g_object_unref (var), NULL));
+}
+
+
+static void _g_list_free__g_object_unref0_ (GList* self) {
+ g_list_foreach (self, (GFunc) _g_object_unref0_, NULL);
+ g_list_free (self);
+}
+
+
+static gpointer _project_project_ref0 (gpointer self) {
+ return self ? project_project_ref (self) : NULL;
+}
+
+
+JsRenderJsRender* js_render_js_render_construct (GType object_type, ProjectProject* project, const gchar* path) {
+ JsRenderJsRender * self = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ ProjectProject* _tmp2_ = NULL;
+ ProjectProject* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar** ar = NULL;
+ const gchar* _tmp5_ = NULL;
+ gchar** _tmp6_ = NULL;
+ gchar** _tmp7_ = NULL;
+ gint ar_length1 = 0;
+ gint _ar_size_ = 0;
+ gchar* _tmp22_ = NULL;
+ const gchar* _tmp23_ = NULL;
+ gint _tmp24_ = 0;
+ gint _tmp25_ = 0;
+ const gchar* _tmp29_ = NULL;
+ gchar* _tmp30_ = NULL;
+ GError * _inner_error_ = NULL;
+ g_return_val_if_fail (project != NULL, NULL);
+ g_return_val_if_fail (path != NULL, NULL);
+ self = (JsRenderJsRender*) g_object_new (object_type, NULL);
+ __g_list_free__g_object_unref0_0 (self->cn);
+ self->cn = NULL;
+ _tmp0_ = path;
+ _tmp1_ = g_strdup (_tmp0_);
+ _g_free0 (self->path);
+ self->path = _tmp1_;
+ _tmp2_ = project;
+ _tmp3_ = _project_project_ref0 (_tmp2_);
+ _project_project_unref0 (self->project);
+ self->project = _tmp3_;
+ self->hasParent = FALSE;
+ _tmp4_ = g_strdup ("");
+ _g_free0 (self->parent);
+ self->parent = _tmp4_;
+ _js_render_node_unref0 (self->tree);
+ self->tree = NULL;
+ _tmp5_ = self->path;
+ _tmp7_ = _tmp6_ = g_strsplit (_tmp5_, "/", 0);
+ ar = _tmp7_;
+ ar_length1 = _vala_array_length (_tmp6_);
+ _ar_size_ = ar_length1;
+ {
+ GRegex* regex = NULL;
+ GRegex* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ GRegex* _tmp10_ = NULL;
+ gchar** _tmp11_ = NULL;
+ gint _tmp11__length1 = 0;
+ gchar** _tmp12_ = NULL;
+ gint _tmp12__length1 = 0;
+ const gchar* _tmp13_ = NULL;
+ gchar** _tmp14_ = NULL;
+ gint _tmp14__length1 = 0;
+ gchar** _tmp15_ = NULL;
+ gint _tmp15__length1 = 0;
+ const gchar* _tmp16_ = NULL;
+ gint _tmp17_ = 0;
+ gint _tmp18_ = 0;
+ gchar* _tmp19_ = NULL;
+ gchar* _tmp20_ = NULL;
+ _tmp8_ = g_regex_new ("\\.(bjs|js)$", 0, 0, &_inner_error_);
+ regex = _tmp8_;
+ if (_inner_error_ != NULL) {
+ if (_inner_error_->domain == JS_RENDER_ERROR) {
+ goto __catch0_js_render_error;
+ }
+ goto __finally0;
+ }
+ _tmp10_ = regex;
+ _tmp11_ = ar;
+ _tmp11__length1 = ar_length1;
+ _tmp12_ = ar;
+ _tmp12__length1 = ar_length1;
+ _tmp13_ = _tmp11_[_tmp12__length1 - 1];
+ _tmp14_ = ar;
+ _tmp14__length1 = ar_length1;
+ _tmp15_ = ar;
+ _tmp15__length1 = ar_length1;
+ _tmp16_ = _tmp14_[_tmp15__length1 - 1];
+ _tmp17_ = strlen (_tmp16_);
+ _tmp18_ = _tmp17_;
+ _tmp19_ = g_regex_replace (_tmp10_, _tmp13_, (gssize) _tmp18_, 0, "", 0, &_inner_error_);
+ _tmp9_ = _tmp19_;
+ if (_inner_error_ != NULL) {
+ _g_regex_unref0 (regex);
+ if (_inner_error_->domain == JS_RENDER_ERROR) {
+ goto __catch0_js_render_error;
+ }
+ goto __finally0;
+ }
+ _tmp20_ = _tmp9_;
+ _tmp9_ = NULL;
+ _g_free0 (self->name);
+ self->name = _tmp20_;
+ _g_free0 (_tmp9_);
+ _g_regex_unref0 (regex);
+ }
+ goto __finally0;
+ __catch0_js_render_error:
+ {
+ GError* e = NULL;
+ gchar* _tmp21_ = NULL;
+ e = _inner_error_;
+ _inner_error_ = NULL;
+ _tmp21_ = g_strdup ("???");
+ _g_free0 (self->name);
+ self->name = _tmp21_;
+ _g_error_free0 (e);
+ }
+ __finally0:
+ if (_inner_error_ != NULL) {
+ ar = (_vala_array_free (ar, ar_length1, (GDestroyNotify) g_free), NULL);
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+ g_clear_error (&_inner_error_);
+ return NULL;
+ }
+ _tmp23_ = self->parent;
+ _tmp24_ = strlen (_tmp23_);
+ _tmp25_ = _tmp24_;
+ if (_tmp25_ > 0) {
+ const gchar* _tmp26_ = NULL;
+ gchar* _tmp27_ = NULL;
+ _tmp26_ = self->parent;
+ _tmp27_ = g_strconcat (_tmp26_, ".", NULL);
+ _g_free0 (_tmp22_);
+ _tmp22_ = _tmp27_;
+ } else {
+ gchar* _tmp28_ = NULL;
+ _tmp28_ = g_strdup ("");
+ _g_free0 (_tmp22_);
+ _tmp22_ = _tmp28_;
+ }
+ _tmp29_ = self->name;
+ _tmp30_ = g_strconcat (_tmp22_, _tmp29_, NULL);
+ _g_free0 (self->fullname);
+ self->fullname = _tmp30_;
+ _g_free0 (_tmp22_);
+ ar = (_vala_array_free (ar, ar_length1, (GDestroyNotify) g_free), NULL);
+ return self;
+}
+
+
+JsRenderJsRender* js_render_js_render_new (ProjectProject* project, const gchar* path) {
+ return js_render_js_render_construct (JS_RENDER_TYPE_JS_RENDER, project, path);
+}
+
+
+JsRenderJsRender* js_render_js_render_factory (const gchar* xt, ProjectProject* project, const gchar* path) {
+ JsRenderJsRender* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ GQuark _tmp3_ = 0U;
+ static GQuark _tmp2_label0 = 0;
+ static GQuark _tmp2_label1 = 0;
+ g_return_val_if_fail (xt != NULL, NULL);
+ g_return_val_if_fail (project != NULL, NULL);
+ g_return_val_if_fail (path != NULL, NULL);
+ _tmp0_ = xt;
+ _tmp1_ = _tmp0_;
+ _tmp3_ = (NULL == _tmp1_) ? 0 : g_quark_from_string (_tmp1_);
+ if (_tmp3_ == ((0 != _tmp2_label0) ? _tmp2_label0 : (_tmp2_label0 = g_quark_from_static_string ("Gtk")))) {
+ switch (0) {
+ default:
+ {
+ ProjectProject* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ JsRenderGtk* _tmp6_ = NULL;
+ _tmp4_ = project;
+ _tmp5_ = path;
+ _tmp6_ = js_render_gtk_new (_tmp4_, _tmp5_);
+ result = (JsRenderJsRender*) _tmp6_;
+ return result;
+ }
+ }
+ } else if (_tmp3_ == ((0 != _tmp2_label1) ? _tmp2_label1 : (_tmp2_label1 = g_quark_from_static_string ("Roo")))) {
+ switch (0) {
+ default:
+ {
+ ProjectProject* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ JsRenderRoo* _tmp9_ = NULL;
+ _tmp7_ = project;
+ _tmp8_ = path;
+ _tmp9_ = js_render_roo_new (_tmp7_, _tmp8_);
+ result = (JsRenderJsRender*) _tmp9_;
+ return result;
+ }
+ }
+ }
+ result = NULL;
+ return result;
+}
+
+
+static void _vala_JsonNode_free (JsonNode* self) {
+ g_boxed_free (json_node_get_type (), self);
+}
+
+
+void js_render_js_render_save (JsRenderJsRender* self) {
+ JsonGenerator* generator = NULL;
+ JsonGenerator* _tmp0_ = NULL;
+ JsonNode* node = NULL;
+ JsonNode* _tmp1_ = NULL;
+ JsonObject* _tmp2_ = NULL;
+ JsonObject* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ GError * _inner_error_ = NULL;
+ g_return_if_fail (self != NULL);
+ _tmp0_ = json_generator_new ();
+ generator = _tmp0_;
+ json_generator_set_indent (generator, (guint) 4);
+ json_generator_set_pretty (generator, TRUE);
+ _tmp1_ = json_node_new (JSON_NODE_OBJECT);
+ node = _tmp1_;
+ _tmp2_ = js_render_js_render_toJsonArray (self);
+ _tmp3_ = _tmp2_;
+ json_node_init_object (node, _tmp3_);
+ _json_object_unref0 (_tmp3_);
+ json_generator_set_root (generator, node);
+ _tmp4_ = self->path;
+ _tmp5_ = g_strconcat ("WRITE: ", _tmp4_, NULL);
+ _tmp6_ = _tmp5_;
+ g_print ("%s", _tmp6_);
+ _g_free0 (_tmp6_);
+ {
+ const gchar* _tmp7_ = NULL;
+ _tmp7_ = self->path;
+ json_generator_to_file (generator, _tmp7_, &_inner_error_);
+ if (_inner_error_ != NULL) {
+ if (_inner_error_->domain == JS_RENDER_ERROR) {
+ goto __catch1_js_render_error;
+ }
+ goto __finally1;
+ }
+ }
+ goto __finally1;
+ __catch1_js_render_error:
+ {
+ GError* e = NULL;
+ e = _inner_error_;
+ _inner_error_ = NULL;
+ g_print ("Save failed");
+ _g_error_free0 (e);
+ }
+ __finally1:
+ if (_inner_error_ != NULL) {
+ __vala_JsonNode_free0 (node);
+ _g_object_unref0 (generator);
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+ g_clear_error (&_inner_error_);
+ return;
+ }
+ __vala_JsonNode_free0 (node);
+ _g_object_unref0 (generator);
+}
+
+
+void js_render_js_render_saveHTML (JsRenderJsRender* self) {
+ g_return_if_fail (self != NULL);
+}
+
+
+void js_render_js_render_loadItems (JsRenderJsRender* self) {
+ g_return_if_fail (self != NULL);
+ g_print ("load items not handled..");
+}
+
+
+/**
+ * accepts:
+ * { success : , failure : , scope : }
+ *
+ *
+ *
+ */
+JsonObject* js_render_js_render_toJsonArray (JsRenderJsRender* self) {
+ JsonObject* result = NULL;
+ JsonObject* ret = NULL;
+ JsonObject* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ g_return_val_if_fail (self != NULL, NULL);
+ _tmp0_ = json_object_new ();
+ ret = _tmp0_;
+ _tmp1_ = self->id;
+ json_object_set_string_member (ret, "id", _tmp1_);
+ _tmp2_ = self->name;
+ json_object_set_string_member (ret, "name", _tmp2_);
+ _tmp3_ = self->parent;
+ json_object_set_string_member (ret, "parent", _tmp3_);
+ _tmp4_ = self->title;
+ json_object_set_string_member (ret, "title", _tmp4_);
+ _tmp5_ = self->path;
+ json_object_set_string_member (ret, "path", _tmp5_);
+ _tmp6_ = self->permname;
+ json_object_set_string_member (ret, "permname", _tmp6_);
+ _tmp7_ = self->modOrder;
+ json_object_set_string_member (ret, "modOrder", _tmp7_);
+ result = ret;
+ return result;
+}
+
+
+gchar* js_render_js_render_getTitle (JsRenderJsRender* self) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gchar** a = NULL;
+ const gchar* _tmp5_ = NULL;
+ gchar** _tmp6_ = NULL;
+ gchar** _tmp7_ = NULL;
+ gint a_length1 = 0;
+ gint _a_size_ = 0;
+ gchar** _tmp8_ = NULL;
+ gint _tmp8__length1 = 0;
+ gchar** _tmp9_ = NULL;
+ gint _tmp9__length1 = 0;
+ const gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ g_return_val_if_fail (self != NULL, NULL);
+ _tmp0_ = self->title;
+ _tmp1_ = strlen (_tmp0_);
+ _tmp2_ = _tmp1_;
+ if (_tmp2_ > 0) {
+ const gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ _tmp3_ = self->title;
+ _tmp4_ = g_strdup (_tmp3_);
+ result = _tmp4_;
+ return result;
+ }
+ _tmp5_ = self->path;
+ _tmp7_ = _tmp6_ = g_strsplit (_tmp5_, "/", 0);
+ a = _tmp7_;
+ a_length1 = _vala_array_length (_tmp6_);
+ _a_size_ = a_length1;
+ _tmp8_ = a;
+ _tmp8__length1 = a_length1;
+ _tmp9_ = a;
+ _tmp9__length1 = a_length1;
+ _tmp10_ = _tmp8_[_tmp9__length1 - 1];
+ _tmp11_ = g_strdup (_tmp10_);
+ result = _tmp11_;
+ a = (_vala_array_free (a, a_length1, (GDestroyNotify) g_free), NULL);
+ return result;
+}
+
+
+gchar* js_render_js_render_getTitleTip (JsRenderJsRender* self) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ const gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ g_return_val_if_fail (self != NULL, NULL);
+ _tmp0_ = self->title;
+ _tmp1_ = strlen (_tmp0_);
+ _tmp2_ = _tmp1_;
+ if (_tmp2_ > 0) {
+ const gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ _tmp3_ = self->title;
+ _tmp4_ = g_strconcat ("<b>", _tmp3_, NULL);
+ _tmp5_ = _tmp4_;
+ _tmp6_ = g_strconcat (_tmp5_, "</b> ", NULL);
+ _tmp7_ = _tmp6_;
+ _tmp8_ = self->path;
+ _tmp9_ = g_strconcat (_tmp7_, _tmp8_, NULL);
+ _tmp10_ = _tmp9_;
+ _g_free0 (_tmp7_);
+ _g_free0 (_tmp5_);
+ result = _tmp10_;
+ return result;
+ }
+ _tmp11_ = self->path;
+ _tmp12_ = g_strdup (_tmp11_);
+ result = _tmp12_;
+ return result;
+}
+
+
+gchar* js_render_js_render_guessName (JsRenderJsRender* self, JsRenderNode* ar) {
+ gchar* result = NULL;
+ JsRenderNode* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ JsRenderNode* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ JsRenderNode* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ g_return_val_if_fail (self != NULL, NULL);
+ g_return_val_if_fail (ar != NULL, NULL);
+ _tmp0_ = ar;
+ _tmp1_ = js_render_node_hasXnsType (_tmp0_);
+ if (!_tmp1_) {
+ gchar* _tmp2_ = NULL;
+ _tmp2_ = g_strdup ("");
+ result = _tmp2_;
+ return result;
+ }
+ _tmp3_ = ar;
+ _tmp4_ = js_render_node_get (_tmp3_, "|xns");
+ _tmp5_ = _tmp4_;
+ _tmp6_ = g_strconcat (_tmp5_, ".", NULL);
+ _tmp7_ = _tmp6_;
+ _tmp8_ = ar;
+ _tmp9_ = js_render_node_get (_tmp8_, "|xtype");
+ _tmp10_ = _tmp9_;
+ _tmp11_ = g_strconcat (_tmp7_, _tmp10_, NULL);
+ _tmp12_ = _tmp11_;
+ _g_free0 (_tmp10_);
+ _g_free0 (_tmp7_);
+ _g_free0 (_tmp5_);
+ result = _tmp12_;
+ return result;
+}
+
+
+/**
+ *
+ * munge JSON tree into Javascript code.
+ *
+ * NOTE - needs a deep copy of original tree, before starting..
+ * - so that it does not modify current..
+ *
+ * FIXME: + or / prefixes to properties hide it from renderer.
+ * FIXME: '*props' - not supported by this.. ?? - upto rendering code..
+ * FIXME: needs to understand what properties might be translatable (eg. double quotes)
+ *
+ * @arg {object} obj the object or array to munge..
+ * @arg {boolean} isListener - is the array being sent a listener..
+ * @arg {string} pad - the padding to indent with.
+ */
+gchar* js_render_js_render_mungeToString (JsRenderJsRender* self, const gchar* pad) {
+ gchar* result = NULL;
+ JsRenderNode* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ GList* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ g_return_val_if_fail (self != NULL, NULL);
+ g_return_val_if_fail (pad != NULL, NULL);
+ _tmp0_ = self->tree;
+ _tmp1_ = pad;
+ _tmp2_ = self->doubleStringProps;
+ _tmp3_ = js_render_node_mungeToString (_tmp0_, FALSE, _tmp1_, _tmp2_);
+ result = _tmp3_;
+ return result;
+}
+
+
+static void js_render_js_render_class_init (JsRenderJsRenderClass * klass) {
+ js_render_js_render_parent_class = g_type_class_peek_parent (klass);
+ G_OBJECT_CLASS (klass)->finalize = js_render_js_render_finalize;
+}
+
+
+static void js_render_js_render_instance_init (JsRenderJsRender * self) {
+}
+
+
+static void js_render_js_render_finalize (GObject* obj) {
+ JsRenderJsRender * self;
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, JS_RENDER_TYPE_JS_RENDER, JsRenderJsRender);
+ __g_list_free__g_free0_0 (self->doubleStringProps);
+ _g_free0 (self->id);
+ _g_free0 (self->name);
+ _g_free0 (self->fullname);
+ _g_free0 (self->path);
+ _g_free0 (self->parent);
+ _g_free0 (self->title);
+ _g_free0 (self->permname);
+ _g_free0 (self->modOrder);
+ _g_free0 (self->xtype);
+ _project_project_unref0 (self->project);
+ _js_render_node_unref0 (self->tree);
+ __g_list_free__g_object_unref0_0 (self->cn);
+ G_OBJECT_CLASS (js_render_js_render_parent_class)->finalize (obj);
+}
+
+
+GType js_render_js_render_get_type (void) {
+ static volatile gsize js_render_js_render_type_id__volatile = 0;
+ if (g_once_init_enter (&js_render_js_render_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (JsRenderJsRenderClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) js_render_js_render_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (JsRenderJsRender), 0, (GInstanceInitFunc) js_render_js_render_instance_init, NULL };
+ GType js_render_js_render_type_id;
+ js_render_js_render_type_id = g_type_register_static (G_TYPE_OBJECT, "JsRenderJsRender", &g_define_type_info, 0);
+ g_once_init_leave (&js_render_js_render_type_id__volatile, js_render_js_render_type_id);
+ }
+ return js_render_js_render_type_id__volatile;
+}
+
+
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ if ((array != NULL) && (destroy_func != NULL)) {
+ int i;
+ for (i = 0; i < array_length; i = i + 1) {
+ if (((gpointer*) array)[i] != NULL) {
+ destroy_func (((gpointer*) array)[i]);
+ }
+ }
+ }
+}
+
+
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ _vala_array_destroy (array, array_length, destroy_func);
+ g_free (array);
+}
+
+
+static gint _vala_array_length (gpointer array) {
+ int length;
+ length = 0;
+ if (array) {
+ while (((gpointer*) array)[length]) {
+ length++;
+ }
+ }
+ return length;
+}
+
+
+
--- /dev/null
+/* Lang.vala.c generated by valac 0.24.0, the Vala compiler
+ * generated from Lang.vala, do not modify */
+
+/*<script type="text/javscript">*/
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gee.h>
+
+
+#define JS_RENDER_TYPE_LANGCLASS (js_render_langclass_get_type ())
+#define JS_RENDER_LANGCLASS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JS_RENDER_TYPE_LANGCLASS, JsRenderLang_Class))
+#define JS_RENDER_LANGCLASS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JS_RENDER_TYPE_LANGCLASS, JsRenderLang_ClassClass))
+#define JS_RENDER_IS_LANGCLASS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JS_RENDER_TYPE_LANGCLASS))
+#define JS_RENDER_IS_LANGCLASS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JS_RENDER_TYPE_LANGCLASS))
+#define JS_RENDER_LANGCLASS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JS_RENDER_TYPE_LANGCLASS, JsRenderLang_ClassClass))
+
+typedef struct _JsRenderLang_Class JsRenderLang_Class;
+typedef struct _JsRenderLang_ClassClass JsRenderLang_ClassClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _g_free0(var) (var = (g_free (var), NULL))
+typedef struct _JsRenderLang_ClassPrivate JsRenderLang_ClassPrivate;
+#define __g_list_free__g_free0_0(var) ((var == NULL) ? NULL : (var = (_g_list_free__g_free0_ (var), NULL)))
+
+struct _JsRenderLang_Class {
+ GObject parent_instance;
+ JsRenderLang_ClassPrivate * priv;
+};
+
+struct _JsRenderLang_ClassClass {
+ GObjectClass parent_class;
+};
+
+struct _JsRenderLang_ClassPrivate {
+ GList* coreObjects;
+ GeeHashMap* whitespaceNames;
+ GeeHashMap* newlineNames;
+ GeeHashMap* keywordNames;
+ GeeHashMap* puncNames;
+ GeeHashMap* matchingNames;
+};
+
+
+extern JsRenderLang_Class* js_render_Lang;
+JsRenderLang_Class* js_render_Lang = NULL;
+static gpointer js_render_langclass_parent_class = NULL;
+
+void _vala_main (void);
+JsRenderLang_Class* js_render_langclass_new (void);
+JsRenderLang_Class* js_render_langclass_construct (GType object_type);
+GType js_render_langclass_get_type (void) G_GNUC_CONST;
+gchar* js_render_langclass_keyword (JsRenderLang_Class* self, const gchar* word);
+#define JS_RENDER_LANGCLASS_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), JS_RENDER_TYPE_LANGCLASS, JsRenderLang_ClassPrivate))
+enum {
+ JS_RENDER_LANGCLASS_DUMMY_PROPERTY
+};
+static void _g_free0_ (gpointer var);
+static void _g_list_free__g_free0_ (GList* self);
+static void js_render_langclass_init (JsRenderLang_Class* self);
+gboolean js_render_langclass_isBuiltin (JsRenderLang_Class* self, const gchar* name);
+gchar* js_render_langclass_whitespace (JsRenderLang_Class* self, const gchar* ch);
+gchar* js_render_langclass_newline (JsRenderLang_Class* self, const gchar* ch);
+gchar* js_render_langclass_matching (JsRenderLang_Class* self, const gchar* name);
+gboolean js_render_langclass_isKeyword (JsRenderLang_Class* self, const gchar* word);
+gchar* js_render_langclass_punc (JsRenderLang_Class* self, const gchar* ch);
+gboolean js_render_langclass_isNumber (JsRenderLang_Class* self, const gchar* str);
+gboolean js_render_langclass_isHexDec (JsRenderLang_Class* self, const gchar* str);
+gboolean js_render_langclass_isWordChar (JsRenderLang_Class* self, const gchar* str);
+gboolean js_render_langclass_isSpace (JsRenderLang_Class* self, const gchar* str);
+gboolean js_render_langclass_isNewline (JsRenderLang_Class* self, const gchar* str);
+gboolean js_render_langclass_isBoolean (JsRenderLang_Class* self, const gchar* str);
+static void js_render_langclass_finalize (GObject* obj);
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static gint _vala_array_length (gpointer array);
+
+
+/**
+@namespace
+*/
+void _vala_main (void) {
+ JsRenderLang_Class* _tmp0_ = NULL;
+ JsRenderLang_Class* _tmp1_ = NULL;
+ JsRenderLang_Class* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ _tmp0_ = js_render_langclass_new ();
+ _tmp1_ = _tmp0_;
+ _g_object_unref0 (_tmp1_);
+ _tmp2_ = js_render_Lang;
+ _tmp3_ = js_render_langclass_keyword (_tmp2_, "delete");
+ _tmp4_ = _tmp3_;
+ _tmp5_ = g_strconcat (_tmp4_, "\n", NULL);
+ _tmp6_ = _tmp5_;
+ g_print ("%s", _tmp6_);
+ _g_free0 (_tmp6_);
+ _g_free0 (_tmp4_);
+}
+
+
+int main (int argc, char ** argv) {
+#if !GLIB_CHECK_VERSION (2,35,0)
+ g_type_init ();
+#endif
+ _vala_main ();
+ return 0;
+}
+
+
+static void _g_free0_ (gpointer var) {
+ var = (g_free (var), NULL);
+}
+
+
+static void _g_list_free__g_free0_ (GList* self) {
+ g_list_foreach (self, (GFunc) _g_free0_, NULL);
+ g_list_free (self);
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+ return self ? g_object_ref (self) : NULL;
+}
+
+
+JsRenderLang_Class* js_render_langclass_construct (GType object_type) {
+ JsRenderLang_Class * self = NULL;
+ JsRenderLang_Class* _tmp0_ = NULL;
+ JsRenderLang_Class* _tmp1_ = NULL;
+ self = (JsRenderLang_Class*) g_object_new (object_type, NULL);
+ _tmp0_ = js_render_Lang;
+ if (_tmp0_ != NULL) {
+ g_print ("lang not null\n");
+ return self;
+ }
+ g_print ("init\n");
+ js_render_langclass_init (self);
+ g_print ("init Lang");
+ _tmp1_ = _g_object_ref0 (self);
+ _g_object_unref0 (js_render_Lang);
+ js_render_Lang = _tmp1_;
+ return self;
+}
+
+
+JsRenderLang_Class* js_render_langclass_new (void) {
+ return js_render_langclass_construct (JS_RENDER_TYPE_LANGCLASS);
+}
+
+
+gboolean js_render_langclass_isBuiltin (JsRenderLang_Class* self, const gchar* name) {
+ gboolean result = FALSE;
+ GList* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ g_return_val_if_fail (self != NULL, FALSE);
+ g_return_val_if_fail (name != NULL, FALSE);
+ _tmp0_ = self->priv->coreObjects;
+ _tmp1_ = name;
+ _tmp2_ = g_list_index (_tmp0_, _tmp1_);
+ result = _tmp2_ > (-1);
+ return result;
+}
+
+
+gchar* js_render_langclass_whitespace (JsRenderLang_Class* self, const gchar* ch) {
+ gchar* result = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gpointer _tmp2_ = NULL;
+ g_return_val_if_fail (self != NULL, NULL);
+ g_return_val_if_fail (ch != NULL, NULL);
+ _tmp0_ = self->priv->whitespaceNames;
+ _tmp1_ = ch;
+ _tmp2_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp0_, _tmp1_);
+ result = (gchar*) _tmp2_;
+ return result;
+}
+
+
+gchar* js_render_langclass_newline (JsRenderLang_Class* self, const gchar* ch) {
+ gchar* result = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gpointer _tmp2_ = NULL;
+ g_return_val_if_fail (self != NULL, NULL);
+ g_return_val_if_fail (ch != NULL, NULL);
+ _tmp0_ = self->priv->newlineNames;
+ _tmp1_ = ch;
+ _tmp2_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp0_, _tmp1_);
+ result = (gchar*) _tmp2_;
+ return result;
+}
+
+
+gchar* js_render_langclass_keyword (JsRenderLang_Class* self, const gchar* word) {
+ gchar* result = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gpointer _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ g_return_val_if_fail (self != NULL, NULL);
+ g_return_val_if_fail (word != NULL, NULL);
+ _tmp0_ = self->priv->keywordNames;
+ _tmp1_ = word;
+ _tmp2_ = g_strconcat ("=", _tmp1_, NULL);
+ _tmp3_ = _tmp2_;
+ _tmp4_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp0_, _tmp3_);
+ _tmp5_ = (gchar*) _tmp4_;
+ _g_free0 (_tmp3_);
+ result = _tmp5_;
+ return result;
+}
+
+
+gchar* js_render_langclass_matching (JsRenderLang_Class* self, const gchar* name) {
+ gchar* result = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gpointer _tmp2_ = NULL;
+ g_return_val_if_fail (self != NULL, NULL);
+ g_return_val_if_fail (name != NULL, NULL);
+ _tmp0_ = self->priv->matchingNames;
+ _tmp1_ = name;
+ _tmp2_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp0_, _tmp1_);
+ result = (gchar*) _tmp2_;
+ return result;
+}
+
+
+gboolean js_render_langclass_isKeyword (JsRenderLang_Class* self, const gchar* word) {
+ gboolean result = FALSE;
+ GeeHashMap* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gpointer _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ g_return_val_if_fail (self != NULL, FALSE);
+ g_return_val_if_fail (word != NULL, FALSE);
+ _tmp0_ = self->priv->keywordNames;
+ _tmp1_ = word;
+ _tmp2_ = g_strconcat ("=", _tmp1_, NULL);
+ _tmp3_ = _tmp2_;
+ _tmp4_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp0_, _tmp3_);
+ _tmp5_ = (gchar*) _tmp4_;
+ _tmp6_ = _tmp5_ != NULL;
+ _g_free0 (_tmp5_);
+ _g_free0 (_tmp3_);
+ result = _tmp6_;
+ return result;
+}
+
+
+gchar* js_render_langclass_punc (JsRenderLang_Class* self, const gchar* ch) {
+ gchar* result = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gpointer _tmp2_ = NULL;
+ g_return_val_if_fail (self != NULL, NULL);
+ g_return_val_if_fail (ch != NULL, NULL);
+ _tmp0_ = self->priv->puncNames;
+ _tmp1_ = ch;
+ _tmp2_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp0_, _tmp1_);
+ result = (gchar*) _tmp2_;
+ return result;
+}
+
+
+gboolean js_render_langclass_isNumber (JsRenderLang_Class* self, const gchar* str) {
+ gboolean result = FALSE;
+ const gchar* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ g_return_val_if_fail (self != NULL, FALSE);
+ g_return_val_if_fail (str != NULL, FALSE);
+ _tmp0_ = str;
+ _tmp1_ = g_regex_match_simple ("^(.[0-9]|[0-9]+.|[0-9])[0-9]*([eE][+-][0-9]+)?$", _tmp0_, 0, 0);
+ result = _tmp1_;
+ return result;
+}
+
+
+gboolean js_render_langclass_isHexDec (JsRenderLang_Class* self, const gchar* str) {
+ gboolean result = FALSE;
+ const gchar* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ g_return_val_if_fail (self != NULL, FALSE);
+ g_return_val_if_fail (str != NULL, FALSE);
+ _tmp0_ = str;
+ _tmp1_ = g_regex_match_simple ("^0x[0-9A-F]+$", _tmp0_, 0, 0);
+ result = _tmp1_;
+ return result;
+}
+
+
+gboolean js_render_langclass_isWordChar (JsRenderLang_Class* self, const gchar* str) {
+ gboolean result = FALSE;
+ const gchar* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ g_return_val_if_fail (self != NULL, FALSE);
+ g_return_val_if_fail (str != NULL, FALSE);
+ _tmp0_ = str;
+ _tmp1_ = g_regex_match_simple ("^[a-zA-Z0-9$_.]+$", _tmp0_, 0, 0);
+ result = _tmp1_;
+ return result;
+}
+
+
+gboolean js_render_langclass_isSpace (JsRenderLang_Class* self, const gchar* str) {
+ gboolean result = FALSE;
+ GeeHashMap* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gpointer _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ g_return_val_if_fail (self != NULL, FALSE);
+ g_return_val_if_fail (str != NULL, FALSE);
+ _tmp0_ = self->priv->whitespaceNames;
+ _tmp1_ = str;
+ _tmp2_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp0_, _tmp1_);
+ _tmp3_ = (gchar*) _tmp2_;
+ _tmp4_ = _tmp3_ != NULL;
+ _g_free0 (_tmp3_);
+ result = _tmp4_;
+ return result;
+}
+
+
+gboolean js_render_langclass_isNewline (JsRenderLang_Class* self, const gchar* str) {
+ gboolean result = FALSE;
+ GeeHashMap* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gpointer _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ g_return_val_if_fail (self != NULL, FALSE);
+ g_return_val_if_fail (str != NULL, FALSE);
+ _tmp0_ = self->priv->newlineNames;
+ _tmp1_ = str;
+ _tmp2_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp0_, _tmp1_);
+ _tmp3_ = (gchar*) _tmp2_;
+ _tmp4_ = _tmp3_ != NULL;
+ _g_free0 (_tmp3_);
+ result = _tmp4_;
+ return result;
+}
+
+
+gboolean js_render_langclass_isBoolean (JsRenderLang_Class* self, const gchar* str) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ const gchar* _tmp1_ = NULL;
+ g_return_val_if_fail (self != NULL, FALSE);
+ g_return_val_if_fail (str != NULL, FALSE);
+ _tmp1_ = str;
+ if (g_strcmp0 (_tmp1_, "false") == 0) {
+ _tmp0_ = TRUE;
+ } else {
+ const gchar* _tmp2_ = NULL;
+ _tmp2_ = str;
+ _tmp0_ = g_strcmp0 (_tmp2_, "true") == 0;
+ }
+ result = _tmp0_;
+ return result;
+}
+
+
+static void js_render_langclass_init (JsRenderLang_Class* self) {
+ GeeHashMap* _tmp0_ = NULL;
+ GeeHashMap* _tmp1_ = NULL;
+ GeeHashMap* _tmp2_ = NULL;
+ GeeHashMap* _tmp3_ = NULL;
+ GeeHashMap* _tmp4_ = NULL;
+ gchar** co = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ gchar** _tmp16_ = NULL;
+ gint co_length1 = 0;
+ gint _co_size_ = 0;
+ gchar** ws = NULL;
+ gchar* _tmp25_ = NULL;
+ gchar* _tmp26_ = NULL;
+ gchar* _tmp27_ = NULL;
+ gchar** _tmp28_ = NULL;
+ gint ws_length1 = 0;
+ gint _ws_size_ = 0;
+ gchar* _tmp43_ = NULL;
+ gchar* _tmp44_ = NULL;
+ gchar** _tmp45_ = NULL;
+ gchar* _tmp60_ = NULL;
+ gchar* _tmp61_ = NULL;
+ gchar* _tmp62_ = NULL;
+ gchar* _tmp63_ = NULL;
+ gchar* _tmp64_ = NULL;
+ gchar* _tmp65_ = NULL;
+ gchar* _tmp66_ = NULL;
+ gchar* _tmp67_ = NULL;
+ gchar* _tmp68_ = NULL;
+ gchar* _tmp69_ = NULL;
+ gchar* _tmp70_ = NULL;
+ gchar* _tmp71_ = NULL;
+ gchar* _tmp72_ = NULL;
+ gchar* _tmp73_ = NULL;
+ gchar* _tmp74_ = NULL;
+ gchar* _tmp75_ = NULL;
+ gchar* _tmp76_ = NULL;
+ gchar* _tmp77_ = NULL;
+ gchar* _tmp78_ = NULL;
+ gchar* _tmp79_ = NULL;
+ gchar* _tmp80_ = NULL;
+ gchar* _tmp81_ = NULL;
+ gchar* _tmp82_ = NULL;
+ gchar* _tmp83_ = NULL;
+ gchar* _tmp84_ = NULL;
+ gchar* _tmp85_ = NULL;
+ gchar* _tmp86_ = NULL;
+ gchar* _tmp87_ = NULL;
+ gchar* _tmp88_ = NULL;
+ gchar** _tmp89_ = NULL;
+ gchar* _tmp104_ = NULL;
+ gchar* _tmp105_ = NULL;
+ gchar* _tmp106_ = NULL;
+ gchar* _tmp107_ = NULL;
+ gchar* _tmp108_ = NULL;
+ gchar* _tmp109_ = NULL;
+ gchar* _tmp110_ = NULL;
+ gchar* _tmp111_ = NULL;
+ gchar* _tmp112_ = NULL;
+ gchar* _tmp113_ = NULL;
+ gchar* _tmp114_ = NULL;
+ gchar* _tmp115_ = NULL;
+ gchar* _tmp116_ = NULL;
+ gchar* _tmp117_ = NULL;
+ gchar* _tmp118_ = NULL;
+ gchar* _tmp119_ = NULL;
+ gchar* _tmp120_ = NULL;
+ gchar* _tmp121_ = NULL;
+ gchar* _tmp122_ = NULL;
+ gchar* _tmp123_ = NULL;
+ gchar* _tmp124_ = NULL;
+ gchar* _tmp125_ = NULL;
+ gchar* _tmp126_ = NULL;
+ gchar* _tmp127_ = NULL;
+ gchar* _tmp128_ = NULL;
+ gchar* _tmp129_ = NULL;
+ gchar* _tmp130_ = NULL;
+ gchar* _tmp131_ = NULL;
+ gchar* _tmp132_ = NULL;
+ gchar* _tmp133_ = NULL;
+ gchar* _tmp134_ = NULL;
+ gchar* _tmp135_ = NULL;
+ gchar* _tmp136_ = NULL;
+ gchar* _tmp137_ = NULL;
+ gchar* _tmp138_ = NULL;
+ gchar* _tmp139_ = NULL;
+ gchar* _tmp140_ = NULL;
+ gchar** _tmp141_ = NULL;
+ gchar* _tmp156_ = NULL;
+ gchar* _tmp157_ = NULL;
+ gchar* _tmp158_ = NULL;
+ gchar* _tmp159_ = NULL;
+ gchar* _tmp160_ = NULL;
+ gchar* _tmp161_ = NULL;
+ gchar** _tmp162_ = NULL;
+ g_return_if_fail (self != NULL);
+ __g_list_free__g_free0_0 (self->priv->coreObjects);
+ self->priv->coreObjects = NULL;
+ _tmp0_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL, NULL);
+ _g_object_unref0 (self->priv->whitespaceNames);
+ self->priv->whitespaceNames = _tmp0_;
+ _tmp1_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL, NULL);
+ _g_object_unref0 (self->priv->newlineNames);
+ self->priv->newlineNames = _tmp1_;
+ _tmp2_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL, NULL);
+ _g_object_unref0 (self->priv->keywordNames);
+ self->priv->keywordNames = _tmp2_;
+ _tmp3_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL, NULL);
+ _g_object_unref0 (self->priv->puncNames);
+ self->priv->puncNames = _tmp3_;
+ _tmp4_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL, NULL);
+ _g_object_unref0 (self->priv->matchingNames);
+ self->priv->matchingNames = _tmp4_;
+ _tmp5_ = g_strdup ("_global_");
+ _tmp6_ = g_strdup ("Array");
+ _tmp7_ = g_strdup ("Boolean");
+ _tmp8_ = g_strdup ("Date");
+ _tmp9_ = g_strdup ("Error");
+ _tmp10_ = g_strdup ("Function");
+ _tmp11_ = g_strdup ("Math");
+ _tmp12_ = g_strdup ("Number");
+ _tmp13_ = g_strdup ("Object");
+ _tmp14_ = g_strdup ("RegExp");
+ _tmp15_ = g_strdup ("String");
+ _tmp16_ = g_new0 (gchar*, 11 + 1);
+ _tmp16_[0] = _tmp5_;
+ _tmp16_[1] = _tmp6_;
+ _tmp16_[2] = _tmp7_;
+ _tmp16_[3] = _tmp8_;
+ _tmp16_[4] = _tmp9_;
+ _tmp16_[5] = _tmp10_;
+ _tmp16_[6] = _tmp11_;
+ _tmp16_[7] = _tmp12_;
+ _tmp16_[8] = _tmp13_;
+ _tmp16_[9] = _tmp14_;
+ _tmp16_[10] = _tmp15_;
+ co = _tmp16_;
+ co_length1 = 11;
+ _co_size_ = co_length1;
+ {
+ gint i = 0;
+ i = 0;
+ {
+ gboolean _tmp17_ = FALSE;
+ _tmp17_ = TRUE;
+ while (TRUE) {
+ gint _tmp19_ = 0;
+ gchar** _tmp20_ = NULL;
+ gint _tmp20__length1 = 0;
+ gchar** _tmp21_ = NULL;
+ gint _tmp21__length1 = 0;
+ gint _tmp22_ = 0;
+ const gchar* _tmp23_ = NULL;
+ gchar* _tmp24_ = NULL;
+ if (!_tmp17_) {
+ gint _tmp18_ = 0;
+ _tmp18_ = i;
+ i = _tmp18_ + 1;
+ }
+ _tmp17_ = FALSE;
+ _tmp19_ = i;
+ _tmp20_ = co;
+ _tmp20__length1 = co_length1;
+ if (!(_tmp19_ < _tmp20__length1)) {
+ break;
+ }
+ _tmp21_ = co;
+ _tmp21__length1 = co_length1;
+ _tmp22_ = i;
+ _tmp23_ = _tmp21_[_tmp22_];
+ _tmp24_ = g_strdup (_tmp23_);
+ self->priv->coreObjects = g_list_append (self->priv->coreObjects, _tmp24_);
+ }
+ }
+ }
+ _tmp25_ = g_strdup (" :SPACE");
+ _tmp26_ = g_strdup ("\f:FORMFEED");
+ _tmp27_ = g_strdup ("\t:TAB");
+ _tmp28_ = g_new0 (gchar*, 3 + 1);
+ _tmp28_[0] = _tmp25_;
+ _tmp28_[1] = _tmp26_;
+ _tmp28_[2] = _tmp27_;
+ ws = _tmp28_;
+ ws_length1 = 3;
+ _ws_size_ = ws_length1;
+ {
+ gint i = 0;
+ i = 0;
+ {
+ gboolean _tmp29_ = FALSE;
+ _tmp29_ = TRUE;
+ while (TRUE) {
+ gint _tmp31_ = 0;
+ gchar** _tmp32_ = NULL;
+ gint _tmp32__length1 = 0;
+ gchar** x = NULL;
+ gchar** _tmp33_ = NULL;
+ gint _tmp33__length1 = 0;
+ gint _tmp34_ = 0;
+ const gchar* _tmp35_ = NULL;
+ gchar** _tmp36_ = NULL;
+ gchar** _tmp37_ = NULL;
+ gint x_length1 = 0;
+ gint _x_size_ = 0;
+ GeeHashMap* _tmp38_ = NULL;
+ gchar** _tmp39_ = NULL;
+ gint _tmp39__length1 = 0;
+ const gchar* _tmp40_ = NULL;
+ gchar** _tmp41_ = NULL;
+ gint _tmp41__length1 = 0;
+ const gchar* _tmp42_ = NULL;
+ if (!_tmp29_) {
+ gint _tmp30_ = 0;
+ _tmp30_ = i;
+ i = _tmp30_ + 1;
+ }
+ _tmp29_ = FALSE;
+ _tmp31_ = i;
+ _tmp32_ = ws;
+ _tmp32__length1 = ws_length1;
+ if (!(_tmp31_ < _tmp32__length1)) {
+ break;
+ }
+ _tmp33_ = ws;
+ _tmp33__length1 = ws_length1;
+ _tmp34_ = i;
+ _tmp35_ = _tmp33_[_tmp34_];
+ _tmp37_ = _tmp36_ = g_strsplit (_tmp35_, ":", 0);
+ x = _tmp37_;
+ x_length1 = _vala_array_length (_tmp36_);
+ _x_size_ = x_length1;
+ _tmp38_ = self->priv->whitespaceNames;
+ _tmp39_ = x;
+ _tmp39__length1 = x_length1;
+ _tmp40_ = _tmp39_[0];
+ _tmp41_ = x;
+ _tmp41__length1 = x_length1;
+ _tmp42_ = _tmp41_[1];
+ gee_abstract_map_set ((GeeAbstractMap*) _tmp38_, _tmp40_, _tmp42_);
+ x = (_vala_array_free (x, x_length1, (GDestroyNotify) g_free), NULL);
+ }
+ }
+ }
+ _tmp43_ = g_strdup ("\n:NEWLINE");
+ _tmp44_ = g_strdup ("\r:RETURN");
+ _tmp45_ = g_new0 (gchar*, 2 + 1);
+ _tmp45_[0] = _tmp43_;
+ _tmp45_[1] = _tmp44_;
+ ws = (_vala_array_free (ws, ws_length1, (GDestroyNotify) g_free), NULL);
+ ws = _tmp45_;
+ ws_length1 = 2;
+ _ws_size_ = ws_length1;
+ {
+ gint i = 0;
+ i = 0;
+ {
+ gboolean _tmp46_ = FALSE;
+ _tmp46_ = TRUE;
+ while (TRUE) {
+ gint _tmp48_ = 0;
+ gchar** _tmp49_ = NULL;
+ gint _tmp49__length1 = 0;
+ gchar** x = NULL;
+ gchar** _tmp50_ = NULL;
+ gint _tmp50__length1 = 0;
+ gint _tmp51_ = 0;
+ const gchar* _tmp52_ = NULL;
+ gchar** _tmp53_ = NULL;
+ gchar** _tmp54_ = NULL;
+ gint x_length1 = 0;
+ gint _x_size_ = 0;
+ GeeHashMap* _tmp55_ = NULL;
+ gchar** _tmp56_ = NULL;
+ gint _tmp56__length1 = 0;
+ const gchar* _tmp57_ = NULL;
+ gchar** _tmp58_ = NULL;
+ gint _tmp58__length1 = 0;
+ const gchar* _tmp59_ = NULL;
+ if (!_tmp46_) {
+ gint _tmp47_ = 0;
+ _tmp47_ = i;
+ i = _tmp47_ + 1;
+ }
+ _tmp46_ = FALSE;
+ _tmp48_ = i;
+ _tmp49_ = ws;
+ _tmp49__length1 = ws_length1;
+ if (!(_tmp48_ < _tmp49__length1)) {
+ break;
+ }
+ _tmp50_ = ws;
+ _tmp50__length1 = ws_length1;
+ _tmp51_ = i;
+ _tmp52_ = _tmp50_[_tmp51_];
+ _tmp54_ = _tmp53_ = g_strsplit (_tmp52_, ":", 0);
+ x = _tmp54_;
+ x_length1 = _vala_array_length (_tmp53_);
+ _x_size_ = x_length1;
+ _tmp55_ = self->priv->newlineNames;
+ _tmp56_ = x;
+ _tmp56__length1 = x_length1;
+ _tmp57_ = _tmp56_[0];
+ _tmp58_ = x;
+ _tmp58__length1 = x_length1;
+ _tmp59_ = _tmp58_[1];
+ gee_abstract_map_set ((GeeAbstractMap*) _tmp55_, _tmp57_, _tmp59_);
+ x = (_vala_array_free (x, x_length1, (GDestroyNotify) g_free), NULL);
+ }
+ }
+ }
+ _tmp60_ = g_strdup ("=break:BREAK");
+ _tmp61_ = g_strdup ("=case:CASE");
+ _tmp62_ = g_strdup ("=catch:CATCH");
+ _tmp63_ = g_strdup ("=const:VAR");
+ _tmp64_ = g_strdup ("=continue:CONTINUE");
+ _tmp65_ = g_strdup ("=default:DEFAULT");
+ _tmp66_ = g_strdup ("=delete:DELETE");
+ _tmp67_ = g_strdup ("=do:DO");
+ _tmp68_ = g_strdup ("=else:ELSE");
+ _tmp69_ = g_strdup ("=false:FALSE");
+ _tmp70_ = g_strdup ("=finally:FINALLY");
+ _tmp71_ = g_strdup ("=for:FOR");
+ _tmp72_ = g_strdup ("=function:FUNCTION");
+ _tmp73_ = g_strdup ("=if:IF");
+ _tmp74_ = g_strdup ("=in:IN");
+ _tmp75_ = g_strdup ("=instanceof:INSTANCEOF");
+ _tmp76_ = g_strdup ("=new:NEW");
+ _tmp77_ = g_strdup ("=null:NULL");
+ _tmp78_ = g_strdup ("=return:RETURN");
+ _tmp79_ = g_strdup ("=switch:SWITCH");
+ _tmp80_ = g_strdup ("=this:THIS");
+ _tmp81_ = g_strdup ("=throw:THROW");
+ _tmp82_ = g_strdup ("=true:TRUE");
+ _tmp83_ = g_strdup ("=try:TRY");
+ _tmp84_ = g_strdup ("=typeof:TYPEOF");
+ _tmp85_ = g_strdup ("=void:VOID");
+ _tmp86_ = g_strdup ("=while:WHILE");
+ _tmp87_ = g_strdup ("=with:WITH");
+ _tmp88_ = g_strdup ("=var:VAR");
+ _tmp89_ = g_new0 (gchar*, 29 + 1);
+ _tmp89_[0] = _tmp60_;
+ _tmp89_[1] = _tmp61_;
+ _tmp89_[2] = _tmp62_;
+ _tmp89_[3] = _tmp63_;
+ _tmp89_[4] = _tmp64_;
+ _tmp89_[5] = _tmp65_;
+ _tmp89_[6] = _tmp66_;
+ _tmp89_[7] = _tmp67_;
+ _tmp89_[8] = _tmp68_;
+ _tmp89_[9] = _tmp69_;
+ _tmp89_[10] = _tmp70_;
+ _tmp89_[11] = _tmp71_;
+ _tmp89_[12] = _tmp72_;
+ _tmp89_[13] = _tmp73_;
+ _tmp89_[14] = _tmp74_;
+ _tmp89_[15] = _tmp75_;
+ _tmp89_[16] = _tmp76_;
+ _tmp89_[17] = _tmp77_;
+ _tmp89_[18] = _tmp78_;
+ _tmp89_[19] = _tmp79_;
+ _tmp89_[20] = _tmp80_;
+ _tmp89_[21] = _tmp81_;
+ _tmp89_[22] = _tmp82_;
+ _tmp89_[23] = _tmp83_;
+ _tmp89_[24] = _tmp84_;
+ _tmp89_[25] = _tmp85_;
+ _tmp89_[26] = _tmp86_;
+ _tmp89_[27] = _tmp87_;
+ _tmp89_[28] = _tmp88_;
+ ws = (_vala_array_free (ws, ws_length1, (GDestroyNotify) g_free), NULL);
+ ws = _tmp89_;
+ ws_length1 = 29;
+ _ws_size_ = ws_length1;
+ {
+ gint i = 0;
+ i = 0;
+ {
+ gboolean _tmp90_ = FALSE;
+ _tmp90_ = TRUE;
+ while (TRUE) {
+ gint _tmp92_ = 0;
+ gchar** _tmp93_ = NULL;
+ gint _tmp93__length1 = 0;
+ gchar** x = NULL;
+ gchar** _tmp94_ = NULL;
+ gint _tmp94__length1 = 0;
+ gint _tmp95_ = 0;
+ const gchar* _tmp96_ = NULL;
+ gchar** _tmp97_ = NULL;
+ gchar** _tmp98_ = NULL;
+ gint x_length1 = 0;
+ gint _x_size_ = 0;
+ GeeHashMap* _tmp99_ = NULL;
+ gchar** _tmp100_ = NULL;
+ gint _tmp100__length1 = 0;
+ const gchar* _tmp101_ = NULL;
+ gchar** _tmp102_ = NULL;
+ gint _tmp102__length1 = 0;
+ const gchar* _tmp103_ = NULL;
+ if (!_tmp90_) {
+ gint _tmp91_ = 0;
+ _tmp91_ = i;
+ i = _tmp91_ + 1;
+ }
+ _tmp90_ = FALSE;
+ _tmp92_ = i;
+ _tmp93_ = ws;
+ _tmp93__length1 = ws_length1;
+ if (!(_tmp92_ < _tmp93__length1)) {
+ break;
+ }
+ _tmp94_ = ws;
+ _tmp94__length1 = ws_length1;
+ _tmp95_ = i;
+ _tmp96_ = _tmp94_[_tmp95_];
+ _tmp98_ = _tmp97_ = g_strsplit (_tmp96_, ":", 0);
+ x = _tmp98_;
+ x_length1 = _vala_array_length (_tmp97_);
+ _x_size_ = x_length1;
+ _tmp99_ = self->priv->keywordNames;
+ _tmp100_ = x;
+ _tmp100__length1 = x_length1;
+ _tmp101_ = _tmp100_[0];
+ _tmp102_ = x;
+ _tmp102__length1 = x_length1;
+ _tmp103_ = _tmp102_[1];
+ gee_abstract_map_set ((GeeAbstractMap*) _tmp99_, _tmp101_, _tmp103_);
+ x = (_vala_array_free (x, x_length1, (GDestroyNotify) g_free), NULL);
+ }
+ }
+ }
+ _tmp104_ = g_strdup ("; SEMICOLON");
+ _tmp105_ = g_strdup (", COMMA");
+ _tmp106_ = g_strdup ("? HOOK");
+ _tmp107_ = g_strdup (": COLON");
+ _tmp108_ = g_strdup ("|| OR");
+ _tmp109_ = g_strdup ("&& AND");
+ _tmp110_ = g_strdup ("| BITWISE_OR");
+ _tmp111_ = g_strdup ("^ BITWISE_XOR");
+ _tmp112_ = g_strdup ("& BITWISE_AND");
+ _tmp113_ = g_strdup ("=== STRICT_EQ");
+ _tmp114_ = g_strdup ("== EQ");
+ _tmp115_ = g_strdup ("= ASSIGN");
+ _tmp116_ = g_strdup ("!== STRICT_NE");
+ _tmp117_ = g_strdup ("!= NE");
+ _tmp118_ = g_strdup ("<< LSH");
+ _tmp119_ = g_strdup ("<= LE");
+ _tmp120_ = g_strdup ("< LT");
+ _tmp121_ = g_strdup (">>> URSH");
+ _tmp122_ = g_strdup (">> RSH");
+ _tmp123_ = g_strdup (">= GE");
+ _tmp124_ = g_strdup ("> GT");
+ _tmp125_ = g_strdup ("++ INCREMENT");
+ _tmp126_ = g_strdup ("-- DECREMENT");
+ _tmp127_ = g_strdup ("+ PLUS");
+ _tmp128_ = g_strdup ("- MINUS");
+ _tmp129_ = g_strdup ("* MUL");
+ _tmp130_ = g_strdup ("/ DIV");
+ _tmp131_ = g_strdup ("% MOD");
+ _tmp132_ = g_strdup ("! NOT");
+ _tmp133_ = g_strdup ("~ BITWISE_NOT");
+ _tmp134_ = g_strdup (". DOT");
+ _tmp135_ = g_strdup ("[ LEFT_BRACE");
+ _tmp136_ = g_strdup ("] RIGHT_BRACE");
+ _tmp137_ = g_strdup ("{ LEFT_CURLY");
+ _tmp138_ = g_strdup ("} RIGHT_CURLY");
+ _tmp139_ = g_strdup ("( LEFT_PAREN");
+ _tmp140_ = g_strdup (") RIGHT_PAREN");
+ _tmp141_ = g_new0 (gchar*, 37 + 1);
+ _tmp141_[0] = _tmp104_;
+ _tmp141_[1] = _tmp105_;
+ _tmp141_[2] = _tmp106_;
+ _tmp141_[3] = _tmp107_;
+ _tmp141_[4] = _tmp108_;
+ _tmp141_[5] = _tmp109_;
+ _tmp141_[6] = _tmp110_;
+ _tmp141_[7] = _tmp111_;
+ _tmp141_[8] = _tmp112_;
+ _tmp141_[9] = _tmp113_;
+ _tmp141_[10] = _tmp114_;
+ _tmp141_[11] = _tmp115_;
+ _tmp141_[12] = _tmp116_;
+ _tmp141_[13] = _tmp117_;
+ _tmp141_[14] = _tmp118_;
+ _tmp141_[15] = _tmp119_;
+ _tmp141_[16] = _tmp120_;
+ _tmp141_[17] = _tmp121_;
+ _tmp141_[18] = _tmp122_;
+ _tmp141_[19] = _tmp123_;
+ _tmp141_[20] = _tmp124_;
+ _tmp141_[21] = _tmp125_;
+ _tmp141_[22] = _tmp126_;
+ _tmp141_[23] = _tmp127_;
+ _tmp141_[24] = _tmp128_;
+ _tmp141_[25] = _tmp129_;
+ _tmp141_[26] = _tmp130_;
+ _tmp141_[27] = _tmp131_;
+ _tmp141_[28] = _tmp132_;
+ _tmp141_[29] = _tmp133_;
+ _tmp141_[30] = _tmp134_;
+ _tmp141_[31] = _tmp135_;
+ _tmp141_[32] = _tmp136_;
+ _tmp141_[33] = _tmp137_;
+ _tmp141_[34] = _tmp138_;
+ _tmp141_[35] = _tmp139_;
+ _tmp141_[36] = _tmp140_;
+ ws = (_vala_array_free (ws, ws_length1, (GDestroyNotify) g_free), NULL);
+ ws = _tmp141_;
+ ws_length1 = 37;
+ _ws_size_ = ws_length1;
+ {
+ gint i = 0;
+ i = 0;
+ {
+ gboolean _tmp142_ = FALSE;
+ _tmp142_ = TRUE;
+ while (TRUE) {
+ gint _tmp144_ = 0;
+ gchar** _tmp145_ = NULL;
+ gint _tmp145__length1 = 0;
+ gchar** x = NULL;
+ gchar** _tmp146_ = NULL;
+ gint _tmp146__length1 = 0;
+ gint _tmp147_ = 0;
+ const gchar* _tmp148_ = NULL;
+ gchar** _tmp149_ = NULL;
+ gchar** _tmp150_ = NULL;
+ gint x_length1 = 0;
+ gint _x_size_ = 0;
+ GeeHashMap* _tmp151_ = NULL;
+ gchar** _tmp152_ = NULL;
+ gint _tmp152__length1 = 0;
+ const gchar* _tmp153_ = NULL;
+ gchar** _tmp154_ = NULL;
+ gint _tmp154__length1 = 0;
+ const gchar* _tmp155_ = NULL;
+ if (!_tmp142_) {
+ gint _tmp143_ = 0;
+ _tmp143_ = i;
+ i = _tmp143_ + 1;
+ }
+ _tmp142_ = FALSE;
+ _tmp144_ = i;
+ _tmp145_ = ws;
+ _tmp145__length1 = ws_length1;
+ if (!(_tmp144_ < _tmp145__length1)) {
+ break;
+ }
+ _tmp146_ = ws;
+ _tmp146__length1 = ws_length1;
+ _tmp147_ = i;
+ _tmp148_ = _tmp146_[_tmp147_];
+ _tmp150_ = _tmp149_ = g_strsplit (_tmp148_, " ", 0);
+ x = _tmp150_;
+ x_length1 = _vala_array_length (_tmp149_);
+ _x_size_ = x_length1;
+ _tmp151_ = self->priv->puncNames;
+ _tmp152_ = x;
+ _tmp152__length1 = x_length1;
+ _tmp153_ = _tmp152_[0];
+ _tmp154_ = x;
+ _tmp154__length1 = x_length1;
+ _tmp155_ = _tmp154_[1];
+ gee_abstract_map_set ((GeeAbstractMap*) _tmp151_, _tmp153_, _tmp155_);
+ x = (_vala_array_free (x, x_length1, (GDestroyNotify) g_free), NULL);
+ }
+ }
+ }
+ _tmp156_ = g_strdup ("LEFT_PAREN:RIGHT_PAREN");
+ _tmp157_ = g_strdup ("RIGHT_PAREN:LEFT_PAREN");
+ _tmp158_ = g_strdup ("LEFT_CURLY:RIGHT_CURLY");
+ _tmp159_ = g_strdup ("RIGHT_CURLY:LEFT_CURLY");
+ _tmp160_ = g_strdup ("LEFT_BRACE:RIGHT_BRACE");
+ _tmp161_ = g_strdup ("RIGHT_BRACE:LEFT_BRACE");
+ _tmp162_ = g_new0 (gchar*, 6 + 1);
+ _tmp162_[0] = _tmp156_;
+ _tmp162_[1] = _tmp157_;
+ _tmp162_[2] = _tmp158_;
+ _tmp162_[3] = _tmp159_;
+ _tmp162_[4] = _tmp160_;
+ _tmp162_[5] = _tmp161_;
+ ws = (_vala_array_free (ws, ws_length1, (GDestroyNotify) g_free), NULL);
+ ws = _tmp162_;
+ ws_length1 = 6;
+ _ws_size_ = ws_length1;
+ {
+ gint i = 0;
+ i = 0;
+ {
+ gboolean _tmp163_ = FALSE;
+ _tmp163_ = TRUE;
+ while (TRUE) {
+ gint _tmp165_ = 0;
+ gchar** _tmp166_ = NULL;
+ gint _tmp166__length1 = 0;
+ gchar** x = NULL;
+ gchar** _tmp167_ = NULL;
+ gint _tmp167__length1 = 0;
+ gint _tmp168_ = 0;
+ const gchar* _tmp169_ = NULL;
+ gchar** _tmp170_ = NULL;
+ gchar** _tmp171_ = NULL;
+ gint x_length1 = 0;
+ gint _x_size_ = 0;
+ GeeHashMap* _tmp172_ = NULL;
+ gchar** _tmp173_ = NULL;
+ gint _tmp173__length1 = 0;
+ const gchar* _tmp174_ = NULL;
+ gchar** _tmp175_ = NULL;
+ gint _tmp175__length1 = 0;
+ const gchar* _tmp176_ = NULL;
+ if (!_tmp163_) {
+ gint _tmp164_ = 0;
+ _tmp164_ = i;
+ i = _tmp164_ + 1;
+ }
+ _tmp163_ = FALSE;
+ _tmp165_ = i;
+ _tmp166_ = ws;
+ _tmp166__length1 = ws_length1;
+ if (!(_tmp165_ < _tmp166__length1)) {
+ break;
+ }
+ _tmp167_ = ws;
+ _tmp167__length1 = ws_length1;
+ _tmp168_ = i;
+ _tmp169_ = _tmp167_[_tmp168_];
+ _tmp171_ = _tmp170_ = g_strsplit (_tmp169_, ":", 0);
+ x = _tmp171_;
+ x_length1 = _vala_array_length (_tmp170_);
+ _x_size_ = x_length1;
+ _tmp172_ = self->priv->matchingNames;
+ _tmp173_ = x;
+ _tmp173__length1 = x_length1;
+ _tmp174_ = _tmp173_[0];
+ _tmp175_ = x;
+ _tmp175__length1 = x_length1;
+ _tmp176_ = _tmp175_[1];
+ gee_abstract_map_set ((GeeAbstractMap*) _tmp172_, _tmp174_, _tmp176_);
+ x = (_vala_array_free (x, x_length1, (GDestroyNotify) g_free), NULL);
+ }
+ }
+ }
+ ws = (_vala_array_free (ws, ws_length1, (GDestroyNotify) g_free), NULL);
+ co = (_vala_array_free (co, co_length1, (GDestroyNotify) g_free), NULL);
+}
+
+
+static void js_render_langclass_class_init (JsRenderLang_ClassClass * klass) {
+ js_render_langclass_parent_class = g_type_class_peek_parent (klass);
+ g_type_class_add_private (klass, sizeof (JsRenderLang_ClassPrivate));
+ G_OBJECT_CLASS (klass)->finalize = js_render_langclass_finalize;
+}
+
+
+static void js_render_langclass_instance_init (JsRenderLang_Class * self) {
+ self->priv = JS_RENDER_LANGCLASS_GET_PRIVATE (self);
+}
+
+
+static void js_render_langclass_finalize (GObject* obj) {
+ JsRenderLang_Class * self;
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, JS_RENDER_TYPE_LANGCLASS, JsRenderLang_Class);
+ __g_list_free__g_free0_0 (self->priv->coreObjects);
+ _g_object_unref0 (self->priv->whitespaceNames);
+ _g_object_unref0 (self->priv->newlineNames);
+ _g_object_unref0 (self->priv->keywordNames);
+ _g_object_unref0 (self->priv->puncNames);
+ _g_object_unref0 (self->priv->matchingNames);
+ G_OBJECT_CLASS (js_render_langclass_parent_class)->finalize (obj);
+}
+
+
+GType js_render_langclass_get_type (void) {
+ static volatile gsize js_render_langclass_type_id__volatile = 0;
+ if (g_once_init_enter (&js_render_langclass_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (JsRenderLang_ClassClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) js_render_langclass_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (JsRenderLang_Class), 0, (GInstanceInitFunc) js_render_langclass_instance_init, NULL };
+ GType js_render_langclass_type_id;
+ js_render_langclass_type_id = g_type_register_static (G_TYPE_OBJECT, "JsRenderLang_Class", &g_define_type_info, 0);
+ g_once_init_leave (&js_render_langclass_type_id__volatile, js_render_langclass_type_id);
+ }
+ return js_render_langclass_type_id__volatile;
+}
+
+
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ if ((array != NULL) && (destroy_func != NULL)) {
+ int i;
+ for (i = 0; i < array_length; i = i + 1) {
+ if (((gpointer*) array)[i] != NULL) {
+ destroy_func (((gpointer*) array)[i]);
+ }
+ }
+ }
+}
+
+
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ _vala_array_destroy (array, array_length, destroy_func);
+ g_free (array);
+}
+
+
+static gint _vala_array_length (gpointer array) {
+ int length;
+ length = 0;
+ if (array) {
+ while (((gpointer*) array)[length]) {
+ length++;
+ }
+ }
+ return length;
+}
+
+
+
--- /dev/null
+/* Node.vala.c generated by valac 0.24.0, the Vala compiler
+ * generated from Node.vala, do not modify */
+
+/* test..*/
+/* valac gitlive/app.Builder.js/JsRender/Lang.vala gitlive/app.Builder.js/JsRender/Node.vala --pkg gee-1.0 --pkg=json-glib-1.0 -o /tmp/Lang ;/tmp/Lang*/
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gee.h>
+#include <stdlib.h>
+#include <string.h>
+#include <json-glib/json-glib.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define JS_RENDER_TYPE_NODE (js_render_node_get_type ())
+#define JS_RENDER_NODE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JS_RENDER_TYPE_NODE, JsRenderNode))
+#define JS_RENDER_NODE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JS_RENDER_TYPE_NODE, JsRenderNodeClass))
+#define JS_RENDER_IS_NODE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JS_RENDER_TYPE_NODE))
+#define JS_RENDER_IS_NODE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JS_RENDER_TYPE_NODE))
+#define JS_RENDER_NODE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JS_RENDER_TYPE_NODE, JsRenderNodeClass))
+
+typedef struct _JsRenderNode JsRenderNode;
+typedef struct _JsRenderNodeClass JsRenderNodeClass;
+typedef struct _JsRenderNodePrivate JsRenderNodePrivate;
+#define __g_list_free__js_render_node_unref0_0(var) ((var == NULL) ? NULL : (var = (_g_list_free__js_render_node_unref0_ (var), NULL)))
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _g_free0(var) (var = (g_free (var), NULL))
+#define _js_render_node_unref0(var) ((var == NULL) ? NULL : (var = (js_render_node_unref (var), NULL)))
+#define __g_list_free__g_free0_0(var) ((var == NULL) ? NULL : (var = (_g_list_free__g_free0_ (var), NULL)))
+#define _g_regex_unref0(var) ((var == NULL) ? NULL : (var = (g_regex_unref (var), NULL)))
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+
+#define JS_RENDER_TYPE_LANGCLASS (js_render_langclass_get_type ())
+#define JS_RENDER_LANGCLASS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JS_RENDER_TYPE_LANGCLASS, JsRenderLang_Class))
+#define JS_RENDER_LANGCLASS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JS_RENDER_TYPE_LANGCLASS, JsRenderLang_ClassClass))
+#define JS_RENDER_IS_LANGCLASS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JS_RENDER_TYPE_LANGCLASS))
+#define JS_RENDER_IS_LANGCLASS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JS_RENDER_TYPE_LANGCLASS))
+#define JS_RENDER_LANGCLASS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JS_RENDER_TYPE_LANGCLASS, JsRenderLang_ClassClass))
+
+typedef struct _JsRenderLang_Class JsRenderLang_Class;
+typedef struct _JsRenderLang_ClassClass JsRenderLang_ClassClass;
+#define __vala_JsonNode_free0(var) ((var == NULL) ? NULL : (var = (_vala_JsonNode_free (var), NULL)))
+#define _json_object_unref0(var) ((var == NULL) ? NULL : (var = (json_object_unref (var), NULL)))
+typedef struct _Block1Data Block1Data;
+#define _json_array_unref0(var) ((var == NULL) ? NULL : (var = (json_array_unref (var), NULL)))
+typedef struct _JsRenderParamSpecNode JsRenderParamSpecNode;
+
+struct _JsRenderNode {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ JsRenderNodePrivate * priv;
+ gboolean is_array;
+};
+
+struct _JsRenderNodeClass {
+ GTypeClass parent_class;
+ void (*finalize) (JsRenderNode *self);
+};
+
+struct _JsRenderNodePrivate {
+ GList* items;
+ GeeHashMap* props;
+ GeeHashMap* listeners;
+};
+
+typedef enum {
+ JS_RENDER_ERROR_INVALID_FORMAT
+} JsRenderError;
+#define JS_RENDER_ERROR js_render_error_quark ()
+struct _Block1Data {
+ int _ref_count_;
+ JsRenderNode* self;
+ JsonObject* obj;
+};
+
+struct _JsRenderParamSpecNode {
+ GParamSpec parent_instance;
+};
+
+
+static gpointer js_render_node_parent_class = NULL;
+static JsonGenerator* js_render_node_gen;
+static JsonGenerator* js_render_node_gen = NULL;
+extern JsRenderLang_Class* js_render_Lang;
+
+gpointer js_render_node_ref (gpointer instance);
+void js_render_node_unref (gpointer instance);
+GParamSpec* js_render_param_spec_node (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void js_render_value_set_node (GValue* value, gpointer v_object);
+void js_render_value_take_node (GValue* value, gpointer v_object);
+gpointer js_render_value_get_node (const GValue* value);
+GType js_render_node_get_type (void) G_GNUC_CONST;
+#define JS_RENDER_NODE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), JS_RENDER_TYPE_NODE, JsRenderNodePrivate))
+enum {
+ JS_RENDER_NODE_DUMMY_PROPERTY
+};
+static void _js_render_node_unref0_ (gpointer var);
+static void _g_list_free__js_render_node_unref0_ (GList* self);
+JsRenderNode* js_render_node_new (void);
+JsRenderNode* js_render_node_construct (GType object_type);
+gboolean js_render_node_isArray (JsRenderNode* self);
+gboolean js_render_node_hasChildren (JsRenderNode* self);
+gboolean js_render_node_hasXnsType (JsRenderNode* self);
+gchar* js_render_node_get (JsRenderNode* self, const gchar* key);
+gchar* js_render_node_mungeToString (JsRenderNode* self, gboolean isListener, const gchar* pad, GList* doubleStringProps);
+static void _g_free0_ (gpointer var);
+static void _g_list_free__g_free0_ (GList* self);
+GQuark js_render_error_quark (void);
+GType js_render_langclass_get_type (void) G_GNUC_CONST;
+gboolean js_render_langclass_isKeyword (JsRenderLang_Class* self, const gchar* word);
+gboolean js_render_langclass_isBuiltin (JsRenderLang_Class* self, const gchar* name);
+gchar* js_render_node_quoteString (JsRenderNode* self, const gchar* str);
+gboolean js_render_langclass_isNumber (JsRenderLang_Class* self, const gchar* str);
+gboolean js_render_langclass_isBoolean (JsRenderLang_Class* self, const gchar* str);
+static void _vala_JsonNode_free (JsonNode* self);
+void js_render_node_loadFromJson (JsRenderNode* self, JsonObject* obj);
+static Block1Data* block1_data_ref (Block1Data* _data1_);
+static void block1_data_unref (void * _userdata_);
+static void __lambda3_ (Block1Data* _data1_, JsonObject* o, const gchar* key, JsonNode* value);
+static void ___lambda4_ (JsRenderNode* self, JsonArray* are, guint ix, JsonNode* el);
+static void ____lambda4__json_array_foreach (JsonArray* array, guint index_, JsonNode* element_node, gpointer self);
+static void ___lambda5_ (JsRenderNode* self, JsonObject* lio, const gchar* li_key, JsonNode* li_value);
+static void ____lambda5__json_object_foreach (JsonObject* object, const gchar* member_name, JsonNode* member_node, gpointer self);
+static void ___lambda3__json_object_foreach (JsonObject* object, const gchar* member_name, JsonNode* member_node, gpointer self);
+static void js_render_node_finalize (JsRenderNode* obj);
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static gint _vala_array_length (gpointer array);
+
+
+static void _js_render_node_unref0_ (gpointer var) {
+ (var == NULL) ? NULL : (var = (js_render_node_unref (var), NULL));
+}
+
+
+static void _g_list_free__js_render_node_unref0_ (GList* self) {
+ g_list_foreach (self, (GFunc) _js_render_node_unref0_, NULL);
+ g_list_free (self);
+}
+
+
+JsRenderNode* js_render_node_construct (GType object_type) {
+ JsRenderNode* self = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ self = (JsRenderNode*) g_type_create_instance (object_type);
+ __g_list_free__js_render_node_unref0_0 (self->priv->items);
+ self->priv->items = NULL;
+ _tmp0_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL, NULL);
+ _g_object_unref0 (self->priv->props);
+ self->priv->props = _tmp0_;
+ self->is_array = FALSE;
+ return self;
+}
+
+
+JsRenderNode* js_render_node_new (void) {
+ return js_render_node_construct (JS_RENDER_TYPE_NODE);
+}
+
+
+gboolean js_render_node_isArray (JsRenderNode* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ g_return_val_if_fail (self != NULL, FALSE);
+ _tmp0_ = self->is_array;
+ result = _tmp0_;
+ return result;
+}
+
+
+gboolean js_render_node_hasChildren (JsRenderNode* self) {
+ gboolean result = FALSE;
+ GList* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+ g_return_val_if_fail (self != NULL, FALSE);
+ _tmp0_ = self->priv->items;
+ _tmp1_ = g_list_length (_tmp0_);
+ result = _tmp1_ > ((guint) 0);
+ return result;
+}
+
+
+gboolean js_render_node_hasXnsType (JsRenderNode* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ GeeHashMap* _tmp1_ = NULL;
+ gpointer _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ g_return_val_if_fail (self != NULL, FALSE);
+ _tmp1_ = self->priv->props;
+ _tmp2_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp1_, "|xns");
+ _tmp3_ = (gchar*) _tmp2_;
+ _tmp4_ = _tmp3_ != NULL;
+ _g_free0 (_tmp3_);
+ if (_tmp4_) {
+ GeeHashMap* _tmp5_ = NULL;
+ gpointer _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ _tmp5_ = self->priv->props;
+ _tmp6_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp5_, "xtype");
+ _tmp7_ = (gchar*) _tmp6_;
+ _tmp0_ = _tmp7_ != NULL;
+ _g_free0 (_tmp7_);
+ } else {
+ _tmp0_ = FALSE;
+ }
+ if (_tmp0_) {
+ result = TRUE;
+ return result;
+ }
+ result = FALSE;
+ return result;
+}
+
+
+gchar* js_render_node_get (JsRenderNode* self, const gchar* key) {
+ gchar* result = NULL;
+ gchar* k = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gpointer _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ g_return_val_if_fail (self != NULL, NULL);
+ g_return_val_if_fail (key != NULL, NULL);
+ _tmp0_ = self->priv->props;
+ _tmp1_ = key;
+ _tmp2_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp0_, _tmp1_);
+ k = (gchar*) _tmp2_;
+ _tmp3_ = k;
+ if (_tmp3_ == NULL) {
+ gchar* _tmp4_ = NULL;
+ _tmp4_ = g_strdup ("");
+ result = _tmp4_;
+ _g_free0 (k);
+ return result;
+ }
+ result = k;
+ return result;
+}
+
+
+static gpointer _js_render_node_ref0 (gpointer self) {
+ return self ? js_render_node_ref (self) : NULL;
+}
+
+
+static glong string_strnlen (gchar* str, glong maxlen) {
+ glong result = 0L;
+ gchar* end = NULL;
+ gchar* _tmp0_ = NULL;
+ glong _tmp1_ = 0L;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ _tmp0_ = str;
+ _tmp1_ = maxlen;
+ _tmp2_ = memchr (_tmp0_, 0, (gsize) _tmp1_);
+ end = _tmp2_;
+ _tmp3_ = end;
+ if (_tmp3_ == NULL) {
+ glong _tmp4_ = 0L;
+ _tmp4_ = maxlen;
+ result = _tmp4_;
+ return result;
+ } else {
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ _tmp5_ = end;
+ _tmp6_ = str;
+ result = (glong) (_tmp5_ - _tmp6_);
+ return result;
+ }
+}
+
+
+static gchar* string_substring (const gchar* self, glong offset, glong len) {
+ gchar* result = NULL;
+ glong string_length = 0L;
+ gboolean _tmp0_ = FALSE;
+ glong _tmp1_ = 0L;
+ glong _tmp8_ = 0L;
+ glong _tmp14_ = 0L;
+ glong _tmp17_ = 0L;
+ glong _tmp18_ = 0L;
+ glong _tmp19_ = 0L;
+ glong _tmp20_ = 0L;
+ glong _tmp21_ = 0L;
+ gchar* _tmp22_ = NULL;
+ g_return_val_if_fail (self != NULL, NULL);
+ _tmp1_ = offset;
+ if (_tmp1_ >= ((glong) 0)) {
+ glong _tmp2_ = 0L;
+ _tmp2_ = len;
+ _tmp0_ = _tmp2_ >= ((glong) 0);
+ } else {
+ _tmp0_ = FALSE;
+ }
+ if (_tmp0_) {
+ glong _tmp3_ = 0L;
+ glong _tmp4_ = 0L;
+ glong _tmp5_ = 0L;
+ _tmp3_ = offset;
+ _tmp4_ = len;
+ _tmp5_ = string_strnlen ((gchar*) self, _tmp3_ + _tmp4_);
+ string_length = _tmp5_;
+ } else {
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ _tmp6_ = strlen (self);
+ _tmp7_ = _tmp6_;
+ string_length = (glong) _tmp7_;
+ }
+ _tmp8_ = offset;
+ if (_tmp8_ < ((glong) 0)) {
+ glong _tmp9_ = 0L;
+ glong _tmp10_ = 0L;
+ glong _tmp11_ = 0L;
+ _tmp9_ = string_length;
+ _tmp10_ = offset;
+ offset = _tmp9_ + _tmp10_;
+ _tmp11_ = offset;
+ g_return_val_if_fail (_tmp11_ >= ((glong) 0), NULL);
+ } else {
+ glong _tmp12_ = 0L;
+ glong _tmp13_ = 0L;
+ _tmp12_ = offset;
+ _tmp13_ = string_length;
+ g_return_val_if_fail (_tmp12_ <= _tmp13_, NULL);
+ }
+ _tmp14_ = len;
+ if (_tmp14_ < ((glong) 0)) {
+ glong _tmp15_ = 0L;
+ glong _tmp16_ = 0L;
+ _tmp15_ = string_length;
+ _tmp16_ = offset;
+ len = _tmp15_ - _tmp16_;
+ }
+ _tmp17_ = offset;
+ _tmp18_ = len;
+ _tmp19_ = string_length;
+ g_return_val_if_fail ((_tmp17_ + _tmp18_) <= _tmp19_, NULL);
+ _tmp20_ = offset;
+ _tmp21_ = len;
+ _tmp22_ = g_strndup (((gchar*) self) + _tmp20_, (gsize) _tmp21_);
+ result = _tmp22_;
+ return result;
+}
+
+
+static void _g_free0_ (gpointer var) {
+ var = (g_free (var), NULL);
+}
+
+
+static void _g_list_free__g_free0_ (GList* self) {
+ g_list_foreach (self, (GFunc) _g_free0_, NULL);
+ g_list_free (self);
+}
+
+
+static gchar string_get (const gchar* self, glong index) {
+ gchar result = '\0';
+ glong _tmp0_ = 0L;
+ gchar _tmp1_ = '\0';
+ g_return_val_if_fail (self != NULL, '\0');
+ _tmp0_ = index;
+ _tmp1_ = ((gchar*) self)[_tmp0_];
+ result = _tmp1_;
+ return result;
+}
+
+
+static gchar* string_replace (const gchar* self, const gchar* old, const gchar* replacement) {
+ gchar* result = NULL;
+ GError * _inner_error_ = NULL;
+ g_return_val_if_fail (self != NULL, NULL);
+ g_return_val_if_fail (old != NULL, NULL);
+ g_return_val_if_fail (replacement != NULL, NULL);
+ {
+ GRegex* regex = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ GRegex* _tmp3_ = NULL;
+ GRegex* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ GRegex* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ _tmp0_ = old;
+ _tmp1_ = g_regex_escape_string (_tmp0_, -1);
+ _tmp2_ = _tmp1_;
+ _tmp3_ = g_regex_new (_tmp2_, 0, 0, &_inner_error_);
+ _tmp4_ = _tmp3_;
+ _g_free0 (_tmp2_);
+ regex = _tmp4_;
+ if (_inner_error_ != NULL) {
+ if (_inner_error_->domain == G_REGEX_ERROR) {
+ goto __catch3_g_regex_error;
+ }
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+ g_clear_error (&_inner_error_);
+ return NULL;
+ }
+ _tmp6_ = regex;
+ _tmp7_ = replacement;
+ _tmp8_ = g_regex_replace_literal (_tmp6_, self, (gssize) (-1), 0, _tmp7_, 0, &_inner_error_);
+ _tmp5_ = _tmp8_;
+ if (_inner_error_ != NULL) {
+ _g_regex_unref0 (regex);
+ if (_inner_error_->domain == G_REGEX_ERROR) {
+ goto __catch3_g_regex_error;
+ }
+ _g_regex_unref0 (regex);
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+ g_clear_error (&_inner_error_);
+ return NULL;
+ }
+ _tmp9_ = _tmp5_;
+ _tmp5_ = NULL;
+ result = _tmp9_;
+ _g_free0 (_tmp5_);
+ _g_regex_unref0 (regex);
+ return result;
+ }
+ goto __finally3;
+ __catch3_g_regex_error:
+ {
+ GError* e = NULL;
+ e = _inner_error_;
+ _inner_error_ = NULL;
+ g_assert_not_reached ();
+ _g_error_free0 (e);
+ }
+ __finally3:
+ if (_inner_error_ != NULL) {
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+ g_clear_error (&_inner_error_);
+ return NULL;
+ }
+}
+
+
+gchar* js_render_node_mungeToString (JsRenderNode* self, gboolean isListener, const gchar* pad, GList* doubleStringProps) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ gboolean isArray = FALSE;
+ gboolean _tmp5_ = FALSE;
+ GList* els = NULL;
+ GeeArrayList* skip = NULL;
+ GeeArrayList* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ gboolean _tmp8_ = FALSE;
+ GeeHashMap* oprops = NULL;
+ GeeHashMap* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+ gboolean _tmp14_ = FALSE;
+ gboolean _tmp54_ = FALSE;
+ gchar* left = NULL;
+ GRegex* func_regex = NULL;
+ GeeMapIterator* piter = NULL;
+ GeeHashMap* _tmp102_ = NULL;
+ GeeMapIterator* _tmp103_ = NULL;
+ GeeMapIterator* iter = NULL;
+ GeeHashMap* _tmp242_ = NULL;
+ GeeMapIterator* _tmp243_ = NULL;
+ GList* _tmp302_ = NULL;
+ guint _tmp303_ = 0U;
+ gchar* spad = NULL;
+ const gchar* _tmp305_ = NULL;
+ const gchar* _tmp306_ = NULL;
+ gint _tmp307_ = 0;
+ gint _tmp308_ = 0;
+ gchar* _tmp309_ = NULL;
+ const gchar* _tmp310_ = NULL;
+ gchar* _tmp311_ = NULL;
+ gchar* _tmp312_ = NULL;
+ const gchar* _tmp313_ = NULL;
+ gchar* _tmp314_ = NULL;
+ gchar* _tmp315_ = NULL;
+ GList* _tmp316_ = NULL;
+ gchar* _tmp317_ = NULL;
+ gchar* _tmp318_ = NULL;
+ gchar* _tmp319_ = NULL;
+ gchar* _tmp320_ = NULL;
+ gchar* _tmp321_ = NULL;
+ gchar* _tmp322_ = NULL;
+ const gchar* _tmp323_ = NULL;
+ gchar* _tmp324_ = NULL;
+ gchar* _tmp325_ = NULL;
+ gchar* _tmp326_ = NULL;
+ gchar* _tmp327_ = NULL;
+ GError * _inner_error_ = NULL;
+ g_return_val_if_fail (self != NULL, NULL);
+ g_return_val_if_fail (pad != NULL, NULL);
+ _tmp1_ = pad;
+ _tmp2_ = strlen (_tmp1_);
+ _tmp3_ = _tmp2_;
+ if (_tmp3_ < 1) {
+ _tmp0_ = " ";
+ } else {
+ const gchar* _tmp4_ = NULL;
+ _tmp4_ = pad;
+ _tmp0_ = _tmp4_;
+ }
+ pad = _tmp0_;
+ _tmp5_ = js_render_node_isArray (self);
+ isArray = _tmp5_;
+ els = NULL;
+ _tmp6_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL);
+ skip = _tmp6_;
+ _tmp8_ = isArray;
+ if (!_tmp8_) {
+ gboolean _tmp9_ = FALSE;
+ _tmp9_ = js_render_node_hasXnsType (self);
+ _tmp7_ = _tmp9_;
+ } else {
+ _tmp7_ = FALSE;
+ }
+ if (_tmp7_) {
+ GeeArrayList* _tmp10_ = NULL;
+ GeeArrayList* _tmp11_ = NULL;
+ _tmp10_ = skip;
+ gee_abstract_collection_add ((GeeAbstractCollection*) _tmp10_, "|xns");
+ _tmp11_ = skip;
+ gee_abstract_collection_add ((GeeAbstractCollection*) _tmp11_, "xtype");
+ }
+ _tmp12_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, JS_RENDER_TYPE_NODE, (GBoxedCopyFunc) js_render_node_ref, js_render_node_unref, NULL, NULL, NULL);
+ oprops = _tmp12_;
+ _tmp14_ = isArray;
+ if (!_tmp14_) {
+ gboolean _tmp15_ = FALSE;
+ _tmp15_ = js_render_node_hasChildren (self);
+ _tmp13_ = _tmp15_;
+ } else {
+ _tmp13_ = FALSE;
+ }
+ if (_tmp13_) {
+ {
+ gint ii = 0;
+ ii = 0;
+ {
+ gboolean _tmp16_ = FALSE;
+ _tmp16_ = TRUE;
+ while (TRUE) {
+ gint _tmp18_ = 0;
+ GList* _tmp19_ = NULL;
+ guint _tmp20_ = 0U;
+ JsRenderNode* pl = NULL;
+ GList* _tmp21_ = NULL;
+ gint _tmp22_ = 0;
+ gconstpointer _tmp23_ = NULL;
+ JsRenderNode* _tmp24_ = NULL;
+ JsRenderNode* _tmp25_ = NULL;
+ GeeHashMap* _tmp26_ = NULL;
+ gboolean _tmp27_ = FALSE;
+ gchar* prop = NULL;
+ JsRenderNode* _tmp28_ = NULL;
+ gchar* _tmp29_ = NULL;
+ const gchar* _tmp30_ = NULL;
+ gboolean _tmp31_ = FALSE;
+ const gchar* _tmp35_ = NULL;
+ gchar* _tmp36_ = NULL;
+ GeeHashMap* _tmp37_ = NULL;
+ const gchar* _tmp38_ = NULL;
+ gboolean _tmp39_ = FALSE;
+ GeeHashMap* _tmp44_ = NULL;
+ const gchar* _tmp45_ = NULL;
+ gpointer _tmp46_ = NULL;
+ JsRenderNode* _tmp47_ = NULL;
+ GeeHashMap* _tmp48_ = NULL;
+ const gchar* _tmp49_ = NULL;
+ gpointer _tmp50_ = NULL;
+ JsRenderNode* _tmp51_ = NULL;
+ JsRenderNode* _tmp52_ = NULL;
+ JsRenderNode* _tmp53_ = NULL;
+ if (!_tmp16_) {
+ gint _tmp17_ = 0;
+ _tmp17_ = ii;
+ ii = _tmp17_ + 1;
+ }
+ _tmp16_ = FALSE;
+ _tmp18_ = ii;
+ _tmp19_ = self->priv->items;
+ _tmp20_ = g_list_length (_tmp19_);
+ if (!(((guint) _tmp18_) < _tmp20_)) {
+ break;
+ }
+ _tmp21_ = self->priv->items;
+ _tmp22_ = ii;
+ _tmp23_ = g_list_nth_data (_tmp21_, (guint) _tmp22_);
+ _tmp24_ = _js_render_node_ref0 ((JsRenderNode*) _tmp23_);
+ pl = _tmp24_;
+ _tmp25_ = pl;
+ _tmp26_ = _tmp25_->priv->props;
+ _tmp27_ = gee_abstract_map_has_key ((GeeAbstractMap*) _tmp26_, "*prop");
+ if (!_tmp27_) {
+ _js_render_node_unref0 (pl);
+ continue;
+ }
+ _tmp28_ = pl;
+ _tmp29_ = js_render_node_get (_tmp28_, "*prop");
+ prop = _tmp29_;
+ _tmp30_ = prop;
+ _tmp31_ = g_regex_match_simple ("\\[\\]$", _tmp30_, 0, 0);
+ if (!_tmp31_) {
+ GeeHashMap* _tmp32_ = NULL;
+ const gchar* _tmp33_ = NULL;
+ JsRenderNode* _tmp34_ = NULL;
+ _tmp32_ = oprops;
+ _tmp33_ = prop;
+ _tmp34_ = pl;
+ gee_abstract_map_set ((GeeAbstractMap*) _tmp32_, _tmp33_, _tmp34_);
+ _g_free0 (prop);
+ _js_render_node_unref0 (pl);
+ continue;
+ }
+ _tmp35_ = prop;
+ _tmp36_ = string_substring (_tmp35_, (glong) 0, (glong) (-2));
+ _g_free0 (prop);
+ prop = _tmp36_;
+ _tmp37_ = oprops;
+ _tmp38_ = prop;
+ _tmp39_ = gee_abstract_map_has_key ((GeeAbstractMap*) _tmp37_, _tmp38_);
+ if (!_tmp39_) {
+ JsRenderNode* cn = NULL;
+ JsRenderNode* _tmp40_ = NULL;
+ GeeHashMap* _tmp41_ = NULL;
+ const gchar* _tmp42_ = NULL;
+ JsRenderNode* _tmp43_ = NULL;
+ _tmp40_ = js_render_node_new ();
+ cn = _tmp40_;
+ _tmp41_ = oprops;
+ _tmp42_ = prop;
+ _tmp43_ = cn;
+ gee_abstract_map_set ((GeeAbstractMap*) _tmp41_, _tmp42_, _tmp43_);
+ _js_render_node_unref0 (cn);
+ }
+ _tmp44_ = oprops;
+ _tmp45_ = prop;
+ _tmp46_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp44_, _tmp45_);
+ _tmp47_ = (JsRenderNode*) _tmp46_;
+ _tmp47_->is_array = TRUE;
+ _js_render_node_unref0 (_tmp47_);
+ _tmp48_ = oprops;
+ _tmp49_ = prop;
+ _tmp50_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp48_, _tmp49_);
+ _tmp51_ = (JsRenderNode*) _tmp50_;
+ _tmp52_ = pl;
+ _tmp53_ = _js_render_node_ref0 (_tmp52_);
+ _tmp51_->priv->items = g_list_append (_tmp51_->priv->items, _tmp53_);
+ _js_render_node_unref0 (_tmp51_);
+ _g_free0 (prop);
+ _js_render_node_unref0 (pl);
+ }
+ }
+ }
+ }
+ _tmp54_ = js_render_node_isArray (self);
+ if (_tmp54_) {
+ gchar* spad = NULL;
+ const gchar* _tmp75_ = NULL;
+ const gchar* _tmp76_ = NULL;
+ gint _tmp77_ = 0;
+ gint _tmp78_ = 0;
+ gchar* _tmp79_ = NULL;
+ const gchar* _tmp80_ = NULL;
+ gchar* _tmp81_ = NULL;
+ gchar* _tmp82_ = NULL;
+ const gchar* _tmp83_ = NULL;
+ gchar* _tmp84_ = NULL;
+ gchar* _tmp85_ = NULL;
+ GList* _tmp86_ = NULL;
+ gchar* _tmp87_ = NULL;
+ gchar* _tmp88_ = NULL;
+ gchar* _tmp89_ = NULL;
+ gchar* _tmp90_ = NULL;
+ gchar* _tmp91_ = NULL;
+ gchar* _tmp92_ = NULL;
+ const gchar* _tmp93_ = NULL;
+ gchar* _tmp94_ = NULL;
+ gchar* _tmp95_ = NULL;
+ gchar* _tmp96_ = NULL;
+ gchar* _tmp97_ = NULL;
+ {
+ gint i = 0;
+ i = 0;
+ {
+ gboolean _tmp55_ = FALSE;
+ _tmp55_ = TRUE;
+ while (TRUE) {
+ gint _tmp57_ = 0;
+ GList* _tmp58_ = NULL;
+ guint _tmp59_ = 0U;
+ JsRenderNode* el = NULL;
+ GList* _tmp60_ = NULL;
+ gint _tmp61_ = 0;
+ gconstpointer _tmp62_ = NULL;
+ JsRenderNode* _tmp63_ = NULL;
+ gint _tmp64_ = 0;
+ gchar* _tmp65_ = NULL;
+ gchar* _tmp66_ = NULL;
+ gchar* _tmp67_ = NULL;
+ gchar* _tmp68_ = NULL;
+ JsRenderNode* _tmp69_ = NULL;
+ const gchar* _tmp70_ = NULL;
+ GList* _tmp71_ = NULL;
+ gchar* _tmp72_ = NULL;
+ gchar* _tmp73_ = NULL;
+ gchar* _tmp74_ = NULL;
+ if (!_tmp55_) {
+ gint _tmp56_ = 0;
+ _tmp56_ = i;
+ i = _tmp56_ + 1;
+ }
+ _tmp55_ = FALSE;
+ _tmp57_ = i;
+ _tmp58_ = self->priv->items;
+ _tmp59_ = g_list_length (_tmp58_);
+ if (!(((guint) _tmp57_) < _tmp59_)) {
+ break;
+ }
+ _tmp60_ = self->priv->items;
+ _tmp61_ = i;
+ _tmp62_ = g_list_nth_data (_tmp60_, (guint) _tmp61_);
+ _tmp63_ = _js_render_node_ref0 ((JsRenderNode*) _tmp62_);
+ el = _tmp63_;
+ _tmp64_ = i;
+ _tmp65_ = g_strdup_printf ("%d", _tmp64_);
+ _tmp66_ = _tmp65_;
+ _tmp67_ = g_strconcat (_tmp66_, " : ", NULL);
+ _tmp68_ = _tmp67_;
+ _tmp69_ = el;
+ _tmp70_ = pad;
+ _tmp71_ = doubleStringProps;
+ _tmp72_ = js_render_node_mungeToString (_tmp69_, FALSE, _tmp70_, _tmp71_);
+ _tmp73_ = _tmp72_;
+ _tmp74_ = g_strconcat (_tmp68_, _tmp73_, NULL);
+ els = g_list_append (els, _tmp74_);
+ _g_free0 (_tmp73_);
+ _g_free0 (_tmp68_);
+ _g_free0 (_tmp66_);
+ _js_render_node_unref0 (el);
+ }
+ }
+ }
+ _tmp75_ = pad;
+ _tmp76_ = pad;
+ _tmp77_ = strlen (_tmp76_);
+ _tmp78_ = _tmp77_;
+ _tmp79_ = string_substring (_tmp75_, (glong) 0, (glong) (_tmp78_ - 4));
+ spad = _tmp79_;
+ _tmp80_ = pad;
+ _tmp81_ = g_strconcat ("{\n", _tmp80_, NULL);
+ _tmp82_ = _tmp81_;
+ _tmp83_ = pad;
+ _tmp84_ = g_strconcat (",\n", _tmp83_, NULL);
+ _tmp85_ = _tmp84_;
+ _tmp86_ = els;
+ _tmp87_ = g_strjoin (_tmp85_, _tmp86_, NULL);
+ _tmp88_ = _tmp87_;
+ _tmp89_ = g_strconcat (_tmp82_, _tmp88_, NULL);
+ _tmp90_ = _tmp89_;
+ _tmp91_ = g_strconcat (_tmp90_, "\n", NULL);
+ _tmp92_ = _tmp91_;
+ _tmp93_ = spad;
+ _tmp94_ = g_strconcat (_tmp92_, _tmp93_, NULL);
+ _tmp95_ = _tmp94_;
+ _tmp96_ = g_strconcat (_tmp95_, "}", NULL);
+ _tmp97_ = _tmp96_;
+ _g_free0 (_tmp95_);
+ _g_free0 (_tmp92_);
+ _g_free0 (_tmp90_);
+ _g_free0 (_tmp88_);
+ _g_free0 (_tmp85_);
+ _g_free0 (_tmp82_);
+ result = _tmp97_;
+ _g_free0 (spad);
+ _g_object_unref0 (oprops);
+ _g_object_unref0 (skip);
+ __g_list_free__g_free0_0 (els);
+ return result;
+ }
+ {
+ GRegex* _tmp98_ = NULL;
+ GRegex* _tmp99_ = NULL;
+ GRegex* _tmp100_ = NULL;
+ _tmp99_ = g_regex_new ("^\\s+|\\s+$", 0, 0, &_inner_error_);
+ _tmp98_ = _tmp99_;
+ if (_inner_error_ != NULL) {
+ if (_inner_error_->domain == JS_RENDER_ERROR) {
+ goto __catch2_js_render_error;
+ }
+ goto __finally2;
+ }
+ _tmp100_ = _tmp98_;
+ _tmp98_ = NULL;
+ _g_regex_unref0 (func_regex);
+ func_regex = _tmp100_;
+ _g_regex_unref0 (_tmp98_);
+ }
+ goto __finally2;
+ __catch2_js_render_error:
+ {
+ GError* e = NULL;
+ gchar* _tmp101_ = NULL;
+ e = _inner_error_;
+ _inner_error_ = NULL;
+ g_print ("failed to build regex");
+ _tmp101_ = g_strdup ("");
+ result = _tmp101_;
+ _g_error_free0 (e);
+ _g_regex_unref0 (func_regex);
+ _g_free0 (left);
+ _g_object_unref0 (oprops);
+ _g_object_unref0 (skip);
+ __g_list_free__g_free0_0 (els);
+ return result;
+ }
+ __finally2:
+ if (_inner_error_ != NULL) {
+ _g_regex_unref0 (func_regex);
+ _g_free0 (left);
+ _g_object_unref0 (oprops);
+ _g_object_unref0 (skip);
+ __g_list_free__g_free0_0 (els);
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+ g_clear_error (&_inner_error_);
+ return NULL;
+ }
+ _tmp102_ = self->priv->props;
+ _tmp103_ = gee_abstract_map_map_iterator ((GeeAbstractMap*) _tmp102_);
+ piter = _tmp103_;
+ while (TRUE) {
+ GeeMapIterator* _tmp104_ = NULL;
+ gboolean _tmp105_ = FALSE;
+ gchar* k = NULL;
+ GeeMapIterator* _tmp106_ = NULL;
+ gpointer _tmp107_ = NULL;
+ gchar* v = NULL;
+ GeeMapIterator* _tmp108_ = NULL;
+ gpointer _tmp109_ = NULL;
+ GeeArrayList* _tmp110_ = NULL;
+ const gchar* _tmp111_ = NULL;
+ gboolean _tmp112_ = FALSE;
+ gchar* _tmp113_ = NULL;
+ const gchar* _tmp114_ = NULL;
+ gchar _tmp115_ = '\0';
+ gchar* leftv = NULL;
+ gchar* _tmp120_ = NULL;
+ const gchar* _tmp121_ = NULL;
+ gchar _tmp122_ = '\0';
+ const gchar* _tmp123_ = NULL;
+ gchar _tmp124_ = '\0';
+ gboolean _tmp125_ = FALSE;
+ JsRenderLang_Class* _tmp126_ = NULL;
+ const gchar* _tmp127_ = NULL;
+ gboolean _tmp128_ = FALSE;
+ const gchar* _tmp153_ = NULL;
+ gchar* _tmp154_ = NULL;
+ gboolean _tmp155_ = FALSE;
+ const gchar* _tmp177_ = NULL;
+ gchar _tmp178_ = '\0';
+ gboolean _tmp203_ = FALSE;
+ JsRenderLang_Class* _tmp204_ = NULL;
+ const gchar* _tmp205_ = NULL;
+ gboolean _tmp206_ = FALSE;
+ GList* _tmp213_ = NULL;
+ guint _tmp214_ = 0U;
+ GList* _tmp220_ = NULL;
+ const gchar* _tmp221_ = NULL;
+ gint _tmp222_ = 0;
+ const gchar* _tmp228_ = NULL;
+ gchar* _tmp229_ = NULL;
+ gchar* _tmp230_ = NULL;
+ const gchar* _tmp231_ = NULL;
+ const gchar* _tmp232_ = NULL;
+ gint _tmp233_ = 0;
+ gint _tmp234_ = 0;
+ gchar* _tmp235_ = NULL;
+ gchar* _tmp236_ = NULL;
+ gchar* _tmp237_ = NULL;
+ gchar* _tmp238_ = NULL;
+ gchar* _tmp239_ = NULL;
+ gchar* _tmp240_ = NULL;
+ gchar* _tmp241_ = NULL;
+ _tmp104_ = piter;
+ _tmp105_ = gee_map_iterator_next (_tmp104_);
+ if (!_tmp105_) {
+ break;
+ }
+ _tmp106_ = piter;
+ _tmp107_ = gee_map_iterator_get_key (_tmp106_);
+ k = (gchar*) _tmp107_;
+ _tmp108_ = piter;
+ _tmp109_ = gee_map_iterator_get_value (_tmp108_);
+ v = (gchar*) _tmp109_;
+ _tmp110_ = skip;
+ _tmp111_ = k;
+ _tmp112_ = gee_abstract_collection_contains ((GeeAbstractCollection*) _tmp110_, _tmp111_);
+ if (_tmp112_) {
+ _g_free0 (v);
+ _g_free0 (k);
+ continue;
+ }
+ _tmp114_ = k;
+ _tmp115_ = string_get (_tmp114_, (glong) 0);
+ if (_tmp115_ == '|') {
+ const gchar* _tmp116_ = NULL;
+ gchar* _tmp117_ = NULL;
+ _tmp116_ = k;
+ _tmp117_ = string_substring (_tmp116_, (glong) 1, (glong) (-1));
+ _g_free0 (_tmp113_);
+ _tmp113_ = _tmp117_;
+ } else {
+ const gchar* _tmp118_ = NULL;
+ gchar* _tmp119_ = NULL;
+ _tmp118_ = k;
+ _tmp119_ = g_strdup (_tmp118_);
+ _g_free0 (_tmp113_);
+ _tmp113_ = _tmp119_;
+ }
+ _tmp120_ = g_strdup (_tmp113_);
+ leftv = _tmp120_;
+ _tmp121_ = leftv;
+ _tmp122_ = string_get (_tmp121_, (glong) 0);
+ if (_tmp122_ == '.') {
+ _g_free0 (leftv);
+ _g_free0 (_tmp113_);
+ _g_free0 (v);
+ _g_free0 (k);
+ continue;
+ }
+ _tmp123_ = k;
+ _tmp124_ = string_get (_tmp123_, (glong) 0);
+ if (_tmp124_ == '*') {
+ _g_free0 (leftv);
+ _g_free0 (_tmp113_);
+ _g_free0 (v);
+ _g_free0 (k);
+ continue;
+ }
+ _tmp126_ = js_render_Lang;
+ _tmp127_ = leftv;
+ _tmp128_ = js_render_langclass_isKeyword (_tmp126_, _tmp127_);
+ if (_tmp128_) {
+ _tmp125_ = TRUE;
+ } else {
+ JsRenderLang_Class* _tmp129_ = NULL;
+ const gchar* _tmp130_ = NULL;
+ gboolean _tmp131_ = FALSE;
+ _tmp129_ = js_render_Lang;
+ _tmp130_ = leftv;
+ _tmp131_ = js_render_langclass_isBuiltin (_tmp129_, _tmp130_);
+ _tmp125_ = _tmp131_;
+ }
+ if (_tmp125_) {
+ const gchar* _tmp132_ = NULL;
+ gchar* _tmp133_ = NULL;
+ gchar* _tmp134_ = NULL;
+ gchar* _tmp135_ = NULL;
+ _tmp132_ = leftv;
+ _tmp133_ = g_strconcat ("'", _tmp132_, NULL);
+ _tmp134_ = _tmp133_;
+ _tmp135_ = g_strconcat (_tmp134_, "'", NULL);
+ _g_free0 (left);
+ left = _tmp135_;
+ _g_free0 (_tmp134_);
+ } else {
+ const gchar* _tmp136_ = NULL;
+ gboolean _tmp137_ = FALSE;
+ _tmp136_ = leftv;
+ _tmp137_ = g_regex_match_simple ("[^A-Za-z_]+", _tmp136_, 0, 0);
+ if (_tmp137_) {
+ gchar* val = NULL;
+ const gchar* _tmp138_ = NULL;
+ gchar* _tmp139_ = NULL;
+ const gchar* _tmp140_ = NULL;
+ const gchar* _tmp141_ = NULL;
+ gint _tmp142_ = 0;
+ gint _tmp143_ = 0;
+ gchar* _tmp144_ = NULL;
+ gchar* _tmp145_ = NULL;
+ gchar* _tmp146_ = NULL;
+ gchar* _tmp147_ = NULL;
+ gchar* _tmp148_ = NULL;
+ gchar* _tmp149_ = NULL;
+ gchar* _tmp150_ = NULL;
+ _tmp138_ = leftv;
+ _tmp139_ = js_render_node_quoteString (self, _tmp138_);
+ val = _tmp139_;
+ _tmp140_ = val;
+ _tmp141_ = val;
+ _tmp142_ = strlen (_tmp141_);
+ _tmp143_ = _tmp142_;
+ _tmp144_ = string_substring (_tmp140_, (glong) 1, (glong) (_tmp143_ - 1));
+ _tmp145_ = _tmp144_;
+ _tmp146_ = string_replace (_tmp145_, "'", "\\'");
+ _tmp147_ = _tmp146_;
+ _tmp148_ = g_strconcat ("'", _tmp147_, NULL);
+ _tmp149_ = _tmp148_;
+ _tmp150_ = g_strconcat (_tmp149_, "'", NULL);
+ _g_free0 (left);
+ left = _tmp150_;
+ _g_free0 (_tmp149_);
+ _g_free0 (_tmp147_);
+ _g_free0 (_tmp145_);
+ _g_free0 (val);
+ } else {
+ const gchar* _tmp151_ = NULL;
+ gchar* _tmp152_ = NULL;
+ _tmp151_ = leftv;
+ _tmp152_ = g_strdup (_tmp151_);
+ _g_free0 (left);
+ left = _tmp152_;
+ }
+ }
+ _tmp153_ = left;
+ _tmp154_ = g_strconcat (_tmp153_, " : ", NULL);
+ _g_free0 (left);
+ left = _tmp154_;
+ _tmp155_ = isListener;
+ if (_tmp155_) {
+ gchar* str = NULL;
+ gchar** lines = NULL;
+ const gchar* _tmp165_ = NULL;
+ gchar** _tmp166_ = NULL;
+ gchar** _tmp167_ = NULL;
+ gint lines_length1 = 0;
+ gint _lines_size_ = 0;
+ gchar** _tmp168_ = NULL;
+ gint _tmp168__length1 = 0;
+ const gchar* _tmp174_ = NULL;
+ const gchar* _tmp175_ = NULL;
+ gchar* _tmp176_ = NULL;
+ {
+ gchar* _tmp156_ = NULL;
+ GRegex* _tmp157_ = NULL;
+ const gchar* _tmp158_ = NULL;
+ const gchar* _tmp159_ = NULL;
+ gint _tmp160_ = 0;
+ gint _tmp161_ = 0;
+ gchar* _tmp162_ = NULL;
+ gchar* _tmp163_ = NULL;
+ _tmp157_ = func_regex;
+ _tmp158_ = v;
+ _tmp159_ = v;
+ _tmp160_ = strlen (_tmp159_);
+ _tmp161_ = _tmp160_;
+ _tmp162_ = g_regex_replace (_tmp157_, _tmp158_, (gssize) _tmp161_, 0, "", 0, &_inner_error_);
+ _tmp156_ = _tmp162_;
+ if (_inner_error_ != NULL) {
+ if (_inner_error_->domain == JS_RENDER_ERROR) {
+ goto __catch4_js_render_error;
+ }
+ goto __finally4;
+ }
+ _tmp163_ = _tmp156_;
+ _tmp156_ = NULL;
+ _g_free0 (str);
+ str = _tmp163_;
+ _g_free0 (_tmp156_);
+ }
+ goto __finally4;
+ __catch4_js_render_error:
+ {
+ GError* e = NULL;
+ gchar* _tmp164_ = NULL;
+ e = _inner_error_;
+ _inner_error_ = NULL;
+ g_print ("regex failed");
+ _tmp164_ = g_strdup ("");
+ result = _tmp164_;
+ _g_error_free0 (e);
+ _g_free0 (str);
+ _g_free0 (leftv);
+ _g_free0 (_tmp113_);
+ _g_free0 (v);
+ _g_free0 (k);
+ _g_object_unref0 (piter);
+ _g_regex_unref0 (func_regex);
+ _g_free0 (left);
+ _g_object_unref0 (oprops);
+ _g_object_unref0 (skip);
+ __g_list_free__g_free0_0 (els);
+ return result;
+ }
+ __finally4:
+ if (_inner_error_ != NULL) {
+ _g_free0 (str);
+ _g_free0 (leftv);
+ _g_free0 (_tmp113_);
+ _g_free0 (v);
+ _g_free0 (k);
+ _g_object_unref0 (piter);
+ _g_regex_unref0 (func_regex);
+ _g_free0 (left);
+ _g_object_unref0 (oprops);
+ _g_object_unref0 (skip);
+ __g_list_free__g_free0_0 (els);
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+ g_clear_error (&_inner_error_);
+ return NULL;
+ }
+ _tmp165_ = str;
+ _tmp167_ = _tmp166_ = g_strsplit (_tmp165_, "\n", 0);
+ lines = _tmp167_;
+ lines_length1 = _vala_array_length (_tmp166_);
+ _lines_size_ = lines_length1;
+ _tmp168_ = lines;
+ _tmp168__length1 = lines_length1;
+ if (_tmp168__length1 > 1) {
+ const gchar* _tmp169_ = NULL;
+ gchar* _tmp170_ = NULL;
+ gchar* _tmp171_ = NULL;
+ gchar** _tmp172_ = NULL;
+ gint _tmp172__length1 = 0;
+ gchar* _tmp173_ = NULL;
+ _tmp169_ = pad;
+ _tmp170_ = g_strconcat ("\n", _tmp169_, NULL);
+ _tmp171_ = _tmp170_;
+ _tmp172_ = lines;
+ _tmp172__length1 = lines_length1;
+ _tmp173_ = g_strjoin (_tmp171_, _tmp172_, NULL);
+ _g_free0 (str);
+ str = _tmp173_;
+ _g_free0 (_tmp171_);
+ }
+ _tmp174_ = left;
+ _tmp175_ = str;
+ _tmp176_ = g_strconcat (_tmp174_, _tmp175_, NULL);
+ els = g_list_append (els, _tmp176_);
+ lines = (_vala_array_free (lines, lines_length1, (GDestroyNotify) g_free), NULL);
+ _g_free0 (str);
+ _g_free0 (leftv);
+ _g_free0 (_tmp113_);
+ _g_free0 (v);
+ _g_free0 (k);
+ continue;
+ }
+ _tmp177_ = k;
+ _tmp178_ = string_get (_tmp177_, (glong) 0);
+ if (_tmp178_ == '|') {
+ const gchar* _tmp179_ = NULL;
+ gint _tmp180_ = 0;
+ gint _tmp181_ = 0;
+ gchar* str = NULL;
+ gchar** lines = NULL;
+ const gchar* _tmp191_ = NULL;
+ gchar** _tmp192_ = NULL;
+ gchar** _tmp193_ = NULL;
+ gint lines_length1 = 0;
+ gint _lines_size_ = 0;
+ gchar** _tmp194_ = NULL;
+ gint _tmp194__length1 = 0;
+ const gchar* _tmp200_ = NULL;
+ const gchar* _tmp201_ = NULL;
+ gchar* _tmp202_ = NULL;
+ _tmp179_ = v;
+ _tmp180_ = strlen (_tmp179_);
+ _tmp181_ = _tmp180_;
+ if (_tmp181_ < 1) {
+ _g_free0 (leftv);
+ _g_free0 (_tmp113_);
+ _g_free0 (v);
+ _g_free0 (k);
+ continue;
+ }
+ {
+ gchar* _tmp182_ = NULL;
+ GRegex* _tmp183_ = NULL;
+ const gchar* _tmp184_ = NULL;
+ const gchar* _tmp185_ = NULL;
+ gint _tmp186_ = 0;
+ gint _tmp187_ = 0;
+ gchar* _tmp188_ = NULL;
+ gchar* _tmp189_ = NULL;
+ _tmp183_ = func_regex;
+ _tmp184_ = v;
+ _tmp185_ = v;
+ _tmp186_ = strlen (_tmp185_);
+ _tmp187_ = _tmp186_;
+ _tmp188_ = g_regex_replace (_tmp183_, _tmp184_, (gssize) _tmp187_, 0, "", 0, &_inner_error_);
+ _tmp182_ = _tmp188_;
+ if (_inner_error_ != NULL) {
+ if (_inner_error_->domain == JS_RENDER_ERROR) {
+ goto __catch5_js_render_error;
+ }
+ goto __finally5;
+ }
+ _tmp189_ = _tmp182_;
+ _tmp182_ = NULL;
+ _g_free0 (str);
+ str = _tmp189_;
+ _g_free0 (_tmp182_);
+ }
+ goto __finally5;
+ __catch5_js_render_error:
+ {
+ GError* e = NULL;
+ gchar* _tmp190_ = NULL;
+ e = _inner_error_;
+ _inner_error_ = NULL;
+ g_print ("regex failed");
+ _tmp190_ = g_strdup ("");
+ result = _tmp190_;
+ _g_error_free0 (e);
+ _g_free0 (str);
+ _g_free0 (leftv);
+ _g_free0 (_tmp113_);
+ _g_free0 (v);
+ _g_free0 (k);
+ _g_object_unref0 (piter);
+ _g_regex_unref0 (func_regex);
+ _g_free0 (left);
+ _g_object_unref0 (oprops);
+ _g_object_unref0 (skip);
+ __g_list_free__g_free0_0 (els);
+ return result;
+ }
+ __finally5:
+ if (_inner_error_ != NULL) {
+ _g_free0 (str);
+ _g_free0 (leftv);
+ _g_free0 (_tmp113_);
+ _g_free0 (v);
+ _g_free0 (k);
+ _g_object_unref0 (piter);
+ _g_regex_unref0 (func_regex);
+ _g_free0 (left);
+ _g_object_unref0 (oprops);
+ _g_object_unref0 (skip);
+ __g_list_free__g_free0_0 (els);
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+ g_clear_error (&_inner_error_);
+ return NULL;
+ }
+ _tmp191_ = str;
+ _tmp193_ = _tmp192_ = g_strsplit (_tmp191_, "\n", 0);
+ lines = _tmp193_;
+ lines_length1 = _vala_array_length (_tmp192_);
+ _lines_size_ = lines_length1;
+ _tmp194_ = lines;
+ _tmp194__length1 = lines_length1;
+ if (_tmp194__length1 > 1) {
+ const gchar* _tmp195_ = NULL;
+ gchar* _tmp196_ = NULL;
+ gchar* _tmp197_ = NULL;
+ gchar** _tmp198_ = NULL;
+ gint _tmp198__length1 = 0;
+ gchar* _tmp199_ = NULL;
+ _tmp195_ = pad;
+ _tmp196_ = g_strconcat ("\n", _tmp195_, NULL);
+ _tmp197_ = _tmp196_;
+ _tmp198_ = lines;
+ _tmp198__length1 = lines_length1;
+ _tmp199_ = g_strjoin (_tmp197_, _tmp198_, NULL);
+ _g_free0 (str);
+ str = _tmp199_;
+ _g_free0 (_tmp197_);
+ }
+ _tmp200_ = left;
+ _tmp201_ = str;
+ _tmp202_ = g_strconcat (_tmp200_, _tmp201_, NULL);
+ els = g_list_append (els, _tmp202_);
+ lines = (_vala_array_free (lines, lines_length1, (GDestroyNotify) g_free), NULL);
+ _g_free0 (str);
+ _g_free0 (leftv);
+ _g_free0 (_tmp113_);
+ _g_free0 (v);
+ _g_free0 (k);
+ continue;
+ }
+ _tmp204_ = js_render_Lang;
+ _tmp205_ = v;
+ _tmp206_ = js_render_langclass_isNumber (_tmp204_, _tmp205_);
+ if (_tmp206_) {
+ _tmp203_ = TRUE;
+ } else {
+ JsRenderLang_Class* _tmp207_ = NULL;
+ const gchar* _tmp208_ = NULL;
+ gboolean _tmp209_ = FALSE;
+ _tmp207_ = js_render_Lang;
+ _tmp208_ = v;
+ _tmp209_ = js_render_langclass_isBoolean (_tmp207_, _tmp208_);
+ _tmp203_ = _tmp209_;
+ }
+ if (_tmp203_) {
+ const gchar* _tmp210_ = NULL;
+ const gchar* _tmp211_ = NULL;
+ gchar* _tmp212_ = NULL;
+ _tmp210_ = left;
+ _tmp211_ = v;
+ _tmp212_ = g_strconcat (_tmp210_, _tmp211_, NULL);
+ els = g_list_append (els, _tmp212_);
+ _g_free0 (leftv);
+ _g_free0 (_tmp113_);
+ _g_free0 (v);
+ _g_free0 (k);
+ continue;
+ }
+ _tmp213_ = doubleStringProps;
+ _tmp214_ = g_list_length (_tmp213_);
+ if (_tmp214_ < ((guint) 1)) {
+ const gchar* _tmp215_ = NULL;
+ const gchar* _tmp216_ = NULL;
+ gchar* _tmp217_ = NULL;
+ gchar* _tmp218_ = NULL;
+ gchar* _tmp219_ = NULL;
+ _tmp215_ = left;
+ _tmp216_ = v;
+ _tmp217_ = js_render_node_quoteString (self, _tmp216_);
+ _tmp218_ = _tmp217_;
+ _tmp219_ = g_strconcat (_tmp215_, _tmp218_, NULL);
+ els = g_list_append (els, _tmp219_);
+ _g_free0 (_tmp218_);
+ _g_free0 (leftv);
+ _g_free0 (_tmp113_);
+ _g_free0 (v);
+ _g_free0 (k);
+ continue;
+ }
+ _tmp220_ = doubleStringProps;
+ _tmp221_ = k;
+ _tmp222_ = g_list_index (_tmp220_, _tmp221_);
+ if (_tmp222_ > (-1)) {
+ const gchar* _tmp223_ = NULL;
+ const gchar* _tmp224_ = NULL;
+ gchar* _tmp225_ = NULL;
+ gchar* _tmp226_ = NULL;
+ gchar* _tmp227_ = NULL;
+ _tmp223_ = left;
+ _tmp224_ = v;
+ _tmp225_ = js_render_node_quoteString (self, _tmp224_);
+ _tmp226_ = _tmp225_;
+ _tmp227_ = g_strconcat (_tmp223_, _tmp226_, NULL);
+ els = g_list_append (els, _tmp227_);
+ _g_free0 (_tmp226_);
+ _g_free0 (leftv);
+ _g_free0 (_tmp113_);
+ _g_free0 (v);
+ _g_free0 (k);
+ continue;
+ }
+ _tmp228_ = left;
+ _tmp229_ = g_strconcat (_tmp228_, "'", NULL);
+ _tmp230_ = _tmp229_;
+ _tmp231_ = v;
+ _tmp232_ = v;
+ _tmp233_ = strlen (_tmp232_);
+ _tmp234_ = _tmp233_;
+ _tmp235_ = string_substring (_tmp231_, (glong) 1, (glong) (_tmp234_ - 1));
+ _tmp236_ = _tmp235_;
+ _tmp237_ = string_replace (_tmp236_, "'", "\\'");
+ _tmp238_ = _tmp237_;
+ _tmp239_ = g_strconcat (_tmp230_, _tmp238_, NULL);
+ _tmp240_ = _tmp239_;
+ _tmp241_ = g_strconcat (_tmp240_, "'", NULL);
+ els = g_list_append (els, _tmp241_);
+ _g_free0 (_tmp240_);
+ _g_free0 (_tmp238_);
+ _g_free0 (_tmp236_);
+ _g_free0 (_tmp230_);
+ _g_free0 (leftv);
+ _g_free0 (_tmp113_);
+ _g_free0 (v);
+ _g_free0 (k);
+ }
+ _tmp242_ = oprops;
+ _tmp243_ = gee_abstract_map_map_iterator ((GeeAbstractMap*) _tmp242_);
+ iter = _tmp243_;
+ while (TRUE) {
+ GeeMapIterator* _tmp244_ = NULL;
+ gboolean _tmp245_ = FALSE;
+ gchar* k = NULL;
+ GeeMapIterator* _tmp246_ = NULL;
+ gpointer _tmp247_ = NULL;
+ JsRenderNode* vo = NULL;
+ GeeMapIterator* _tmp248_ = NULL;
+ gpointer _tmp249_ = NULL;
+ gchar* _tmp250_ = NULL;
+ const gchar* _tmp251_ = NULL;
+ gchar _tmp252_ = '\0';
+ gchar* leftv = NULL;
+ gchar* _tmp257_ = NULL;
+ gboolean _tmp258_ = FALSE;
+ JsRenderLang_Class* _tmp259_ = NULL;
+ const gchar* _tmp260_ = NULL;
+ gboolean _tmp261_ = FALSE;
+ const gchar* _tmp286_ = NULL;
+ gchar* _tmp287_ = NULL;
+ gchar* right = NULL;
+ JsRenderNode* _tmp288_ = NULL;
+ const gchar* _tmp289_ = NULL;
+ const gchar* _tmp290_ = NULL;
+ gchar* _tmp291_ = NULL;
+ gchar* _tmp292_ = NULL;
+ GList* _tmp293_ = NULL;
+ gchar* _tmp294_ = NULL;
+ gchar* _tmp295_ = NULL;
+ const gchar* _tmp296_ = NULL;
+ gint _tmp297_ = 0;
+ gint _tmp298_ = 0;
+ _tmp244_ = iter;
+ _tmp245_ = gee_map_iterator_next (_tmp244_);
+ if (!_tmp245_) {
+ break;
+ }
+ _tmp246_ = iter;
+ _tmp247_ = gee_map_iterator_get_key (_tmp246_);
+ k = (gchar*) _tmp247_;
+ _tmp248_ = iter;
+ _tmp249_ = gee_map_iterator_get_value (_tmp248_);
+ vo = (JsRenderNode*) _tmp249_;
+ _tmp251_ = k;
+ _tmp252_ = string_get (_tmp251_, (glong) 0);
+ if (_tmp252_ == '|') {
+ const gchar* _tmp253_ = NULL;
+ gchar* _tmp254_ = NULL;
+ _tmp253_ = k;
+ _tmp254_ = string_substring (_tmp253_, (glong) 1, (glong) (-1));
+ _g_free0 (_tmp250_);
+ _tmp250_ = _tmp254_;
+ } else {
+ const gchar* _tmp255_ = NULL;
+ gchar* _tmp256_ = NULL;
+ _tmp255_ = k;
+ _tmp256_ = g_strdup (_tmp255_);
+ _g_free0 (_tmp250_);
+ _tmp250_ = _tmp256_;
+ }
+ _tmp257_ = g_strdup (_tmp250_);
+ leftv = _tmp257_;
+ _tmp259_ = js_render_Lang;
+ _tmp260_ = leftv;
+ _tmp261_ = js_render_langclass_isKeyword (_tmp259_, _tmp260_);
+ if (_tmp261_) {
+ _tmp258_ = TRUE;
+ } else {
+ JsRenderLang_Class* _tmp262_ = NULL;
+ const gchar* _tmp263_ = NULL;
+ gboolean _tmp264_ = FALSE;
+ _tmp262_ = js_render_Lang;
+ _tmp263_ = leftv;
+ _tmp264_ = js_render_langclass_isBuiltin (_tmp262_, _tmp263_);
+ _tmp258_ = _tmp264_;
+ }
+ if (_tmp258_) {
+ const gchar* _tmp265_ = NULL;
+ gchar* _tmp266_ = NULL;
+ gchar* _tmp267_ = NULL;
+ gchar* _tmp268_ = NULL;
+ _tmp265_ = leftv;
+ _tmp266_ = g_strconcat ("'", _tmp265_, NULL);
+ _tmp267_ = _tmp266_;
+ _tmp268_ = g_strconcat (_tmp267_, "'", NULL);
+ _g_free0 (left);
+ left = _tmp268_;
+ _g_free0 (_tmp267_);
+ } else {
+ const gchar* _tmp269_ = NULL;
+ gboolean _tmp270_ = FALSE;
+ _tmp269_ = leftv;
+ _tmp270_ = g_regex_match_simple ("[^A-Za-z_]+", _tmp269_, 0, 0);
+ if (_tmp270_) {
+ gchar* val = NULL;
+ const gchar* _tmp271_ = NULL;
+ gchar* _tmp272_ = NULL;
+ const gchar* _tmp273_ = NULL;
+ const gchar* _tmp274_ = NULL;
+ gint _tmp275_ = 0;
+ gint _tmp276_ = 0;
+ gchar* _tmp277_ = NULL;
+ gchar* _tmp278_ = NULL;
+ gchar* _tmp279_ = NULL;
+ gchar* _tmp280_ = NULL;
+ gchar* _tmp281_ = NULL;
+ gchar* _tmp282_ = NULL;
+ gchar* _tmp283_ = NULL;
+ _tmp271_ = leftv;
+ _tmp272_ = js_render_node_quoteString (self, _tmp271_);
+ val = _tmp272_;
+ _tmp273_ = val;
+ _tmp274_ = val;
+ _tmp275_ = strlen (_tmp274_);
+ _tmp276_ = _tmp275_;
+ _tmp277_ = string_substring (_tmp273_, (glong) 1, (glong) (_tmp276_ - 1));
+ _tmp278_ = _tmp277_;
+ _tmp279_ = string_replace (_tmp278_, "'", "\\'");
+ _tmp280_ = _tmp279_;
+ _tmp281_ = g_strconcat ("'", _tmp280_, NULL);
+ _tmp282_ = _tmp281_;
+ _tmp283_ = g_strconcat (_tmp282_, "'", NULL);
+ _g_free0 (left);
+ left = _tmp283_;
+ _g_free0 (_tmp282_);
+ _g_free0 (_tmp280_);
+ _g_free0 (_tmp278_);
+ _g_free0 (val);
+ } else {
+ const gchar* _tmp284_ = NULL;
+ gchar* _tmp285_ = NULL;
+ _tmp284_ = leftv;
+ _tmp285_ = g_strdup (_tmp284_);
+ _g_free0 (left);
+ left = _tmp285_;
+ }
+ }
+ _tmp286_ = left;
+ _tmp287_ = g_strconcat (_tmp286_, " : ", NULL);
+ _g_free0 (left);
+ left = _tmp287_;
+ _tmp288_ = vo;
+ _tmp289_ = k;
+ _tmp290_ = pad;
+ _tmp291_ = g_strconcat (_tmp290_, " ", NULL);
+ _tmp292_ = _tmp291_;
+ _tmp293_ = doubleStringProps;
+ _tmp294_ = js_render_node_mungeToString (_tmp288_, g_strcmp0 (_tmp289_, "listeners") == 0, _tmp292_, _tmp293_);
+ _tmp295_ = _tmp294_;
+ _g_free0 (_tmp292_);
+ right = _tmp295_;
+ _tmp296_ = right;
+ _tmp297_ = strlen (_tmp296_);
+ _tmp298_ = _tmp297_;
+ if (_tmp298_ > 0) {
+ const gchar* _tmp299_ = NULL;
+ const gchar* _tmp300_ = NULL;
+ gchar* _tmp301_ = NULL;
+ _tmp299_ = left;
+ _tmp300_ = right;
+ _tmp301_ = g_strconcat (_tmp299_, _tmp300_, NULL);
+ els = g_list_append (els, _tmp301_);
+ }
+ _g_free0 (right);
+ _g_free0 (leftv);
+ _g_free0 (_tmp250_);
+ _js_render_node_unref0 (vo);
+ _g_free0 (k);
+ }
+ _tmp302_ = els;
+ _tmp303_ = g_list_length (_tmp302_);
+ if (_tmp303_ < ((guint) 1)) {
+ gchar* _tmp304_ = NULL;
+ _tmp304_ = g_strdup ("");
+ result = _tmp304_;
+ _g_object_unref0 (iter);
+ _g_object_unref0 (piter);
+ _g_regex_unref0 (func_regex);
+ _g_free0 (left);
+ _g_object_unref0 (oprops);
+ _g_object_unref0 (skip);
+ __g_list_free__g_free0_0 (els);
+ return result;
+ }
+ _tmp305_ = pad;
+ _tmp306_ = pad;
+ _tmp307_ = strlen (_tmp306_);
+ _tmp308_ = _tmp307_;
+ _tmp309_ = string_substring (_tmp305_, (glong) 0, (glong) (_tmp308_ - 4));
+ spad = _tmp309_;
+ _tmp310_ = pad;
+ _tmp311_ = g_strconcat ("{\n", _tmp310_, NULL);
+ _tmp312_ = _tmp311_;
+ _tmp313_ = pad;
+ _tmp314_ = g_strconcat (",\n", _tmp313_, NULL);
+ _tmp315_ = _tmp314_;
+ _tmp316_ = els;
+ _tmp317_ = g_strjoin (_tmp315_, _tmp316_, NULL);
+ _tmp318_ = _tmp317_;
+ _tmp319_ = g_strconcat (_tmp312_, _tmp318_, NULL);
+ _tmp320_ = _tmp319_;
+ _tmp321_ = g_strconcat (_tmp320_, "\n", NULL);
+ _tmp322_ = _tmp321_;
+ _tmp323_ = spad;
+ _tmp324_ = g_strconcat (_tmp322_, _tmp323_, NULL);
+ _tmp325_ = _tmp324_;
+ _tmp326_ = g_strconcat (_tmp325_, "}", NULL);
+ _tmp327_ = _tmp326_;
+ _g_free0 (_tmp325_);
+ _g_free0 (_tmp322_);
+ _g_free0 (_tmp320_);
+ _g_free0 (_tmp318_);
+ _g_free0 (_tmp315_);
+ _g_free0 (_tmp312_);
+ result = _tmp327_;
+ _g_free0 (spad);
+ _g_object_unref0 (iter);
+ _g_object_unref0 (piter);
+ _g_regex_unref0 (func_regex);
+ _g_free0 (left);
+ _g_object_unref0 (oprops);
+ _g_object_unref0 (skip);
+ __g_list_free__g_free0_0 (els);
+ return result;
+}
+
+
+static void _vala_JsonNode_free (JsonNode* self) {
+ g_boxed_free (json_node_get_type (), self);
+}
+
+
+gchar* js_render_node_quoteString (JsRenderNode* self, const gchar* str) {
+ gchar* result = NULL;
+ JsonGenerator* _tmp0_ = NULL;
+ JsonBuilder* builder = NULL;
+ JsonBuilder* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ JsonGenerator* _tmp4_ = NULL;
+ JsonNode* _tmp5_ = NULL;
+ JsonNode* _tmp6_ = NULL;
+ JsonGenerator* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ g_return_val_if_fail (self != NULL, NULL);
+ g_return_val_if_fail (str != NULL, NULL);
+ _tmp0_ = js_render_node_gen;
+ if (_tmp0_ == NULL) {
+ JsonGenerator* _tmp1_ = NULL;
+ _tmp1_ = json_generator_new ();
+ _g_object_unref0 (js_render_node_gen);
+ js_render_node_gen = _tmp1_;
+ }
+ _tmp2_ = json_builder_new ();
+ builder = _tmp2_;
+ _tmp3_ = str;
+ json_builder_add_string_value (builder, _tmp3_);
+ _tmp4_ = js_render_node_gen;
+ _tmp5_ = json_builder_get_root (builder);
+ _tmp6_ = _tmp5_;
+ json_generator_set_root (_tmp4_, _tmp6_);
+ __vala_JsonNode_free0 (_tmp6_);
+ _tmp7_ = js_render_node_gen;
+ _tmp8_ = json_generator_to_data (_tmp7_, NULL);
+ result = _tmp8_;
+ _g_object_unref0 (builder);
+ return result;
+}
+
+
+static gpointer _json_object_ref0 (gpointer self) {
+ return self ? json_object_ref (self) : NULL;
+}
+
+
+static Block1Data* block1_data_ref (Block1Data* _data1_) {
+ g_atomic_int_inc (&_data1_->_ref_count_);
+ return _data1_;
+}
+
+
+static void block1_data_unref (void * _userdata_) {
+ Block1Data* _data1_;
+ _data1_ = (Block1Data*) _userdata_;
+ if (g_atomic_int_dec_and_test (&_data1_->_ref_count_)) {
+ JsRenderNode* self;
+ self = _data1_->self;
+ _json_object_unref0 (_data1_->obj);
+ _js_render_node_unref0 (self);
+ g_slice_free (Block1Data, _data1_);
+ }
+}
+
+
+static gpointer _json_array_ref0 (gpointer self) {
+ return self ? json_array_ref (self) : NULL;
+}
+
+
+static void ___lambda4_ (JsRenderNode* self, JsonArray* are, guint ix, JsonNode* el) {
+ JsRenderNode* node = NULL;
+ JsRenderNode* _tmp0_ = NULL;
+ JsonNode* _tmp1_ = NULL;
+ JsonObject* _tmp2_ = NULL;
+ JsRenderNode* _tmp3_ = NULL;
+ g_return_if_fail (are != NULL);
+ g_return_if_fail (el != NULL);
+ _tmp0_ = js_render_node_new ();
+ node = _tmp0_;
+ _tmp1_ = el;
+ _tmp2_ = json_node_get_object (_tmp1_);
+ js_render_node_loadFromJson (node, _tmp2_);
+ _tmp3_ = _js_render_node_ref0 (node);
+ self->priv->items = g_list_append (self->priv->items, _tmp3_);
+ _js_render_node_unref0 (node);
+}
+
+
+static void ____lambda4__json_array_foreach (JsonArray* array, guint index_, JsonNode* element_node, gpointer self) {
+ ___lambda4_ ((JsRenderNode*) self, array, index_, element_node);
+}
+
+
+static void ___lambda5_ (JsRenderNode* self, JsonObject* lio, const gchar* li_key, JsonNode* li_value) {
+ GeeHashMap* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ JsonNode* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ g_return_if_fail (lio != NULL);
+ g_return_if_fail (li_key != NULL);
+ g_return_if_fail (li_value != NULL);
+ _tmp0_ = self->priv->listeners;
+ _tmp1_ = li_key;
+ _tmp2_ = li_value;
+ _tmp3_ = json_node_get_string (_tmp2_);
+ gee_abstract_map_set ((GeeAbstractMap*) _tmp0_, _tmp1_, _tmp3_);
+}
+
+
+static void ____lambda5__json_object_foreach (JsonObject* object, const gchar* member_name, JsonNode* member_node, gpointer self) {
+ ___lambda5_ ((JsRenderNode*) self, object, member_name, member_node);
+}
+
+
+static void __lambda3_ (Block1Data* _data1_, JsonObject* o, const gchar* key, JsonNode* value) {
+ JsRenderNode* self;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ GeeHashMap* _tmp10_ = NULL;
+ const gchar* _tmp11_ = NULL;
+ JsonNode* _tmp12_ = NULL;
+ const gchar* _tmp13_ = NULL;
+ self = _data1_->self;
+ g_return_if_fail (o != NULL);
+ g_return_if_fail (key != NULL);
+ g_return_if_fail (value != NULL);
+ _tmp0_ = key;
+ if (g_strcmp0 (_tmp0_, "items") == 0) {
+ JsonArray* ar = NULL;
+ JsonNode* _tmp1_ = NULL;
+ JsonArray* _tmp2_ = NULL;
+ JsonArray* _tmp3_ = NULL;
+ JsonArray* _tmp4_ = NULL;
+ _tmp1_ = value;
+ _tmp2_ = json_node_get_array (_tmp1_);
+ _tmp3_ = _json_array_ref0 (_tmp2_);
+ ar = _tmp3_;
+ _tmp4_ = ar;
+ json_array_foreach_element (_tmp4_, ____lambda4__json_array_foreach, self);
+ _json_array_unref0 (ar);
+ return;
+ }
+ _tmp5_ = key;
+ if (g_strcmp0 (_tmp5_, "listeners") == 0) {
+ JsonObject* li = NULL;
+ JsonNode* _tmp6_ = NULL;
+ JsonObject* _tmp7_ = NULL;
+ JsonObject* _tmp8_ = NULL;
+ JsonObject* _tmp9_ = NULL;
+ _tmp6_ = value;
+ _tmp7_ = json_node_get_object (_tmp6_);
+ _tmp8_ = _json_object_ref0 (_tmp7_);
+ li = _tmp8_;
+ _tmp9_ = _data1_->obj;
+ json_object_foreach_member (_tmp9_, ____lambda5__json_object_foreach, self);
+ _json_object_unref0 (li);
+ return;
+ }
+ _tmp10_ = self->priv->props;
+ _tmp11_ = key;
+ _tmp12_ = value;
+ _tmp13_ = json_node_get_string (_tmp12_);
+ gee_abstract_map_set ((GeeAbstractMap*) _tmp10_, _tmp11_, _tmp13_);
+}
+
+
+static void ___lambda3__json_object_foreach (JsonObject* object, const gchar* member_name, JsonNode* member_node, gpointer self) {
+ __lambda3_ (self, object, member_name, member_node);
+}
+
+
+void js_render_node_loadFromJson (JsRenderNode* self, JsonObject* obj) {
+ Block1Data* _data1_;
+ JsonObject* _tmp0_ = NULL;
+ JsonObject* _tmp1_ = NULL;
+ JsonObject* _tmp2_ = NULL;
+ g_return_if_fail (self != NULL);
+ g_return_if_fail (obj != NULL);
+ _data1_ = g_slice_new0 (Block1Data);
+ _data1_->_ref_count_ = 1;
+ _data1_->self = js_render_node_ref (self);
+ _tmp0_ = obj;
+ _tmp1_ = _json_object_ref0 (_tmp0_);
+ _json_object_unref0 (_data1_->obj);
+ _data1_->obj = _tmp1_;
+ _tmp2_ = _data1_->obj;
+ json_object_foreach_member (_tmp2_, ___lambda3__json_object_foreach, _data1_);
+ block1_data_unref (_data1_);
+ _data1_ = NULL;
+}
+
+
+static void js_render_value_node_init (GValue* value) {
+ value->data[0].v_pointer = NULL;
+}
+
+
+static void js_render_value_node_free_value (GValue* value) {
+ if (value->data[0].v_pointer) {
+ js_render_node_unref (value->data[0].v_pointer);
+ }
+}
+
+
+static void js_render_value_node_copy_value (const GValue* src_value, GValue* dest_value) {
+ if (src_value->data[0].v_pointer) {
+ dest_value->data[0].v_pointer = js_render_node_ref (src_value->data[0].v_pointer);
+ } else {
+ dest_value->data[0].v_pointer = NULL;
+ }
+}
+
+
+static gpointer js_render_value_node_peek_pointer (const GValue* value) {
+ return value->data[0].v_pointer;
+}
+
+
+static gchar* js_render_value_node_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ if (collect_values[0].v_pointer) {
+ JsRenderNode* object;
+ object = collect_values[0].v_pointer;
+ if (object->parent_instance.g_class == NULL) {
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+ }
+ value->data[0].v_pointer = js_render_node_ref (object);
+ } else {
+ value->data[0].v_pointer = NULL;
+ }
+ return NULL;
+}
+
+
+static gchar* js_render_value_node_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ JsRenderNode** object_p;
+ object_p = collect_values[0].v_pointer;
+ if (!object_p) {
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+ }
+ if (!value->data[0].v_pointer) {
+ *object_p = NULL;
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+ *object_p = value->data[0].v_pointer;
+ } else {
+ *object_p = js_render_node_ref (value->data[0].v_pointer);
+ }
+ return NULL;
+}
+
+
+GParamSpec* js_render_param_spec_node (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ JsRenderParamSpecNode* spec;
+ g_return_val_if_fail (g_type_is_a (object_type, JS_RENDER_TYPE_NODE), NULL);
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+ G_PARAM_SPEC (spec)->value_type = object_type;
+ return G_PARAM_SPEC (spec);
+}
+
+
+gpointer js_render_value_get_node (const GValue* value) {
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, JS_RENDER_TYPE_NODE), NULL);
+ return value->data[0].v_pointer;
+}
+
+
+void js_render_value_set_node (GValue* value, gpointer v_object) {
+ JsRenderNode* old;
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, JS_RENDER_TYPE_NODE));
+ old = value->data[0].v_pointer;
+ if (v_object) {
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, JS_RENDER_TYPE_NODE));
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+ value->data[0].v_pointer = v_object;
+ js_render_node_ref (value->data[0].v_pointer);
+ } else {
+ value->data[0].v_pointer = NULL;
+ }
+ if (old) {
+ js_render_node_unref (old);
+ }
+}
+
+
+void js_render_value_take_node (GValue* value, gpointer v_object) {
+ JsRenderNode* old;
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, JS_RENDER_TYPE_NODE));
+ old = value->data[0].v_pointer;
+ if (v_object) {
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, JS_RENDER_TYPE_NODE));
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+ value->data[0].v_pointer = v_object;
+ } else {
+ value->data[0].v_pointer = NULL;
+ }
+ if (old) {
+ js_render_node_unref (old);
+ }
+}
+
+
+static void js_render_node_class_init (JsRenderNodeClass * klass) {
+ js_render_node_parent_class = g_type_class_peek_parent (klass);
+ JS_RENDER_NODE_CLASS (klass)->finalize = js_render_node_finalize;
+ g_type_class_add_private (klass, sizeof (JsRenderNodePrivate));
+}
+
+
+static void js_render_node_instance_init (JsRenderNode * self) {
+ self->priv = JS_RENDER_NODE_GET_PRIVATE (self);
+ self->ref_count = 1;
+}
+
+
+static void js_render_node_finalize (JsRenderNode* obj) {
+ JsRenderNode * self;
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, JS_RENDER_TYPE_NODE, JsRenderNode);
+ __g_list_free__js_render_node_unref0_0 (self->priv->items);
+ _g_object_unref0 (self->priv->props);
+ _g_object_unref0 (self->priv->listeners);
+}
+
+
+GType js_render_node_get_type (void) {
+ static volatile gsize js_render_node_type_id__volatile = 0;
+ if (g_once_init_enter (&js_render_node_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { js_render_value_node_init, js_render_value_node_free_value, js_render_value_node_copy_value, js_render_value_node_peek_pointer, "p", js_render_value_node_collect_value, "p", js_render_value_node_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (JsRenderNodeClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) js_render_node_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (JsRenderNode), 0, (GInstanceInitFunc) js_render_node_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType js_render_node_type_id;
+ js_render_node_type_id = g_type_register_fundamental (g_type_fundamental_next (), "JsRenderNode", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&js_render_node_type_id__volatile, js_render_node_type_id);
+ }
+ return js_render_node_type_id__volatile;
+}
+
+
+gpointer js_render_node_ref (gpointer instance) {
+ JsRenderNode* self;
+ self = instance;
+ g_atomic_int_inc (&self->ref_count);
+ return instance;
+}
+
+
+void js_render_node_unref (gpointer instance) {
+ JsRenderNode* self;
+ self = instance;
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+ JS_RENDER_NODE_GET_CLASS (self)->finalize (self);
+ g_type_free_instance ((GTypeInstance *) self);
+ }
+}
+
+
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ if ((array != NULL) && (destroy_func != NULL)) {
+ int i;
+ for (i = 0; i < array_length; i = i + 1) {
+ if (((gpointer*) array)[i] != NULL) {
+ destroy_func (((gpointer*) array)[i]);
+ }
+ }
+ }
+}
+
+
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ _vala_array_destroy (array, array_length, destroy_func);
+ g_free (array);
+}
+
+
+static gint _vala_array_length (gpointer array) {
+ int length;
+ length = 0;
+ if (array) {
+ while (((gpointer*) array)[length]) {
+ length++;
+ }
+ }
+ return length;
+}
+
+
+
--- /dev/null
+/* Roo.vala.c generated by valac 0.24.0, the Vala compiler
+ * generated from Roo.vala, do not modify */
+
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <json-glib/json-glib.h>
+#include <glib/gstdio.h>
+
+
+#define JS_RENDER_TYPE_JS_RENDER (js_render_js_render_get_type ())
+#define JS_RENDER_JS_RENDER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JS_RENDER_TYPE_JS_RENDER, JsRenderJsRender))
+#define JS_RENDER_JS_RENDER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JS_RENDER_TYPE_JS_RENDER, JsRenderJsRenderClass))
+#define JS_RENDER_IS_JS_RENDER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JS_RENDER_TYPE_JS_RENDER))
+#define JS_RENDER_IS_JS_RENDER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JS_RENDER_TYPE_JS_RENDER))
+#define JS_RENDER_JS_RENDER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JS_RENDER_TYPE_JS_RENDER, JsRenderJsRenderClass))
+
+typedef struct _JsRenderJsRender JsRenderJsRender;
+typedef struct _JsRenderJsRenderClass JsRenderJsRenderClass;
+typedef struct _JsRenderJsRenderPrivate JsRenderJsRenderPrivate;
+
+#define PROJECT_TYPE_PROJECT (project_project_get_type ())
+#define PROJECT_PROJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PROJECT_TYPE_PROJECT, ProjectProject))
+#define PROJECT_PROJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PROJECT_TYPE_PROJECT, ProjectProjectClass))
+#define PROJECT_IS_PROJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PROJECT_TYPE_PROJECT))
+#define PROJECT_IS_PROJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PROJECT_TYPE_PROJECT))
+#define PROJECT_PROJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PROJECT_TYPE_PROJECT, ProjectProjectClass))
+
+typedef struct _ProjectProject ProjectProject;
+typedef struct _ProjectProjectClass ProjectProjectClass;
+
+#define JS_RENDER_TYPE_NODE (js_render_node_get_type ())
+#define JS_RENDER_NODE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JS_RENDER_TYPE_NODE, JsRenderNode))
+#define JS_RENDER_NODE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JS_RENDER_TYPE_NODE, JsRenderNodeClass))
+#define JS_RENDER_IS_NODE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JS_RENDER_TYPE_NODE))
+#define JS_RENDER_IS_NODE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JS_RENDER_TYPE_NODE))
+#define JS_RENDER_NODE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JS_RENDER_TYPE_NODE, JsRenderNodeClass))
+
+typedef struct _JsRenderNode JsRenderNode;
+typedef struct _JsRenderNodeClass JsRenderNodeClass;
+
+#define JS_RENDER_TYPE_ROO (js_render_roo_get_type ())
+#define JS_RENDER_ROO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JS_RENDER_TYPE_ROO, JsRenderRoo))
+#define JS_RENDER_ROO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JS_RENDER_TYPE_ROO, JsRenderRooClass))
+#define JS_RENDER_IS_ROO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JS_RENDER_TYPE_ROO))
+#define JS_RENDER_IS_ROO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JS_RENDER_TYPE_ROO))
+#define JS_RENDER_ROO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JS_RENDER_TYPE_ROO, JsRenderRooClass))
+
+typedef struct _JsRenderRoo JsRenderRoo;
+typedef struct _JsRenderRooClass JsRenderRooClass;
+typedef struct _JsRenderRooPrivate JsRenderRooPrivate;
+#define _g_free0(var) (var = (g_free (var), NULL))
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define __vala_JsonNode_free0(var) ((var == NULL) ? NULL : (var = (_vala_JsonNode_free (var), NULL)))
+#define _js_render_node_unref0(var) ((var == NULL) ? NULL : (var = (js_render_node_unref (var), NULL)))
+#define _json_object_unref0(var) ((var == NULL) ? NULL : (var = (json_object_unref (var), NULL)))
+#define _json_array_unref0(var) ((var == NULL) ? NULL : (var = (json_array_unref (var), NULL)))
+#define _g_regex_unref0(var) ((var == NULL) ? NULL : (var = (g_regex_unref (var), NULL)))
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+
+struct _JsRenderJsRender {
+ GObject parent_instance;
+ JsRenderJsRenderPrivate * priv;
+ GList* doubleStringProps;
+ gchar* id;
+ gchar* name;
+ gchar* fullname;
+ gchar* path;
+ gchar* parent;
+ gchar* title;
+ gchar* permname;
+ gchar* modOrder;
+ gchar* xtype;
+ ProjectProject* project;
+ JsRenderNode* tree;
+ GList* cn;
+ gboolean hasParent;
+};
+
+struct _JsRenderJsRenderClass {
+ GObjectClass parent_class;
+};
+
+struct _JsRenderRoo {
+ JsRenderJsRender parent_instance;
+ JsRenderRooPrivate * priv;
+};
+
+struct _JsRenderRooClass {
+ JsRenderJsRenderClass parent_class;
+};
+
+struct _JsRenderRooPrivate {
+ gchar* region;
+ gboolean disabled;
+};
+
+typedef enum {
+ JS_RENDER_ERROR_INVALID_FORMAT
+} JsRenderError;
+#define JS_RENDER_ERROR js_render_error_quark ()
+
+extern gint js_render_rid;
+gint js_render_rid = 0;
+static gpointer js_render_roo_parent_class = NULL;
+
+GType js_render_js_render_get_type (void) G_GNUC_CONST;
+gpointer project_project_ref (gpointer instance);
+void project_project_unref (gpointer instance);
+GParamSpec* project_param_spec_project (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void project_value_set_project (GValue* value, gpointer v_object);
+void project_value_take_project (GValue* value, gpointer v_object);
+gpointer project_value_get_project (const GValue* value);
+GType project_project_get_type (void) G_GNUC_CONST;
+gpointer js_render_node_ref (gpointer instance);
+void js_render_node_unref (gpointer instance);
+GParamSpec* js_render_param_spec_node (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void js_render_value_set_node (GValue* value, gpointer v_object);
+void js_render_value_take_node (GValue* value, gpointer v_object);
+gpointer js_render_value_get_node (const GValue* value);
+GType js_render_node_get_type (void) G_GNUC_CONST;
+GType js_render_roo_get_type (void) G_GNUC_CONST;
+#define JS_RENDER_ROO_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), JS_RENDER_TYPE_ROO, JsRenderRooPrivate))
+enum {
+ JS_RENDER_ROO_DUMMY_PROPERTY
+};
+JsRenderRoo* js_render_roo_new (ProjectProject* project, const gchar* path);
+JsRenderRoo* js_render_roo_construct (GType object_type, ProjectProject* project, const gchar* path);
+JsRenderJsRender* js_render_js_render_new (ProjectProject* project, const gchar* path);
+JsRenderJsRender* js_render_js_render_construct (GType object_type, ProjectProject* project, const gchar* path);
+GQuark js_render_error_quark (void);
+void js_render_roo_loadItems (JsRenderRoo* self, GError** error);
+static JsonNode* _vala_JsonNode_copy (JsonNode* self);
+static void _vala_JsonNode_free (JsonNode* self);
+JsRenderNode* js_render_node_new (void);
+JsRenderNode* js_render_node_construct (GType object_type);
+void js_render_node_loadFromJson (JsRenderNode* self, JsonObject* obj);
+void js_render_roo_save (JsRenderRoo* self);
+void js_render_js_render_save (JsRenderJsRender* self);
+gchar* js_render_roo_toSource (JsRenderRoo* self);
+static gchar* js_render_roo_toSourcePreview (JsRenderRoo* self);
+gchar* js_render_roo_guessName (JsRenderRoo* self, JsRenderNode* ar);
+gchar* js_render_roo_toSourceDialog (JsRenderRoo* self, gboolean isPreview);
+gchar* js_render_roo_toSourceModal (JsRenderRoo* self, gboolean isPreview);
+gchar* js_render_roo_toSourceLayout (JsRenderRoo* self, gboolean isPreview);
+gchar* js_render_roo_outputHeader (JsRenderRoo* self);
+gchar* js_render_js_render_mungeToString (JsRenderJsRender* self, const gchar* pad);
+gchar* js_render_roo_pathToPart (JsRenderRoo* self);
+gchar* js_render_node_quoteString (JsRenderNode* self, const gchar* str);
+gchar* js_render_node_get (JsRenderNode* self, const gchar* key);
+static void _vala_array_add1 (gchar*** array, int* length, int* size, gchar* value);
+static void _vala_array_add2 (gchar*** array, int* length, int* size, gchar* value);
+static gchar* js_render_roo_getHelpUrl (JsRenderRoo* self, const gchar* cls);
+static void js_render_roo_finalize (GObject* obj);
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static gint _vala_array_length (gpointer array);
+
+
+JsRenderRoo* js_render_roo_construct (GType object_type, ProjectProject* project, const gchar* path) {
+ JsRenderRoo * self = NULL;
+ ProjectProject* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gchar* _tmp6_ = NULL;
+ gchar** dsp = NULL;
+ gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ gchar** _tmp16_ = NULL;
+ gint dsp_length1 = 0;
+ gint _dsp_size_ = 0;
+ g_return_val_if_fail (project != NULL, NULL);
+ g_return_val_if_fail (path != NULL, NULL);
+ _tmp0_ = project;
+ _tmp1_ = path;
+ self = (JsRenderRoo*) js_render_js_render_construct (object_type, _tmp0_, _tmp1_);
+ _tmp2_ = g_strdup ("Roo");
+ _g_free0 (((JsRenderJsRender*) self)->xtype);
+ ((JsRenderJsRender*) self)->xtype = _tmp2_;
+ _tmp3_ = g_strdup ("001");
+ _g_free0 (((JsRenderJsRender*) self)->modOrder);
+ ((JsRenderJsRender*) self)->modOrder = _tmp3_;
+ _tmp4_ = g_strdup ("center");
+ _g_free0 (self->priv->region);
+ self->priv->region = _tmp4_;
+ self->priv->disabled = FALSE;
+ _tmp5_ = js_render_rid;
+ js_render_rid = _tmp5_ + 1;
+ _tmp6_ = g_strdup_printf ("file-roo-%d", _tmp5_);
+ _g_free0 (((JsRenderJsRender*) self)->id);
+ ((JsRenderJsRender*) self)->id = _tmp6_;
+ _tmp7_ = g_strdup ("title");
+ _tmp8_ = g_strdup ("legend");
+ _tmp9_ = g_strdup ("loadingText");
+ _tmp10_ = g_strdup ("emptyText");
+ _tmp11_ = g_strdup ("qtip");
+ _tmp12_ = g_strdup ("value");
+ _tmp13_ = g_strdup ("text");
+ _tmp14_ = g_strdup ("emptyMsg");
+ _tmp15_ = g_strdup ("displayMsg");
+ _tmp16_ = g_new0 (gchar*, 9 + 1);
+ _tmp16_[0] = _tmp7_;
+ _tmp16_[1] = _tmp8_;
+ _tmp16_[2] = _tmp9_;
+ _tmp16_[3] = _tmp10_;
+ _tmp16_[4] = _tmp11_;
+ _tmp16_[5] = _tmp12_;
+ _tmp16_[6] = _tmp13_;
+ _tmp16_[7] = _tmp14_;
+ _tmp16_[8] = _tmp15_;
+ dsp = _tmp16_;
+ dsp_length1 = 9;
+ _dsp_size_ = dsp_length1;
+ {
+ gint i = 0;
+ i = 0;
+ {
+ gboolean _tmp17_ = FALSE;
+ _tmp17_ = TRUE;
+ while (TRUE) {
+ gint _tmp19_ = 0;
+ gchar** _tmp20_ = NULL;
+ gint _tmp20__length1 = 0;
+ gchar** _tmp21_ = NULL;
+ gint _tmp21__length1 = 0;
+ gint _tmp22_ = 0;
+ const gchar* _tmp23_ = NULL;
+ gchar* _tmp24_ = NULL;
+ if (!_tmp17_) {
+ gint _tmp18_ = 0;
+ _tmp18_ = i;
+ i = _tmp18_ + 1;
+ }
+ _tmp17_ = FALSE;
+ _tmp19_ = i;
+ _tmp20_ = dsp;
+ _tmp20__length1 = dsp_length1;
+ if (!(_tmp19_ < _tmp20__length1)) {
+ break;
+ }
+ _tmp21_ = dsp;
+ _tmp21__length1 = dsp_length1;
+ _tmp22_ = i;
+ _tmp23_ = _tmp21_[_tmp22_];
+ _tmp24_ = g_strdup (_tmp23_);
+ ((JsRenderJsRender*) self)->doubleStringProps = g_list_append (((JsRenderJsRender*) self)->doubleStringProps, _tmp24_);
+ }
+ }
+ }
+ dsp = (_vala_array_free (dsp, dsp_length1, (GDestroyNotify) g_free), NULL);
+ return self;
+}
+
+
+JsRenderRoo* js_render_roo_new (ProjectProject* project, const gchar* path) {
+ return js_render_roo_construct (JS_RENDER_TYPE_ROO, project, path);
+}
+
+
+static JsonNode* _vala_JsonNode_copy (JsonNode* self) {
+ return g_boxed_copy (json_node_get_type (), self);
+}
+
+
+static gpointer __vala_JsonNode_copy0 (gpointer self) {
+ return self ? _vala_JsonNode_copy (self) : NULL;
+}
+
+
+static void _vala_JsonNode_free (JsonNode* self) {
+ g_boxed_free (json_node_get_type (), self);
+}
+
+
+static gpointer _json_object_ref0 (gpointer self) {
+ return self ? json_object_ref (self) : NULL;
+}
+
+
+static gpointer _json_array_ref0 (gpointer self) {
+ return self ? json_array_ref (self) : NULL;
+}
+
+
+void js_render_roo_loadItems (JsRenderRoo* self, GError** error) {
+ JsRenderNode* _tmp0_ = NULL;
+ JsonParser* pa = NULL;
+ JsonParser* _tmp1_ = NULL;
+ JsonParser* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ JsonNode* node = NULL;
+ JsonParser* _tmp4_ = NULL;
+ JsonNode* _tmp5_ = NULL;
+ JsonNode* _tmp6_ = NULL;
+ JsonNode* _tmp7_ = NULL;
+ JsonNodeType _tmp8_ = 0;
+ JsonObject* obj = NULL;
+ JsonNode* _tmp12_ = NULL;
+ JsonObject* _tmp13_ = NULL;
+ JsonObject* _tmp14_ = NULL;
+ JsonObject* _tmp15_ = NULL;
+ const gchar* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ JsonObject* _tmp18_ = NULL;
+ const gchar* _tmp19_ = NULL;
+ gchar* _tmp20_ = NULL;
+ JsonObject* _tmp21_ = NULL;
+ const gchar* _tmp22_ = NULL;
+ gchar* _tmp23_ = NULL;
+ JsonObject* _tmp24_ = NULL;
+ const gchar* _tmp25_ = NULL;
+ gchar* _tmp26_ = NULL;
+ JsonObject* _tmp27_ = NULL;
+ const gchar* _tmp28_ = NULL;
+ gchar* _tmp29_ = NULL;
+ JsonObject* _tmp30_ = NULL;
+ const gchar* _tmp31_ = NULL;
+ gchar* _tmp32_ = NULL;
+ JsonArray* ar = NULL;
+ JsonObject* _tmp33_ = NULL;
+ JsonArray* _tmp34_ = NULL;
+ JsonArray* _tmp35_ = NULL;
+ JsonObject* tree_base = NULL;
+ JsonArray* _tmp36_ = NULL;
+ JsonObject* _tmp37_ = NULL;
+ JsonObject* _tmp38_ = NULL;
+ JsRenderNode* _tmp39_ = NULL;
+ JsRenderNode* _tmp40_ = NULL;
+ JsonObject* _tmp41_ = NULL;
+ GError * _inner_error_ = NULL;
+ g_return_if_fail (self != NULL);
+ g_print ("load Items!");
+ _tmp0_ = ((JsRenderJsRender*) self)->tree;
+ if (_tmp0_ != NULL) {
+ return;
+ }
+ _tmp1_ = json_parser_new ();
+ pa = _tmp1_;
+ _tmp2_ = pa;
+ _tmp3_ = ((JsRenderJsRender*) self)->path;
+ json_parser_load_from_file (_tmp2_, _tmp3_, &_inner_error_);
+ if (_inner_error_ != NULL) {
+ if (_inner_error_->domain == JS_RENDER_ERROR) {
+ g_propagate_error (error, _inner_error_);
+ _g_object_unref0 (pa);
+ return;
+ } else {
+ _g_object_unref0 (pa);
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+ g_clear_error (&_inner_error_);
+ return;
+ }
+ }
+ _tmp4_ = pa;
+ _tmp5_ = json_parser_get_root (_tmp4_);
+ _tmp6_ = __vala_JsonNode_copy0 (_tmp5_);
+ node = _tmp6_;
+ _tmp7_ = node;
+ _tmp8_ = json_node_get_node_type (_tmp7_);
+ if (_tmp8_ != JSON_NODE_OBJECT) {
+ JsonNode* _tmp9_ = NULL;
+ const gchar* _tmp10_ = NULL;
+ GError* _tmp11_ = NULL;
+ _tmp9_ = node;
+ _tmp10_ = json_node_type_name (_tmp9_);
+ _tmp11_ = g_error_new (JS_RENDER_ERROR, JS_RENDER_ERROR_INVALID_FORMAT, "Unexpected element type %s", _tmp10_);
+ _inner_error_ = _tmp11_;
+ if (_inner_error_->domain == JS_RENDER_ERROR) {
+ g_propagate_error (error, _inner_error_);
+ __vala_JsonNode_free0 (node);
+ _g_object_unref0 (pa);
+ return;
+ } else {
+ __vala_JsonNode_free0 (node);
+ _g_object_unref0 (pa);
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+ g_clear_error (&_inner_error_);
+ return;
+ }
+ }
+ _tmp12_ = node;
+ _tmp13_ = json_node_get_object (_tmp12_);
+ _tmp14_ = _json_object_ref0 (_tmp13_);
+ obj = _tmp14_;
+ _tmp15_ = obj;
+ _tmp16_ = json_object_get_string_member (_tmp15_, "modOrder");
+ _tmp17_ = g_strdup (_tmp16_);
+ _g_free0 (((JsRenderJsRender*) self)->modOrder);
+ ((JsRenderJsRender*) self)->modOrder = _tmp17_;
+ _tmp18_ = obj;
+ _tmp19_ = json_object_get_string_member (_tmp18_, "name");
+ _tmp20_ = g_strdup (_tmp19_);
+ _g_free0 (((JsRenderJsRender*) self)->name);
+ ((JsRenderJsRender*) self)->name = _tmp20_;
+ _tmp21_ = obj;
+ _tmp22_ = json_object_get_string_member (_tmp21_, "parent");
+ _tmp23_ = g_strdup (_tmp22_);
+ _g_free0 (((JsRenderJsRender*) self)->parent);
+ ((JsRenderJsRender*) self)->parent = _tmp23_;
+ _tmp24_ = obj;
+ _tmp25_ = json_object_get_string_member (_tmp24_, "permname");
+ _tmp26_ = g_strdup (_tmp25_);
+ _g_free0 (((JsRenderJsRender*) self)->permname);
+ ((JsRenderJsRender*) self)->permname = _tmp26_;
+ _tmp27_ = obj;
+ _tmp28_ = json_object_get_string_member (_tmp27_, "title");
+ _tmp29_ = g_strdup (_tmp28_);
+ _g_free0 (((JsRenderJsRender*) self)->title);
+ ((JsRenderJsRender*) self)->title = _tmp29_;
+ _tmp30_ = obj;
+ _tmp31_ = json_object_get_string_member (_tmp30_, "modOrder");
+ _tmp32_ = g_strdup (_tmp31_);
+ _g_free0 (((JsRenderJsRender*) self)->modOrder);
+ ((JsRenderJsRender*) self)->modOrder = _tmp32_;
+ _tmp33_ = obj;
+ _tmp34_ = json_object_get_array_member (_tmp33_, "items");
+ _tmp35_ = _json_array_ref0 (_tmp34_);
+ ar = _tmp35_;
+ _tmp36_ = ar;
+ _tmp37_ = json_array_get_object_element (_tmp36_, (guint) 1);
+ _tmp38_ = _json_object_ref0 (_tmp37_);
+ tree_base = _tmp38_;
+ _tmp39_ = js_render_node_new ();
+ _js_render_node_unref0 (((JsRenderJsRender*) self)->tree);
+ ((JsRenderJsRender*) self)->tree = _tmp39_;
+ _tmp40_ = ((JsRenderJsRender*) self)->tree;
+ _tmp41_ = tree_base;
+ js_render_node_loadFromJson (_tmp40_, _tmp41_);
+ _json_object_unref0 (tree_base);
+ _json_array_unref0 (ar);
+ _json_object_unref0 (obj);
+ __vala_JsonNode_free0 (node);
+ _g_object_unref0 (pa);
+}
+
+
+/**
+ * old code had broken xtypes and used arrays differently,
+ * this code should try and clean it up..
+ *
+ *
+ * /
+ fixItems : function(node, fixthis)
+ {
+ if (fixthis) {
+ // fix xtype.
+ var fn = this.guessName(node);
+ //print("guessname got " + fn);
+ if (fn) {
+ var bits = fn.split('.');
+ node.xtype = bits.pop();
+ node['|xns'] = bits.join('.');
+
+ }
+ // fix array???
+
+
+ }
+ if (!node.items || !node.items.length) {
+ return;
+ }
+ var _this = this;
+ var aitems = [];
+ var nitems = [];
+ node.items.forEach(function(i) {
+
+
+
+ _this.fixItems(i, true);
+ if (i.xtype == 'Array') {
+ aitems.push(i);
+ return;
+ }
+ nitems.push(i);
+ });
+ node.items = nitems;
+
+ if (!aitems.length) {
+ return;
+ }
+
+ aitems.forEach(function(i) {
+
+ if (!i.items || !i.items.length) {
+ return;
+ }
+ var prop = i['*prop'] + '[]';
+ // colModel to cm?
+ i.items.forEach(function(c) {
+ c['*prop'] = prop;
+ node.items.push(c);
+
+ });
+
+
+ });
+
+
+ // array handling..
+
+
+
+
+
+ },
+ */
+void js_render_roo_save (JsRenderRoo* self) {
+ gchar* js = NULL;
+ gchar* js_src = NULL;
+ gchar* _tmp10_ = NULL;
+ GError * _inner_error_ = NULL;
+ g_return_if_fail (self != NULL);
+ g_print ("--- JsRender.Roo.save");
+ js_render_js_render_save (G_TYPE_CHECK_INSTANCE_CAST (self, JS_RENDER_TYPE_JS_RENDER, JsRenderJsRender));
+ {
+ GRegex* regex = NULL;
+ GRegex* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ GRegex* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ _tmp0_ = g_regex_new ("\\.(bjs|js)$", 0, 0, &_inner_error_);
+ regex = _tmp0_;
+ if (_inner_error_ != NULL) {
+ if (_inner_error_->domain == G_REGEX_ERROR) {
+ goto __catch6_g_regex_error;
+ }
+ _g_free0 (js);
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+ g_clear_error (&_inner_error_);
+ return;
+ }
+ _tmp2_ = regex;
+ _tmp3_ = ((JsRenderJsRender*) self)->path;
+ _tmp4_ = ((JsRenderJsRender*) self)->path;
+ _tmp5_ = strlen (_tmp4_);
+ _tmp6_ = _tmp5_;
+ _tmp7_ = g_regex_replace (_tmp2_, _tmp3_, (gssize) _tmp6_, 0, "", 0, &_inner_error_);
+ _tmp1_ = _tmp7_;
+ if (_inner_error_ != NULL) {
+ _g_regex_unref0 (regex);
+ if (_inner_error_->domain == G_REGEX_ERROR) {
+ goto __catch6_g_regex_error;
+ }
+ _g_regex_unref0 (regex);
+ _g_free0 (js);
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+ g_clear_error (&_inner_error_);
+ return;
+ }
+ _tmp8_ = _tmp1_;
+ _tmp1_ = NULL;
+ _g_free0 (js);
+ js = _tmp8_;
+ _g_free0 (_tmp1_);
+ _g_regex_unref0 (regex);
+ }
+ goto __finally6;
+ __catch6_g_regex_error:
+ {
+ GError* e = NULL;
+ gchar* _tmp9_ = NULL;
+ e = _inner_error_;
+ _inner_error_ = NULL;
+ _tmp9_ = g_strdup ("???");
+ _g_free0 (((JsRenderJsRender*) self)->name);
+ ((JsRenderJsRender*) self)->name = _tmp9_;
+ g_print ("count not make filename from path");
+ _g_error_free0 (e);
+ _g_free0 (js);
+ return;
+ }
+ __finally6:
+ if (_inner_error_ != NULL) {
+ _g_free0 (js);
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+ g_clear_error (&_inner_error_);
+ return;
+ }
+ _tmp10_ = js_render_roo_toSource (self);
+ js_src = _tmp10_;
+ {
+ const gchar* _tmp11_ = NULL;
+ const gchar* _tmp12_ = NULL;
+ const gchar* _tmp13_ = NULL;
+ gint _tmp14_ = 0;
+ gint _tmp15_ = 0;
+ _tmp11_ = js;
+ _tmp12_ = js_src;
+ _tmp13_ = js_src;
+ _tmp14_ = strlen (_tmp13_);
+ _tmp15_ = _tmp14_;
+ g_file_set_contents (_tmp11_, _tmp12_, (gssize) _tmp15_, &_inner_error_);
+ if (_inner_error_ != NULL) {
+ if (_inner_error_->domain == G_FILE_ERROR) {
+ goto __catch7_g_file_error;
+ }
+ _g_free0 (js_src);
+ _g_free0 (js);
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+ g_clear_error (&_inner_error_);
+ return;
+ }
+ }
+ goto __finally7;
+ __catch7_g_file_error:
+ {
+ GError* e = NULL;
+ e = _inner_error_;
+ _inner_error_ = NULL;
+ g_print ("Save failed\n");
+ _g_error_free0 (e);
+ }
+ __finally7:
+ if (_inner_error_ != NULL) {
+ _g_free0 (js_src);
+ _g_free0 (js);
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+ g_clear_error (&_inner_error_);
+ return;
+ }
+ _g_free0 (js_src);
+ _g_free0 (js);
+}
+
+
+/**
+ * convert xtype for munged output..
+ *
+ */
+static gboolean string_contains (const gchar* self, const gchar* needle) {
+ gboolean result = FALSE;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ g_return_val_if_fail (self != NULL, FALSE);
+ g_return_val_if_fail (needle != NULL, FALSE);
+ _tmp0_ = needle;
+ _tmp1_ = strstr ((gchar*) self, (gchar*) _tmp0_);
+ result = _tmp1_ != NULL;
+ return result;
+}
+
+
+static gchar* js_render_roo_toSourcePreview (JsRenderRoo* self) {
+ gchar* result = NULL;
+ gchar* top = NULL;
+ JsRenderNode* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ const gchar* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ gchar* _tmp9_ = NULL;
+ g_return_val_if_fail (self != NULL, NULL);
+ _tmp0_ = ((JsRenderJsRender*) self)->tree;
+ _tmp1_ = js_render_roo_guessName (self, _tmp0_);
+ top = _tmp1_;
+ _tmp2_ = top;
+ if (_tmp2_ == NULL) {
+ result = NULL;
+ _g_free0 (top);
+ return result;
+ }
+ _tmp3_ = top;
+ _tmp4_ = string_contains (_tmp3_, "Dialog");
+ if (_tmp4_) {
+ gchar* _tmp5_ = NULL;
+ _tmp5_ = js_render_roo_toSourceDialog (self, TRUE);
+ result = _tmp5_;
+ _g_free0 (top);
+ return result;
+ }
+ _tmp6_ = top;
+ _tmp7_ = string_contains (_tmp6_, "Modal");
+ if (_tmp7_) {
+ gchar* _tmp8_ = NULL;
+ _tmp8_ = js_render_roo_toSourceModal (self, TRUE);
+ result = _tmp8_;
+ _g_free0 (top);
+ return result;
+ }
+ _tmp9_ = js_render_roo_toSourceLayout (self, TRUE);
+ result = _tmp9_;
+ _g_free0 (top);
+ return result;
+}
+
+
+/**
+ * This needs to use some options on the project
+ * to determine how the file is output..
+ *
+ * At present we are hard coding it..
+ *
+ *
+ */
+gchar* js_render_roo_toSource (JsRenderRoo* self) {
+ gchar* result = NULL;
+ gchar* top = NULL;
+ JsRenderNode* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ const gchar* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+ gchar* _tmp10_ = NULL;
+ g_return_val_if_fail (self != NULL, NULL);
+ _tmp0_ = ((JsRenderJsRender*) self)->tree;
+ _tmp1_ = js_render_roo_guessName (self, _tmp0_);
+ top = _tmp1_;
+ _tmp2_ = top;
+ if (_tmp2_ != NULL) {
+ gchar* _tmp3_ = NULL;
+ _tmp3_ = g_strdup ("");
+ result = _tmp3_;
+ _g_free0 (top);
+ return result;
+ }
+ _tmp4_ = top;
+ _tmp5_ = string_contains (_tmp4_, "Dialog");
+ if (_tmp5_) {
+ gchar* _tmp6_ = NULL;
+ _tmp6_ = js_render_roo_toSourceDialog (self, FALSE);
+ result = _tmp6_;
+ _g_free0 (top);
+ return result;
+ }
+ _tmp7_ = top;
+ _tmp8_ = string_contains (_tmp7_, "Modal");
+ if (_tmp8_) {
+ gchar* _tmp9_ = NULL;
+ _tmp9_ = js_render_roo_toSourceModal (self, TRUE);
+ result = _tmp9_;
+ _g_free0 (top);
+ return result;
+ }
+ _tmp10_ = js_render_roo_toSourceLayout (self, FALSE);
+ result = _tmp10_;
+ _g_free0 (top);
+ return result;
+}
+
+
+gchar* js_render_roo_outputHeader (JsRenderRoo* self) {
+ gchar* result = NULL;
+ gchar** s = NULL;
+ gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar** _tmp4_ = NULL;
+ gint s_length1 = 0;
+ gint _s_size_ = 0;
+ gchar* _tmp5_ = NULL;
+ g_return_val_if_fail (self != NULL, NULL);
+ _tmp0_ = g_strdup ("//<script type=\"text/javascript\">");
+ _tmp1_ = g_strdup ("");
+ _tmp2_ = g_strdup ("// Auto generated file - created by app.Builder.js- do not edit direct" \
+"ly (at present!)");
+ _tmp3_ = g_strdup ("");
+ _tmp4_ = g_new0 (gchar*, 4 + 1);
+ _tmp4_[0] = _tmp0_;
+ _tmp4_[1] = _tmp1_;
+ _tmp4_[2] = _tmp2_;
+ _tmp4_[3] = _tmp3_;
+ s = _tmp4_;
+ s_length1 = 4;
+ _s_size_ = s_length1;
+ _tmp5_ = g_strjoin ("\n", s, NULL);
+ result = _tmp5_;
+ s = (_vala_array_free (s, s_length1, (GDestroyNotify) g_free), NULL);
+ return result;
+}
+
+
+gchar* js_render_roo_toSourceDialog (JsRenderRoo* self, gboolean isPreview) {
+ gchar* result = NULL;
+ gchar* o = NULL;
+ gchar* _tmp0_ = NULL;
+ gchar** adda = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ gchar* _tmp18_ = NULL;
+ gchar* _tmp19_ = NULL;
+ gchar* _tmp20_ = NULL;
+ gchar* _tmp21_ = NULL;
+ gchar* _tmp22_ = NULL;
+ gchar* _tmp23_ = NULL;
+ gchar* _tmp24_ = NULL;
+ gchar* _tmp25_ = NULL;
+ gchar* _tmp26_ = NULL;
+ gchar** _tmp27_ = NULL;
+ gint adda_length1 = 0;
+ gint _adda_size_ = 0;
+ gchar** addb = NULL;
+ gchar* _tmp28_ = NULL;
+ gchar* _tmp29_ = NULL;
+ gchar* _tmp30_ = NULL;
+ gchar* _tmp31_ = NULL;
+ gchar** _tmp32_ = NULL;
+ gint addb_length1 = 0;
+ gint _addb_size_ = 0;
+ gchar* _tmp33_ = NULL;
+ gchar* _tmp34_ = NULL;
+ gchar* _tmp35_ = NULL;
+ gchar* _tmp36_ = NULL;
+ const gchar* _tmp37_ = NULL;
+ gchar* _tmp38_ = NULL;
+ gchar* _tmp39_ = NULL;
+ gchar* _tmp40_ = NULL;
+ gchar* _tmp41_ = NULL;
+ gchar* _tmp42_ = NULL;
+ gchar* _tmp43_ = NULL;
+ gchar* _tmp44_ = NULL;
+ gchar* _tmp45_ = NULL;
+ gchar* _tmp46_ = NULL;
+ gchar* _tmp47_ = NULL;
+ gchar* _tmp48_ = NULL;
+ gchar* _tmp49_ = NULL;
+ g_return_val_if_fail (self != NULL, NULL);
+ _tmp0_ = js_render_js_render_mungeToString ((JsRenderJsRender*) self, " ");
+ o = _tmp0_;
+ _tmp1_ = g_strdup (" = {");
+ _tmp2_ = g_strdup ("");
+ _tmp3_ = g_strdup (" dialog : false,");
+ _tmp4_ = g_strdup (" callback: false,");
+ _tmp5_ = g_strdup ("");
+ _tmp6_ = g_strdup (" show : function(data, cb)");
+ _tmp7_ = g_strdup (" {");
+ _tmp8_ = g_strdup (" if (!this.dialog) {");
+ _tmp9_ = g_strdup (" this.create();");
+ _tmp10_ = g_strdup (" }");
+ _tmp11_ = g_strdup ("");
+ _tmp12_ = g_strdup (" this.callback = cb;");
+ _tmp13_ = g_strdup (" this.data = data;");
+ _tmp14_ = g_strdup (" this.dialog.show(this.data._el);");
+ _tmp15_ = g_strdup (" if (this.form) {");
+ _tmp16_ = g_strdup (" this.form.reset();");
+ _tmp17_ = g_strdup (" this.form.setValues(data);");
+ _tmp18_ = g_strdup (" this.form.fireEvent('actioncomplete', this.form, { type: '" \
+"setdata', data: data });");
+ _tmp19_ = g_strdup (" }");
+ _tmp20_ = g_strdup ("");
+ _tmp21_ = g_strdup (" },");
+ _tmp22_ = g_strdup ("");
+ _tmp23_ = g_strdup (" create : function()");
+ _tmp24_ = g_strdup (" {");
+ _tmp25_ = g_strdup (" var _this = this;");
+ _tmp26_ = g_strdup (" this.dialog = Roo.factory(");
+ _tmp27_ = g_new0 (gchar*, 26 + 1);
+ _tmp27_[0] = _tmp1_;
+ _tmp27_[1] = _tmp2_;
+ _tmp27_[2] = _tmp3_;
+ _tmp27_[3] = _tmp4_;
+ _tmp27_[4] = _tmp5_;
+ _tmp27_[5] = _tmp6_;
+ _tmp27_[6] = _tmp7_;
+ _tmp27_[7] = _tmp8_;
+ _tmp27_[8] = _tmp9_;
+ _tmp27_[9] = _tmp10_;
+ _tmp27_[10] = _tmp11_;
+ _tmp27_[11] = _tmp12_;
+ _tmp27_[12] = _tmp13_;
+ _tmp27_[13] = _tmp14_;
+ _tmp27_[14] = _tmp15_;
+ _tmp27_[15] = _tmp16_;
+ _tmp27_[16] = _tmp17_;
+ _tmp27_[17] = _tmp18_;
+ _tmp27_[18] = _tmp19_;
+ _tmp27_[19] = _tmp20_;
+ _tmp27_[20] = _tmp21_;
+ _tmp27_[21] = _tmp22_;
+ _tmp27_[22] = _tmp23_;
+ _tmp27_[23] = _tmp24_;
+ _tmp27_[24] = _tmp25_;
+ _tmp27_[25] = _tmp26_;
+ adda = _tmp27_;
+ adda_length1 = 26;
+ _adda_size_ = adda_length1;
+ _tmp28_ = g_strdup (");");
+ _tmp29_ = g_strdup (" }");
+ _tmp30_ = g_strdup ("};");
+ _tmp31_ = g_strdup ("");
+ _tmp32_ = g_new0 (gchar*, 4 + 1);
+ _tmp32_[0] = _tmp28_;
+ _tmp32_[1] = _tmp29_;
+ _tmp32_[2] = _tmp30_;
+ _tmp32_[3] = _tmp31_;
+ addb = _tmp32_;
+ addb_length1 = 4;
+ _addb_size_ = addb_length1;
+ _tmp33_ = js_render_roo_outputHeader (self);
+ _tmp34_ = _tmp33_;
+ _tmp35_ = g_strconcat (_tmp34_, "\n", NULL);
+ _tmp36_ = _tmp35_;
+ _tmp37_ = ((JsRenderJsRender*) self)->name;
+ _tmp38_ = g_strconcat (_tmp36_, _tmp37_, NULL);
+ _tmp39_ = _tmp38_;
+ _tmp40_ = g_strjoin ("\n", adda, NULL);
+ _tmp41_ = _tmp40_;
+ _tmp42_ = g_strconcat (_tmp39_, _tmp41_, NULL);
+ _tmp43_ = _tmp42_;
+ _tmp44_ = g_strconcat (_tmp43_, o, NULL);
+ _tmp45_ = _tmp44_;
+ _tmp46_ = g_strjoin ("\n", addb, NULL);
+ _tmp47_ = _tmp46_;
+ _tmp48_ = g_strconcat (_tmp45_, _tmp47_, NULL);
+ _tmp49_ = _tmp48_;
+ _g_free0 (_tmp47_);
+ _g_free0 (_tmp45_);
+ _g_free0 (_tmp43_);
+ _g_free0 (_tmp41_);
+ _g_free0 (_tmp39_);
+ _g_free0 (_tmp36_);
+ _g_free0 (_tmp34_);
+ result = _tmp49_;
+ addb = (_vala_array_free (addb, addb_length1, (GDestroyNotify) g_free), NULL);
+ adda = (_vala_array_free (adda, adda_length1, (GDestroyNotify) g_free), NULL);
+ _g_free0 (o);
+ return result;
+}
+
+
+gchar* js_render_roo_toSourceModal (JsRenderRoo* self, gboolean isPreview) {
+ gchar* result = NULL;
+ gchar* o = NULL;
+ gchar* _tmp0_ = NULL;
+ gchar** adda = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ gchar* _tmp18_ = NULL;
+ gchar* _tmp19_ = NULL;
+ gchar* _tmp20_ = NULL;
+ gchar* _tmp21_ = NULL;
+ gchar* _tmp22_ = NULL;
+ gchar* _tmp23_ = NULL;
+ gchar* _tmp24_ = NULL;
+ gchar* _tmp25_ = NULL;
+ gchar* _tmp26_ = NULL;
+ gchar** _tmp27_ = NULL;
+ gint adda_length1 = 0;
+ gint _adda_size_ = 0;
+ gchar** addb = NULL;
+ gchar* _tmp28_ = NULL;
+ gchar* _tmp29_ = NULL;
+ gchar* _tmp30_ = NULL;
+ gchar* _tmp31_ = NULL;
+ gchar** _tmp32_ = NULL;
+ gint addb_length1 = 0;
+ gint _addb_size_ = 0;
+ gchar* _tmp33_ = NULL;
+ gchar* _tmp34_ = NULL;
+ gchar* _tmp35_ = NULL;
+ gchar* _tmp36_ = NULL;
+ const gchar* _tmp37_ = NULL;
+ gchar* _tmp38_ = NULL;
+ gchar* _tmp39_ = NULL;
+ gchar* _tmp40_ = NULL;
+ gchar* _tmp41_ = NULL;
+ gchar* _tmp42_ = NULL;
+ gchar* _tmp43_ = NULL;
+ gchar* _tmp44_ = NULL;
+ gchar* _tmp45_ = NULL;
+ gchar* _tmp46_ = NULL;
+ gchar* _tmp47_ = NULL;
+ gchar* _tmp48_ = NULL;
+ gchar* _tmp49_ = NULL;
+ g_return_val_if_fail (self != NULL, NULL);
+ _tmp0_ = js_render_js_render_mungeToString ((JsRenderJsRender*) self, " ");
+ o = _tmp0_;
+ _tmp1_ = g_strdup (" = {");
+ _tmp2_ = g_strdup ("");
+ _tmp3_ = g_strdup (" dialog : false,");
+ _tmp4_ = g_strdup (" callback: false,");
+ _tmp5_ = g_strdup ("");
+ _tmp6_ = g_strdup (" show : function(data, cb)");
+ _tmp7_ = g_strdup (" {");
+ _tmp8_ = g_strdup (" if (!this.dialog) {");
+ _tmp9_ = g_strdup (" this.create();");
+ _tmp10_ = g_strdup (" }");
+ _tmp11_ = g_strdup ("");
+ _tmp12_ = g_strdup (" this.callback = cb;");
+ _tmp13_ = g_strdup (" this.data = data;");
+ _tmp14_ = g_strdup (" this.dialog.show(this.data._el);");
+ _tmp15_ = g_strdup (" if (this.form) {");
+ _tmp16_ = g_strdup (" this.form.reset();");
+ _tmp17_ = g_strdup (" this.form.setValues(data);");
+ _tmp18_ = g_strdup (" this.form.fireEvent('actioncomplete', this.form, { type: '" \
+"setdata', data: data });");
+ _tmp19_ = g_strdup (" }");
+ _tmp20_ = g_strdup ("");
+ _tmp21_ = g_strdup (" },");
+ _tmp22_ = g_strdup ("");
+ _tmp23_ = g_strdup (" create : function()");
+ _tmp24_ = g_strdup (" {");
+ _tmp25_ = g_strdup (" var _this = this;");
+ _tmp26_ = g_strdup (" this.dialog = Roo.factory(");
+ _tmp27_ = g_new0 (gchar*, 26 + 1);
+ _tmp27_[0] = _tmp1_;
+ _tmp27_[1] = _tmp2_;
+ _tmp27_[2] = _tmp3_;
+ _tmp27_[3] = _tmp4_;
+ _tmp27_[4] = _tmp5_;
+ _tmp27_[5] = _tmp6_;
+ _tmp27_[6] = _tmp7_;
+ _tmp27_[7] = _tmp8_;
+ _tmp27_[8] = _tmp9_;
+ _tmp27_[9] = _tmp10_;
+ _tmp27_[10] = _tmp11_;
+ _tmp27_[11] = _tmp12_;
+ _tmp27_[12] = _tmp13_;
+ _tmp27_[13] = _tmp14_;
+ _tmp27_[14] = _tmp15_;
+ _tmp27_[15] = _tmp16_;
+ _tmp27_[16] = _tmp17_;
+ _tmp27_[17] = _tmp18_;
+ _tmp27_[18] = _tmp19_;
+ _tmp27_[19] = _tmp20_;
+ _tmp27_[20] = _tmp21_;
+ _tmp27_[21] = _tmp22_;
+ _tmp27_[22] = _tmp23_;
+ _tmp27_[23] = _tmp24_;
+ _tmp27_[24] = _tmp25_;
+ _tmp27_[25] = _tmp26_;
+ adda = _tmp27_;
+ adda_length1 = 26;
+ _adda_size_ = adda_length1;
+ _tmp28_ = g_strdup (");");
+ _tmp29_ = g_strdup (" }");
+ _tmp30_ = g_strdup ("};");
+ _tmp31_ = g_strdup ("");
+ _tmp32_ = g_new0 (gchar*, 4 + 1);
+ _tmp32_[0] = _tmp28_;
+ _tmp32_[1] = _tmp29_;
+ _tmp32_[2] = _tmp30_;
+ _tmp32_[3] = _tmp31_;
+ addb = _tmp32_;
+ addb_length1 = 4;
+ _addb_size_ = addb_length1;
+ _tmp33_ = js_render_roo_outputHeader (self);
+ _tmp34_ = _tmp33_;
+ _tmp35_ = g_strconcat (_tmp34_, "\n", NULL);
+ _tmp36_ = _tmp35_;
+ _tmp37_ = ((JsRenderJsRender*) self)->name;
+ _tmp38_ = g_strconcat (_tmp36_, _tmp37_, NULL);
+ _tmp39_ = _tmp38_;
+ _tmp40_ = g_strjoin ("\n", adda, NULL);
+ _tmp41_ = _tmp40_;
+ _tmp42_ = g_strconcat (_tmp39_, _tmp41_, NULL);
+ _tmp43_ = _tmp42_;
+ _tmp44_ = g_strconcat (_tmp43_, o, NULL);
+ _tmp45_ = _tmp44_;
+ _tmp46_ = g_strjoin ("\n", addb, NULL);
+ _tmp47_ = _tmp46_;
+ _tmp48_ = g_strconcat (_tmp45_, _tmp47_, NULL);
+ _tmp49_ = _tmp48_;
+ _g_free0 (_tmp47_);
+ _g_free0 (_tmp45_);
+ _g_free0 (_tmp43_);
+ _g_free0 (_tmp41_);
+ _g_free0 (_tmp39_);
+ _g_free0 (_tmp36_);
+ _g_free0 (_tmp34_);
+ result = _tmp49_;
+ addb = (_vala_array_free (addb, addb_length1, (GDestroyNotify) g_free), NULL);
+ adda = (_vala_array_free (adda, adda_length1, (GDestroyNotify) g_free), NULL);
+ _g_free0 (o);
+ return result;
+}
+
+
+static glong string_strnlen (gchar* str, glong maxlen) {
+ glong result = 0L;
+ gchar* end = NULL;
+ gchar* _tmp0_ = NULL;
+ glong _tmp1_ = 0L;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ _tmp0_ = str;
+ _tmp1_ = maxlen;
+ _tmp2_ = memchr (_tmp0_, 0, (gsize) _tmp1_);
+ end = _tmp2_;
+ _tmp3_ = end;
+ if (_tmp3_ == NULL) {
+ glong _tmp4_ = 0L;
+ _tmp4_ = maxlen;
+ result = _tmp4_;
+ return result;
+ } else {
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ _tmp5_ = end;
+ _tmp6_ = str;
+ result = (glong) (_tmp5_ - _tmp6_);
+ return result;
+ }
+}
+
+
+static gchar* string_substring (const gchar* self, glong offset, glong len) {
+ gchar* result = NULL;
+ glong string_length = 0L;
+ gboolean _tmp0_ = FALSE;
+ glong _tmp1_ = 0L;
+ glong _tmp8_ = 0L;
+ glong _tmp14_ = 0L;
+ glong _tmp17_ = 0L;
+ glong _tmp18_ = 0L;
+ glong _tmp19_ = 0L;
+ glong _tmp20_ = 0L;
+ glong _tmp21_ = 0L;
+ gchar* _tmp22_ = NULL;
+ g_return_val_if_fail (self != NULL, NULL);
+ _tmp1_ = offset;
+ if (_tmp1_ >= ((glong) 0)) {
+ glong _tmp2_ = 0L;
+ _tmp2_ = len;
+ _tmp0_ = _tmp2_ >= ((glong) 0);
+ } else {
+ _tmp0_ = FALSE;
+ }
+ if (_tmp0_) {
+ glong _tmp3_ = 0L;
+ glong _tmp4_ = 0L;
+ glong _tmp5_ = 0L;
+ _tmp3_ = offset;
+ _tmp4_ = len;
+ _tmp5_ = string_strnlen ((gchar*) self, _tmp3_ + _tmp4_);
+ string_length = _tmp5_;
+ } else {
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ _tmp6_ = strlen (self);
+ _tmp7_ = _tmp6_;
+ string_length = (glong) _tmp7_;
+ }
+ _tmp8_ = offset;
+ if (_tmp8_ < ((glong) 0)) {
+ glong _tmp9_ = 0L;
+ glong _tmp10_ = 0L;
+ glong _tmp11_ = 0L;
+ _tmp9_ = string_length;
+ _tmp10_ = offset;
+ offset = _tmp9_ + _tmp10_;
+ _tmp11_ = offset;
+ g_return_val_if_fail (_tmp11_ >= ((glong) 0), NULL);
+ } else {
+ glong _tmp12_ = 0L;
+ glong _tmp13_ = 0L;
+ _tmp12_ = offset;
+ _tmp13_ = string_length;
+ g_return_val_if_fail (_tmp12_ <= _tmp13_, NULL);
+ }
+ _tmp14_ = len;
+ if (_tmp14_ < ((glong) 0)) {
+ glong _tmp15_ = 0L;
+ glong _tmp16_ = 0L;
+ _tmp15_ = string_length;
+ _tmp16_ = offset;
+ len = _tmp15_ - _tmp16_;
+ }
+ _tmp17_ = offset;
+ _tmp18_ = len;
+ _tmp19_ = string_length;
+ g_return_val_if_fail ((_tmp17_ + _tmp18_) <= _tmp19_, NULL);
+ _tmp20_ = offset;
+ _tmp21_ = len;
+ _tmp22_ = g_strndup (((gchar*) self) + _tmp20_, (gsize) _tmp21_);
+ result = _tmp22_;
+ return result;
+}
+
+
+gchar* js_render_roo_pathToPart (JsRenderRoo* self) {
+ gchar* result = NULL;
+ gchar* dir = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar** ar = NULL;
+ const gchar* _tmp5_ = NULL;
+ gchar** _tmp6_ = NULL;
+ gchar** _tmp7_ = NULL;
+ gint ar_length1 = 0;
+ gint _ar_size_ = 0;
+ gchar* modname = NULL;
+ gchar** _tmp8_ = NULL;
+ gint _tmp8__length1 = 0;
+ gchar** _tmp9_ = NULL;
+ gint _tmp9__length1 = 0;
+ const gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ gchar** fbits = NULL;
+ const gchar* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ gchar** _tmp15_ = NULL;
+ gchar** _tmp16_ = NULL;
+ gchar** _tmp17_ = NULL;
+ gint _tmp17__length1 = 0;
+ gint fbits_length1 = 0;
+ gint _fbits_size_ = 0;
+ gchar* npart = NULL;
+ gchar** _tmp18_ = NULL;
+ gint _tmp18__length1 = 0;
+ gchar** _tmp19_ = NULL;
+ gint _tmp19__length1 = 0;
+ const gchar* _tmp20_ = NULL;
+ gchar* _tmp21_ = NULL;
+ const gchar* _tmp22_ = NULL;
+ const gchar* _tmp23_ = NULL;
+ gint _tmp24_ = 0;
+ gint _tmp25_ = 0;
+ gchar* _tmp26_ = NULL;
+ gchar* _tmp27_ = NULL;
+ const gchar* _tmp28_ = NULL;
+ gboolean _tmp29_ = FALSE;
+ JsRenderNode* _tmp35_ = NULL;
+ const gchar* _tmp36_ = NULL;
+ gchar* _tmp37_ = NULL;
+ gchar* _tmp38_ = NULL;
+ gchar* _tmp39_ = NULL;
+ gchar* _tmp40_ = NULL;
+ gchar* _tmp41_ = NULL;
+ gchar* _tmp42_ = NULL;
+ JsRenderNode* _tmp43_ = NULL;
+ const gchar* _tmp44_ = NULL;
+ gchar* _tmp45_ = NULL;
+ gchar* _tmp46_ = NULL;
+ gchar* _tmp47_ = NULL;
+ gchar* _tmp48_ = NULL;
+ gchar* _tmp49_ = NULL;
+ gchar* _tmp50_ = NULL;
+ g_return_val_if_fail (self != NULL, NULL);
+ _tmp0_ = ((JsRenderJsRender*) self)->path;
+ _tmp1_ = g_path_get_dirname (_tmp0_);
+ _tmp2_ = _tmp1_;
+ _tmp3_ = g_path_get_basename (_tmp2_);
+ _tmp4_ = _tmp3_;
+ _g_free0 (_tmp2_);
+ dir = _tmp4_;
+ _tmp5_ = dir;
+ _tmp7_ = _tmp6_ = g_strsplit (_tmp5_, ".", 0);
+ ar = _tmp7_;
+ ar_length1 = _vala_array_length (_tmp6_);
+ _ar_size_ = ar_length1;
+ _tmp8_ = ar;
+ _tmp8__length1 = ar_length1;
+ _tmp9_ = ar;
+ _tmp9__length1 = ar_length1;
+ _tmp10_ = _tmp8_[_tmp9__length1 - 1];
+ _tmp11_ = g_strdup (_tmp10_);
+ modname = _tmp11_;
+ _tmp12_ = ((JsRenderJsRender*) self)->path;
+ _tmp13_ = g_path_get_basename (_tmp12_);
+ _tmp14_ = _tmp13_;
+ _tmp16_ = _tmp15_ = g_strsplit (_tmp14_, ".", 0);
+ _tmp17_ = _tmp16_;
+ _tmp17__length1 = _vala_array_length (_tmp15_);
+ _g_free0 (_tmp14_);
+ fbits = _tmp17_;
+ fbits_length1 = _tmp17__length1;
+ _fbits_size_ = fbits_length1;
+ _tmp18_ = fbits;
+ _tmp18__length1 = fbits_length1;
+ _tmp19_ = fbits;
+ _tmp19__length1 = fbits_length1;
+ _tmp20_ = _tmp18_[_tmp19__length1 - 2];
+ _tmp21_ = g_strdup (_tmp20_);
+ npart = _tmp21_;
+ _tmp22_ = npart;
+ _tmp23_ = modname;
+ _tmp24_ = strlen (_tmp23_);
+ _tmp25_ = _tmp24_;
+ _tmp26_ = string_substring (_tmp22_, (glong) 0, (glong) _tmp25_);
+ _tmp27_ = _tmp26_;
+ _tmp28_ = modname;
+ _tmp29_ = g_strcmp0 (_tmp27_, _tmp28_) == 0;
+ _g_free0 (_tmp27_);
+ if (_tmp29_) {
+ const gchar* _tmp30_ = NULL;
+ const gchar* _tmp31_ = NULL;
+ gint _tmp32_ = 0;
+ gint _tmp33_ = 0;
+ gchar* _tmp34_ = NULL;
+ _tmp30_ = npart;
+ _tmp31_ = modname;
+ _tmp32_ = strlen (_tmp31_);
+ _tmp33_ = _tmp32_;
+ _tmp34_ = string_substring (_tmp30_, (glong) _tmp33_, (glong) (-1));
+ _g_free0 (npart);
+ npart = _tmp34_;
+ }
+ _tmp35_ = ((JsRenderJsRender*) self)->tree;
+ _tmp36_ = modname;
+ _tmp37_ = js_render_node_quoteString (_tmp35_, _tmp36_);
+ _tmp38_ = _tmp37_;
+ _tmp39_ = g_strconcat ("[", _tmp38_, NULL);
+ _tmp40_ = _tmp39_;
+ _tmp41_ = g_strconcat (_tmp40_, ", ", NULL);
+ _tmp42_ = _tmp41_;
+ _tmp43_ = ((JsRenderJsRender*) self)->tree;
+ _tmp44_ = npart;
+ _tmp45_ = js_render_node_quoteString (_tmp43_, _tmp44_);
+ _tmp46_ = _tmp45_;
+ _tmp47_ = g_strconcat (_tmp42_, _tmp46_, NULL);
+ _tmp48_ = _tmp47_;
+ _tmp49_ = g_strconcat (_tmp48_, " ]", NULL);
+ _tmp50_ = _tmp49_;
+ _g_free0 (_tmp48_);
+ _g_free0 (_tmp46_);
+ _g_free0 (_tmp42_);
+ _g_free0 (_tmp40_);
+ _g_free0 (_tmp38_);
+ result = _tmp50_;
+ _g_free0 (npart);
+ fbits = (_vala_array_free (fbits, fbits_length1, (GDestroyNotify) g_free), NULL);
+ _g_free0 (modname);
+ ar = (_vala_array_free (ar, ar_length1, (GDestroyNotify) g_free), NULL);
+ _g_free0 (dir);
+ return result;
+}
+
+
+gchar* js_render_roo_toSourceLayout (JsRenderRoo* self, gboolean isPreview) {
+ gchar* result = NULL;
+ gboolean _tmp0_ = FALSE;
+ gchar* o = NULL;
+ gchar* _tmp1_ = NULL;
+ GRegex* reg = NULL;
+ GRegex* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ GRegex* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ gchar* _tmp9_ = NULL;
+ gchar* modkey = NULL;
+ const gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ const gchar* _tmp18_ = NULL;
+ gint _tmp19_ = 0;
+ gint _tmp20_ = 0;
+ gchar* parent = NULL;
+ gchar* _tmp26_ = NULL;
+ gboolean _tmp27_ = FALSE;
+ const gchar* _tmp29_ = NULL;
+ const gchar* _tmp30_ = NULL;
+ gint _tmp31_ = 0;
+ gint _tmp32_ = 0;
+ const gchar* _tmp34_ = NULL;
+ gboolean _tmp35_ = FALSE;
+ const gchar* _tmp36_ = NULL;
+ const gchar* _tmp37_ = NULL;
+ gint _tmp38_ = 0;
+ gint _tmp39_ = 0;
+ gchar* _tmp41_ = NULL;
+ gchar* _tmp42_ = NULL;
+ gchar* _tmp43_ = NULL;
+ gchar* _tmp44_ = NULL;
+ const gchar* _tmp45_ = NULL;
+ gchar* _tmp46_ = NULL;
+ gchar* _tmp47_ = NULL;
+ gchar* _tmp48_ = NULL;
+ gchar* _tmp49_ = NULL;
+ gchar* _tmp50_ = NULL;
+ gchar* _tmp51_ = NULL;
+ gchar* _tmp52_ = NULL;
+ gchar* _tmp53_ = NULL;
+ gchar* _tmp54_ = NULL;
+ gchar* _tmp55_ = NULL;
+ gchar* _tmp56_ = NULL;
+ gchar* _tmp57_ = NULL;
+ gchar* _tmp58_ = NULL;
+ gchar* _tmp59_ = NULL;
+ const gchar* _tmp60_ = NULL;
+ gchar* _tmp61_ = NULL;
+ gchar* _tmp62_ = NULL;
+ gchar* _tmp63_ = NULL;
+ gchar* _tmp64_ = NULL;
+ gchar* _tmp65_ = NULL;
+ gchar* _tmp66_ = NULL;
+ const gchar* _tmp67_ = NULL;
+ gchar* _tmp68_ = NULL;
+ gchar* _tmp69_ = NULL;
+ gchar* _tmp70_ = NULL;
+ gchar* _tmp71_ = NULL;
+ gchar* _tmp72_ = NULL;
+ gchar* _tmp73_ = NULL;
+ const gchar* _tmp74_ = NULL;
+ gchar* _tmp75_ = NULL;
+ gchar* _tmp76_ = NULL;
+ gchar* _tmp77_ = NULL;
+ gchar* _tmp78_ = NULL;
+ gchar* _tmp79_ = NULL;
+ gchar* _tmp80_ = NULL;
+ JsRenderNode* _tmp81_ = NULL;
+ gchar* _tmp82_ = NULL;
+ gchar* _tmp83_ = NULL;
+ gchar* _tmp84_ = NULL;
+ gchar* _tmp85_ = NULL;
+ gchar* _tmp86_ = NULL;
+ gchar* _tmp87_ = NULL;
+ gchar* _tmp88_ = NULL;
+ gchar* _tmp89_ = NULL;
+ gchar* _tmp90_ = NULL;
+ gchar* _tmp91_ = NULL;
+ gchar* _tmp92_ = NULL;
+ gchar* _tmp93_ = NULL;
+ gchar* _tmp94_ = NULL;
+ gchar* _tmp95_ = NULL;
+ gchar* _tmp96_ = NULL;
+ gchar* _tmp97_ = NULL;
+ gchar* _tmp98_ = NULL;
+ gchar* _tmp99_ = NULL;
+ gchar* _tmp100_ = NULL;
+ gchar* _tmp101_ = NULL;
+ gchar* _tmp102_ = NULL;
+ gchar* _tmp103_ = NULL;
+ gchar* _tmp104_ = NULL;
+ gchar* _tmp105_ = NULL;
+ gchar* _tmp106_ = NULL;
+ gchar* _tmp107_ = NULL;
+ gchar* _tmp108_ = NULL;
+ gchar* _tmp109_ = NULL;
+ const gchar* _tmp110_ = NULL;
+ gchar* _tmp111_ = NULL;
+ gchar* _tmp112_ = NULL;
+ gchar* _tmp113_ = NULL;
+ gchar* _tmp114_ = NULL;
+ gchar* _tmp115_ = NULL;
+ gchar* _tmp116_ = NULL;
+ gchar* _tmp117_ = NULL;
+ gchar* _tmp118_ = NULL;
+ GError * _inner_error_ = NULL;
+ g_return_val_if_fail (self != NULL, NULL);
+ _tmp0_ = isPreview;
+ if (_tmp0_) {
+ }
+ _tmp1_ = js_render_js_render_mungeToString ((JsRenderJsRender*) self, " ");
+ o = _tmp1_;
+ _tmp2_ = g_regex_new ("[^A-Za-z.]+", 0, 0, &_inner_error_);
+ reg = _tmp2_;
+ if (_inner_error_ != NULL) {
+ _g_free0 (o);
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+ g_clear_error (&_inner_error_);
+ return NULL;
+ }
+ _tmp4_ = reg;
+ _tmp5_ = ((JsRenderJsRender*) self)->name;
+ _tmp6_ = ((JsRenderJsRender*) self)->name;
+ _tmp7_ = strlen (_tmp6_);
+ _tmp8_ = _tmp7_;
+ _tmp9_ = g_regex_replace (_tmp4_, _tmp5_, (gssize) _tmp8_, 0, "-", 0, &_inner_error_);
+ _tmp3_ = _tmp9_;
+ if (_inner_error_ != NULL) {
+ _g_regex_unref0 (reg);
+ _g_free0 (o);
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+ g_clear_error (&_inner_error_);
+ return NULL;
+ }
+ _tmp10_ = ((JsRenderJsRender*) self)->modOrder;
+ _tmp11_ = g_strconcat (_tmp10_, "-", NULL);
+ _tmp12_ = _tmp11_;
+ _tmp13_ = _tmp3_;
+ _tmp3_ = NULL;
+ _tmp14_ = _tmp13_;
+ _tmp15_ = g_strconcat (_tmp12_, _tmp14_, NULL);
+ _tmp16_ = _tmp15_;
+ _g_free0 (_tmp14_);
+ _g_free0 (_tmp12_);
+ modkey = _tmp16_;
+ _tmp18_ = ((JsRenderJsRender*) self)->parent;
+ _tmp19_ = strlen (_tmp18_);
+ _tmp20_ = _tmp19_;
+ if (_tmp20_ > 0) {
+ const gchar* _tmp21_ = NULL;
+ gchar* _tmp22_ = NULL;
+ gchar* _tmp23_ = NULL;
+ gchar* _tmp24_ = NULL;
+ _tmp21_ = ((JsRenderJsRender*) self)->parent;
+ _tmp22_ = g_strconcat ("'", _tmp21_, NULL);
+ _tmp23_ = _tmp22_;
+ _tmp24_ = g_strconcat (_tmp23_, "'", NULL);
+ _g_free0 (_tmp17_);
+ _tmp17_ = _tmp24_;
+ _g_free0 (_tmp23_);
+ } else {
+ gchar* _tmp25_ = NULL;
+ _tmp25_ = g_strdup ("false");
+ _g_free0 (_tmp17_);
+ _tmp17_ = _tmp25_;
+ }
+ _tmp26_ = g_strdup (_tmp17_);
+ parent = _tmp26_;
+ _tmp27_ = isPreview;
+ if (_tmp27_) {
+ gchar* _tmp28_ = NULL;
+ _tmp28_ = g_strdup ("false");
+ _g_free0 (parent);
+ parent = _tmp28_;
+ }
+ _tmp30_ = ((JsRenderJsRender*) self)->title;
+ _tmp31_ = strlen (_tmp30_);
+ _tmp32_ = _tmp31_;
+ if (_tmp32_ > 0) {
+ const gchar* _tmp33_ = NULL;
+ _tmp33_ = ((JsRenderJsRender*) self)->title;
+ _tmp29_ = _tmp33_;
+ } else {
+ _tmp29_ = "unnamed module";
+ }
+ _tmp35_ = self->priv->disabled;
+ if (_tmp35_) {
+ _tmp34_ = "true";
+ } else {
+ _tmp34_ = "false";
+ }
+ _tmp37_ = ((JsRenderJsRender*) self)->permname;
+ _tmp38_ = strlen (_tmp37_);
+ _tmp39_ = _tmp38_;
+ if (_tmp39_ > 0) {
+ const gchar* _tmp40_ = NULL;
+ _tmp40_ = ((JsRenderJsRender*) self)->permname;
+ _tmp36_ = _tmp40_;
+ } else {
+ _tmp36_ = "";
+ }
+ _tmp41_ = js_render_roo_outputHeader (self);
+ _tmp42_ = _tmp41_;
+ _tmp43_ = g_strconcat (_tmp42_, "\n", NULL);
+ _tmp44_ = _tmp43_;
+ _tmp45_ = ((JsRenderJsRender*) self)->name;
+ _tmp46_ = g_strconcat (_tmp44_, _tmp45_, NULL);
+ _tmp47_ = _tmp46_;
+ _tmp48_ = g_strconcat (_tmp47_, " = new Roo.XComponent({\n", NULL);
+ _tmp49_ = _tmp48_;
+ _tmp50_ = g_strconcat (_tmp49_, " part : ", NULL);
+ _tmp51_ = _tmp50_;
+ _tmp52_ = js_render_roo_pathToPart (self);
+ _tmp53_ = _tmp52_;
+ _tmp54_ = g_strconcat (_tmp51_, _tmp53_, NULL);
+ _tmp55_ = _tmp54_;
+ _tmp56_ = g_strconcat (_tmp55_, ",\n", NULL);
+ _tmp57_ = _tmp56_;
+ _tmp58_ = g_strconcat (_tmp57_, " order : '", NULL);
+ _tmp59_ = _tmp58_;
+ _tmp60_ = modkey;
+ _tmp61_ = g_strconcat (_tmp59_, _tmp60_, NULL);
+ _tmp62_ = _tmp61_;
+ _tmp63_ = g_strconcat (_tmp62_, "',\n", NULL);
+ _tmp64_ = _tmp63_;
+ _tmp65_ = g_strconcat (_tmp64_, " region : '", NULL);
+ _tmp66_ = _tmp65_;
+ _tmp67_ = self->priv->region;
+ _tmp68_ = g_strconcat (_tmp66_, _tmp67_, NULL);
+ _tmp69_ = _tmp68_;
+ _tmp70_ = g_strconcat (_tmp69_, "',\n", NULL);
+ _tmp71_ = _tmp70_;
+ _tmp72_ = g_strconcat (_tmp71_, " parent : ", NULL);
+ _tmp73_ = _tmp72_;
+ _tmp74_ = parent;
+ _tmp75_ = g_strconcat (_tmp73_, _tmp74_, NULL);
+ _tmp76_ = _tmp75_;
+ _tmp77_ = g_strconcat (_tmp76_, ",\n", NULL);
+ _tmp78_ = _tmp77_;
+ _tmp79_ = g_strconcat (_tmp78_, " name : ", NULL);
+ _tmp80_ = _tmp79_;
+ _tmp81_ = ((JsRenderJsRender*) self)->tree;
+ _tmp82_ = js_render_node_quoteString (_tmp81_, _tmp29_);
+ _tmp83_ = _tmp82_;
+ _tmp84_ = g_strconcat (_tmp80_, _tmp83_, NULL);
+ _tmp85_ = _tmp84_;
+ _tmp86_ = g_strconcat (_tmp85_, ",\n", NULL);
+ _tmp87_ = _tmp86_;
+ _tmp88_ = g_strconcat (_tmp87_, " disabled : ", NULL);
+ _tmp89_ = _tmp88_;
+ _tmp90_ = g_strconcat (_tmp89_, _tmp34_, NULL);
+ _tmp91_ = _tmp90_;
+ _tmp92_ = g_strconcat (_tmp91_, ", \n", NULL);
+ _tmp93_ = _tmp92_;
+ _tmp94_ = g_strconcat (_tmp93_, " permname : '", NULL);
+ _tmp95_ = _tmp94_;
+ _tmp96_ = g_strconcat (_tmp95_, _tmp36_, NULL);
+ _tmp97_ = _tmp96_;
+ _tmp98_ = g_strconcat (_tmp97_, "', \n", NULL);
+ _tmp99_ = _tmp98_;
+ _tmp100_ = g_strconcat (_tmp99_, " _tree : function()\n", NULL);
+ _tmp101_ = _tmp100_;
+ _tmp102_ = g_strconcat (_tmp101_, " {\n", NULL);
+ _tmp103_ = _tmp102_;
+ _tmp104_ = g_strconcat (_tmp103_, " var _this = this;\n", NULL);
+ _tmp105_ = _tmp104_;
+ _tmp106_ = g_strconcat (_tmp105_, " var MODULE = this;\n", NULL);
+ _tmp107_ = _tmp106_;
+ _tmp108_ = g_strconcat (_tmp107_, " return ", NULL);
+ _tmp109_ = _tmp108_;
+ _tmp110_ = o;
+ _tmp111_ = g_strconcat (_tmp109_, _tmp110_, NULL);
+ _tmp112_ = _tmp111_;
+ _tmp113_ = g_strconcat (_tmp112_, ";", NULL);
+ _tmp114_ = _tmp113_;
+ _tmp115_ = g_strconcat (_tmp114_, " }\n", NULL);
+ _tmp116_ = _tmp115_;
+ _tmp117_ = g_strconcat (_tmp116_, "});\n", NULL);
+ _tmp118_ = _tmp117_;
+ _g_free0 (_tmp116_);
+ _g_free0 (_tmp114_);
+ _g_free0 (_tmp112_);
+ _g_free0 (_tmp109_);
+ _g_free0 (_tmp107_);
+ _g_free0 (_tmp105_);
+ _g_free0 (_tmp103_);
+ _g_free0 (_tmp101_);
+ _g_free0 (_tmp99_);
+ _g_free0 (_tmp97_);
+ _g_free0 (_tmp95_);
+ _g_free0 (_tmp93_);
+ _g_free0 (_tmp91_);
+ _g_free0 (_tmp89_);
+ _g_free0 (_tmp87_);
+ _g_free0 (_tmp85_);
+ _g_free0 (_tmp83_);
+ _g_free0 (_tmp80_);
+ _g_free0 (_tmp78_);
+ _g_free0 (_tmp76_);
+ _g_free0 (_tmp73_);
+ _g_free0 (_tmp71_);
+ _g_free0 (_tmp69_);
+ _g_free0 (_tmp66_);
+ _g_free0 (_tmp64_);
+ _g_free0 (_tmp62_);
+ _g_free0 (_tmp59_);
+ _g_free0 (_tmp57_);
+ _g_free0 (_tmp55_);
+ _g_free0 (_tmp53_);
+ _g_free0 (_tmp51_);
+ _g_free0 (_tmp49_);
+ _g_free0 (_tmp47_);
+ _g_free0 (_tmp44_);
+ _g_free0 (_tmp42_);
+ result = _tmp118_;
+ _g_free0 (parent);
+ _g_free0 (_tmp17_);
+ _g_free0 (modkey);
+ _g_free0 (_tmp3_);
+ _g_regex_unref0 (reg);
+ _g_free0 (o);
+ return result;
+}
+
+
+static void _vala_array_add1 (gchar*** array, int* length, int* size, gchar* value) {
+ if ((*length) == (*size)) {
+ *size = (*size) ? (2 * (*size)) : 4;
+ *array = g_renew (gchar*, *array, (*size) + 1);
+ }
+ (*array)[(*length)++] = value;
+ (*array)[*length] = NULL;
+}
+
+
+static gchar string_get (const gchar* self, glong index) {
+ gchar result = '\0';
+ glong _tmp0_ = 0L;
+ gchar _tmp1_ = '\0';
+ g_return_val_if_fail (self != NULL, '\0');
+ _tmp0_ = index;
+ _tmp1_ = ((gchar*) self)[_tmp0_];
+ result = _tmp1_;
+ return result;
+}
+
+
+static void _vala_array_add2 (gchar*** array, int* length, int* size, gchar* value) {
+ if ((*length) == (*size)) {
+ *size = (*size) ? (2 * (*size)) : 4;
+ *array = g_renew (gchar*, *array, (*size) + 1);
+ }
+ (*array)[(*length)++] = value;
+ (*array)[*length] = NULL;
+}
+
+
+gchar* js_render_roo_guessName (JsRenderRoo* self, JsRenderNode* ar) {
+ gchar* result = NULL;
+ JsRenderNode* _tmp0_ = NULL;
+ gchar** ret = NULL;
+ gchar** _tmp1_ = NULL;
+ gint ret_length1 = 0;
+ gint _ret_size_ = 0;
+ gchar* _tmp2_ = NULL;
+ JsRenderNode* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ gboolean _tmp8_ = FALSE;
+ gchar** _tmp12_ = NULL;
+ gint _tmp12__length1 = 0;
+ gchar* _tmp13_ = NULL;
+ JsRenderNode* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+ gint _tmp17_ = 0;
+ gint _tmp18_ = 0;
+ gboolean _tmp19_ = FALSE;
+ gchar* xtype = NULL;
+ JsRenderNode* _tmp20_ = NULL;
+ gchar* _tmp21_ = NULL;
+ const gchar* _tmp22_ = NULL;
+ gchar _tmp23_ = '\0';
+ const gchar* _tmp26_ = NULL;
+ gboolean _tmp27_ = FALSE;
+ gchar** _tmp29_ = NULL;
+ gint _tmp29__length1 = 0;
+ const gchar* _tmp30_ = NULL;
+ gchar* _tmp31_ = NULL;
+ gchar* str = NULL;
+ gchar** _tmp32_ = NULL;
+ gint _tmp32__length1 = 0;
+ gchar* _tmp33_ = NULL;
+ g_return_val_if_fail (self != NULL, NULL);
+ _tmp0_ = ar;
+ if (_tmp0_ == NULL) {
+ result = NULL;
+ return result;
+ }
+ _tmp1_ = g_new0 (gchar*, 0 + 1);
+ ret = _tmp1_;
+ ret_length1 = 0;
+ _ret_size_ = ret_length1;
+ _tmp3_ = ar;
+ _tmp4_ = js_render_node_get (_tmp3_, "|xns");
+ _tmp5_ = _tmp4_;
+ _tmp6_ = strlen (_tmp5_);
+ _tmp7_ = _tmp6_;
+ _tmp8_ = _tmp7_ < 1;
+ _g_free0 (_tmp5_);
+ if (_tmp8_) {
+ gchar* _tmp9_ = NULL;
+ _tmp9_ = g_strdup ("Roo");
+ _g_free0 (_tmp2_);
+ _tmp2_ = _tmp9_;
+ } else {
+ JsRenderNode* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ _tmp10_ = ar;
+ _tmp11_ = js_render_node_get (_tmp10_, "|xns");
+ _g_free0 (_tmp2_);
+ _tmp2_ = _tmp11_;
+ }
+ _tmp12_ = ret;
+ _tmp12__length1 = ret_length1;
+ _tmp13_ = g_strdup (_tmp2_);
+ _vala_array_add1 (&ret, &ret_length1, &_ret_size_, _tmp13_);
+ _tmp14_ = ar;
+ _tmp15_ = js_render_node_get (_tmp14_, "xtype");
+ _tmp16_ = _tmp15_;
+ _tmp17_ = strlen (_tmp16_);
+ _tmp18_ = _tmp17_;
+ _tmp19_ = _tmp18_ < 1;
+ _g_free0 (_tmp16_);
+ if (_tmp19_) {
+ result = NULL;
+ _g_free0 (_tmp2_);
+ ret = (_vala_array_free (ret, ret_length1, (GDestroyNotify) g_free), NULL);
+ return result;
+ }
+ _tmp20_ = ar;
+ _tmp21_ = js_render_node_get (_tmp20_, "xtype");
+ xtype = _tmp21_;
+ _tmp22_ = xtype;
+ _tmp23_ = string_get (_tmp22_, (glong) 0);
+ if (_tmp23_ == '*') {
+ const gchar* _tmp24_ = NULL;
+ gchar* _tmp25_ = NULL;
+ _tmp24_ = xtype;
+ _tmp25_ = string_substring (_tmp24_, (glong) 1, (glong) (-1));
+ _g_free0 (xtype);
+ xtype = _tmp25_;
+ }
+ _tmp26_ = xtype;
+ _tmp27_ = g_regex_match_simple ("^Roo", _tmp26_, 0, 0);
+ if (!_tmp27_) {
+ gchar** _tmp28_ = NULL;
+ _tmp28_ = g_new0 (gchar*, 0 + 1);
+ ret = (_vala_array_free (ret, ret_length1, (GDestroyNotify) g_free), NULL);
+ ret = _tmp28_;
+ ret_length1 = 0;
+ _ret_size_ = ret_length1;
+ }
+ _tmp29_ = ret;
+ _tmp29__length1 = ret_length1;
+ _tmp30_ = xtype;
+ _tmp31_ = g_strdup (_tmp30_);
+ _vala_array_add2 (&ret, &ret_length1, &_ret_size_, _tmp31_);
+ _tmp32_ = ret;
+ _tmp32__length1 = ret_length1;
+ _tmp33_ = g_strjoin (".", _tmp32_, NULL);
+ str = _tmp33_;
+ result = str;
+ _g_free0 (xtype);
+ _g_free0 (_tmp2_);
+ ret = (_vala_array_free (ret, ret_length1, (GDestroyNotify) g_free), NULL);
+ return result;
+}
+
+
+static gchar* js_render_roo_getHelpUrl (JsRenderRoo* self, const gchar* cls) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ g_return_val_if_fail (self != NULL, NULL);
+ g_return_val_if_fail (cls != NULL, NULL);
+ _tmp0_ = cls;
+ _tmp1_ = g_strconcat ("http://www.roojs.com/roojs1/docs/symbols/", _tmp0_, NULL);
+ _tmp2_ = _tmp1_;
+ _tmp3_ = g_strconcat (_tmp2_, ".html", NULL);
+ _tmp4_ = _tmp3_;
+ _g_free0 (_tmp2_);
+ result = _tmp4_;
+ return result;
+}
+
+
+static void js_render_roo_class_init (JsRenderRooClass * klass) {
+ js_render_roo_parent_class = g_type_class_peek_parent (klass);
+ g_type_class_add_private (klass, sizeof (JsRenderRooPrivate));
+ G_OBJECT_CLASS (klass)->finalize = js_render_roo_finalize;
+}
+
+
+static void js_render_roo_instance_init (JsRenderRoo * self) {
+ self->priv = JS_RENDER_ROO_GET_PRIVATE (self);
+}
+
+
+static void js_render_roo_finalize (GObject* obj) {
+ JsRenderRoo * self;
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, JS_RENDER_TYPE_ROO, JsRenderRoo);
+ _g_free0 (self->priv->region);
+ G_OBJECT_CLASS (js_render_roo_parent_class)->finalize (obj);
+}
+
+
+GType js_render_roo_get_type (void) {
+ static volatile gsize js_render_roo_type_id__volatile = 0;
+ if (g_once_init_enter (&js_render_roo_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (JsRenderRooClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) js_render_roo_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (JsRenderRoo), 0, (GInstanceInitFunc) js_render_roo_instance_init, NULL };
+ GType js_render_roo_type_id;
+ js_render_roo_type_id = g_type_register_static (JS_RENDER_TYPE_JS_RENDER, "JsRenderRoo", &g_define_type_info, 0);
+ g_once_init_leave (&js_render_roo_type_id__volatile, js_render_roo_type_id);
+ }
+ return js_render_roo_type_id__volatile;
+}
+
+
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ if ((array != NULL) && (destroy_func != NULL)) {
+ int i;
+ for (i = 0; i < array_length; i = i + 1) {
+ if (((gpointer*) array)[i] != NULL) {
+ destroy_func (((gpointer*) array)[i]);
+ }
+ }
+ }
+}
+
+
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ _vala_array_destroy (array, array_length, destroy_func);
+ g_free (array);
+}
+
+
+static gint _vala_array_length (gpointer array) {
+ int length;
+ length = 0;
+ if (array) {
+ while (((gpointer*) array)[length]) {
+ length++;
+ }
+ }
+ return length;
+}
+
+
+
JsRender/*.vala \
Project/*.vala \
Palete/*.vala \
- Builder4/*.vala \
-o /tmp/test
+# Builder4/*.vala \
clean:
rm -rf /tmp/test
--- /dev/null
+/* Gir.vala.c generated by valac 0.24.0, the Vala compiler
+ * generated from Gir.vala, do not modify */
+
+/* valac -g --pkg gee-1.0 --pkg libxml-2.0 --pkg gobject-introspection-1.0 --pkg json-glib-1.0 Palete/Gir.vala -o /tmp/Gir*/
+/*
+public static int main (string[] args) {
+
+ var g = new Palete.Gir("Gtk");
+ var generator = new Json.Generator ();
+ var n = new Json.Node(Json.NodeType.OBJECT);
+ n.set_object(g.toJSON());
+ generator.set_root(n);
+ generator.indent = 4;
+ generator.pretty = true;
+
+ print(generator.to_data(null));
+ return 0;
+}
+*/
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gee.h>
+#include <json-glib/json-glib.h>
+#include <girepository.h>
+#include <libxml/tree.h>
+#include <libxml/parser.h>
+
+
+#define PALETE_TYPE_GIR_OBJECT (palete_gir_object_get_type ())
+#define PALETE_GIR_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PALETE_TYPE_GIR_OBJECT, PaleteGirObject))
+#define PALETE_GIR_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PALETE_TYPE_GIR_OBJECT, PaleteGirObjectClass))
+#define PALETE_IS_GIR_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PALETE_TYPE_GIR_OBJECT))
+#define PALETE_IS_GIR_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PALETE_TYPE_GIR_OBJECT))
+#define PALETE_GIR_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PALETE_TYPE_GIR_OBJECT, PaleteGirObjectClass))
+
+typedef struct _PaleteGirObject PaleteGirObject;
+typedef struct _PaleteGirObjectClass PaleteGirObjectClass;
+typedef struct _PaleteGirObjectPrivate PaleteGirObjectPrivate;
+#define _g_free0(var) (var = (g_free (var), NULL))
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define __g_list_free__g_free0_0(var) ((var == NULL) ? NULL : (var = (_g_list_free__g_free0_ (var), NULL)))
+
+#define PALETE_TYPE_GIR (palete_gir_get_type ())
+#define PALETE_GIR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PALETE_TYPE_GIR, PaleteGir))
+#define PALETE_GIR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PALETE_TYPE_GIR, PaleteGirClass))
+#define PALETE_IS_GIR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PALETE_TYPE_GIR))
+#define PALETE_IS_GIR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PALETE_TYPE_GIR))
+#define PALETE_GIR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PALETE_TYPE_GIR, PaleteGirClass))
+
+typedef struct _PaleteGir PaleteGir;
+typedef struct _PaleteGirClass PaleteGirClass;
+#define _json_object_unref0(var) ((var == NULL) ? NULL : (var = (json_object_unref (var), NULL)))
+#define _json_array_unref0(var) ((var == NULL) ? NULL : (var = (json_array_unref (var), NULL)))
+typedef struct _PaleteGirPrivate PaleteGirPrivate;
+#define _g_regex_unref0(var) ((var == NULL) ? NULL : (var = (g_regex_unref (var), NULL)))
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+
+struct _PaleteGirObject {
+ GObject parent_instance;
+ PaleteGirObjectPrivate * priv;
+ gchar* name;
+ gchar* ns;
+ gchar* type;
+ gchar* nodetype;
+ gchar* package;
+ PaleteGirObject* paramset;
+ PaleteGirObject* return_value;
+ gboolean is_instance;
+ gboolean is_array;
+ gboolean is_varargs;
+ gchar* parent;
+ gchar* value;
+ GeeHashMap* params;
+ GList* implements;
+ GList* inherits;
+ GeeHashMap* ctors;
+ GeeHashMap* methods;
+ GeeHashMap* includes;
+ GeeHashMap* classes;
+ GeeHashMap* props;
+ GeeHashMap* consts;
+ GeeHashMap* signals;
+ gchar* doc;
+};
+
+struct _PaleteGirObjectClass {
+ GObjectClass parent_class;
+};
+
+struct _PaleteGirObjectPrivate {
+ gboolean is_overlaid;
+};
+
+struct _PaleteGir {
+ PaleteGirObject parent_instance;
+ PaleteGirPrivate * priv;
+};
+
+struct _PaleteGirClass {
+ PaleteGirObjectClass parent_class;
+};
+
+
+static gpointer palete_gir_object_parent_class = NULL;
+static gpointer palete_gir_parent_class = NULL;
+static GeeHashMap* palete_gir_cache;
+static GeeHashMap* palete_gir_cache = NULL;
+
+GType palete_gir_object_get_type (void) G_GNUC_CONST;
+#define PALETE_GIR_OBJECT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), PALETE_TYPE_GIR_OBJECT, PaleteGirObjectPrivate))
+enum {
+ PALETE_GIR_OBJECT_DUMMY_PROPERTY
+};
+static void _g_free0_ (gpointer var);
+static void _g_list_free__g_free0_ (GList* self);
+PaleteGirObject* palete_gir_object_new (const gchar* nodetype, const gchar* n);
+PaleteGirObject* palete_gir_object_construct (GType object_type, const gchar* nodetype, const gchar* n);
+GType palete_gir_get_type (void) G_GNUC_CONST;
+void palete_gir_object_overlayParent (PaleteGirObject* self, PaleteGir* in_gir);
+PaleteGirObject* palete_gir_object_clsToObject (PaleteGirObject* self, PaleteGir* in_gir, const gchar* in_pn);
+void palete_gir_object_copyFrom (PaleteGirObject* self, PaleteGirObject* pcls, gboolean is_interface);
+PaleteGir* palete_gir_factory (const gchar* ns);
+gchar* palete_gir_object_fqn (PaleteGirObject* self);
+JsonObject* palete_gir_object_toJSON (PaleteGirObject* self);
+JsonArray* palete_gir_object_toJSONArrayString (PaleteGirObject* self, GList* map);
+JsonObject* palete_gir_object_toJSONObject (PaleteGirObject* self, GeeHashMap* map);
+JsonObject* palete_gir_object_toJSONObjectString (PaleteGirObject* self, GeeHashMap* map);
+static void palete_gir_object_finalize (GObject* obj);
+enum {
+ PALETE_GIR_DUMMY_PROPERTY
+};
+PaleteGir* palete_gir_new (const gchar* ns);
+PaleteGir* palete_gir_construct (GType object_type, const gchar* ns);
+void palete_gir_walk (PaleteGir* self, xmlNode* element, PaleteGirObject* parent);
+gchar* palete_gir_doc (PaleteGir* self, const gchar* what);
+static void palete_gir_finalize (GObject* obj);
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static gint _vala_array_length (gpointer array);
+
+
+static void _g_free0_ (gpointer var) {
+ var = (g_free (var), NULL);
+}
+
+
+static void _g_list_free__g_free0_ (GList* self) {
+ g_list_foreach (self, (GFunc) _g_free0_, NULL);
+ g_list_free (self);
+}
+
+
+PaleteGirObject* palete_gir_object_construct (GType object_type, const gchar* nodetype, const gchar* n) {
+ PaleteGirObject * self = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ GeeHashMap* _tmp7_ = NULL;
+ GeeHashMap* _tmp8_ = NULL;
+ GeeHashMap* _tmp9_ = NULL;
+ GeeHashMap* _tmp10_ = NULL;
+ GeeHashMap* _tmp11_ = NULL;
+ GeeHashMap* _tmp12_ = NULL;
+ GeeHashMap* _tmp13_ = NULL;
+ GeeHashMap* _tmp14_ = NULL;
+ g_return_val_if_fail (nodetype != NULL, NULL);
+ g_return_val_if_fail (n != NULL, NULL);
+ self = (PaleteGirObject*) g_object_new (object_type, NULL);
+ _tmp0_ = nodetype;
+ _tmp1_ = g_strdup (_tmp0_);
+ _g_free0 (self->nodetype);
+ self->nodetype = _tmp1_;
+ _tmp2_ = n;
+ _tmp3_ = g_strdup (_tmp2_);
+ _g_free0 (self->name);
+ self->name = _tmp3_;
+ _tmp4_ = g_strdup ("");
+ _g_free0 (self->ns);
+ self->ns = _tmp4_;
+ _tmp5_ = g_strdup ("");
+ _g_free0 (self->parent);
+ self->parent = _tmp5_;
+ _tmp6_ = g_strdup ("");
+ _g_free0 (self->type);
+ self->type = _tmp6_;
+ self->is_array = FALSE;
+ self->is_instance = FALSE;
+ self->is_varargs = FALSE;
+ __g_list_free__g_free0_0 (self->implements);
+ self->implements = NULL;
+ __g_list_free__g_free0_0 (self->inherits);
+ self->inherits = NULL;
+ _tmp7_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL, NULL);
+ _g_object_unref0 (self->includes);
+ self->includes = _tmp7_;
+ _tmp8_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, PALETE_TYPE_GIR_OBJECT, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+ _g_object_unref0 (self->params);
+ self->params = _tmp8_;
+ _tmp9_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, PALETE_TYPE_GIR_OBJECT, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+ _g_object_unref0 (self->ctors);
+ self->ctors = _tmp9_;
+ _tmp10_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, PALETE_TYPE_GIR_OBJECT, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+ _g_object_unref0 (self->methods);
+ self->methods = _tmp10_;
+ _tmp11_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, PALETE_TYPE_GIR_OBJECT, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+ _g_object_unref0 (self->classes);
+ self->classes = _tmp11_;
+ _tmp12_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, PALETE_TYPE_GIR_OBJECT, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+ _g_object_unref0 (self->props);
+ self->props = _tmp12_;
+ _tmp13_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, PALETE_TYPE_GIR_OBJECT, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+ _g_object_unref0 (self->consts);
+ self->consts = _tmp13_;
+ _tmp14_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, PALETE_TYPE_GIR_OBJECT, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+ _g_object_unref0 (self->signals);
+ self->signals = _tmp14_;
+ self->priv->is_overlaid = FALSE;
+ return self;
+}
+
+
+PaleteGirObject* palete_gir_object_new (const gchar* nodetype, const gchar* n) {
+ return palete_gir_object_construct (PALETE_TYPE_GIR_OBJECT, nodetype, n);
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+ return self ? g_object_ref (self) : NULL;
+}
+
+
+void palete_gir_object_overlayParent (PaleteGirObject* self, PaleteGir* in_gir) {
+ PaleteGir* gir = NULL;
+ PaleteGir* _tmp0_ = NULL;
+ PaleteGir* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ const gchar* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ PaleteGirObject* pcls = NULL;
+ PaleteGir* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ PaleteGirObject* _tmp9_ = NULL;
+ PaleteGirObject* _tmp10_ = NULL;
+ PaleteGir* _tmp11_ = NULL;
+ PaleteGirObject* _tmp12_ = NULL;
+ g_return_if_fail (self != NULL);
+ g_return_if_fail (in_gir != NULL);
+ _tmp0_ = in_gir;
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+ gir = _tmp1_;
+ _tmp3_ = self->parent;
+ _tmp4_ = strlen (_tmp3_);
+ _tmp5_ = _tmp4_;
+ if (_tmp5_ < 1) {
+ _tmp2_ = TRUE;
+ } else {
+ gboolean _tmp6_ = FALSE;
+ _tmp6_ = self->priv->is_overlaid;
+ _tmp2_ = _tmp6_;
+ }
+ if (_tmp2_) {
+ self->priv->is_overlaid = TRUE;
+ _g_object_unref0 (gir);
+ return;
+ }
+ _tmp7_ = gir;
+ _tmp8_ = self->parent;
+ _tmp9_ = palete_gir_object_clsToObject (self, _tmp7_, _tmp8_);
+ pcls = _tmp9_;
+ _tmp10_ = pcls;
+ _tmp11_ = gir;
+ palete_gir_object_overlayParent (_tmp10_, _tmp11_);
+ _tmp12_ = pcls;
+ palete_gir_object_copyFrom (self, _tmp12_, FALSE);
+ {
+ gint i = 0;
+ i = 0;
+ {
+ gboolean _tmp13_ = FALSE;
+ _tmp13_ = TRUE;
+ while (TRUE) {
+ gint _tmp15_ = 0;
+ GList* _tmp16_ = NULL;
+ guint _tmp17_ = 0U;
+ PaleteGirObject* picls = NULL;
+ PaleteGir* _tmp18_ = NULL;
+ GList* _tmp19_ = NULL;
+ gint _tmp20_ = 0;
+ gconstpointer _tmp21_ = NULL;
+ PaleteGirObject* _tmp22_ = NULL;
+ PaleteGirObject* _tmp23_ = NULL;
+ if (!_tmp13_) {
+ gint _tmp14_ = 0;
+ _tmp14_ = i;
+ i = _tmp14_ + 1;
+ }
+ _tmp13_ = FALSE;
+ _tmp15_ = i;
+ _tmp16_ = self->implements;
+ _tmp17_ = g_list_length (_tmp16_);
+ if (!(((guint) _tmp15_) < _tmp17_)) {
+ break;
+ }
+ _tmp18_ = gir;
+ _tmp19_ = self->implements;
+ _tmp20_ = i;
+ _tmp21_ = g_list_nth_data (_tmp19_, (guint) _tmp20_);
+ _tmp22_ = palete_gir_object_clsToObject (self, _tmp18_, (const gchar*) _tmp21_);
+ picls = _tmp22_;
+ _tmp23_ = picls;
+ palete_gir_object_copyFrom (self, _tmp23_, TRUE);
+ _g_object_unref0 (picls);
+ }
+ }
+ }
+ self->priv->is_overlaid = TRUE;
+ _g_object_unref0 (pcls);
+ _g_object_unref0 (gir);
+}
+
+
+static gboolean string_contains (const gchar* self, const gchar* needle) {
+ gboolean result = FALSE;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ g_return_val_if_fail (self != NULL, FALSE);
+ g_return_val_if_fail (needle != NULL, FALSE);
+ _tmp0_ = needle;
+ _tmp1_ = strstr ((gchar*) self, (gchar*) _tmp0_);
+ result = _tmp1_ != NULL;
+ return result;
+}
+
+
+PaleteGirObject* palete_gir_object_clsToObject (PaleteGirObject* self, PaleteGir* in_gir, const gchar* in_pn) {
+ PaleteGirObject* result = NULL;
+ gchar* pn = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ PaleteGir* gir = NULL;
+ PaleteGir* _tmp2_ = NULL;
+ PaleteGir* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ PaleteGir* _tmp18_ = NULL;
+ GeeHashMap* _tmp19_ = NULL;
+ const gchar* _tmp20_ = NULL;
+ gpointer _tmp21_ = NULL;
+ g_return_val_if_fail (self != NULL, NULL);
+ g_return_val_if_fail (in_gir != NULL, NULL);
+ g_return_val_if_fail (in_pn != NULL, NULL);
+ _tmp0_ = in_pn;
+ _tmp1_ = g_strdup (_tmp0_);
+ pn = _tmp1_;
+ _tmp2_ = in_gir;
+ _tmp3_ = _g_object_ref0 (_tmp2_);
+ gir = _tmp3_;
+ _tmp4_ = self->parent;
+ _tmp5_ = string_contains (_tmp4_, ".");
+ if (_tmp5_) {
+ const gchar* _tmp6_ = NULL;
+ gchar** _tmp7_ = NULL;
+ gchar** _tmp8_ = NULL;
+ gchar** _tmp9_ = NULL;
+ gint _tmp9__length1 = 0;
+ const gchar* _tmp10_ = NULL;
+ PaleteGir* _tmp11_ = NULL;
+ const gchar* _tmp12_ = NULL;
+ gchar** _tmp13_ = NULL;
+ gchar** _tmp14_ = NULL;
+ gchar** _tmp15_ = NULL;
+ gint _tmp15__length1 = 0;
+ const gchar* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ _tmp6_ = self->parent;
+ _tmp8_ = _tmp7_ = g_strsplit (_tmp6_, ".", 0);
+ _tmp9_ = _tmp8_;
+ _tmp9__length1 = _vala_array_length (_tmp7_);
+ _tmp10_ = _tmp9_[0];
+ _tmp11_ = palete_gir_factory (_tmp10_);
+ _g_object_unref0 (gir);
+ gir = _tmp11_;
+ _tmp9_ = (_vala_array_free (_tmp9_, _tmp9__length1, (GDestroyNotify) g_free), NULL);
+ _tmp12_ = self->parent;
+ _tmp14_ = _tmp13_ = g_strsplit (_tmp12_, ".", 0);
+ _tmp15_ = _tmp14_;
+ _tmp15__length1 = _vala_array_length (_tmp13_);
+ _tmp16_ = _tmp15_[1];
+ _tmp17_ = g_strdup (_tmp16_);
+ _g_free0 (pn);
+ pn = _tmp17_;
+ _tmp15_ = (_vala_array_free (_tmp15_, _tmp15__length1, (GDestroyNotify) g_free), NULL);
+ }
+ _tmp18_ = gir;
+ _tmp19_ = ((PaleteGirObject*) _tmp18_)->classes;
+ _tmp20_ = pn;
+ _tmp21_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp19_, _tmp20_);
+ result = (PaleteGirObject*) _tmp21_;
+ _g_object_unref0 (gir);
+ _g_free0 (pn);
+ return result;
+}
+
+
+gchar* palete_gir_object_fqn (PaleteGirObject* self) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ g_return_val_if_fail (self != NULL, NULL);
+ _tmp0_ = self->ns;
+ _tmp1_ = self->name;
+ _tmp2_ = g_strconcat (_tmp0_, _tmp1_, NULL);
+ result = _tmp2_;
+ return result;
+}
+
+
+void palete_gir_object_copyFrom (PaleteGirObject* self, PaleteGirObject* pcls, gboolean is_interface) {
+ PaleteGirObject* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ GeeMapIterator* iter = NULL;
+ PaleteGirObject* _tmp2_ = NULL;
+ GeeHashMap* _tmp3_ = NULL;
+ GeeMapIterator* _tmp4_ = NULL;
+ PaleteGirObject* _tmp21_ = NULL;
+ GeeHashMap* _tmp22_ = NULL;
+ GeeMapIterator* _tmp23_ = NULL;
+ PaleteGirObject* _tmp40_ = NULL;
+ GeeHashMap* _tmp41_ = NULL;
+ GeeMapIterator* _tmp42_ = NULL;
+ g_return_if_fail (self != NULL);
+ g_return_if_fail (pcls != NULL);
+ _tmp0_ = pcls;
+ _tmp1_ = palete_gir_object_fqn (_tmp0_);
+ self->inherits = g_list_append (self->inherits, _tmp1_);
+ _tmp2_ = pcls;
+ _tmp3_ = _tmp2_->methods;
+ _tmp4_ = gee_abstract_map_map_iterator ((GeeAbstractMap*) _tmp3_);
+ iter = _tmp4_;
+ while (TRUE) {
+ GeeMapIterator* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ GeeHashMap* _tmp7_ = NULL;
+ GeeMapIterator* _tmp8_ = NULL;
+ gpointer _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ gpointer _tmp11_ = NULL;
+ PaleteGirObject* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+ GeeHashMap* _tmp14_ = NULL;
+ GeeMapIterator* _tmp15_ = NULL;
+ gpointer _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ GeeMapIterator* _tmp18_ = NULL;
+ gpointer _tmp19_ = NULL;
+ PaleteGirObject* _tmp20_ = NULL;
+ _tmp5_ = iter;
+ _tmp6_ = gee_map_iterator_next (_tmp5_);
+ if (!_tmp6_) {
+ break;
+ }
+ _tmp7_ = self->methods;
+ _tmp8_ = iter;
+ _tmp9_ = gee_map_iterator_get_key (_tmp8_);
+ _tmp10_ = (gchar*) _tmp9_;
+ _tmp11_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp7_, _tmp10_);
+ _tmp12_ = (PaleteGirObject*) _tmp11_;
+ _tmp13_ = NULL == _tmp12_;
+ _g_object_unref0 (_tmp12_);
+ _g_free0 (_tmp10_);
+ if (_tmp13_) {
+ continue;
+ }
+ _tmp14_ = self->methods;
+ _tmp15_ = iter;
+ _tmp16_ = gee_map_iterator_get_key (_tmp15_);
+ _tmp17_ = (gchar*) _tmp16_;
+ _tmp18_ = iter;
+ _tmp19_ = gee_map_iterator_get_value (_tmp18_);
+ _tmp20_ = (PaleteGirObject*) _tmp19_;
+ gee_abstract_map_set ((GeeAbstractMap*) _tmp14_, _tmp17_, _tmp20_);
+ _g_object_unref0 (_tmp20_);
+ _g_free0 (_tmp17_);
+ }
+ _tmp21_ = pcls;
+ _tmp22_ = _tmp21_->props;
+ _tmp23_ = gee_abstract_map_map_iterator ((GeeAbstractMap*) _tmp22_);
+ _g_object_unref0 (iter);
+ iter = _tmp23_;
+ while (TRUE) {
+ GeeMapIterator* _tmp24_ = NULL;
+ gboolean _tmp25_ = FALSE;
+ GeeHashMap* _tmp26_ = NULL;
+ GeeMapIterator* _tmp27_ = NULL;
+ gpointer _tmp28_ = NULL;
+ gchar* _tmp29_ = NULL;
+ gpointer _tmp30_ = NULL;
+ PaleteGirObject* _tmp31_ = NULL;
+ gboolean _tmp32_ = FALSE;
+ GeeHashMap* _tmp33_ = NULL;
+ GeeMapIterator* _tmp34_ = NULL;
+ gpointer _tmp35_ = NULL;
+ gchar* _tmp36_ = NULL;
+ GeeMapIterator* _tmp37_ = NULL;
+ gpointer _tmp38_ = NULL;
+ PaleteGirObject* _tmp39_ = NULL;
+ _tmp24_ = iter;
+ _tmp25_ = gee_map_iterator_next (_tmp24_);
+ if (!_tmp25_) {
+ break;
+ }
+ _tmp26_ = self->props;
+ _tmp27_ = iter;
+ _tmp28_ = gee_map_iterator_get_key (_tmp27_);
+ _tmp29_ = (gchar*) _tmp28_;
+ _tmp30_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp26_, _tmp29_);
+ _tmp31_ = (PaleteGirObject*) _tmp30_;
+ _tmp32_ = NULL == _tmp31_;
+ _g_object_unref0 (_tmp31_);
+ _g_free0 (_tmp29_);
+ if (_tmp32_) {
+ continue;
+ }
+ _tmp33_ = self->props;
+ _tmp34_ = iter;
+ _tmp35_ = gee_map_iterator_get_key (_tmp34_);
+ _tmp36_ = (gchar*) _tmp35_;
+ _tmp37_ = iter;
+ _tmp38_ = gee_map_iterator_get_value (_tmp37_);
+ _tmp39_ = (PaleteGirObject*) _tmp38_;
+ gee_abstract_map_set ((GeeAbstractMap*) _tmp33_, _tmp36_, _tmp39_);
+ _g_object_unref0 (_tmp39_);
+ _g_free0 (_tmp36_);
+ }
+ _tmp40_ = pcls;
+ _tmp41_ = _tmp40_->signals;
+ _tmp42_ = gee_abstract_map_map_iterator ((GeeAbstractMap*) _tmp41_);
+ _g_object_unref0 (iter);
+ iter = _tmp42_;
+ while (TRUE) {
+ GeeMapIterator* _tmp43_ = NULL;
+ gboolean _tmp44_ = FALSE;
+ GeeHashMap* _tmp45_ = NULL;
+ GeeMapIterator* _tmp46_ = NULL;
+ gpointer _tmp47_ = NULL;
+ gchar* _tmp48_ = NULL;
+ gpointer _tmp49_ = NULL;
+ PaleteGirObject* _tmp50_ = NULL;
+ gboolean _tmp51_ = FALSE;
+ GeeHashMap* _tmp52_ = NULL;
+ GeeMapIterator* _tmp53_ = NULL;
+ gpointer _tmp54_ = NULL;
+ gchar* _tmp55_ = NULL;
+ GeeMapIterator* _tmp56_ = NULL;
+ gpointer _tmp57_ = NULL;
+ PaleteGirObject* _tmp58_ = NULL;
+ _tmp43_ = iter;
+ _tmp44_ = gee_map_iterator_next (_tmp43_);
+ if (!_tmp44_) {
+ break;
+ }
+ _tmp45_ = self->signals;
+ _tmp46_ = iter;
+ _tmp47_ = gee_map_iterator_get_key (_tmp46_);
+ _tmp48_ = (gchar*) _tmp47_;
+ _tmp49_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp45_, _tmp48_);
+ _tmp50_ = (PaleteGirObject*) _tmp49_;
+ _tmp51_ = NULL == _tmp50_;
+ _g_object_unref0 (_tmp50_);
+ _g_free0 (_tmp48_);
+ if (_tmp51_) {
+ continue;
+ }
+ _tmp52_ = self->signals;
+ _tmp53_ = iter;
+ _tmp54_ = gee_map_iterator_get_key (_tmp53_);
+ _tmp55_ = (gchar*) _tmp54_;
+ _tmp56_ = iter;
+ _tmp57_ = gee_map_iterator_get_value (_tmp56_);
+ _tmp58_ = (PaleteGirObject*) _tmp57_;
+ gee_abstract_map_set ((GeeAbstractMap*) _tmp52_, _tmp55_, _tmp58_);
+ _g_object_unref0 (_tmp58_);
+ _g_free0 (_tmp55_);
+ }
+ _g_object_unref0 (iter);
+}
+
+
+JsonObject* palete_gir_object_toJSON (PaleteGirObject* self) {
+ JsonObject* result = NULL;
+ JsonObject* r = NULL;
+ JsonObject* _tmp0_ = NULL;
+ JsonObject* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ JsonObject* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ gboolean _tmp10_ = FALSE;
+ const gchar* _tmp11_ = NULL;
+ GList* _tmp17_ = NULL;
+ guint _tmp18_ = 0U;
+ GeeHashMap* _tmp22_ = NULL;
+ gint _tmp23_ = 0;
+ gint _tmp24_ = 0;
+ GeeHashMap* _tmp28_ = NULL;
+ gint _tmp29_ = 0;
+ gint _tmp30_ = 0;
+ GeeHashMap* _tmp34_ = NULL;
+ gint _tmp35_ = 0;
+ gint _tmp36_ = 0;
+ GeeHashMap* _tmp40_ = NULL;
+ gint _tmp41_ = 0;
+ gint _tmp42_ = 0;
+ GeeHashMap* _tmp46_ = NULL;
+ gint _tmp47_ = 0;
+ gint _tmp48_ = 0;
+ GeeHashMap* _tmp52_ = NULL;
+ gint _tmp53_ = 0;
+ gint _tmp54_ = 0;
+ GeeHashMap* _tmp58_ = NULL;
+ gint _tmp59_ = 0;
+ gint _tmp60_ = 0;
+ GeeHashMap* _tmp64_ = NULL;
+ gint _tmp65_ = 0;
+ gint _tmp66_ = 0;
+ PaleteGirObject* _tmp70_ = NULL;
+ PaleteGirObject* _tmp74_ = NULL;
+ g_return_val_if_fail (self != NULL, NULL);
+ _tmp0_ = json_object_new ();
+ r = _tmp0_;
+ _tmp1_ = r;
+ _tmp2_ = self->nodetype;
+ json_object_set_string_member (_tmp1_, "nodetype", _tmp2_);
+ _tmp3_ = r;
+ _tmp4_ = self->name;
+ json_object_set_string_member (_tmp3_, "name", _tmp4_);
+ _tmp5_ = self->type;
+ _tmp6_ = strlen (_tmp5_);
+ _tmp7_ = _tmp6_;
+ if (_tmp7_ > 0) {
+ JsonObject* _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+ _tmp8_ = r;
+ _tmp9_ = self->type;
+ json_object_set_string_member (_tmp8_, "type", _tmp9_);
+ }
+ _tmp11_ = self->parent;
+ if (_tmp11_ != NULL) {
+ const gchar* _tmp12_ = NULL;
+ gint _tmp13_ = 0;
+ gint _tmp14_ = 0;
+ _tmp12_ = self->parent;
+ _tmp13_ = strlen (_tmp12_);
+ _tmp14_ = _tmp13_;
+ _tmp10_ = _tmp14_ > 0;
+ } else {
+ _tmp10_ = FALSE;
+ }
+ if (_tmp10_) {
+ JsonObject* _tmp15_ = NULL;
+ const gchar* _tmp16_ = NULL;
+ _tmp15_ = r;
+ _tmp16_ = self->parent;
+ json_object_set_string_member (_tmp15_, "parent", _tmp16_);
+ }
+ _tmp17_ = self->implements;
+ _tmp18_ = g_list_length (_tmp17_);
+ if (_tmp18_ > ((guint) 0)) {
+ JsonObject* _tmp19_ = NULL;
+ GList* _tmp20_ = NULL;
+ JsonArray* _tmp21_ = NULL;
+ _tmp19_ = r;
+ _tmp20_ = self->implements;
+ _tmp21_ = palete_gir_object_toJSONArrayString (self, _tmp20_);
+ json_object_set_array_member (_tmp19_, "length", _tmp21_);
+ }
+ _tmp22_ = self->params;
+ _tmp23_ = gee_abstract_map_get_size ((GeeMap*) _tmp22_);
+ _tmp24_ = _tmp23_;
+ if (_tmp24_ > 0) {
+ JsonObject* _tmp25_ = NULL;
+ GeeHashMap* _tmp26_ = NULL;
+ JsonObject* _tmp27_ = NULL;
+ _tmp25_ = r;
+ _tmp26_ = self->params;
+ _tmp27_ = palete_gir_object_toJSONObject (self, _tmp26_);
+ json_object_set_object_member (_tmp25_, "params", _tmp27_);
+ }
+ _tmp28_ = self->ctors;
+ _tmp29_ = gee_abstract_map_get_size ((GeeMap*) _tmp28_);
+ _tmp30_ = _tmp29_;
+ if (_tmp30_ > 0) {
+ JsonObject* _tmp31_ = NULL;
+ GeeHashMap* _tmp32_ = NULL;
+ JsonObject* _tmp33_ = NULL;
+ _tmp31_ = r;
+ _tmp32_ = self->ctors;
+ _tmp33_ = palete_gir_object_toJSONObject (self, _tmp32_);
+ json_object_set_object_member (_tmp31_, "ctors", _tmp33_);
+ }
+ _tmp34_ = self->methods;
+ _tmp35_ = gee_abstract_map_get_size ((GeeMap*) _tmp34_);
+ _tmp36_ = _tmp35_;
+ if (_tmp36_ > 0) {
+ JsonObject* _tmp37_ = NULL;
+ GeeHashMap* _tmp38_ = NULL;
+ JsonObject* _tmp39_ = NULL;
+ _tmp37_ = r;
+ _tmp38_ = self->methods;
+ _tmp39_ = palete_gir_object_toJSONObject (self, _tmp38_);
+ json_object_set_object_member (_tmp37_, "methods", _tmp39_);
+ }
+ _tmp40_ = self->includes;
+ _tmp41_ = gee_abstract_map_get_size ((GeeMap*) _tmp40_);
+ _tmp42_ = _tmp41_;
+ if (_tmp42_ > 0) {
+ JsonObject* _tmp43_ = NULL;
+ GeeHashMap* _tmp44_ = NULL;
+ JsonObject* _tmp45_ = NULL;
+ _tmp43_ = r;
+ _tmp44_ = self->includes;
+ _tmp45_ = palete_gir_object_toJSONObjectString (self, _tmp44_);
+ json_object_set_object_member (_tmp43_, "includes", _tmp45_);
+ }
+ _tmp46_ = self->classes;
+ _tmp47_ = gee_abstract_map_get_size ((GeeMap*) _tmp46_);
+ _tmp48_ = _tmp47_;
+ if (_tmp48_ > 0) {
+ JsonObject* _tmp49_ = NULL;
+ GeeHashMap* _tmp50_ = NULL;
+ JsonObject* _tmp51_ = NULL;
+ _tmp49_ = r;
+ _tmp50_ = self->classes;
+ _tmp51_ = palete_gir_object_toJSONObject (self, _tmp50_);
+ json_object_set_object_member (_tmp49_, "classes", _tmp51_);
+ }
+ _tmp52_ = self->props;
+ _tmp53_ = gee_abstract_map_get_size ((GeeMap*) _tmp52_);
+ _tmp54_ = _tmp53_;
+ if (_tmp54_ > 0) {
+ JsonObject* _tmp55_ = NULL;
+ GeeHashMap* _tmp56_ = NULL;
+ JsonObject* _tmp57_ = NULL;
+ _tmp55_ = r;
+ _tmp56_ = self->props;
+ _tmp57_ = palete_gir_object_toJSONObject (self, _tmp56_);
+ json_object_set_object_member (_tmp55_, "props", _tmp57_);
+ }
+ _tmp58_ = self->consts;
+ _tmp59_ = gee_abstract_map_get_size ((GeeMap*) _tmp58_);
+ _tmp60_ = _tmp59_;
+ if (_tmp60_ > 0) {
+ JsonObject* _tmp61_ = NULL;
+ GeeHashMap* _tmp62_ = NULL;
+ JsonObject* _tmp63_ = NULL;
+ _tmp61_ = r;
+ _tmp62_ = self->consts;
+ _tmp63_ = palete_gir_object_toJSONObject (self, _tmp62_);
+ json_object_set_object_member (_tmp61_, "consts", _tmp63_);
+ }
+ _tmp64_ = self->signals;
+ _tmp65_ = gee_abstract_map_get_size ((GeeMap*) _tmp64_);
+ _tmp66_ = _tmp65_;
+ if (_tmp66_ > 0) {
+ JsonObject* _tmp67_ = NULL;
+ GeeHashMap* _tmp68_ = NULL;
+ JsonObject* _tmp69_ = NULL;
+ _tmp67_ = r;
+ _tmp68_ = self->signals;
+ _tmp69_ = palete_gir_object_toJSONObject (self, _tmp68_);
+ json_object_set_object_member (_tmp67_, "signals", _tmp69_);
+ }
+ _tmp70_ = self->paramset;
+ if (_tmp70_ != NULL) {
+ JsonObject* _tmp71_ = NULL;
+ PaleteGirObject* _tmp72_ = NULL;
+ JsonObject* _tmp73_ = NULL;
+ _tmp71_ = r;
+ _tmp72_ = self->paramset;
+ _tmp73_ = palete_gir_object_toJSON (_tmp72_);
+ json_object_set_object_member (_tmp71_, "params", _tmp73_);
+ }
+ _tmp74_ = self->return_value;
+ if (_tmp74_ != NULL) {
+ JsonObject* _tmp75_ = NULL;
+ PaleteGirObject* _tmp76_ = NULL;
+ JsonObject* _tmp77_ = NULL;
+ _tmp75_ = r;
+ _tmp76_ = self->return_value;
+ _tmp77_ = palete_gir_object_toJSON (_tmp76_);
+ json_object_set_object_member (_tmp75_, "return_value", _tmp77_);
+ }
+ result = r;
+ return result;
+}
+
+
+JsonObject* palete_gir_object_toJSONObject (PaleteGirObject* self, GeeHashMap* map) {
+ JsonObject* result = NULL;
+ JsonObject* r = NULL;
+ JsonObject* _tmp0_ = NULL;
+ GeeMapIterator* iter = NULL;
+ GeeHashMap* _tmp1_ = NULL;
+ GeeMapIterator* _tmp2_ = NULL;
+ g_return_val_if_fail (self != NULL, NULL);
+ g_return_val_if_fail (map != NULL, NULL);
+ _tmp0_ = json_object_new ();
+ r = _tmp0_;
+ _tmp1_ = map;
+ _tmp2_ = gee_abstract_map_map_iterator ((GeeAbstractMap*) _tmp1_);
+ iter = _tmp2_;
+ while (TRUE) {
+ GeeMapIterator* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ JsonObject* _tmp5_ = NULL;
+ GeeMapIterator* _tmp6_ = NULL;
+ gpointer _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ GeeMapIterator* _tmp9_ = NULL;
+ gpointer _tmp10_ = NULL;
+ PaleteGirObject* _tmp11_ = NULL;
+ JsonObject* _tmp12_ = NULL;
+ _tmp3_ = iter;
+ _tmp4_ = gee_map_iterator_next (_tmp3_);
+ if (!_tmp4_) {
+ break;
+ }
+ _tmp5_ = r;
+ _tmp6_ = iter;
+ _tmp7_ = gee_map_iterator_get_key (_tmp6_);
+ _tmp8_ = (gchar*) _tmp7_;
+ _tmp9_ = iter;
+ _tmp10_ = gee_map_iterator_get_value (_tmp9_);
+ _tmp11_ = (PaleteGirObject*) _tmp10_;
+ _tmp12_ = palete_gir_object_toJSON (_tmp11_);
+ json_object_set_object_member (_tmp5_, _tmp8_, _tmp12_);
+ _g_object_unref0 (_tmp11_);
+ _g_free0 (_tmp8_);
+ }
+ result = r;
+ _g_object_unref0 (iter);
+ return result;
+}
+
+
+JsonObject* palete_gir_object_toJSONObjectString (PaleteGirObject* self, GeeHashMap* map) {
+ JsonObject* result = NULL;
+ JsonObject* r = NULL;
+ JsonObject* _tmp0_ = NULL;
+ GeeMapIterator* iter = NULL;
+ GeeHashMap* _tmp1_ = NULL;
+ GeeMapIterator* _tmp2_ = NULL;
+ g_return_val_if_fail (self != NULL, NULL);
+ g_return_val_if_fail (map != NULL, NULL);
+ _tmp0_ = json_object_new ();
+ r = _tmp0_;
+ _tmp1_ = map;
+ _tmp2_ = gee_abstract_map_map_iterator ((GeeAbstractMap*) _tmp1_);
+ iter = _tmp2_;
+ while (TRUE) {
+ GeeMapIterator* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ JsonObject* _tmp5_ = NULL;
+ GeeMapIterator* _tmp6_ = NULL;
+ gpointer _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ GeeMapIterator* _tmp9_ = NULL;
+ gpointer _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ _tmp3_ = iter;
+ _tmp4_ = gee_map_iterator_next (_tmp3_);
+ if (!_tmp4_) {
+ break;
+ }
+ _tmp5_ = r;
+ _tmp6_ = iter;
+ _tmp7_ = gee_map_iterator_get_key (_tmp6_);
+ _tmp8_ = (gchar*) _tmp7_;
+ _tmp9_ = iter;
+ _tmp10_ = gee_map_iterator_get_value (_tmp9_);
+ _tmp11_ = (gchar*) _tmp10_;
+ json_object_set_string_member (_tmp5_, _tmp8_, _tmp11_);
+ _g_free0 (_tmp11_);
+ _g_free0 (_tmp8_);
+ }
+ result = r;
+ _g_object_unref0 (iter);
+ return result;
+}
+
+
+JsonArray* palete_gir_object_toJSONArrayString (PaleteGirObject* self, GList* map) {
+ JsonArray* result = NULL;
+ JsonArray* r = NULL;
+ JsonArray* _tmp0_ = NULL;
+ g_return_val_if_fail (self != NULL, NULL);
+ _tmp0_ = json_array_new ();
+ r = _tmp0_;
+ {
+ gint i = 0;
+ i = 0;
+ {
+ gboolean _tmp1_ = FALSE;
+ _tmp1_ = TRUE;
+ while (TRUE) {
+ gint _tmp3_ = 0;
+ GList* _tmp4_ = NULL;
+ guint _tmp5_ = 0U;
+ JsonArray* _tmp6_ = NULL;
+ GList* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+ gconstpointer _tmp9_ = NULL;
+ if (!_tmp1_) {
+ gint _tmp2_ = 0;
+ _tmp2_ = i;
+ i = _tmp2_ + 1;
+ }
+ _tmp1_ = FALSE;
+ _tmp3_ = i;
+ _tmp4_ = map;
+ _tmp5_ = g_list_length (_tmp4_);
+ if (!(((guint) _tmp3_) < _tmp5_)) {
+ break;
+ }
+ _tmp6_ = r;
+ _tmp7_ = map;
+ _tmp8_ = i;
+ _tmp9_ = g_list_nth_data (_tmp7_, (guint) _tmp8_);
+ json_array_add_string_element (_tmp6_, (const gchar*) _tmp9_);
+ }
+ }
+ }
+ result = r;
+ return result;
+}
+
+
+static void palete_gir_object_class_init (PaleteGirObjectClass * klass) {
+ palete_gir_object_parent_class = g_type_class_peek_parent (klass);
+ g_type_class_add_private (klass, sizeof (PaleteGirObjectPrivate));
+ G_OBJECT_CLASS (klass)->finalize = palete_gir_object_finalize;
+}
+
+
+static void palete_gir_object_instance_init (PaleteGirObject * self) {
+ self->priv = PALETE_GIR_OBJECT_GET_PRIVATE (self);
+ self->paramset = NULL;
+ self->return_value = NULL;
+}
+
+
+static void palete_gir_object_finalize (GObject* obj) {
+ PaleteGirObject * self;
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, PALETE_TYPE_GIR_OBJECT, PaleteGirObject);
+ _g_free0 (self->name);
+ _g_free0 (self->ns);
+ _g_free0 (self->type);
+ _g_free0 (self->nodetype);
+ _g_free0 (self->package);
+ _g_object_unref0 (self->paramset);
+ _g_object_unref0 (self->return_value);
+ _g_free0 (self->parent);
+ _g_free0 (self->value);
+ _g_object_unref0 (self->params);
+ __g_list_free__g_free0_0 (self->implements);
+ __g_list_free__g_free0_0 (self->inherits);
+ _g_object_unref0 (self->ctors);
+ _g_object_unref0 (self->methods);
+ _g_object_unref0 (self->includes);
+ _g_object_unref0 (self->classes);
+ _g_object_unref0 (self->props);
+ _g_object_unref0 (self->consts);
+ _g_object_unref0 (self->signals);
+ _g_free0 (self->doc);
+ G_OBJECT_CLASS (palete_gir_object_parent_class)->finalize (obj);
+}
+
+
+GType palete_gir_object_get_type (void) {
+ static volatile gsize palete_gir_object_type_id__volatile = 0;
+ if (g_once_init_enter (&palete_gir_object_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (PaleteGirObjectClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) palete_gir_object_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PaleteGirObject), 0, (GInstanceInitFunc) palete_gir_object_instance_init, NULL };
+ GType palete_gir_object_type_id;
+ palete_gir_object_type_id = g_type_register_static (G_TYPE_OBJECT, "PaleteGirObject", &g_define_type_info, 0);
+ g_once_init_leave (&palete_gir_object_type_id__volatile, palete_gir_object_type_id);
+ }
+ return palete_gir_object_type_id__volatile;
+}
+
+
+PaleteGir* palete_gir_factory (const gchar* ns) {
+ PaleteGir* result = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ PaleteGir* ret = NULL;
+ GeeHashMap* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ gpointer _tmp4_ = NULL;
+ PaleteGir* _tmp5_ = NULL;
+ GeeHashMap* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ PaleteGir* _tmp9_ = NULL;
+ PaleteGir* _tmp10_ = NULL;
+ GeeHashMap* _tmp11_ = NULL;
+ const gchar* _tmp12_ = NULL;
+ gpointer _tmp13_ = NULL;
+ g_return_val_if_fail (ns != NULL, NULL);
+ _tmp0_ = palete_gir_cache;
+ if (_tmp0_ == NULL) {
+ GeeHashMap* _tmp1_ = NULL;
+ _tmp1_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, PALETE_TYPE_GIR, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+ _g_object_unref0 (palete_gir_cache);
+ palete_gir_cache = _tmp1_;
+ }
+ _tmp2_ = palete_gir_cache;
+ _tmp3_ = ns;
+ _tmp4_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp2_, _tmp3_);
+ ret = (PaleteGir*) _tmp4_;
+ _tmp5_ = ret;
+ if (_tmp5_ != NULL) {
+ result = ret;
+ return result;
+ }
+ _tmp6_ = palete_gir_cache;
+ _tmp7_ = ns;
+ _tmp8_ = ns;
+ _tmp9_ = palete_gir_new (_tmp8_);
+ _tmp10_ = _tmp9_;
+ gee_abstract_map_set ((GeeAbstractMap*) _tmp6_, _tmp7_, _tmp10_);
+ _g_object_unref0 (_tmp10_);
+ _tmp11_ = palete_gir_cache;
+ _tmp12_ = ns;
+ _tmp13_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp11_, _tmp12_);
+ result = (PaleteGir*) _tmp13_;
+ _g_object_unref0 (ret);
+ return result;
+}
+
+
+static gchar* string_replace (const gchar* self, const gchar* old, const gchar* replacement) {
+ gchar* result = NULL;
+ GError * _inner_error_ = NULL;
+ g_return_val_if_fail (self != NULL, NULL);
+ g_return_val_if_fail (old != NULL, NULL);
+ g_return_val_if_fail (replacement != NULL, NULL);
+ {
+ GRegex* regex = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ GRegex* _tmp3_ = NULL;
+ GRegex* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ GRegex* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ _tmp0_ = old;
+ _tmp1_ = g_regex_escape_string (_tmp0_, -1);
+ _tmp2_ = _tmp1_;
+ _tmp3_ = g_regex_new (_tmp2_, 0, 0, &_inner_error_);
+ _tmp4_ = _tmp3_;
+ _g_free0 (_tmp2_);
+ regex = _tmp4_;
+ if (_inner_error_ != NULL) {
+ if (_inner_error_->domain == G_REGEX_ERROR) {
+ goto __catch9_g_regex_error;
+ }
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+ g_clear_error (&_inner_error_);
+ return NULL;
+ }
+ _tmp6_ = regex;
+ _tmp7_ = replacement;
+ _tmp8_ = g_regex_replace_literal (_tmp6_, self, (gssize) (-1), 0, _tmp7_, 0, &_inner_error_);
+ _tmp5_ = _tmp8_;
+ if (_inner_error_ != NULL) {
+ _g_regex_unref0 (regex);
+ if (_inner_error_->domain == G_REGEX_ERROR) {
+ goto __catch9_g_regex_error;
+ }
+ _g_regex_unref0 (regex);
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+ g_clear_error (&_inner_error_);
+ return NULL;
+ }
+ _tmp9_ = _tmp5_;
+ _tmp5_ = NULL;
+ result = _tmp9_;
+ _g_free0 (_tmp5_);
+ _g_regex_unref0 (regex);
+ return result;
+ }
+ goto __finally9;
+ __catch9_g_regex_error:
+ {
+ GError* e = NULL;
+ e = _inner_error_;
+ _inner_error_ = NULL;
+ g_assert_not_reached ();
+ _g_error_free0 (e);
+ }
+ __finally9:
+ if (_inner_error_ != NULL) {
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+ g_clear_error (&_inner_error_);
+ return NULL;
+ }
+}
+
+
+PaleteGir* palete_gir_construct (GType object_type, const gchar* ns) {
+ PaleteGir * self = NULL;
+ GIRepository* gi = NULL;
+ GIRepository* _tmp0_ = NULL;
+ GIRepository* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gchar* ver = NULL;
+ const gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ GSList* pth = NULL;
+ GSList* _tmp6_ = NULL;
+ gchar* gir_path = NULL;
+ GSList* _tmp7_ = NULL;
+ gconstpointer _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ gchar* file = NULL;
+ const gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ const gchar* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ const gchar* _tmp18_ = NULL;
+ gchar* _tmp19_ = NULL;
+ gchar* _tmp20_ = NULL;
+ gchar* _tmp21_ = NULL;
+ gchar* _tmp22_ = NULL;
+ const gchar* _tmp23_ = NULL;
+ gchar* _tmp24_ = NULL;
+ gchar* _tmp25_ = NULL;
+ gchar* _tmp26_ = NULL;
+ gchar* _tmp27_ = NULL;
+ const gchar* _tmp28_ = NULL;
+ gchar* _tmp29_ = NULL;
+ gchar* _tmp30_ = NULL;
+ gchar* _tmp31_ = NULL;
+ gchar* _tmp32_ = NULL;
+ const gchar* _tmp33_ = NULL;
+ const gchar* _tmp34_ = NULL;
+ xmlDoc* doc = NULL;
+ const gchar* _tmp35_ = NULL;
+ xmlDoc* _tmp36_ = NULL;
+ xmlNode* root = NULL;
+ xmlDoc* _tmp37_ = NULL;
+ xmlNode* _tmp38_ = NULL;
+ xmlNode* _tmp39_ = NULL;
+ xmlDoc* _tmp40_ = NULL;
+ GError * _inner_error_ = NULL;
+ g_return_val_if_fail (ns != NULL, NULL);
+ _tmp0_ = g_irepository_get_default ();
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+ gi = _tmp1_;
+ _tmp2_ = ns;
+ g_irepository_require (gi, _tmp2_, NULL, 0, &_inner_error_);
+ if (_inner_error_ != NULL) {
+ _g_object_unref0 (gi);
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+ g_clear_error (&_inner_error_);
+ return NULL;
+ }
+ _tmp3_ = ns;
+ _tmp4_ = g_irepository_get_version (gi, _tmp3_);
+ _tmp5_ = g_strdup (_tmp4_);
+ ver = _tmp5_;
+ _tmp6_ = g_irepository_get_search_path ();
+ pth = _tmp6_;
+ _tmp7_ = pth;
+ _tmp8_ = g_slist_nth_data (_tmp7_, (guint) 0);
+ _tmp9_ = string_replace ((const gchar*) _tmp8_, "/lib/girepository-1.0", "/share/gir-1.0");
+ gir_path = _tmp9_;
+ _tmp10_ = gir_path;
+ _tmp11_ = g_strconcat (_tmp10_, "/", NULL);
+ _tmp12_ = _tmp11_;
+ _tmp13_ = ns;
+ _tmp14_ = g_strconcat (_tmp12_, _tmp13_, NULL);
+ _tmp15_ = _tmp14_;
+ _tmp16_ = g_strconcat (_tmp15_, "-", NULL);
+ _tmp17_ = _tmp16_;
+ _tmp18_ = ver;
+ _tmp19_ = g_strconcat (_tmp17_, _tmp18_, NULL);
+ _tmp20_ = _tmp19_;
+ _tmp21_ = g_strconcat (_tmp20_, ".gir", NULL);
+ _tmp22_ = _tmp21_;
+ _g_free0 (_tmp20_);
+ _g_free0 (_tmp17_);
+ _g_free0 (_tmp15_);
+ _g_free0 (_tmp12_);
+ file = _tmp22_;
+ _tmp23_ = ns;
+ _tmp24_ = g_strconcat ("ns: ", _tmp23_, NULL);
+ _tmp25_ = _tmp24_;
+ _tmp26_ = g_strconcat (_tmp25_, "\n", NULL);
+ _tmp27_ = _tmp26_;
+ g_print ("%s", _tmp27_);
+ _g_free0 (_tmp27_);
+ _g_free0 (_tmp25_);
+ _tmp28_ = ver;
+ _tmp29_ = g_strconcat ("ver: ", _tmp28_, NULL);
+ _tmp30_ = _tmp29_;
+ _tmp31_ = g_strconcat (_tmp30_, "\n", NULL);
+ _tmp32_ = _tmp31_;
+ g_print ("%s", _tmp32_);
+ _g_free0 (_tmp32_);
+ _g_free0 (_tmp30_);
+ _tmp33_ = file;
+ g_print ("%s", _tmp33_);
+ _tmp34_ = ns;
+ self = (PaleteGir*) palete_gir_object_construct (object_type, "Package", _tmp34_);
+ _tmp35_ = file;
+ _tmp36_ = xmlParseFile (_tmp35_);
+ doc = _tmp36_;
+ _tmp37_ = doc;
+ _tmp38_ = xmlDocGetRootElement (_tmp37_);
+ root = _tmp38_;
+ _tmp39_ = root;
+ palete_gir_walk (self, _tmp39_, G_TYPE_CHECK_INSTANCE_CAST (self, PALETE_TYPE_GIR_OBJECT, PaleteGirObject));
+ _tmp40_ = doc;
+ xmlFreeDoc (_tmp40_);
+ _g_free0 (file);
+ _g_free0 (gir_path);
+ _g_free0 (ver);
+ _g_object_unref0 (gi);
+ return self;
+}
+
+
+PaleteGir* palete_gir_new (const gchar* ns) {
+ return palete_gir_construct (PALETE_TYPE_GIR, ns);
+}
+
+
+void palete_gir_walk (PaleteGir* self, xmlNode* element, PaleteGirObject* parent) {
+ gchar* n = NULL;
+ xmlNode* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ xmlNode* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ GQuark _tmp8_ = 0U;
+ static GQuark _tmp7_label0 = 0;
+ static GQuark _tmp7_label1 = 0;
+ static GQuark _tmp7_label2 = 0;
+ static GQuark _tmp7_label3 = 0;
+ static GQuark _tmp7_label4 = 0;
+ static GQuark _tmp7_label5 = 0;
+ static GQuark _tmp7_label6 = 0;
+ static GQuark _tmp7_label7 = 0;
+ static GQuark _tmp7_label8 = 0;
+ static GQuark _tmp7_label9 = 0;
+ static GQuark _tmp7_label10 = 0;
+ static GQuark _tmp7_label11 = 0;
+ static GQuark _tmp7_label12 = 0;
+ static GQuark _tmp7_label13 = 0;
+ static GQuark _tmp7_label14 = 0;
+ static GQuark _tmp7_label15 = 0;
+ static GQuark _tmp7_label16 = 0;
+ static GQuark _tmp7_label17 = 0;
+ static GQuark _tmp7_label18 = 0;
+ static GQuark _tmp7_label19 = 0;
+ static GQuark _tmp7_label20 = 0;
+ static GQuark _tmp7_label21 = 0;
+ static GQuark _tmp7_label22 = 0;
+ static GQuark _tmp7_label23 = 0;
+ static GQuark _tmp7_label24 = 0;
+ static GQuark _tmp7_label25 = 0;
+ static GQuark _tmp7_label26 = 0;
+ static GQuark _tmp7_label27 = 0;
+ static GQuark _tmp7_label28 = 0;
+ static GQuark _tmp7_label29 = 0;
+ static GQuark _tmp7_label30 = 0;
+ static GQuark _tmp7_label31 = 0;
+ g_return_if_fail (self != NULL);
+ _tmp0_ = element;
+ _tmp1_ = (gchar*) xmlGetProp (_tmp0_, (xmlChar*) "name");
+ n = _tmp1_;
+ _tmp2_ = n;
+ if (_tmp2_ == NULL) {
+ gchar* _tmp3_ = NULL;
+ _tmp3_ = g_strdup ("");
+ _g_free0 (n);
+ n = _tmp3_;
+ }
+ _tmp4_ = element;
+ _tmp5_ = _tmp4_->name;
+ _tmp6_ = _tmp5_;
+ _tmp8_ = (NULL == _tmp6_) ? 0 : g_quark_from_string (_tmp6_);
+ if (_tmp8_ == ((0 != _tmp7_label0) ? _tmp7_label0 : (_tmp7_label0 = g_quark_from_static_string ("repository")))) {
+ switch (0) {
+ default:
+ {
+ break;
+ }
+ }
+ } else if (_tmp8_ == ((0 != _tmp7_label1) ? _tmp7_label1 : (_tmp7_label1 = g_quark_from_static_string ("include")))) {
+ switch (0) {
+ default:
+ {
+ PaleteGirObject* _tmp9_ = NULL;
+ GeeHashMap* _tmp10_ = NULL;
+ const gchar* _tmp11_ = NULL;
+ xmlNode* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ _tmp9_ = parent;
+ _tmp10_ = _tmp9_->includes;
+ _tmp11_ = n;
+ _tmp12_ = element;
+ _tmp13_ = (gchar*) xmlGetProp (_tmp12_, (xmlChar*) "version");
+ _tmp14_ = _tmp13_;
+ gee_abstract_map_set ((GeeAbstractMap*) _tmp10_, _tmp11_, _tmp14_);
+ _g_free0 (_tmp14_);
+ break;
+ }
+ }
+ } else if (_tmp8_ == ((0 != _tmp7_label2) ? _tmp7_label2 : (_tmp7_label2 = g_quark_from_static_string ("package")))) {
+ switch (0) {
+ default:
+ {
+ PaleteGirObject* _tmp15_ = NULL;
+ const gchar* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ _tmp15_ = parent;
+ _tmp16_ = n;
+ _tmp17_ = g_strdup (_tmp16_);
+ _g_free0 (_tmp15_->package);
+ _tmp15_->package = _tmp17_;
+ break;
+ }
+ }
+ } else if (_tmp8_ == ((0 != _tmp7_label3) ? _tmp7_label3 : (_tmp7_label3 = g_quark_from_static_string ("c:include")))) {
+ switch (0) {
+ default:
+ {
+ break;
+ }
+ }
+ } else if (_tmp8_ == ((0 != _tmp7_label4) ? _tmp7_label4 : (_tmp7_label4 = g_quark_from_static_string ("namespace")))) {
+ switch (0) {
+ default:
+ {
+ PaleteGirObject* _tmp18_ = NULL;
+ const gchar* _tmp19_ = NULL;
+ gchar* _tmp20_ = NULL;
+ _tmp18_ = parent;
+ _tmp19_ = n;
+ _tmp20_ = g_strdup (_tmp19_);
+ _g_free0 (_tmp18_->name);
+ _tmp18_->name = _tmp20_;
+ break;
+ }
+ }
+ } else if (_tmp8_ == ((0 != _tmp7_label5) ? _tmp7_label5 : (_tmp7_label5 = g_quark_from_static_string ("alias")))) {
+ switch (0) {
+ default:
+ {
+ _g_free0 (n);
+ return;
+ }
+ }
+ } else if (_tmp8_ == ((0 != _tmp7_label6) ? _tmp7_label6 : (_tmp7_label6 = g_quark_from_static_string ("class")))) {
+ switch (0) {
+ default:
+ {
+ PaleteGirObject* c = NULL;
+ PaleteGirObject* _tmp21_ = NULL;
+ const gchar* _tmp22_ = NULL;
+ gchar* _tmp23_ = NULL;
+ gchar* _tmp24_ = NULL;
+ const gchar* _tmp25_ = NULL;
+ gchar* _tmp26_ = NULL;
+ gchar* _tmp27_ = NULL;
+ PaleteGirObject* _tmp28_ = NULL;
+ PaleteGirObject* _tmp29_ = NULL;
+ PaleteGirObject* _tmp30_ = NULL;
+ GeeHashMap* _tmp31_ = NULL;
+ const gchar* _tmp32_ = NULL;
+ PaleteGirObject* _tmp33_ = NULL;
+ PaleteGirObject* _tmp34_ = NULL;
+ PaleteGirObject* _tmp35_ = NULL;
+ const gchar* _tmp36_ = NULL;
+ gchar* _tmp37_ = NULL;
+ PaleteGirObject* _tmp38_ = NULL;
+ xmlNode* _tmp39_ = NULL;
+ gchar* _tmp40_ = NULL;
+ PaleteGirObject* _tmp41_ = NULL;
+ const gchar* _tmp42_ = NULL;
+ PaleteGirObject* _tmp45_ = NULL;
+ _tmp21_ = parent;
+ _tmp22_ = _tmp21_->name;
+ _tmp23_ = g_strconcat (_tmp22_, ".", NULL);
+ _tmp24_ = _tmp23_;
+ _tmp25_ = n;
+ _tmp26_ = g_strconcat (_tmp24_, _tmp25_, NULL);
+ _tmp27_ = _tmp26_;
+ _tmp28_ = palete_gir_object_new ("Class", _tmp27_);
+ _tmp29_ = _tmp28_;
+ _g_free0 (_tmp27_);
+ _g_free0 (_tmp24_);
+ c = _tmp29_;
+ _tmp30_ = parent;
+ _tmp31_ = _tmp30_->classes;
+ _tmp32_ = n;
+ _tmp33_ = c;
+ gee_abstract_map_set ((GeeAbstractMap*) _tmp31_, _tmp32_, _tmp33_);
+ _tmp34_ = c;
+ _tmp35_ = parent;
+ _tmp36_ = _tmp35_->name;
+ _tmp37_ = g_strdup (_tmp36_);
+ _g_free0 (_tmp34_->ns);
+ _tmp34_->ns = _tmp37_;
+ _tmp38_ = c;
+ _tmp39_ = element;
+ _tmp40_ = (gchar*) xmlGetProp (_tmp39_, (xmlChar*) "parent");
+ _g_free0 (_tmp38_->parent);
+ _tmp38_->parent = _tmp40_;
+ _tmp41_ = c;
+ _tmp42_ = _tmp41_->parent;
+ if (_tmp42_ == NULL) {
+ PaleteGirObject* _tmp43_ = NULL;
+ gchar* _tmp44_ = NULL;
+ _tmp43_ = c;
+ _tmp44_ = g_strdup ("");
+ _g_free0 (_tmp43_->parent);
+ _tmp43_->parent = _tmp44_;
+ }
+ _tmp45_ = c;
+ parent = _tmp45_;
+ _g_object_unref0 (c);
+ break;
+ }
+ }
+ } else if (_tmp8_ == ((0 != _tmp7_label7) ? _tmp7_label7 : (_tmp7_label7 = g_quark_from_static_string ("interface")))) {
+ switch (0) {
+ default:
+ {
+ PaleteGirObject* c = NULL;
+ PaleteGirObject* _tmp46_ = NULL;
+ const gchar* _tmp47_ = NULL;
+ gchar* _tmp48_ = NULL;
+ gchar* _tmp49_ = NULL;
+ const gchar* _tmp50_ = NULL;
+ gchar* _tmp51_ = NULL;
+ gchar* _tmp52_ = NULL;
+ PaleteGirObject* _tmp53_ = NULL;
+ PaleteGirObject* _tmp54_ = NULL;
+ PaleteGirObject* _tmp55_ = NULL;
+ GeeHashMap* _tmp56_ = NULL;
+ const gchar* _tmp57_ = NULL;
+ PaleteGirObject* _tmp58_ = NULL;
+ PaleteGirObject* _tmp59_ = NULL;
+ PaleteGirObject* _tmp60_ = NULL;
+ const gchar* _tmp61_ = NULL;
+ gchar* _tmp62_ = NULL;
+ PaleteGirObject* _tmp63_ = NULL;
+ xmlNode* _tmp64_ = NULL;
+ gchar* _tmp65_ = NULL;
+ PaleteGirObject* _tmp66_ = NULL;
+ const gchar* _tmp67_ = NULL;
+ PaleteGirObject* _tmp70_ = NULL;
+ _tmp46_ = parent;
+ _tmp47_ = _tmp46_->name;
+ _tmp48_ = g_strconcat (_tmp47_, ".", NULL);
+ _tmp49_ = _tmp48_;
+ _tmp50_ = n;
+ _tmp51_ = g_strconcat (_tmp49_, _tmp50_, NULL);
+ _tmp52_ = _tmp51_;
+ _tmp53_ = palete_gir_object_new ("Interface", _tmp52_);
+ _tmp54_ = _tmp53_;
+ _g_free0 (_tmp52_);
+ _g_free0 (_tmp49_);
+ c = _tmp54_;
+ _tmp55_ = parent;
+ _tmp56_ = _tmp55_->classes;
+ _tmp57_ = n;
+ _tmp58_ = c;
+ gee_abstract_map_set ((GeeAbstractMap*) _tmp56_, _tmp57_, _tmp58_);
+ _tmp59_ = c;
+ _tmp60_ = parent;
+ _tmp61_ = _tmp60_->name;
+ _tmp62_ = g_strdup (_tmp61_);
+ _g_free0 (_tmp59_->ns);
+ _tmp59_->ns = _tmp62_;
+ _tmp63_ = c;
+ _tmp64_ = element;
+ _tmp65_ = (gchar*) xmlGetProp (_tmp64_, (xmlChar*) "parent");
+ _g_free0 (_tmp63_->parent);
+ _tmp63_->parent = _tmp65_;
+ _tmp66_ = c;
+ _tmp67_ = _tmp66_->parent;
+ if (_tmp67_ == NULL) {
+ PaleteGirObject* _tmp68_ = NULL;
+ gchar* _tmp69_ = NULL;
+ _tmp68_ = c;
+ _tmp69_ = g_strdup ("");
+ _g_free0 (_tmp68_->parent);
+ _tmp68_->parent = _tmp69_;
+ }
+ _tmp70_ = c;
+ parent = _tmp70_;
+ _g_object_unref0 (c);
+ break;
+ }
+ }
+ } else if (_tmp8_ == ((0 != _tmp7_label8) ? _tmp7_label8 : (_tmp7_label8 = g_quark_from_static_string ("doc")))) {
+ switch (0) {
+ default:
+ {
+ PaleteGirObject* _tmp71_ = NULL;
+ xmlNode* _tmp72_ = NULL;
+ gchar* _tmp73_ = NULL;
+ _tmp71_ = parent;
+ _tmp72_ = element;
+ _tmp73_ = (gchar*) xmlNodeGetContent (_tmp72_);
+ _g_free0 (_tmp71_->doc);
+ _tmp71_->doc = _tmp73_;
+ _g_free0 (n);
+ return;
+ }
+ }
+ } else if (_tmp8_ == ((0 != _tmp7_label9) ? _tmp7_label9 : (_tmp7_label9 = g_quark_from_static_string ("implements")))) {
+ switch (0) {
+ default:
+ {
+ PaleteGirObject* _tmp74_ = NULL;
+ const gchar* _tmp75_ = NULL;
+ gchar* _tmp76_ = NULL;
+ _tmp74_ = parent;
+ _tmp75_ = n;
+ _tmp76_ = g_strdup (_tmp75_);
+ _tmp74_->implements = g_list_append (_tmp74_->implements, _tmp76_);
+ break;
+ }
+ }
+ } else if (_tmp8_ == ((0 != _tmp7_label10) ? _tmp7_label10 : (_tmp7_label10 = g_quark_from_static_string ("constructor")))) {
+ switch (0) {
+ default:
+ {
+ PaleteGirObject* c = NULL;
+ const gchar* _tmp77_ = NULL;
+ PaleteGirObject* _tmp78_ = NULL;
+ PaleteGirObject* _tmp79_ = NULL;
+ PaleteGirObject* _tmp80_ = NULL;
+ const gchar* _tmp81_ = NULL;
+ gchar* _tmp82_ = NULL;
+ PaleteGirObject* _tmp83_ = NULL;
+ GeeHashMap* _tmp84_ = NULL;
+ const gchar* _tmp85_ = NULL;
+ PaleteGirObject* _tmp86_ = NULL;
+ PaleteGirObject* _tmp87_ = NULL;
+ _tmp77_ = n;
+ _tmp78_ = palete_gir_object_new ("Ctor", _tmp77_);
+ c = _tmp78_;
+ _tmp79_ = c;
+ _tmp80_ = parent;
+ _tmp81_ = _tmp80_->ns;
+ _tmp82_ = g_strdup (_tmp81_);
+ _g_free0 (_tmp79_->ns);
+ _tmp79_->ns = _tmp82_;
+ _tmp83_ = parent;
+ _tmp84_ = _tmp83_->ctors;
+ _tmp85_ = n;
+ _tmp86_ = c;
+ gee_abstract_map_set ((GeeAbstractMap*) _tmp84_, _tmp85_, _tmp86_);
+ _tmp87_ = c;
+ parent = _tmp87_;
+ _g_object_unref0 (c);
+ break;
+ }
+ }
+ } else if (_tmp8_ == ((0 != _tmp7_label11) ? _tmp7_label11 : (_tmp7_label11 = g_quark_from_static_string ("return-value")))) {
+ switch (0) {
+ default:
+ {
+ PaleteGirObject* c = NULL;
+ PaleteGirObject* _tmp88_ = NULL;
+ PaleteGirObject* _tmp89_ = NULL;
+ PaleteGirObject* _tmp90_ = NULL;
+ const gchar* _tmp91_ = NULL;
+ gchar* _tmp92_ = NULL;
+ PaleteGirObject* _tmp93_ = NULL;
+ PaleteGirObject* _tmp94_ = NULL;
+ PaleteGirObject* _tmp95_ = NULL;
+ PaleteGirObject* _tmp96_ = NULL;
+ _tmp88_ = palete_gir_object_new ("Return", "return-value");
+ c = _tmp88_;
+ _tmp89_ = c;
+ _tmp90_ = parent;
+ _tmp91_ = _tmp90_->ns;
+ _tmp92_ = g_strdup (_tmp91_);
+ _g_free0 (_tmp89_->ns);
+ _tmp89_->ns = _tmp92_;
+ _tmp93_ = parent;
+ _tmp94_ = c;
+ _tmp95_ = _g_object_ref0 (_tmp94_);
+ _g_object_unref0 (_tmp93_->return_value);
+ _tmp93_->return_value = _tmp95_;
+ _tmp96_ = c;
+ parent = _tmp96_;
+ _g_object_unref0 (c);
+ break;
+ }
+ }
+ } else if (_tmp8_ == ((0 != _tmp7_label12) ? _tmp7_label12 : (_tmp7_label12 = g_quark_from_static_string ("virtual-method")))) {
+ switch (0) {
+ default:
+ {
+ _g_free0 (n);
+ return;
+ }
+ }
+ } else if (_tmp8_ == ((0 != _tmp7_label13) ? _tmp7_label13 : (_tmp7_label13 = g_quark_from_static_string ("signal")))) {
+ switch (0) {
+ default:
+ {
+ PaleteGirObject* c = NULL;
+ const gchar* _tmp97_ = NULL;
+ PaleteGirObject* _tmp98_ = NULL;
+ PaleteGirObject* _tmp99_ = NULL;
+ PaleteGirObject* _tmp100_ = NULL;
+ const gchar* _tmp101_ = NULL;
+ gchar* _tmp102_ = NULL;
+ PaleteGirObject* _tmp103_ = NULL;
+ GeeHashMap* _tmp104_ = NULL;
+ const gchar* _tmp105_ = NULL;
+ PaleteGirObject* _tmp106_ = NULL;
+ PaleteGirObject* _tmp107_ = NULL;
+ _tmp97_ = n;
+ _tmp98_ = palete_gir_object_new ("Signal", _tmp97_);
+ c = _tmp98_;
+ _tmp99_ = c;
+ _tmp100_ = parent;
+ _tmp101_ = _tmp100_->ns;
+ _tmp102_ = g_strdup (_tmp101_);
+ _g_free0 (_tmp99_->ns);
+ _tmp99_->ns = _tmp102_;
+ _tmp103_ = parent;
+ _tmp104_ = _tmp103_->signals;
+ _tmp105_ = n;
+ _tmp106_ = c;
+ gee_abstract_map_set ((GeeAbstractMap*) _tmp104_, _tmp105_, _tmp106_);
+ _tmp107_ = c;
+ parent = _tmp107_;
+ _g_object_unref0 (c);
+ break;
+ }
+ }
+ } else if (_tmp8_ == ((0 != _tmp7_label14) ? _tmp7_label14 : (_tmp7_label14 = g_quark_from_static_string ("callback")))) {
+ switch (0) {
+ default:
+ {
+ _g_free0 (n);
+ return;
+ }
+ }
+ } else if (_tmp8_ == ((0 != _tmp7_label15) ? _tmp7_label15 : (_tmp7_label15 = g_quark_from_static_string ("type")))) {
+ switch (0) {
+ default:
+ {
+ PaleteGirObject* _tmp108_ = NULL;
+ const gchar* _tmp109_ = NULL;
+ gchar* _tmp110_ = NULL;
+ _tmp108_ = parent;
+ _tmp109_ = n;
+ _tmp110_ = g_strdup (_tmp109_);
+ _g_free0 (_tmp108_->type);
+ _tmp108_->type = _tmp110_;
+ _g_free0 (n);
+ return;
+ }
+ }
+ } else if (_tmp8_ == ((0 != _tmp7_label16) ? _tmp7_label16 : (_tmp7_label16 = g_quark_from_static_string ("method")))) {
+ switch (0) {
+ default:
+ {
+ PaleteGirObject* c = NULL;
+ const gchar* _tmp111_ = NULL;
+ PaleteGirObject* _tmp112_ = NULL;
+ PaleteGirObject* _tmp113_ = NULL;
+ PaleteGirObject* _tmp114_ = NULL;
+ const gchar* _tmp115_ = NULL;
+ gchar* _tmp116_ = NULL;
+ PaleteGirObject* _tmp117_ = NULL;
+ GeeHashMap* _tmp118_ = NULL;
+ const gchar* _tmp119_ = NULL;
+ PaleteGirObject* _tmp120_ = NULL;
+ PaleteGirObject* _tmp121_ = NULL;
+ _tmp111_ = n;
+ _tmp112_ = palete_gir_object_new ("Method", _tmp111_);
+ c = _tmp112_;
+ _tmp113_ = c;
+ _tmp114_ = parent;
+ _tmp115_ = _tmp114_->ns;
+ _tmp116_ = g_strdup (_tmp115_);
+ _g_free0 (_tmp113_->ns);
+ _tmp113_->ns = _tmp116_;
+ _tmp117_ = parent;
+ _tmp118_ = _tmp117_->methods;
+ _tmp119_ = n;
+ _tmp120_ = c;
+ gee_abstract_map_set ((GeeAbstractMap*) _tmp118_, _tmp119_, _tmp120_);
+ _tmp121_ = c;
+ parent = _tmp121_;
+ _g_object_unref0 (c);
+ break;
+ }
+ }
+ } else if (_tmp8_ == ((0 != _tmp7_label17) ? _tmp7_label17 : (_tmp7_label17 = g_quark_from_static_string ("parameters")))) {
+ switch (0) {
+ default:
+ {
+ PaleteGirObject* c = NULL;
+ const gchar* _tmp122_ = NULL;
+ PaleteGirObject* _tmp123_ = NULL;
+ PaleteGirObject* _tmp124_ = NULL;
+ PaleteGirObject* _tmp125_ = NULL;
+ const gchar* _tmp126_ = NULL;
+ gchar* _tmp127_ = NULL;
+ PaleteGirObject* _tmp128_ = NULL;
+ PaleteGirObject* _tmp129_ = NULL;
+ PaleteGirObject* _tmp130_ = NULL;
+ PaleteGirObject* _tmp131_ = NULL;
+ _tmp122_ = n;
+ _tmp123_ = palete_gir_object_new ("Paramset", _tmp122_);
+ c = _tmp123_;
+ _tmp124_ = c;
+ _tmp125_ = parent;
+ _tmp126_ = _tmp125_->ns;
+ _tmp127_ = g_strdup (_tmp126_);
+ _g_free0 (_tmp124_->ns);
+ _tmp124_->ns = _tmp127_;
+ _tmp128_ = parent;
+ _tmp129_ = c;
+ _tmp130_ = _g_object_ref0 (_tmp129_);
+ _g_object_unref0 (_tmp128_->paramset);
+ _tmp128_->paramset = _tmp130_;
+ _tmp131_ = c;
+ parent = _tmp131_;
+ _g_object_unref0 (c);
+ break;
+ }
+ }
+ } else if (_tmp8_ == ((0 != _tmp7_label18) ? _tmp7_label18 : (_tmp7_label18 = g_quark_from_static_string ("instance-parameter")))) {
+ switch (0) {
+ default:
+ {
+ PaleteGirObject* c = NULL;
+ const gchar* _tmp132_ = NULL;
+ PaleteGirObject* _tmp133_ = NULL;
+ PaleteGirObject* _tmp134_ = NULL;
+ PaleteGirObject* _tmp135_ = NULL;
+ const gchar* _tmp136_ = NULL;
+ gchar* _tmp137_ = NULL;
+ PaleteGirObject* _tmp138_ = NULL;
+ PaleteGirObject* _tmp139_ = NULL;
+ GeeHashMap* _tmp140_ = NULL;
+ const gchar* _tmp141_ = NULL;
+ PaleteGirObject* _tmp142_ = NULL;
+ PaleteGirObject* _tmp143_ = NULL;
+ _tmp132_ = n;
+ _tmp133_ = palete_gir_object_new ("Param", _tmp132_);
+ c = _tmp133_;
+ _tmp134_ = c;
+ _tmp135_ = parent;
+ _tmp136_ = _tmp135_->ns;
+ _tmp137_ = g_strdup (_tmp136_);
+ _g_free0 (_tmp134_->ns);
+ _tmp134_->ns = _tmp137_;
+ _tmp138_ = c;
+ _tmp138_->is_instance = TRUE;
+ _tmp139_ = parent;
+ _tmp140_ = _tmp139_->params;
+ _tmp141_ = n;
+ _tmp142_ = c;
+ gee_abstract_map_set ((GeeAbstractMap*) _tmp140_, _tmp141_, _tmp142_);
+ _tmp143_ = c;
+ parent = _tmp143_;
+ _g_object_unref0 (c);
+ break;
+ }
+ }
+ } else if (_tmp8_ == ((0 != _tmp7_label19) ? _tmp7_label19 : (_tmp7_label19 = g_quark_from_static_string ("parameter")))) {
+ switch (0) {
+ default:
+ {
+ PaleteGirObject* c = NULL;
+ const gchar* _tmp144_ = NULL;
+ PaleteGirObject* _tmp145_ = NULL;
+ PaleteGirObject* _tmp146_ = NULL;
+ PaleteGirObject* _tmp147_ = NULL;
+ const gchar* _tmp148_ = NULL;
+ gchar* _tmp149_ = NULL;
+ PaleteGirObject* _tmp150_ = NULL;
+ GeeHashMap* _tmp151_ = NULL;
+ const gchar* _tmp152_ = NULL;
+ PaleteGirObject* _tmp153_ = NULL;
+ PaleteGirObject* _tmp154_ = NULL;
+ _tmp144_ = n;
+ _tmp145_ = palete_gir_object_new ("Param", _tmp144_);
+ c = _tmp145_;
+ _tmp146_ = c;
+ _tmp147_ = parent;
+ _tmp148_ = _tmp147_->ns;
+ _tmp149_ = g_strdup (_tmp148_);
+ _g_free0 (_tmp146_->ns);
+ _tmp146_->ns = _tmp149_;
+ _tmp150_ = parent;
+ _tmp151_ = _tmp150_->params;
+ _tmp152_ = n;
+ _tmp153_ = c;
+ gee_abstract_map_set ((GeeAbstractMap*) _tmp151_, _tmp152_, _tmp153_);
+ _tmp154_ = c;
+ parent = _tmp154_;
+ _g_object_unref0 (c);
+ break;
+ }
+ }
+ } else if ((_tmp8_ == ((0 != _tmp7_label20) ? _tmp7_label20 : (_tmp7_label20 = g_quark_from_static_string ("property")))) || (_tmp8_ == ((0 != _tmp7_label21) ? _tmp7_label21 : (_tmp7_label21 = g_quark_from_static_string ("field"))))) {
+ switch (0) {
+ default:
+ {
+ PaleteGirObject* c = NULL;
+ const gchar* _tmp155_ = NULL;
+ PaleteGirObject* _tmp156_ = NULL;
+ PaleteGirObject* _tmp157_ = NULL;
+ PaleteGirObject* _tmp158_ = NULL;
+ const gchar* _tmp159_ = NULL;
+ gchar* _tmp160_ = NULL;
+ PaleteGirObject* _tmp161_ = NULL;
+ GeeHashMap* _tmp162_ = NULL;
+ const gchar* _tmp163_ = NULL;
+ PaleteGirObject* _tmp164_ = NULL;
+ PaleteGirObject* _tmp165_ = NULL;
+ _tmp155_ = n;
+ _tmp156_ = palete_gir_object_new ("Prop", _tmp155_);
+ c = _tmp156_;
+ _tmp157_ = c;
+ _tmp158_ = parent;
+ _tmp159_ = _tmp158_->ns;
+ _tmp160_ = g_strdup (_tmp159_);
+ _g_free0 (_tmp157_->ns);
+ _tmp157_->ns = _tmp160_;
+ _tmp161_ = parent;
+ _tmp162_ = _tmp161_->props;
+ _tmp163_ = n;
+ _tmp164_ = c;
+ gee_abstract_map_set ((GeeAbstractMap*) _tmp162_, _tmp163_, _tmp164_);
+ _tmp165_ = c;
+ parent = _tmp165_;
+ _g_object_unref0 (c);
+ break;
+ }
+ }
+ } else if (_tmp8_ == ((0 != _tmp7_label22) ? _tmp7_label22 : (_tmp7_label22 = g_quark_from_static_string ("function")))) {
+ switch (0) {
+ default:
+ {
+ PaleteGirObject* c = NULL;
+ const gchar* _tmp166_ = NULL;
+ PaleteGirObject* _tmp167_ = NULL;
+ PaleteGirObject* _tmp168_ = NULL;
+ PaleteGirObject* _tmp169_ = NULL;
+ const gchar* _tmp170_ = NULL;
+ gchar* _tmp171_ = NULL;
+ PaleteGirObject* _tmp172_ = NULL;
+ GeeHashMap* _tmp173_ = NULL;
+ const gchar* _tmp174_ = NULL;
+ PaleteGirObject* _tmp175_ = NULL;
+ PaleteGirObject* _tmp176_ = NULL;
+ _tmp166_ = n;
+ _tmp167_ = palete_gir_object_new ("Function", _tmp166_);
+ c = _tmp167_;
+ _tmp168_ = c;
+ _tmp169_ = parent;
+ _tmp170_ = _tmp169_->ns;
+ _tmp171_ = g_strdup (_tmp170_);
+ _g_free0 (_tmp168_->ns);
+ _tmp168_->ns = _tmp171_;
+ _tmp172_ = parent;
+ _tmp173_ = _tmp172_->methods;
+ _tmp174_ = n;
+ _tmp175_ = c;
+ gee_abstract_map_set ((GeeAbstractMap*) _tmp173_, _tmp174_, _tmp175_);
+ _tmp176_ = c;
+ parent = _tmp176_;
+ _g_object_unref0 (c);
+ break;
+ }
+ }
+ } else if (_tmp8_ == ((0 != _tmp7_label23) ? _tmp7_label23 : (_tmp7_label23 = g_quark_from_static_string ("array")))) {
+ switch (0) {
+ default:
+ {
+ PaleteGirObject* _tmp177_ = NULL;
+ _tmp177_ = parent;
+ _tmp177_->is_array = TRUE;
+ break;
+ }
+ }
+ } else if (_tmp8_ == ((0 != _tmp7_label24) ? _tmp7_label24 : (_tmp7_label24 = g_quark_from_static_string ("varargs")))) {
+ switch (0) {
+ default:
+ {
+ PaleteGirObject* _tmp178_ = NULL;
+ _tmp178_ = parent;
+ _tmp178_->is_varargs = TRUE;
+ _g_free0 (n);
+ return;
+ }
+ }
+ } else if (_tmp8_ == ((0 != _tmp7_label25) ? _tmp7_label25 : (_tmp7_label25 = g_quark_from_static_string ("constant")))) {
+ switch (0) {
+ default:
+ {
+ PaleteGirObject* c = NULL;
+ const gchar* _tmp179_ = NULL;
+ PaleteGirObject* _tmp180_ = NULL;
+ PaleteGirObject* _tmp181_ = NULL;
+ xmlNode* _tmp182_ = NULL;
+ gchar* _tmp183_ = NULL;
+ PaleteGirObject* _tmp184_ = NULL;
+ PaleteGirObject* _tmp185_ = NULL;
+ const gchar* _tmp186_ = NULL;
+ gchar* _tmp187_ = NULL;
+ PaleteGirObject* _tmp188_ = NULL;
+ GeeHashMap* _tmp189_ = NULL;
+ const gchar* _tmp190_ = NULL;
+ PaleteGirObject* _tmp191_ = NULL;
+ PaleteGirObject* _tmp192_ = NULL;
+ _tmp179_ = n;
+ _tmp180_ = palete_gir_object_new ("Const", _tmp179_);
+ c = _tmp180_;
+ _tmp181_ = c;
+ _tmp182_ = element;
+ _tmp183_ = (gchar*) xmlGetProp (_tmp182_, (xmlChar*) "value");
+ _g_free0 (_tmp181_->value);
+ _tmp181_->value = _tmp183_;
+ _tmp184_ = c;
+ _tmp185_ = parent;
+ _tmp186_ = _tmp185_->ns;
+ _tmp187_ = g_strdup (_tmp186_);
+ _g_free0 (_tmp184_->ns);
+ _tmp184_->ns = _tmp187_;
+ _tmp188_ = parent;
+ _tmp189_ = _tmp188_->consts;
+ _tmp190_ = n;
+ _tmp191_ = c;
+ gee_abstract_map_set ((GeeAbstractMap*) _tmp189_, _tmp190_, _tmp191_);
+ _tmp192_ = c;
+ parent = _tmp192_;
+ _g_object_unref0 (c);
+ _g_free0 (n);
+ return;
+ }
+ }
+ } else if (_tmp8_ == ((0 != _tmp7_label26) ? _tmp7_label26 : (_tmp7_label26 = g_quark_from_static_string ("enumeration")))) {
+ switch (0) {
+ default:
+ {
+ PaleteGirObject* c = NULL;
+ const gchar* _tmp193_ = NULL;
+ PaleteGirObject* _tmp194_ = NULL;
+ PaleteGirObject* _tmp195_ = NULL;
+ PaleteGirObject* _tmp196_ = NULL;
+ const gchar* _tmp197_ = NULL;
+ gchar* _tmp198_ = NULL;
+ PaleteGirObject* _tmp199_ = NULL;
+ GeeHashMap* _tmp200_ = NULL;
+ const gchar* _tmp201_ = NULL;
+ PaleteGirObject* _tmp202_ = NULL;
+ PaleteGirObject* _tmp203_ = NULL;
+ _tmp193_ = n;
+ _tmp194_ = palete_gir_object_new ("Enum", _tmp193_);
+ c = _tmp194_;
+ _tmp195_ = c;
+ _tmp196_ = parent;
+ _tmp197_ = _tmp196_->ns;
+ _tmp198_ = g_strdup (_tmp197_);
+ _g_free0 (_tmp195_->ns);
+ _tmp195_->ns = _tmp198_;
+ _tmp199_ = parent;
+ _tmp200_ = _tmp199_->consts;
+ _tmp201_ = n;
+ _tmp202_ = c;
+ gee_abstract_map_set ((GeeAbstractMap*) _tmp200_, _tmp201_, _tmp202_);
+ _tmp203_ = c;
+ parent = _tmp203_;
+ _g_object_unref0 (c);
+ break;
+ }
+ }
+ } else if (_tmp8_ == ((0 != _tmp7_label27) ? _tmp7_label27 : (_tmp7_label27 = g_quark_from_static_string ("member")))) {
+ switch (0) {
+ default:
+ {
+ PaleteGirObject* c = NULL;
+ const gchar* _tmp204_ = NULL;
+ PaleteGirObject* _tmp205_ = NULL;
+ PaleteGirObject* _tmp206_ = NULL;
+ PaleteGirObject* _tmp207_ = NULL;
+ const gchar* _tmp208_ = NULL;
+ gchar* _tmp209_ = NULL;
+ PaleteGirObject* _tmp210_ = NULL;
+ xmlNode* _tmp211_ = NULL;
+ gchar* _tmp212_ = NULL;
+ PaleteGirObject* _tmp213_ = NULL;
+ GeeHashMap* _tmp214_ = NULL;
+ const gchar* _tmp215_ = NULL;
+ PaleteGirObject* _tmp216_ = NULL;
+ _tmp204_ = n;
+ _tmp205_ = palete_gir_object_new ("EnumMember", _tmp204_);
+ c = _tmp205_;
+ _tmp206_ = c;
+ _tmp207_ = parent;
+ _tmp208_ = _tmp207_->ns;
+ _tmp209_ = g_strdup (_tmp208_);
+ _g_free0 (_tmp206_->ns);
+ _tmp206_->ns = _tmp209_;
+ _tmp210_ = c;
+ _tmp211_ = element;
+ _tmp212_ = (gchar*) xmlGetProp (_tmp211_, (xmlChar*) "value");
+ _g_free0 (_tmp210_->value);
+ _tmp210_->value = _tmp212_;
+ _tmp213_ = parent;
+ _tmp214_ = _tmp213_->consts;
+ _tmp215_ = n;
+ _tmp216_ = c;
+ gee_abstract_map_set ((GeeAbstractMap*) _tmp214_, _tmp215_, _tmp216_);
+ _g_object_unref0 (c);
+ _g_free0 (n);
+ return;
+ _g_object_unref0 (c);
+ break;
+ }
+ }
+ } else if (_tmp8_ == ((0 != _tmp7_label28) ? _tmp7_label28 : (_tmp7_label28 = g_quark_from_static_string ("doc-deprecated")))) {
+ switch (0) {
+ default:
+ {
+ _g_free0 (n);
+ return;
+ }
+ }
+ } else if (_tmp8_ == ((0 != _tmp7_label29) ? _tmp7_label29 : (_tmp7_label29 = g_quark_from_static_string ("record")))) {
+ switch (0) {
+ default:
+ {
+ _g_free0 (n);
+ return;
+ }
+ }
+ } else if (_tmp8_ == ((0 != _tmp7_label30) ? _tmp7_label30 : (_tmp7_label30 = g_quark_from_static_string ("bitfield")))) {
+ switch (0) {
+ default:
+ {
+ _g_free0 (n);
+ return;
+ }
+ }
+ } else if (_tmp8_ == ((0 != _tmp7_label31) ? _tmp7_label31 : (_tmp7_label31 = g_quark_from_static_string ("prerequisite")))) {
+ switch (0) {
+ default:
+ {
+ _g_free0 (n);
+ return;
+ }
+ }
+ } else {
+ switch (0) {
+ default:
+ {
+ xmlNode* _tmp217_ = NULL;
+ const gchar* _tmp218_ = NULL;
+ gchar* _tmp219_ = NULL;
+ gchar* _tmp220_ = NULL;
+ gchar* _tmp221_ = NULL;
+ gchar* _tmp222_ = NULL;
+ _tmp217_ = element;
+ _tmp218_ = _tmp217_->name;
+ _tmp219_ = g_strconcat ("UNHANDLED", _tmp218_, NULL);
+ _tmp220_ = _tmp219_;
+ _tmp221_ = g_strconcat (_tmp220_, "\n", NULL);
+ _tmp222_ = _tmp221_;
+ g_print ("%s", _tmp222_);
+ _g_free0 (_tmp222_);
+ _g_free0 (_tmp220_);
+ _g_free0 (n);
+ return;
+ }
+ }
+ }
+ {
+ xmlNode* iter = NULL;
+ xmlNode* _tmp223_ = NULL;
+ xmlNode* _tmp224_ = NULL;
+ _tmp223_ = element;
+ _tmp224_ = _tmp223_->children;
+ iter = _tmp224_;
+ {
+ gboolean _tmp225_ = FALSE;
+ _tmp225_ = TRUE;
+ while (TRUE) {
+ xmlNode* _tmp228_ = NULL;
+ xmlNode* _tmp229_ = NULL;
+ xmlElementType _tmp230_ = 0;
+ xmlNode* _tmp231_ = NULL;
+ PaleteGirObject* _tmp232_ = NULL;
+ if (!_tmp225_) {
+ xmlNode* _tmp226_ = NULL;
+ xmlNode* _tmp227_ = NULL;
+ _tmp226_ = iter;
+ _tmp227_ = _tmp226_->next;
+ iter = _tmp227_;
+ }
+ _tmp225_ = FALSE;
+ _tmp228_ = iter;
+ if (!(_tmp228_ != NULL)) {
+ break;
+ }
+ _tmp229_ = iter;
+ _tmp230_ = _tmp229_->type;
+ if (_tmp230_ == XML_TEXT_NODE) {
+ continue;
+ }
+ _tmp231_ = iter;
+ _tmp232_ = parent;
+ palete_gir_walk (self, _tmp231_, _tmp232_);
+ }
+ }
+ }
+ _g_free0 (n);
+}
+
+
+gchar* palete_gir_doc (PaleteGir* self, const gchar* what) {
+ gchar* result = NULL;
+ gchar** ar = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar** _tmp1_ = NULL;
+ gchar** _tmp2_ = NULL;
+ gint ar_length1 = 0;
+ gint _ar_size_ = 0;
+ PaleteGirObject* cls = NULL;
+ GeeHashMap* _tmp3_ = NULL;
+ gchar** _tmp4_ = NULL;
+ gint _tmp4__length1 = 0;
+ const gchar* _tmp5_ = NULL;
+ gpointer _tmp6_ = NULL;
+ gchar** _tmp7_ = NULL;
+ gint _tmp7__length1 = 0;
+ PaleteGirObject* pr = NULL;
+ PaleteGirObject* _tmp14_ = NULL;
+ GeeHashMap* _tmp15_ = NULL;
+ gchar** _tmp16_ = NULL;
+ gint _tmp16__length1 = 0;
+ const gchar* _tmp17_ = NULL;
+ gpointer _tmp18_ = NULL;
+ const gchar* _tmp19_ = NULL;
+ PaleteGirObject* _tmp20_ = NULL;
+ const gchar* _tmp21_ = NULL;
+ gchar* _tmp24_ = NULL;
+ g_return_val_if_fail (self != NULL, NULL);
+ g_return_val_if_fail (what != NULL, NULL);
+ _tmp0_ = what;
+ _tmp2_ = _tmp1_ = g_strsplit (_tmp0_, ".", 0);
+ ar = _tmp2_;
+ ar_length1 = _vala_array_length (_tmp1_);
+ _ar_size_ = ar_length1;
+ _tmp3_ = ((PaleteGirObject*) self)->classes;
+ _tmp4_ = ar;
+ _tmp4__length1 = ar_length1;
+ _tmp5_ = _tmp4_[1];
+ _tmp6_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp3_, _tmp5_);
+ cls = (PaleteGirObject*) _tmp6_;
+ _tmp7_ = ar;
+ _tmp7__length1 = ar_length1;
+ if (_tmp7__length1 == 2) {
+ const gchar* _tmp8_ = NULL;
+ PaleteGirObject* _tmp9_ = NULL;
+ const gchar* _tmp10_ = NULL;
+ gchar* _tmp13_ = NULL;
+ _tmp9_ = cls;
+ _tmp10_ = _tmp9_->doc;
+ if (_tmp10_ != NULL) {
+ PaleteGirObject* _tmp11_ = NULL;
+ const gchar* _tmp12_ = NULL;
+ _tmp11_ = cls;
+ _tmp12_ = _tmp11_->doc;
+ _tmp8_ = _tmp12_;
+ } else {
+ _tmp8_ = "";
+ }
+ _tmp13_ = g_strdup (_tmp8_);
+ result = _tmp13_;
+ _g_object_unref0 (cls);
+ ar = (_vala_array_free (ar, ar_length1, (GDestroyNotify) g_free), NULL);
+ return result;
+ }
+ _tmp14_ = cls;
+ _tmp15_ = _tmp14_->props;
+ _tmp16_ = ar;
+ _tmp16__length1 = ar_length1;
+ _tmp17_ = _tmp16_[2];
+ _tmp18_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp15_, _tmp17_);
+ pr = (PaleteGirObject*) _tmp18_;
+ _tmp20_ = pr;
+ _tmp21_ = _tmp20_->doc;
+ if (_tmp21_ != NULL) {
+ PaleteGirObject* _tmp22_ = NULL;
+ const gchar* _tmp23_ = NULL;
+ _tmp22_ = pr;
+ _tmp23_ = _tmp22_->doc;
+ _tmp19_ = _tmp23_;
+ } else {
+ _tmp19_ = "";
+ }
+ _tmp24_ = g_strdup (_tmp19_);
+ result = _tmp24_;
+ _g_object_unref0 (pr);
+ _g_object_unref0 (cls);
+ ar = (_vala_array_free (ar, ar_length1, (GDestroyNotify) g_free), NULL);
+ return result;
+}
+
+
+static void palete_gir_class_init (PaleteGirClass * klass) {
+ palete_gir_parent_class = g_type_class_peek_parent (klass);
+ G_OBJECT_CLASS (klass)->finalize = palete_gir_finalize;
+}
+
+
+static void palete_gir_instance_init (PaleteGir * self) {
+}
+
+
+static void palete_gir_finalize (GObject* obj) {
+ PaleteGir * self;
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, PALETE_TYPE_GIR, PaleteGir);
+ G_OBJECT_CLASS (palete_gir_parent_class)->finalize (obj);
+}
+
+
+GType palete_gir_get_type (void) {
+ static volatile gsize palete_gir_type_id__volatile = 0;
+ if (g_once_init_enter (&palete_gir_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (PaleteGirClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) palete_gir_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PaleteGir), 0, (GInstanceInitFunc) palete_gir_instance_init, NULL };
+ GType palete_gir_type_id;
+ palete_gir_type_id = g_type_register_static (PALETE_TYPE_GIR_OBJECT, "PaleteGir", &g_define_type_info, 0);
+ g_once_init_leave (&palete_gir_type_id__volatile, palete_gir_type_id);
+ }
+ return palete_gir_type_id__volatile;
+}
+
+
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ if ((array != NULL) && (destroy_func != NULL)) {
+ int i;
+ for (i = 0; i < array_length; i = i + 1) {
+ if (((gpointer*) array)[i] != NULL) {
+ destroy_func (((gpointer*) array)[i]);
+ }
+ }
+ }
+}
+
+
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ _vala_array_destroy (array, array_length, destroy_func);
+ g_free (array);
+}
+
+
+static gint _vala_array_length (gpointer array) {
+ int length;
+ length = 0;
+ if (array) {
+ while (((gpointer*) array)[length]) {
+ length++;
+ }
+ }
+ return length;
+}
+
+
+
--- /dev/null
+/* Gtk.vala.c generated by valac 0.24.0, the Vala compiler
+ * generated from Gtk.vala, do not modify */
+
+/*<Script type="text/javascript">*/
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gee.h>
+
+
+#define PROJECT_TYPE_PROJECT (project_project_get_type ())
+#define PROJECT_PROJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PROJECT_TYPE_PROJECT, ProjectProject))
+#define PROJECT_PROJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PROJECT_TYPE_PROJECT, ProjectProjectClass))
+#define PROJECT_IS_PROJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PROJECT_TYPE_PROJECT))
+#define PROJECT_IS_PROJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PROJECT_TYPE_PROJECT))
+#define PROJECT_PROJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PROJECT_TYPE_PROJECT, ProjectProjectClass))
+
+typedef struct _ProjectProject ProjectProject;
+typedef struct _ProjectProjectClass ProjectProjectClass;
+typedef struct _ProjectProjectPrivate ProjectProjectPrivate;
+
+#define JS_RENDER_TYPE_JS_RENDER (js_render_js_render_get_type ())
+#define JS_RENDER_JS_RENDER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JS_RENDER_TYPE_JS_RENDER, JsRenderJsRender))
+#define JS_RENDER_JS_RENDER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JS_RENDER_TYPE_JS_RENDER, JsRenderJsRenderClass))
+#define JS_RENDER_IS_JS_RENDER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JS_RENDER_TYPE_JS_RENDER))
+#define JS_RENDER_IS_JS_RENDER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JS_RENDER_TYPE_JS_RENDER))
+#define JS_RENDER_JS_RENDER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JS_RENDER_TYPE_JS_RENDER, JsRenderJsRenderClass))
+
+typedef struct _JsRenderJsRender JsRenderJsRender;
+typedef struct _JsRenderJsRenderClass JsRenderJsRenderClass;
+
+#define PROJECT_TYPE_GTK (project_gtk_get_type ())
+#define PROJECT_GTK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PROJECT_TYPE_GTK, ProjectGtk))
+#define PROJECT_GTK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PROJECT_TYPE_GTK, ProjectGtkClass))
+#define PROJECT_IS_GTK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PROJECT_TYPE_GTK))
+#define PROJECT_IS_GTK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PROJECT_TYPE_GTK))
+#define PROJECT_GTK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PROJECT_TYPE_GTK, ProjectGtkClass))
+
+typedef struct _ProjectGtk ProjectGtk;
+typedef struct _ProjectGtkClass ProjectGtkClass;
+typedef struct _ProjectGtkPrivate ProjectGtkPrivate;
+#define _g_free0(var) (var = (g_free (var), NULL))
+
+struct _ProjectProject {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ ProjectProjectPrivate * priv;
+ gchar* id;
+ gchar* fn;
+ gchar* name;
+ GeeHashMap* paths;
+ GList* files;
+ gchar* xtype;
+};
+
+struct _ProjectProjectClass {
+ GTypeClass parent_class;
+ void (*finalize) (ProjectProject *self);
+};
+
+struct _ProjectGtk {
+ ProjectProject parent_instance;
+ ProjectGtkPrivate * priv;
+};
+
+struct _ProjectGtkClass {
+ ProjectProjectClass parent_class;
+};
+
+
+extern gint project_gtk_id;
+gint project_gtk_id = 1;
+static gpointer project_gtk_parent_class = NULL;
+
+gpointer project_project_ref (gpointer instance);
+void project_project_unref (gpointer instance);
+GParamSpec* project_param_spec_project (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void project_value_set_project (GValue* value, gpointer v_object);
+void project_value_take_project (GValue* value, gpointer v_object);
+gpointer project_value_get_project (const GValue* value);
+GType project_project_get_type (void) G_GNUC_CONST;
+GType js_render_js_render_get_type (void) G_GNUC_CONST;
+GType project_gtk_get_type (void) G_GNUC_CONST;
+enum {
+ PROJECT_GTK_DUMMY_PROPERTY
+};
+static ProjectGtk* project_gtk_new (const gchar* path);
+static ProjectGtk* project_gtk_construct (GType object_type, const gchar* path);
+ProjectProject* project_project_new (const gchar* path);
+ProjectProject* project_project_construct (GType object_type, const gchar* path);
+
+
+static ProjectGtk* project_gtk_construct (GType object_type, const gchar* path) {
+ ProjectGtk* self = NULL;
+ const gchar* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ g_return_val_if_fail (path != NULL, NULL);
+ _tmp0_ = path;
+ self = (ProjectGtk*) project_project_construct (object_type, _tmp0_);
+ _tmp1_ = project_gtk_id;
+ project_gtk_id = _tmp1_ + 1;
+ _tmp2_ = g_strdup_printf ("project-gtk-%d", _tmp1_);
+ _g_free0 (((ProjectProject*) self)->id);
+ ((ProjectProject*) self)->id = _tmp2_;
+ _tmp3_ = g_strdup ("Gtk");
+ _g_free0 (((ProjectProject*) self)->xtype);
+ ((ProjectProject*) self)->xtype = _tmp3_;
+ return self;
+}
+
+
+static ProjectGtk* project_gtk_new (const gchar* path) {
+ return project_gtk_construct (PROJECT_TYPE_GTK, path);
+}
+
+
+static void project_gtk_class_init (ProjectGtkClass * klass) {
+ project_gtk_parent_class = g_type_class_peek_parent (klass);
+}
+
+
+static void project_gtk_instance_init (ProjectGtk * self) {
+}
+
+
+GType project_gtk_get_type (void) {
+ static volatile gsize project_gtk_type_id__volatile = 0;
+ if (g_once_init_enter (&project_gtk_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (ProjectGtkClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) project_gtk_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ProjectGtk), 0, (GInstanceInitFunc) project_gtk_instance_init, NULL };
+ GType project_gtk_type_id;
+ project_gtk_type_id = g_type_register_static (PROJECT_TYPE_PROJECT, "ProjectGtk", &g_define_type_info, 0);
+ g_once_init_leave (&project_gtk_type_id__volatile, project_gtk_type_id);
+ }
+ return project_gtk_type_id__volatile;
+}
+
+
+
--- /dev/null
+/* Project.vala.c generated by valac 0.24.0, the Vala compiler
+ * generated from Project.vala, do not modify */
+
+/*<Script type="text/javascript">*/
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gee.h>
+#include <json-glib/json-glib.h>
+#include <gio/gio.h>
+#include <glib/gstdio.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define PROJECT_TYPE_PROJECT (project_project_get_type ())
+#define PROJECT_PROJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PROJECT_TYPE_PROJECT, ProjectProject))
+#define PROJECT_PROJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PROJECT_TYPE_PROJECT, ProjectProjectClass))
+#define PROJECT_IS_PROJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PROJECT_TYPE_PROJECT))
+#define PROJECT_IS_PROJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PROJECT_TYPE_PROJECT))
+#define PROJECT_PROJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PROJECT_TYPE_PROJECT, ProjectProjectClass))
+
+typedef struct _ProjectProject ProjectProject;
+typedef struct _ProjectProjectClass ProjectProjectClass;
+typedef struct _ProjectProjectPrivate ProjectProjectPrivate;
+
+#define JS_RENDER_TYPE_JS_RENDER (js_render_js_render_get_type ())
+#define JS_RENDER_JS_RENDER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JS_RENDER_TYPE_JS_RENDER, JsRenderJsRender))
+#define JS_RENDER_JS_RENDER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JS_RENDER_TYPE_JS_RENDER, JsRenderJsRenderClass))
+#define JS_RENDER_IS_JS_RENDER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JS_RENDER_TYPE_JS_RENDER))
+#define JS_RENDER_IS_JS_RENDER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JS_RENDER_TYPE_JS_RENDER))
+#define JS_RENDER_JS_RENDER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JS_RENDER_TYPE_JS_RENDER, JsRenderJsRenderClass))
+
+typedef struct _JsRenderJsRender JsRenderJsRender;
+typedef struct _JsRenderJsRenderClass JsRenderJsRenderClass;
+#define _g_free0(var) (var = (g_free (var), NULL))
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define __g_list_free__g_object_unref0_0(var) ((var == NULL) ? NULL : (var = (_g_list_free__g_object_unref0_ (var), NULL)))
+#define __vala_JsonNode_free0(var) ((var == NULL) ? NULL : (var = (_vala_JsonNode_free (var), NULL)))
+typedef struct _JsRenderJsRenderPrivate JsRenderJsRenderPrivate;
+
+#define JS_RENDER_TYPE_NODE (js_render_node_get_type ())
+#define JS_RENDER_NODE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JS_RENDER_TYPE_NODE, JsRenderNode))
+#define JS_RENDER_NODE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JS_RENDER_TYPE_NODE, JsRenderNodeClass))
+#define JS_RENDER_IS_NODE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JS_RENDER_TYPE_NODE))
+#define JS_RENDER_IS_NODE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JS_RENDER_TYPE_NODE))
+#define JS_RENDER_NODE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JS_RENDER_TYPE_NODE, JsRenderNodeClass))
+
+typedef struct _JsRenderNode JsRenderNode;
+typedef struct _JsRenderNodeClass JsRenderNodeClass;
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+#define __g_list_free__g_free0_0(var) ((var == NULL) ? NULL : (var = (_g_list_free__g_free0_ (var), NULL)))
+typedef struct _ProjectParamSpecProject ProjectParamSpecProject;
+
+struct _ProjectProject {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ ProjectProjectPrivate * priv;
+ gchar* id;
+ gchar* fn;
+ gchar* name;
+ GeeHashMap* paths;
+ GList* files;
+ gchar* xtype;
+};
+
+struct _ProjectProjectClass {
+ GTypeClass parent_class;
+ void (*finalize) (ProjectProject *self);
+};
+
+struct _JsRenderJsRender {
+ GObject parent_instance;
+ JsRenderJsRenderPrivate * priv;
+ GList* doubleStringProps;
+ gchar* id;
+ gchar* name;
+ gchar* fullname;
+ gchar* path;
+ gchar* parent;
+ gchar* title;
+ gchar* permname;
+ gchar* modOrder;
+ gchar* xtype;
+ ProjectProject* project;
+ JsRenderNode* tree;
+ GList* cn;
+ gboolean hasParent;
+};
+
+struct _JsRenderJsRenderClass {
+ GObjectClass parent_class;
+};
+
+struct _ProjectParamSpecProject {
+ GParamSpec parent_instance;
+};
+
+
+static gpointer project_project_parent_class = NULL;
+
+gpointer project_project_ref (gpointer instance);
+void project_project_unref (gpointer instance);
+GParamSpec* project_param_spec_project (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void project_value_set_project (GValue* value, gpointer v_object);
+void project_value_take_project (GValue* value, gpointer v_object);
+gpointer project_value_get_project (const GValue* value);
+GType project_project_get_type (void) G_GNUC_CONST;
+GType js_render_js_render_get_type (void) G_GNUC_CONST;
+enum {
+ PROJECT_PROJECT_DUMMY_PROPERTY
+};
+static void _g_object_unref0_ (gpointer var);
+static void _g_list_free__g_object_unref0_ (GList* self);
+ProjectProject* project_project_new (const gchar* path);
+ProjectProject* project_project_construct (GType object_type, const gchar* path);
+void project_project_scanDirs (ProjectProject* self);
+void project_project_onChanged (ProjectProject* self);
+gchar* project_project_toJSON (ProjectProject* self);
+static void _vala_JsonNode_free (JsonNode* self);
+gchar* project_project_getName (ProjectProject* self);
+GList* project_project_toTree (ProjectProject* self);
+gpointer js_render_node_ref (gpointer instance);
+void js_render_node_unref (gpointer instance);
+GParamSpec* js_render_param_spec_node (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void js_render_value_set_node (GValue* value, gpointer v_object);
+void js_render_value_take_node (GValue* value, gpointer v_object);
+gpointer js_render_value_get_node (const GValue* value);
+GType js_render_node_get_type (void) G_GNUC_CONST;
+static gint __lambda6_ (JsRenderJsRender* a, JsRenderJsRender* b);
+static gint ___lambda6__gcompare_func (gconstpointer a, gconstpointer b);
+JsRenderJsRender* project_project_getById (ProjectProject* self, const gchar* id);
+JsRenderJsRender* project_project_loadFileOnly (ProjectProject* self, const gchar* path);
+JsRenderJsRender* js_render_js_render_factory (const gchar* xt, ProjectProject* project, const gchar* path);
+JsRenderJsRender* project_project_create (ProjectProject* self, const gchar* filename);
+void js_render_js_render_save (JsRenderJsRender* self);
+void project_project_addFile (ProjectProject* self, JsRenderJsRender* pfile);
+void project_project_add (ProjectProject* self, const gchar* path, const gchar* type);
+void project_project_scanDir (ProjectProject* self, const gchar* dir, gint dp);
+static void _g_free0_ (gpointer var);
+static void _g_list_free__g_free0_ (GList* self);
+static void project_project_finalize (ProjectProject* obj);
+
+
+static void _g_object_unref0_ (gpointer var) {
+ (var == NULL) ? NULL : (var = (g_object_unref (var), NULL));
+}
+
+
+static void _g_list_free__g_object_unref0_ (GList* self) {
+ g_list_foreach (self, (GFunc) _g_object_unref0_, NULL);
+ g_list_free (self);
+}
+
+
+ProjectProject* project_project_construct (GType object_type, const gchar* path) {
+ ProjectProject* self = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ g_return_val_if_fail (path != NULL, NULL);
+ self = (ProjectProject*) g_type_create_instance (object_type);
+ _tmp0_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL, NULL);
+ _g_object_unref0 (self->paths);
+ self->paths = _tmp0_;
+ __g_list_free__g_object_unref0_0 (self->files);
+ self->files = NULL;
+ project_project_scanDirs (self);
+ return self;
+}
+
+
+ProjectProject* project_project_new (const gchar* path) {
+ return project_project_construct (PROJECT_TYPE_PROJECT, path);
+}
+
+
+void project_project_onChanged (ProjectProject* self) {
+ g_return_if_fail (self != NULL);
+}
+
+
+static void _vala_JsonNode_free (JsonNode* self) {
+ g_boxed_free (json_node_get_type (), self);
+}
+
+
+gchar* project_project_toJSON (ProjectProject* self) {
+ gchar* result = NULL;
+ JsonBuilder* builder = NULL;
+ JsonBuilder* _tmp0_ = NULL;
+ JsonBuilder* _tmp1_ = NULL;
+ JsonBuilder* _tmp2_ = NULL;
+ JsonBuilder* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ JsonBuilder* _tmp5_ = NULL;
+ JsonBuilder* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ JsonBuilder* _tmp8_ = NULL;
+ JsonBuilder* _tmp9_ = NULL;
+ const gchar* _tmp10_ = NULL;
+ JsonBuilder* _tmp11_ = NULL;
+ JsonBuilder* _tmp12_ = NULL;
+ GeeMapIterator* iter = NULL;
+ GeeHashMap* _tmp13_ = NULL;
+ GeeMapIterator* _tmp14_ = NULL;
+ JsonBuilder* _tmp21_ = NULL;
+ JsonGenerator* generator = NULL;
+ JsonGenerator* _tmp22_ = NULL;
+ JsonNode* root = NULL;
+ JsonBuilder* _tmp23_ = NULL;
+ JsonNode* _tmp24_ = NULL;
+ gchar* _tmp25_ = NULL;
+ g_return_val_if_fail (self != NULL, NULL);
+ _tmp0_ = json_builder_new ();
+ builder = _tmp0_;
+ _tmp1_ = builder;
+ json_builder_begin_object (_tmp1_);
+ _tmp2_ = builder;
+ json_builder_set_member_name (_tmp2_, "name");
+ _tmp3_ = builder;
+ _tmp4_ = self->name;
+ json_builder_add_string_value (_tmp3_, _tmp4_);
+ _tmp5_ = builder;
+ json_builder_set_member_name (_tmp5_, "fn");
+ _tmp6_ = builder;
+ _tmp7_ = self->fn;
+ json_builder_add_string_value (_tmp6_, _tmp7_);
+ _tmp8_ = builder;
+ json_builder_set_member_name (_tmp8_, "xtype");
+ _tmp9_ = builder;
+ _tmp10_ = self->xtype;
+ json_builder_add_string_value (_tmp9_, _tmp10_);
+ _tmp11_ = builder;
+ json_builder_set_member_name (_tmp11_, "paths");
+ _tmp12_ = builder;
+ json_builder_begin_array (_tmp12_);
+ _tmp13_ = self->paths;
+ _tmp14_ = gee_abstract_map_map_iterator ((GeeAbstractMap*) _tmp13_);
+ iter = _tmp14_;
+ while (TRUE) {
+ GeeMapIterator* _tmp15_ = NULL;
+ gboolean _tmp16_ = FALSE;
+ JsonBuilder* _tmp17_ = NULL;
+ GeeMapIterator* _tmp18_ = NULL;
+ gpointer _tmp19_ = NULL;
+ gchar* _tmp20_ = NULL;
+ _tmp15_ = iter;
+ _tmp16_ = gee_map_iterator_next (_tmp15_);
+ if (!_tmp16_) {
+ break;
+ }
+ _tmp17_ = builder;
+ _tmp18_ = iter;
+ _tmp19_ = gee_map_iterator_get_key (_tmp18_);
+ _tmp20_ = (gchar*) _tmp19_;
+ json_builder_add_string_value (_tmp17_, _tmp20_);
+ _g_free0 (_tmp20_);
+ }
+ _tmp21_ = builder;
+ json_builder_end_array (_tmp21_);
+ _tmp22_ = json_generator_new ();
+ generator = _tmp22_;
+ _tmp23_ = builder;
+ _tmp24_ = json_builder_get_root (_tmp23_);
+ root = _tmp24_;
+ json_generator_set_root (generator, root);
+ _tmp25_ = json_generator_to_data (generator, NULL);
+ result = _tmp25_;
+ __vala_JsonNode_free0 (root);
+ _g_object_unref0 (generator);
+ _g_object_unref0 (iter);
+ _g_object_unref0 (builder);
+ return result;
+}
+
+
+gchar* project_project_getName (ProjectProject* self) {
+ gchar* result = NULL;
+ GeeMapIterator* iter = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ GeeMapIterator* _tmp1_ = NULL;
+ gchar* _tmp9_ = NULL;
+ g_return_val_if_fail (self != NULL, NULL);
+ _tmp0_ = self->paths;
+ _tmp1_ = gee_abstract_map_map_iterator ((GeeAbstractMap*) _tmp0_);
+ iter = _tmp1_;
+ while (TRUE) {
+ GeeMapIterator* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ GeeMapIterator* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ _tmp2_ = iter;
+ _tmp3_ = gee_map_iterator_next (_tmp2_);
+ if (!_tmp3_) {
+ break;
+ }
+ _tmp4_ = iter;
+ _tmp5_ = gee_map_iterator_get_key (_tmp4_);
+ _tmp6_ = (gchar*) _tmp5_;
+ _tmp7_ = g_path_get_basename (_tmp6_);
+ _tmp8_ = _tmp7_;
+ _g_free0 (_tmp6_);
+ result = _tmp8_;
+ _g_object_unref0 (iter);
+ return result;
+ }
+ _tmp9_ = g_strdup ("");
+ result = _tmp9_;
+ _g_object_unref0 (iter);
+ return result;
+}
+
+
+/**
+ *
+ * to tree - > should
+ */
+static gpointer _g_object_ref0 (gpointer self) {
+ return self ? g_object_ref (self) : NULL;
+}
+
+
+static gint __lambda6_ (JsRenderJsRender* a, JsRenderJsRender* b) {
+ gint result = 0;
+ gint _tmp0_ = 0;
+ JsRenderJsRender* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ JsRenderJsRender* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ g_return_val_if_fail (a != NULL, 0);
+ g_return_val_if_fail (b != NULL, 0);
+ _tmp1_ = a;
+ _tmp2_ = _tmp1_->path;
+ _tmp3_ = b;
+ _tmp4_ = _tmp3_->path;
+ if (g_strcmp0 (_tmp2_, _tmp4_) > 0) {
+ _tmp0_ = 1;
+ } else {
+ _tmp0_ = -1;
+ }
+ result = _tmp0_;
+ return result;
+}
+
+
+static gint ___lambda6__gcompare_func (gconstpointer a, gconstpointer b) {
+ gint result;
+ result = __lambda6_ ((JsRenderJsRender*) a, (JsRenderJsRender*) b);
+ return result;
+}
+
+
+GList* project_project_toTree (ProjectProject* self) {
+ GList* result = NULL;
+ GeeHashMap* files = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ GeeMapIterator* iter = NULL;
+ GeeHashMap* _tmp22_ = NULL;
+ GeeMapIterator* _tmp23_ = NULL;
+ GList* ret = NULL;
+ GeeHashMap* _tmp44_ = NULL;
+ GeeMapIterator* _tmp45_ = NULL;
+ g_return_val_if_fail (self != NULL, NULL);
+ _tmp0_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, JS_RENDER_TYPE_JS_RENDER, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+ files = _tmp0_;
+ {
+ gint i = 0;
+ i = 0;
+ {
+ gboolean _tmp1_ = FALSE;
+ _tmp1_ = TRUE;
+ while (TRUE) {
+ gint _tmp3_ = 0;
+ GList* _tmp4_ = NULL;
+ guint _tmp5_ = 0U;
+ JsRenderJsRender* fo = NULL;
+ GList* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ gconstpointer _tmp8_ = NULL;
+ JsRenderJsRender* _tmp9_ = NULL;
+ JsRenderJsRender* _tmp10_ = NULL;
+ JsRenderJsRender* _tmp11_ = NULL;
+ GList* _tmp12_ = NULL;
+ gint _tmp13_ = 0;
+ gconstpointer _tmp14_ = NULL;
+ const gchar* _tmp15_ = NULL;
+ gint _tmp16_ = 0;
+ gint _tmp17_ = 0;
+ if (!_tmp1_) {
+ gint _tmp2_ = 0;
+ _tmp2_ = i;
+ i = _tmp2_ + 1;
+ }
+ _tmp1_ = FALSE;
+ _tmp3_ = i;
+ _tmp4_ = self->files;
+ _tmp5_ = g_list_length (_tmp4_);
+ if (!(((guint) _tmp3_) < _tmp5_)) {
+ break;
+ }
+ _tmp6_ = self->files;
+ _tmp7_ = i;
+ _tmp8_ = g_list_nth_data (_tmp6_, (guint) _tmp7_);
+ _tmp9_ = _g_object_ref0 ((JsRenderJsRender*) _tmp8_);
+ fo = _tmp9_;
+ _tmp10_ = fo;
+ _tmp10_->hasParent = FALSE;
+ _tmp11_ = fo;
+ __g_list_free__g_object_unref0_0 (_tmp11_->cn);
+ _tmp11_->cn = NULL;
+ _tmp12_ = self->files;
+ _tmp13_ = i;
+ _tmp14_ = g_list_nth_data (_tmp12_, (guint) _tmp13_);
+ _tmp15_ = ((JsRenderJsRender*) _tmp14_)->fullname;
+ _tmp16_ = strlen (_tmp15_);
+ _tmp17_ = _tmp16_;
+ if (_tmp17_ > 0) {
+ GeeHashMap* _tmp18_ = NULL;
+ JsRenderJsRender* _tmp19_ = NULL;
+ const gchar* _tmp20_ = NULL;
+ JsRenderJsRender* _tmp21_ = NULL;
+ _tmp18_ = files;
+ _tmp19_ = fo;
+ _tmp20_ = _tmp19_->fullname;
+ _tmp21_ = fo;
+ gee_abstract_map_set ((GeeAbstractMap*) _tmp18_, _tmp20_, _tmp21_);
+ }
+ _g_object_unref0 (fo);
+ }
+ }
+ }
+ _tmp22_ = files;
+ _tmp23_ = gee_abstract_map_map_iterator ((GeeAbstractMap*) _tmp22_);
+ iter = _tmp23_;
+ while (TRUE) {
+ GeeMapIterator* _tmp24_ = NULL;
+ gboolean _tmp25_ = FALSE;
+ JsRenderJsRender* f = NULL;
+ GeeMapIterator* _tmp26_ = NULL;
+ gpointer _tmp27_ = NULL;
+ gchar* par = NULL;
+ JsRenderJsRender* _tmp28_ = NULL;
+ const gchar* _tmp29_ = NULL;
+ gchar* _tmp30_ = NULL;
+ const gchar* _tmp31_ = NULL;
+ gint _tmp32_ = 0;
+ gint _tmp33_ = 0;
+ GeeHashMap* _tmp34_ = NULL;
+ const gchar* _tmp35_ = NULL;
+ gboolean _tmp36_ = FALSE;
+ GeeHashMap* _tmp37_ = NULL;
+ const gchar* _tmp38_ = NULL;
+ gpointer _tmp39_ = NULL;
+ JsRenderJsRender* _tmp40_ = NULL;
+ JsRenderJsRender* _tmp41_ = NULL;
+ JsRenderJsRender* _tmp42_ = NULL;
+ JsRenderJsRender* _tmp43_ = NULL;
+ _tmp24_ = iter;
+ _tmp25_ = gee_map_iterator_next (_tmp24_);
+ if (!_tmp25_) {
+ break;
+ }
+ _tmp26_ = iter;
+ _tmp27_ = gee_map_iterator_get_value (_tmp26_);
+ f = (JsRenderJsRender*) _tmp27_;
+ _tmp28_ = f;
+ _tmp29_ = _tmp28_->parent;
+ _tmp30_ = g_strdup (_tmp29_);
+ par = _tmp30_;
+ _tmp31_ = par;
+ _tmp32_ = strlen (_tmp31_);
+ _tmp33_ = _tmp32_;
+ if (_tmp33_ < 1) {
+ _g_free0 (par);
+ _g_object_unref0 (f);
+ continue;
+ }
+ _tmp34_ = files;
+ _tmp35_ = par;
+ _tmp36_ = gee_abstract_map_has_key ((GeeAbstractMap*) _tmp34_, _tmp35_);
+ if (!_tmp36_) {
+ _g_free0 (par);
+ _g_object_unref0 (f);
+ continue;
+ }
+ _tmp37_ = files;
+ _tmp38_ = par;
+ _tmp39_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp37_, _tmp38_);
+ _tmp40_ = (JsRenderJsRender*) _tmp39_;
+ _tmp41_ = f;
+ _tmp42_ = _g_object_ref0 (_tmp41_);
+ _tmp40_->cn = g_list_append (_tmp40_->cn, _tmp42_);
+ _g_object_unref0 (_tmp40_);
+ _tmp43_ = f;
+ _tmp43_->hasParent = TRUE;
+ _g_free0 (par);
+ _g_object_unref0 (f);
+ }
+ ret = NULL;
+ _tmp44_ = files;
+ _tmp45_ = gee_abstract_map_map_iterator ((GeeAbstractMap*) _tmp44_);
+ _g_object_unref0 (iter);
+ iter = _tmp45_;
+ while (TRUE) {
+ GeeMapIterator* _tmp46_ = NULL;
+ gboolean _tmp47_ = FALSE;
+ JsRenderJsRender* f = NULL;
+ GeeMapIterator* _tmp48_ = NULL;
+ gpointer _tmp49_ = NULL;
+ JsRenderJsRender* _tmp50_ = NULL;
+ gboolean _tmp51_ = FALSE;
+ GeeHashMap* _tmp52_ = NULL;
+ JsRenderJsRender* _tmp53_ = NULL;
+ const gchar* _tmp54_ = NULL;
+ gboolean _tmp55_ = FALSE;
+ _tmp46_ = iter;
+ _tmp47_ = gee_map_iterator_next (_tmp46_);
+ if (!_tmp47_) {
+ break;
+ }
+ _tmp48_ = iter;
+ _tmp49_ = gee_map_iterator_get_value (_tmp48_);
+ f = (JsRenderJsRender*) _tmp49_;
+ _tmp50_ = f;
+ _tmp51_ = _tmp50_->hasParent;
+ if (_tmp51_) {
+ _g_object_unref0 (f);
+ continue;
+ }
+ _tmp52_ = files;
+ _tmp53_ = f;
+ _tmp54_ = _tmp53_->fullname;
+ _tmp55_ = gee_abstract_map_has_key ((GeeAbstractMap*) _tmp52_, _tmp54_);
+ if (_tmp55_) {
+ JsRenderJsRender* _tmp56_ = NULL;
+ JsRenderJsRender* _tmp57_ = NULL;
+ _tmp56_ = f;
+ _tmp57_ = _g_object_ref0 (_tmp56_);
+ ret = g_list_append (ret, _tmp57_);
+ }
+ _g_object_unref0 (f);
+ }
+ ret = g_list_sort (ret, ___lambda6__gcompare_func);
+ result = ret;
+ _g_object_unref0 (iter);
+ _g_object_unref0 (files);
+ return result;
+}
+
+
+JsRenderJsRender* project_project_getById (ProjectProject* self, const gchar* id) {
+ JsRenderJsRender* result = NULL;
+ g_return_val_if_fail (self != NULL, NULL);
+ g_return_val_if_fail (id != NULL, NULL);
+ {
+ gint i = 0;
+ i = 0;
+ {
+ gboolean _tmp0_ = FALSE;
+ _tmp0_ = TRUE;
+ while (TRUE) {
+ gint _tmp2_ = 0;
+ GList* _tmp3_ = NULL;
+ guint _tmp4_ = 0U;
+ JsRenderJsRender* f = NULL;
+ GList* _tmp5_ = NULL;
+ gint _tmp6_ = 0;
+ gconstpointer _tmp7_ = NULL;
+ JsRenderJsRender* _tmp8_ = NULL;
+ JsRenderJsRender* _tmp9_ = NULL;
+ const gchar* _tmp10_ = NULL;
+ const gchar* _tmp11_ = NULL;
+ if (!_tmp0_) {
+ gint _tmp1_ = 0;
+ _tmp1_ = i;
+ i = _tmp1_ + 1;
+ }
+ _tmp0_ = FALSE;
+ _tmp2_ = i;
+ _tmp3_ = self->files;
+ _tmp4_ = g_list_length (_tmp3_);
+ if (!(((guint) _tmp2_) < _tmp4_)) {
+ break;
+ }
+ _tmp5_ = self->files;
+ _tmp6_ = i;
+ _tmp7_ = g_list_nth_data (_tmp5_, (guint) _tmp6_);
+ _tmp8_ = _g_object_ref0 ((JsRenderJsRender*) _tmp7_);
+ f = _tmp8_;
+ _tmp9_ = f;
+ _tmp10_ = _tmp9_->id;
+ _tmp11_ = id;
+ if (g_strcmp0 (_tmp10_, _tmp11_) == 0) {
+ result = f;
+ return result;
+ }
+ _g_object_unref0 (f);
+ }
+ }
+ }
+ result = NULL;
+ return result;
+}
+
+
+JsRenderJsRender* project_project_loadFileOnly (ProjectProject* self, const gchar* path) {
+ JsRenderJsRender* result = NULL;
+ gchar* xt = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ JsRenderJsRender* _tmp3_ = NULL;
+ g_return_val_if_fail (self != NULL, NULL);
+ g_return_val_if_fail (path != NULL, NULL);
+ _tmp0_ = self->xtype;
+ _tmp1_ = g_strdup (_tmp0_);
+ xt = _tmp1_;
+ _tmp2_ = path;
+ _tmp3_ = js_render_js_render_factory (xt, self, _tmp2_);
+ result = _tmp3_;
+ _g_free0 (xt);
+ return result;
+}
+
+
+JsRenderJsRender* project_project_create (ProjectProject* self, const gchar* filename) {
+ JsRenderJsRender* result = NULL;
+ JsRenderJsRender* ret = NULL;
+ const gchar* _tmp0_ = NULL;
+ JsRenderJsRender* _tmp1_ = NULL;
+ g_return_val_if_fail (self != NULL, NULL);
+ g_return_val_if_fail (filename != NULL, NULL);
+ _tmp0_ = filename;
+ _tmp1_ = project_project_loadFileOnly (self, _tmp0_);
+ ret = _tmp1_;
+ js_render_js_render_save (ret);
+ project_project_addFile (self, ret);
+ result = ret;
+ return result;
+}
+
+
+void project_project_addFile (ProjectProject* self, JsRenderJsRender* pfile) {
+ JsRenderJsRender* _tmp0_ = NULL;
+ JsRenderJsRender* _tmp1_ = NULL;
+ g_return_if_fail (self != NULL);
+ g_return_if_fail (pfile != NULL);
+ _tmp0_ = pfile;
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+ self->files = g_list_append (self->files, _tmp1_);
+ project_project_onChanged (self);
+}
+
+
+void project_project_add (ProjectProject* self, const gchar* path, const gchar* type) {
+ GeeHashMap* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ g_return_if_fail (self != NULL);
+ g_return_if_fail (path != NULL);
+ g_return_if_fail (type != NULL);
+ _tmp0_ = self->paths;
+ _tmp1_ = path;
+ _tmp2_ = type;
+ gee_abstract_map_set ((GeeAbstractMap*) _tmp0_, _tmp1_, _tmp2_);
+ _tmp3_ = type;
+ if (g_strcmp0 (_tmp3_, "dir") == 0) {
+ const gchar* _tmp4_ = NULL;
+ _tmp4_ = path;
+ project_project_scanDir (self, _tmp4_, 0);
+ }
+ _tmp5_ = type;
+ if (g_strcmp0 (_tmp5_, "file") == 0) {
+ const gchar* _tmp6_ = NULL;
+ JsRenderJsRender* _tmp7_ = NULL;
+ _tmp6_ = path;
+ _tmp7_ = project_project_loadFileOnly (self, _tmp6_);
+ self->files = g_list_append (self->files, _tmp7_);
+ }
+ project_project_onChanged (self);
+}
+
+
+void project_project_scanDirs (ProjectProject* self) {
+ GeeMapIterator* iter = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ GeeMapIterator* _tmp1_ = NULL;
+ g_return_if_fail (self != NULL);
+ _tmp0_ = self->paths;
+ _tmp1_ = gee_abstract_map_map_iterator ((GeeAbstractMap*) _tmp0_);
+ iter = _tmp1_;
+ while (TRUE) {
+ GeeMapIterator* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ GeeMapIterator* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ GeeMapIterator* _tmp8_ = NULL;
+ gpointer _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ _tmp2_ = iter;
+ _tmp3_ = gee_map_iterator_next (_tmp2_);
+ if (!_tmp3_) {
+ break;
+ }
+ _tmp4_ = iter;
+ _tmp5_ = gee_map_iterator_get_value (_tmp4_);
+ _tmp6_ = (gchar*) _tmp5_;
+ _tmp7_ = g_strcmp0 (_tmp6_, "dir") != 0;
+ _g_free0 (_tmp6_);
+ if (_tmp7_) {
+ continue;
+ }
+ _tmp8_ = iter;
+ _tmp9_ = gee_map_iterator_get_key (_tmp8_);
+ _tmp10_ = (gchar*) _tmp9_;
+ project_project_scanDir (self, _tmp10_, 0);
+ _g_free0 (_tmp10_);
+ }
+ _g_object_unref0 (iter);
+}
+
+
+static gchar string_get (const gchar* self, glong index) {
+ gchar result = '\0';
+ glong _tmp0_ = 0L;
+ gchar _tmp1_ = '\0';
+ g_return_val_if_fail (self != NULL, '\0');
+ _tmp0_ = index;
+ _tmp1_ = ((gchar*) self)[_tmp0_];
+ result = _tmp1_;
+ return result;
+}
+
+
+static void _g_free0_ (gpointer var) {
+ var = (g_free (var), NULL);
+}
+
+
+static void _g_list_free__g_free0_ (GList* self) {
+ g_list_foreach (self, (GFunc) _g_free0_, NULL);
+ g_list_free (self);
+}
+
+
+void project_project_scanDir (ProjectProject* self, const gchar* dir, gint dp) {
+ gint _tmp0_ = 0;
+ GList* subs = NULL;
+ GFile* f = NULL;
+ const gchar* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ GError * _inner_error_ = NULL;
+ g_return_if_fail (self != NULL);
+ g_return_if_fail (dir != NULL);
+ _tmp0_ = dp;
+ if (_tmp0_ > 5) {
+ return;
+ }
+ subs = NULL;
+ _tmp1_ = dir;
+ _tmp2_ = g_file_new_for_path (_tmp1_);
+ f = _tmp2_;
+ {
+ GFileEnumerator* file_enum = NULL;
+ GFile* _tmp3_ = NULL;
+ GFileEnumerator* _tmp4_ = NULL;
+ GFileInfo* next_file = NULL;
+ _tmp3_ = f;
+ _tmp4_ = g_file_enumerate_children (_tmp3_, G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME, G_FILE_QUERY_INFO_NONE, NULL, &_inner_error_);
+ file_enum = _tmp4_;
+ if (_inner_error_ != NULL) {
+ goto __catch8_g_error;
+ }
+ while (TRUE) {
+ GFileInfo* _tmp5_ = NULL;
+ GFileEnumerator* _tmp6_ = NULL;
+ GFileInfo* _tmp7_ = NULL;
+ GFileInfo* _tmp8_ = NULL;
+ GFileInfo* _tmp9_ = NULL;
+ gchar* fn = NULL;
+ GFileInfo* _tmp10_ = NULL;
+ const gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ const gchar* _tmp13_ = NULL;
+ gchar _tmp14_ = '\0';
+ const gchar* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ const gchar* _tmp18_ = NULL;
+ gchar* _tmp19_ = NULL;
+ gchar* _tmp20_ = NULL;
+ gboolean _tmp21_ = FALSE;
+ gboolean _tmp22_ = FALSE;
+ const gchar* _tmp28_ = NULL;
+ gboolean _tmp29_ = FALSE;
+ gchar* xt = NULL;
+ const gchar* _tmp30_ = NULL;
+ gchar* _tmp31_ = NULL;
+ const gchar* _tmp32_ = NULL;
+ const gchar* _tmp33_ = NULL;
+ gchar* _tmp34_ = NULL;
+ gchar* _tmp35_ = NULL;
+ const gchar* _tmp36_ = NULL;
+ gchar* _tmp37_ = NULL;
+ gchar* _tmp38_ = NULL;
+ JsRenderJsRender* _tmp39_ = NULL;
+ JsRenderJsRender* _tmp40_ = NULL;
+ _tmp6_ = file_enum;
+ _tmp7_ = g_file_enumerator_next_file (_tmp6_, NULL, &_inner_error_);
+ _tmp5_ = _tmp7_;
+ if (_inner_error_ != NULL) {
+ _g_object_unref0 (next_file);
+ _g_object_unref0 (file_enum);
+ goto __catch8_g_error;
+ }
+ _tmp8_ = _tmp5_;
+ _tmp5_ = NULL;
+ _g_object_unref0 (next_file);
+ next_file = _tmp8_;
+ _tmp9_ = next_file;
+ if (!(_tmp9_ != NULL)) {
+ _g_object_unref0 (_tmp5_);
+ break;
+ }
+ _tmp10_ = next_file;
+ _tmp11_ = g_file_info_get_display_name (_tmp10_);
+ _tmp12_ = g_strdup (_tmp11_);
+ fn = _tmp12_;
+ _tmp13_ = fn;
+ _tmp14_ = string_get (_tmp13_, (glong) 0);
+ if (_tmp14_ == '.') {
+ _g_free0 (fn);
+ _g_object_unref0 (_tmp5_);
+ continue;
+ }
+ _tmp15_ = dir;
+ _tmp16_ = g_strconcat (_tmp15_, "/", NULL);
+ _tmp17_ = _tmp16_;
+ _tmp18_ = fn;
+ _tmp19_ = g_strconcat (_tmp17_, _tmp18_, NULL);
+ _tmp20_ = _tmp19_;
+ _tmp21_ = g_file_test (_tmp20_, G_FILE_TEST_IS_DIR);
+ _tmp22_ = _tmp21_;
+ _g_free0 (_tmp20_);
+ _g_free0 (_tmp17_);
+ if (_tmp22_) {
+ const gchar* _tmp23_ = NULL;
+ gchar* _tmp24_ = NULL;
+ gchar* _tmp25_ = NULL;
+ const gchar* _tmp26_ = NULL;
+ gchar* _tmp27_ = NULL;
+ _tmp23_ = dir;
+ _tmp24_ = g_strconcat (_tmp23_, "/", NULL);
+ _tmp25_ = _tmp24_;
+ _tmp26_ = fn;
+ _tmp27_ = g_strconcat (_tmp25_, _tmp26_, NULL);
+ subs = g_list_append (subs, _tmp27_);
+ _g_free0 (_tmp25_);
+ _g_free0 (fn);
+ _g_object_unref0 (_tmp5_);
+ continue;
+ }
+ _tmp28_ = fn;
+ _tmp29_ = g_regex_match_simple ("\\.bjs$", _tmp28_, 0, 0);
+ if (!_tmp29_) {
+ _g_free0 (fn);
+ _g_object_unref0 (_tmp5_);
+ continue;
+ }
+ _tmp30_ = self->xtype;
+ _tmp31_ = g_strdup (_tmp30_);
+ xt = _tmp31_;
+ _tmp32_ = xt;
+ _tmp33_ = dir;
+ _tmp34_ = g_strconcat (_tmp33_, "/", NULL);
+ _tmp35_ = _tmp34_;
+ _tmp36_ = fn;
+ _tmp37_ = g_strconcat (_tmp35_, _tmp36_, NULL);
+ _tmp38_ = _tmp37_;
+ _tmp39_ = js_render_js_render_factory (_tmp32_, self, _tmp38_);
+ _tmp40_ = _tmp39_;
+ _g_object_unref0 (_tmp40_);
+ _g_free0 (_tmp38_);
+ _g_free0 (_tmp35_);
+ _g_free0 (xt);
+ _g_free0 (fn);
+ _g_object_unref0 (_tmp5_);
+ }
+ _g_object_unref0 (next_file);
+ _g_object_unref0 (file_enum);
+ }
+ goto __finally8;
+ __catch8_g_error:
+ {
+ GError* e = NULL;
+ e = _inner_error_;
+ _inner_error_ = NULL;
+ g_print ("Project::scanDirs failed");
+ _g_error_free0 (e);
+ }
+ __finally8:
+ if (_inner_error_ != NULL) {
+ _g_object_unref0 (f);
+ __g_list_free__g_free0_0 (subs);
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+ g_clear_error (&_inner_error_);
+ return;
+ }
+ {
+ gint i = 0;
+ i = 0;
+ {
+ gboolean _tmp41_ = FALSE;
+ _tmp41_ = TRUE;
+ while (TRUE) {
+ gint _tmp43_ = 0;
+ GList* _tmp44_ = NULL;
+ guint _tmp45_ = 0U;
+ GList* _tmp46_ = NULL;
+ gint _tmp47_ = 0;
+ gconstpointer _tmp48_ = NULL;
+ gint _tmp49_ = 0;
+ if (!_tmp41_) {
+ gint _tmp42_ = 0;
+ _tmp42_ = i;
+ i = _tmp42_ + 1;
+ }
+ _tmp41_ = FALSE;
+ _tmp43_ = i;
+ _tmp44_ = subs;
+ _tmp45_ = g_list_length (_tmp44_);
+ if (!(((guint) _tmp43_) < _tmp45_)) {
+ break;
+ }
+ _tmp46_ = subs;
+ _tmp47_ = i;
+ _tmp48_ = g_list_nth_data (_tmp46_, (guint) _tmp47_);
+ _tmp49_ = dp;
+ project_project_scanDir (self, (const gchar*) _tmp48_, _tmp49_ + 1);
+ }
+ }
+ }
+ _g_object_unref0 (f);
+ __g_list_free__g_free0_0 (subs);
+}
+
+
+static void project_value_project_init (GValue* value) {
+ value->data[0].v_pointer = NULL;
+}
+
+
+static void project_value_project_free_value (GValue* value) {
+ if (value->data[0].v_pointer) {
+ project_project_unref (value->data[0].v_pointer);
+ }
+}
+
+
+static void project_value_project_copy_value (const GValue* src_value, GValue* dest_value) {
+ if (src_value->data[0].v_pointer) {
+ dest_value->data[0].v_pointer = project_project_ref (src_value->data[0].v_pointer);
+ } else {
+ dest_value->data[0].v_pointer = NULL;
+ }
+}
+
+
+static gpointer project_value_project_peek_pointer (const GValue* value) {
+ return value->data[0].v_pointer;
+}
+
+
+static gchar* project_value_project_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ if (collect_values[0].v_pointer) {
+ ProjectProject* object;
+ object = collect_values[0].v_pointer;
+ if (object->parent_instance.g_class == NULL) {
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+ }
+ value->data[0].v_pointer = project_project_ref (object);
+ } else {
+ value->data[0].v_pointer = NULL;
+ }
+ return NULL;
+}
+
+
+static gchar* project_value_project_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ ProjectProject** object_p;
+ object_p = collect_values[0].v_pointer;
+ if (!object_p) {
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+ }
+ if (!value->data[0].v_pointer) {
+ *object_p = NULL;
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+ *object_p = value->data[0].v_pointer;
+ } else {
+ *object_p = project_project_ref (value->data[0].v_pointer);
+ }
+ return NULL;
+}
+
+
+GParamSpec* project_param_spec_project (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ProjectParamSpecProject* spec;
+ g_return_val_if_fail (g_type_is_a (object_type, PROJECT_TYPE_PROJECT), NULL);
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+ G_PARAM_SPEC (spec)->value_type = object_type;
+ return G_PARAM_SPEC (spec);
+}
+
+
+gpointer project_value_get_project (const GValue* value) {
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PROJECT_TYPE_PROJECT), NULL);
+ return value->data[0].v_pointer;
+}
+
+
+void project_value_set_project (GValue* value, gpointer v_object) {
+ ProjectProject* old;
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PROJECT_TYPE_PROJECT));
+ old = value->data[0].v_pointer;
+ if (v_object) {
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, PROJECT_TYPE_PROJECT));
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+ value->data[0].v_pointer = v_object;
+ project_project_ref (value->data[0].v_pointer);
+ } else {
+ value->data[0].v_pointer = NULL;
+ }
+ if (old) {
+ project_project_unref (old);
+ }
+}
+
+
+void project_value_take_project (GValue* value, gpointer v_object) {
+ ProjectProject* old;
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PROJECT_TYPE_PROJECT));
+ old = value->data[0].v_pointer;
+ if (v_object) {
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, PROJECT_TYPE_PROJECT));
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+ value->data[0].v_pointer = v_object;
+ } else {
+ value->data[0].v_pointer = NULL;
+ }
+ if (old) {
+ project_project_unref (old);
+ }
+}
+
+
+static void project_project_class_init (ProjectProjectClass * klass) {
+ project_project_parent_class = g_type_class_peek_parent (klass);
+ PROJECT_PROJECT_CLASS (klass)->finalize = project_project_finalize;
+}
+
+
+static void project_project_instance_init (ProjectProject * self) {
+ gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ _tmp0_ = g_strdup ("");
+ self->id = _tmp0_;
+ _tmp1_ = g_strdup ("");
+ self->fn = _tmp1_;
+ _tmp2_ = g_strdup ("");
+ self->name = _tmp2_;
+ _tmp3_ = g_strdup ("");
+ self->xtype = _tmp3_;
+ self->ref_count = 1;
+}
+
+
+static void project_project_finalize (ProjectProject* obj) {
+ ProjectProject * self;
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, PROJECT_TYPE_PROJECT, ProjectProject);
+ _g_free0 (self->id);
+ _g_free0 (self->fn);
+ _g_free0 (self->name);
+ _g_object_unref0 (self->paths);
+ __g_list_free__g_object_unref0_0 (self->files);
+ _g_free0 (self->xtype);
+}
+
+
+/**
+ * Project Object
+ *
+ * Projects can only contain one directory... - it can import other projects..(later)
+ *
+ * we need to sort out that - paths is currently a key/value array..
+ *
+ *
+ *
+ */
+GType project_project_get_type (void) {
+ static volatile gsize project_project_type_id__volatile = 0;
+ if (g_once_init_enter (&project_project_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { project_value_project_init, project_value_project_free_value, project_value_project_copy_value, project_value_project_peek_pointer, "p", project_value_project_collect_value, "p", project_value_project_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (ProjectProjectClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) project_project_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ProjectProject), 0, (GInstanceInitFunc) project_project_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType project_project_type_id;
+ project_project_type_id = g_type_register_fundamental (g_type_fundamental_next (), "ProjectProject", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&project_project_type_id__volatile, project_project_type_id);
+ }
+ return project_project_type_id__volatile;
+}
+
+
+gpointer project_project_ref (gpointer instance) {
+ ProjectProject* self;
+ self = instance;
+ g_atomic_int_inc (&self->ref_count);
+ return instance;
+}
+
+
+void project_project_unref (gpointer instance) {
+ ProjectProject* self;
+ self = instance;
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+ PROJECT_PROJECT_GET_CLASS (self)->finalize (self);
+ g_type_free_instance ((GTypeInstance *) self);
+ }
+}
+
+
+
--- /dev/null
+/* Roo.vala.c generated by valac 0.24.0, the Vala compiler
+ * generated from Roo.vala, do not modify */
+
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gee.h>
+
+
+#define PROJECT_TYPE_PROJECT (project_project_get_type ())
+#define PROJECT_PROJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PROJECT_TYPE_PROJECT, ProjectProject))
+#define PROJECT_PROJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PROJECT_TYPE_PROJECT, ProjectProjectClass))
+#define PROJECT_IS_PROJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PROJECT_TYPE_PROJECT))
+#define PROJECT_IS_PROJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PROJECT_TYPE_PROJECT))
+#define PROJECT_PROJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PROJECT_TYPE_PROJECT, ProjectProjectClass))
+
+typedef struct _ProjectProject ProjectProject;
+typedef struct _ProjectProjectClass ProjectProjectClass;
+typedef struct _ProjectProjectPrivate ProjectProjectPrivate;
+
+#define JS_RENDER_TYPE_JS_RENDER (js_render_js_render_get_type ())
+#define JS_RENDER_JS_RENDER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JS_RENDER_TYPE_JS_RENDER, JsRenderJsRender))
+#define JS_RENDER_JS_RENDER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JS_RENDER_TYPE_JS_RENDER, JsRenderJsRenderClass))
+#define JS_RENDER_IS_JS_RENDER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JS_RENDER_TYPE_JS_RENDER))
+#define JS_RENDER_IS_JS_RENDER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JS_RENDER_TYPE_JS_RENDER))
+#define JS_RENDER_JS_RENDER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JS_RENDER_TYPE_JS_RENDER, JsRenderJsRenderClass))
+
+typedef struct _JsRenderJsRender JsRenderJsRender;
+typedef struct _JsRenderJsRenderClass JsRenderJsRenderClass;
+
+#define PROJECT_TYPE_ROO (project_roo_get_type ())
+#define PROJECT_ROO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PROJECT_TYPE_ROO, ProjectRoo))
+#define PROJECT_ROO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PROJECT_TYPE_ROO, ProjectRooClass))
+#define PROJECT_IS_ROO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PROJECT_TYPE_ROO))
+#define PROJECT_IS_ROO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PROJECT_TYPE_ROO))
+#define PROJECT_ROO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PROJECT_TYPE_ROO, ProjectRooClass))
+
+typedef struct _ProjectRoo ProjectRoo;
+typedef struct _ProjectRooClass ProjectRooClass;
+typedef struct _ProjectRooPrivate ProjectRooPrivate;
+#define _g_free0(var) (var = (g_free (var), NULL))
+
+struct _ProjectProject {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ ProjectProjectPrivate * priv;
+ gchar* id;
+ gchar* fn;
+ gchar* name;
+ GeeHashMap* paths;
+ GList* files;
+ gchar* xtype;
+};
+
+struct _ProjectProjectClass {
+ GTypeClass parent_class;
+ void (*finalize) (ProjectProject *self);
+};
+
+struct _ProjectRoo {
+ ProjectProject parent_instance;
+ ProjectRooPrivate * priv;
+};
+
+struct _ProjectRooClass {
+ ProjectProjectClass parent_class;
+};
+
+
+extern gint rid;
+gint rid = 1;
+static gpointer project_roo_parent_class = NULL;
+
+gpointer project_project_ref (gpointer instance);
+void project_project_unref (gpointer instance);
+GParamSpec* project_param_spec_project (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void project_value_set_project (GValue* value, gpointer v_object);
+void project_value_take_project (GValue* value, gpointer v_object);
+gpointer project_value_get_project (const GValue* value);
+GType project_project_get_type (void) G_GNUC_CONST;
+GType js_render_js_render_get_type (void) G_GNUC_CONST;
+GType project_roo_get_type (void) G_GNUC_CONST;
+enum {
+ PROJECT_ROO_DUMMY_PROPERTY
+};
+static ProjectRoo* project_roo_new (const gchar* path);
+static ProjectRoo* project_roo_construct (GType object_type, const gchar* path);
+ProjectProject* project_project_new (const gchar* path);
+ProjectProject* project_project_construct (GType object_type, const gchar* path);
+
+
+static ProjectRoo* project_roo_construct (GType object_type, const gchar* path) {
+ ProjectRoo* self = NULL;
+ const gchar* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ g_return_val_if_fail (path != NULL, NULL);
+ _tmp0_ = path;
+ self = (ProjectRoo*) project_project_construct (object_type, _tmp0_);
+ _tmp1_ = rid;
+ rid = _tmp1_ + 1;
+ _tmp2_ = g_strdup_printf ("project-roo-%d", _tmp1_);
+ _g_free0 (((ProjectProject*) self)->id);
+ ((ProjectProject*) self)->id = _tmp2_;
+ _tmp3_ = g_strdup ("Roo");
+ _g_free0 (((ProjectProject*) self)->xtype);
+ ((ProjectProject*) self)->xtype = _tmp3_;
+ return self;
+}
+
+
+static ProjectRoo* project_roo_new (const gchar* path) {
+ return project_roo_construct (PROJECT_TYPE_ROO, path);
+}
+
+
+static void project_roo_class_init (ProjectRooClass * klass) {
+ project_roo_parent_class = g_type_class_peek_parent (klass);
+}
+
+
+static void project_roo_instance_init (ProjectRoo * self) {
+}
+
+
+GType project_roo_get_type (void) {
+ static volatile gsize project_roo_type_id__volatile = 0;
+ if (g_once_init_enter (&project_roo_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (ProjectRooClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) project_roo_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ProjectRoo), 0, (GInstanceInitFunc) project_roo_instance_init, NULL };
+ GType project_roo_type_id;
+ project_roo_type_id = g_type_register_static (PROJECT_TYPE_PROJECT, "ProjectRoo", &g_define_type_info, 0);
+ g_once_init_leave (&project_roo_type_id__volatile, project_roo_type_id);
+ }
+ return project_roo_type_id__volatile;
+}
+
+
+