MOVED jsdoc to src/jsdoc
authorAlan Knowles <alan@roojs.com>
Fri, 15 Feb 2019 04:40:20 +0000 (12:40 +0800)
committerAlan Knowles <alan@roojs.com>
Fri, 15 Feb 2019 04:40:20 +0000 (12:40 +0800)
jsdoc
src/jsdoc

40 files changed:
jsdoc/Collapse.c [new file with mode: 0644]
jsdoc/Collapse.vala [new file with mode: 0644]
jsdoc/CompressWhite.c [new file with mode: 0644]
jsdoc/CompressWhite.vala [new file with mode: 0644]
jsdoc/DocBuilder.c [new file with mode: 0644]
jsdoc/DocBuilder.vala [new file with mode: 0644]
jsdoc/DocComment.c [new file with mode: 0644]
jsdoc/DocComment.vala [new file with mode: 0644]
jsdoc/DocParser.c [new file with mode: 0644]
jsdoc/DocParser.vala [new file with mode: 0644]
jsdoc/DocTag.c [new file with mode: 0644]
jsdoc/DocTag.vala [new file with mode: 0644]
jsdoc/Identifier.c [new file with mode: 0644]
jsdoc/Identifier.vala [new file with mode: 0644]
jsdoc/Lang.c [new file with mode: 0644]
jsdoc/Lang.vala [new file with mode: 0644]
jsdoc/Packer.c [new file with mode: 0644]
jsdoc/Packer.vala [new file with mode: 0644]
jsdoc/PackerRun.c [new file with mode: 0644]
jsdoc/PackerRun.vala [new file with mode: 0644]
jsdoc/PrettyPrint.c [new file with mode: 0644]
jsdoc/PrettyPrint.vala [new file with mode: 0644]
jsdoc/Scope.c [new file with mode: 0644]
jsdoc/Scope.vala [new file with mode: 0644]
jsdoc/ScopeParser.c [new file with mode: 0644]
jsdoc/ScopeParser.vala [new file with mode: 0644]
jsdoc/Symbol.c [new file with mode: 0644]
jsdoc/Symbol.vala [new file with mode: 0644]
jsdoc/SymbolSet.c [new file with mode: 0644]
jsdoc/SymbolSet.vala [new file with mode: 0644]
jsdoc/TextStream.c [new file with mode: 0644]
jsdoc/TextStream.vala [new file with mode: 0644]
jsdoc/Token.c [new file with mode: 0644]
jsdoc/Token.vala [new file with mode: 0644]
jsdoc/TokenReader.c [new file with mode: 0644]
jsdoc/TokenReader.vala [new file with mode: 0644]
jsdoc/TokenStream.c [new file with mode: 0644]
jsdoc/TokenStream.vala [new file with mode: 0644]
jsdoc/Walker.c [new file with mode: 0644]
jsdoc/Walker.vala [new file with mode: 0644]

diff --git a/jsdoc/Collapse.c b/jsdoc/Collapse.c
new file mode 100644 (file)
index 0000000..bef0ccd
--- /dev/null
@@ -0,0 +1,1824 @@
+/* Collapse.c generated by valac 0.36.6, the Vala compiler
+ * generated from Collapse.vala, do not modify */
+
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gee.h>
+#include <stdlib.h>
+#include <string.h>
+
+
+#define JSDOC_TYPE_TOKEN_STREAM (jsdoc_token_stream_get_type ())
+#define JSDOC_TOKEN_STREAM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_TOKEN_STREAM, JSDOCTokenStream))
+#define JSDOC_TOKEN_STREAM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_TOKEN_STREAM, JSDOCTokenStreamClass))
+#define JSDOC_IS_TOKEN_STREAM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_TOKEN_STREAM))
+#define JSDOC_IS_TOKEN_STREAM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_TOKEN_STREAM))
+#define JSDOC_TOKEN_STREAM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_TOKEN_STREAM, JSDOCTokenStreamClass))
+
+typedef struct _JSDOCTokenStream JSDOCTokenStream;
+typedef struct _JSDOCTokenStreamClass JSDOCTokenStreamClass;
+typedef struct _JSDOCTokenStreamPrivate JSDOCTokenStreamPrivate;
+
+#define JSDOC_TYPE_TOKEN (jsdoc_token_get_type ())
+#define JSDOC_TOKEN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_TOKEN, JSDOCToken))
+#define JSDOC_TOKEN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_TOKEN, JSDOCTokenClass))
+#define JSDOC_IS_TOKEN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_TOKEN))
+#define JSDOC_IS_TOKEN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_TOKEN))
+#define JSDOC_TOKEN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_TOKEN, JSDOCTokenClass))
+
+typedef struct _JSDOCToken JSDOCToken;
+typedef struct _JSDOCTokenClass JSDOCTokenClass;
+
+#define JSDOC_TYPE_COLLAPSE (jsdoc_collapse_get_type ())
+#define JSDOC_COLLAPSE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_COLLAPSE, JSDOCCollapse))
+#define JSDOC_COLLAPSE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_COLLAPSE, JSDOCCollapseClass))
+#define JSDOC_IS_COLLAPSE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_COLLAPSE))
+#define JSDOC_IS_COLLAPSE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_COLLAPSE))
+#define JSDOC_COLLAPSE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_COLLAPSE, JSDOCCollapseClass))
+
+typedef struct _JSDOCCollapse JSDOCCollapse;
+typedef struct _JSDOCCollapseClass JSDOCCollapseClass;
+typedef struct _JSDOCCollapsePrivate JSDOCCollapsePrivate;
+
+#define JSDOC_TYPE_PACKER (jsdoc_packer_get_type ())
+#define JSDOC_PACKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_PACKER, JSDOCPacker))
+#define JSDOC_PACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_PACKER, JSDOCPackerClass))
+#define JSDOC_IS_PACKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_PACKER))
+#define JSDOC_IS_PACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_PACKER))
+#define JSDOC_PACKER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_PACKER, JSDOCPackerClass))
+
+typedef struct _JSDOCPacker JSDOCPacker;
+typedef struct _JSDOCPackerClass JSDOCPackerClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _g_free0(var) (var = (g_free (var), NULL))
+
+#define JSDOC_TYPE_TOKEN_TYPE (jsdoc_token_type_get_type ())
+typedef struct _JSDOCTokenPrivate JSDOCTokenPrivate;
+
+#define JSDOC_TYPE_TOKEN_NAME (jsdoc_token_name_get_type ())
+
+#define JSDOC_TYPE_IDENTIFIER (jsdoc_identifier_get_type ())
+#define JSDOC_IDENTIFIER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_IDENTIFIER, JSDOCIdentifier))
+#define JSDOC_IDENTIFIER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_IDENTIFIER, JSDOCIdentifierClass))
+#define JSDOC_IS_IDENTIFIER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_IDENTIFIER))
+#define JSDOC_IS_IDENTIFIER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_IDENTIFIER))
+#define JSDOC_IDENTIFIER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_IDENTIFIER, JSDOCIdentifierClass))
+
+typedef struct _JSDOCIdentifier JSDOCIdentifier;
+typedef struct _JSDOCIdentifierClass JSDOCIdentifierClass;
+
+#define JSDOC_TYPE_TOKEN_KEY_MAP (jsdoc_token_key_map_get_type ())
+#define JSDOC_TOKEN_KEY_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_TOKEN_KEY_MAP, JSDOCTokenKeyMap))
+#define JSDOC_TOKEN_KEY_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_TOKEN_KEY_MAP, JSDOCTokenKeyMapClass))
+#define JSDOC_IS_TOKEN_KEY_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_TOKEN_KEY_MAP))
+#define JSDOC_IS_TOKEN_KEY_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_TOKEN_KEY_MAP))
+#define JSDOC_TOKEN_KEY_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_TOKEN_KEY_MAP, JSDOCTokenKeyMapClass))
+
+typedef struct _JSDOCTokenKeyMap JSDOCTokenKeyMap;
+typedef struct _JSDOCTokenKeyMapClass JSDOCTokenKeyMapClass;
+
+#define JSDOC_PACKER_TYPE_RESULT_TYPE (jsdoc_packer_result_type_get_type ())
+typedef struct _JSDOCTokenKeyMapPrivate JSDOCTokenKeyMapPrivate;
+
+struct _JSDOCTokenStream {
+       GObject parent_instance;
+       JSDOCTokenStreamPrivate * priv;
+       GeeArrayList* tokens;
+       gint cursor;
+};
+
+struct _JSDOCTokenStreamClass {
+       GObjectClass parent_class;
+};
+
+struct _JSDOCCollapse {
+       JSDOCTokenStream parent_instance;
+       JSDOCCollapsePrivate * priv;
+};
+
+struct _JSDOCCollapseClass {
+       JSDOCTokenStreamClass parent_class;
+};
+
+struct _JSDOCCollapsePrivate {
+       JSDOCPacker* packer;
+       gchar* filename;
+};
+
+typedef enum  {
+       JSDOC_TOKEN_TYPE_TOKN,
+       JSDOC_TOKEN_TYPE_KEYW,
+       JSDOC_TOKEN_TYPE_NAME,
+       JSDOC_TOKEN_TYPE_COMM,
+       JSDOC_TOKEN_TYPE_PUNC,
+       JSDOC_TOKEN_TYPE_WHIT,
+       JSDOC_TOKEN_TYPE_STRN,
+       JSDOC_TOKEN_TYPE_NUMB,
+       JSDOC_TOKEN_TYPE_REGX,
+       JSDOC_TOKEN_TYPE_VOID
+} JSDOCTokenType;
+
+typedef enum  {
+       JSDOC_TOKEN_NAME_UNKNOWN_TOKEN,
+       JSDOC_TOKEN_NAME_BREAK,
+       JSDOC_TOKEN_NAME_CASE,
+       JSDOC_TOKEN_NAME_CATCH,
+       JSDOC_TOKEN_NAME_CONST,
+       JSDOC_TOKEN_NAME_CONTINUE,
+       JSDOC_TOKEN_NAME_DEFAULT,
+       JSDOC_TOKEN_NAME_DELETE,
+       JSDOC_TOKEN_NAME_DO,
+       JSDOC_TOKEN_NAME_ELSE,
+       JSDOC_TOKEN_NAME_FALSE,
+       JSDOC_TOKEN_NAME_FINALLY,
+       JSDOC_TOKEN_NAME_FOR,
+       JSDOC_TOKEN_NAME_FUNCTION,
+       JSDOC_TOKEN_NAME_IF,
+       JSDOC_TOKEN_NAME_IN,
+       JSDOC_TOKEN_NAME_INSTANCEOF,
+       JSDOC_TOKEN_NAME_NEW,
+       JSDOC_TOKEN_NAME_NULL,
+       JSDOC_TOKEN_NAME_RETURN,
+       JSDOC_TOKEN_NAME_SWITCH,
+       JSDOC_TOKEN_NAME_THIS,
+       JSDOC_TOKEN_NAME_THROW,
+       JSDOC_TOKEN_NAME_TRUE,
+       JSDOC_TOKEN_NAME_TRY,
+       JSDOC_TOKEN_NAME_TYPEOF,
+       JSDOC_TOKEN_NAME_VOID,
+       JSDOC_TOKEN_NAME_WHILE,
+       JSDOC_TOKEN_NAME_WITH,
+       JSDOC_TOKEN_NAME_VAR,
+       JSDOC_TOKEN_NAME_EVAL,
+       JSDOC_TOKEN_NAME_NAME,
+       JSDOC_TOKEN_NAME_MULTI_LINE_COMM,
+       JSDOC_TOKEN_NAME_JSDOC,
+       JSDOC_TOKEN_NAME_SINGLE_LINE_COMM,
+       JSDOC_TOKEN_NAME_SEMICOLON,
+       JSDOC_TOKEN_NAME_COMMA,
+       JSDOC_TOKEN_NAME_HOOK,
+       JSDOC_TOKEN_NAME_COLON,
+       JSDOC_TOKEN_NAME_OR,
+       JSDOC_TOKEN_NAME_AND,
+       JSDOC_TOKEN_NAME_BITWISE_OR,
+       JSDOC_TOKEN_NAME_BITWISE_XOR,
+       JSDOC_TOKEN_NAME_BITWISE_AND,
+       JSDOC_TOKEN_NAME_STRICT_EQ,
+       JSDOC_TOKEN_NAME_EQ,
+       JSDOC_TOKEN_NAME_ASSIGN,
+       JSDOC_TOKEN_NAME_STRICT_NE,
+       JSDOC_TOKEN_NAME_NE,
+       JSDOC_TOKEN_NAME_LSH,
+       JSDOC_TOKEN_NAME_LE,
+       JSDOC_TOKEN_NAME_LT,
+       JSDOC_TOKEN_NAME_URSH,
+       JSDOC_TOKEN_NAME_RSH,
+       JSDOC_TOKEN_NAME_GE,
+       JSDOC_TOKEN_NAME_GT,
+       JSDOC_TOKEN_NAME_INCREMENT,
+       JSDOC_TOKEN_NAME_DECREMENT,
+       JSDOC_TOKEN_NAME_PLUS,
+       JSDOC_TOKEN_NAME_MINUS,
+       JSDOC_TOKEN_NAME_MUL,
+       JSDOC_TOKEN_NAME_DIV,
+       JSDOC_TOKEN_NAME_MOD,
+       JSDOC_TOKEN_NAME_NOT,
+       JSDOC_TOKEN_NAME_BITWISE_NOT,
+       JSDOC_TOKEN_NAME_DOT,
+       JSDOC_TOKEN_NAME_LEFT_BRACE,
+       JSDOC_TOKEN_NAME_RIGHT_BRACE,
+       JSDOC_TOKEN_NAME_LEFT_CURLY,
+       JSDOC_TOKEN_NAME_RIGHT_CURLY,
+       JSDOC_TOKEN_NAME_LEFT_PAREN,
+       JSDOC_TOKEN_NAME_RIGHT_PAREN,
+       JSDOC_TOKEN_NAME_SPACE,
+       JSDOC_TOKEN_NAME_NEWLINE,
+       JSDOC_TOKEN_NAME_DOUBLE_QUOTE,
+       JSDOC_TOKEN_NAME_SINGLE_QUOTE,
+       JSDOC_TOKEN_NAME_OCTAL,
+       JSDOC_TOKEN_NAME_DECIMAL,
+       JSDOC_TOKEN_NAME_HEX_DEC,
+       JSDOC_TOKEN_NAME_REGX,
+       JSDOC_TOKEN_NAME_START_OF_STREAM,
+       JSDOC_TOKEN_NAME_END_OF_STREAM,
+       JSDOC_TOKEN_NAME_UNKNOWN
+} JSDOCTokenName;
+
+struct _JSDOCToken {
+       GObject parent_instance;
+       JSDOCTokenPrivate * priv;
+       gint id;
+       gchar* data;
+       JSDOCTokenType type;
+       JSDOCTokenName name;
+       gint line;
+       gchar* prefix;
+       gchar* outData;
+       JSDOCIdentifier* identifier;
+       GeeArrayList* items;
+       GeeHashMap* props;
+       GeeArrayList* keyseq;
+};
+
+struct _JSDOCTokenClass {
+       GObjectClass parent_class;
+};
+
+typedef enum  {
+       JSDOC_PACKER_RESULT_TYPE_err,
+       JSDOC_PACKER_RESULT_TYPE_warn
+} JSDOCPackerResultType;
+
+typedef enum  {
+       JSDOC_TOKEN_STREAM_ERROR_ArgumentError
+} JSDOCTokenStreamError;
+#define JSDOC_TOKEN_STREAM_ERROR jsdoc_token_stream_error_quark ()
+struct _JSDOCTokenKeyMap {
+       GObject parent_instance;
+       JSDOCTokenKeyMapPrivate * priv;
+       JSDOCToken* key;
+       GeeArrayList* vals;
+};
+
+struct _JSDOCTokenKeyMapClass {
+       GObjectClass parent_class;
+};
+
+
+static gpointer jsdoc_collapse_parent_class = NULL;
+
+GType jsdoc_token_stream_get_type (void) G_GNUC_CONST;
+GType jsdoc_token_get_type (void) G_GNUC_CONST;
+GType jsdoc_collapse_get_type (void) G_GNUC_CONST;
+GType jsdoc_packer_get_type (void) G_GNUC_CONST;
+#define JSDOC_COLLAPSE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), JSDOC_TYPE_COLLAPSE, JSDOCCollapsePrivate))
+enum  {
+       JSDOC_COLLAPSE_DUMMY_PROPERTY
+};
+JSDOCCollapse* jsdoc_collapse_new (GeeArrayList* tokens, JSDOCPacker* pk, const gchar* filename);
+JSDOCCollapse* jsdoc_collapse_construct (GType object_type, GeeArrayList* tokens, JSDOCPacker* pk, const gchar* filename);
+JSDOCTokenStream* jsdoc_token_stream_new (GeeArrayList* tokens);
+JSDOCTokenStream* jsdoc_token_stream_construct (GType object_type, GeeArrayList* tokens);
+static void jsdoc_collapse_spaces (JSDOCCollapse* self);
+static GeeArrayList* jsdoc_collapse_collapse (JSDOCCollapse* self, GeeArrayList* ar);
+GType jsdoc_token_type_get_type (void) G_GNUC_CONST;
+gboolean jsdoc_token_isType (JSDOCToken* self, JSDOCTokenType what);
+GType jsdoc_token_name_get_type (void) G_GNUC_CONST;
+GType jsdoc_identifier_get_type (void) G_GNUC_CONST;
+GType jsdoc_token_key_map_get_type (void) G_GNUC_CONST;
+JSDOCToken* jsdoc_token_stream_look (JSDOCTokenStream* self, gint n, gboolean considerWhitespace);
+GType jsdoc_packer_result_type_get_type (void) G_GNUC_CONST;
+void jsdoc_packer_logError (JSDOCPacker* self, JSDOCPackerResultType type, const gchar* filename, gint line, const gchar* message);
+JSDOCToken* jsdoc_token_stream_next (JSDOCTokenStream* self);
+GQuark jsdoc_token_stream_error_quark (void);
+GeeArrayList* jsdoc_token_stream_balance (JSDOCTokenStream* self, JSDOCTokenName in_start, GError** error);
+static GeeArrayList* jsdoc_collapse_toItems (JSDOCCollapse* self, GeeArrayList* ar, const gchar* sep);
+static GeeHashMap* jsdoc_collapse_toProps (JSDOCCollapse* self, GeeArrayList* ar, JSDOCToken* tok);
+const gchar* jsdoc_token_type_to_string (JSDOCTokenType self);
+JSDOCTokenKeyMap* jsdoc_token_key_map_new (void);
+JSDOCTokenKeyMap* jsdoc_token_key_map_construct (GType object_type);
+static void jsdoc_collapse_finalize (GObject * obj);
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 38 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       return self ? g_object_ref (self) : NULL;
+#line 288 "Collapse.c"
+}
+
+
+JSDOCCollapse* jsdoc_collapse_construct (GType object_type, GeeArrayList* tokens, JSDOCPacker* pk, const gchar* filename) {
+       JSDOCCollapse * self = NULL;
+       GeeArrayList* _tmp0_;
+       JSDOCPacker* _tmp1_;
+       JSDOCPacker* _tmp2_;
+       const gchar* _tmp3_;
+       gchar* _tmp4_;
+       GeeArrayList* ar = NULL;
+       GeeArrayList* _tmp5_;
+       GeeArrayList* _tmp6_;
+       GeeArrayList* _tmp7_;
+#line 34 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       g_return_val_if_fail (tokens != NULL, NULL);
+#line 34 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       g_return_val_if_fail (pk != NULL, NULL);
+#line 34 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       g_return_val_if_fail (filename != NULL, NULL);
+#line 36 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       _tmp0_ = tokens;
+#line 36 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       self = (JSDOCCollapse*) jsdoc_token_stream_construct (object_type, _tmp0_);
+#line 38 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       _tmp1_ = pk;
+#line 38 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       _tmp2_ = _g_object_ref0 (_tmp1_);
+#line 38 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       _g_object_unref0 (self->priv->packer);
+#line 38 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       self->priv->packer = _tmp2_;
+#line 39 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       _tmp3_ = filename;
+#line 39 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       _tmp4_ = g_strdup (_tmp3_);
+#line 39 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       _g_free0 (self->priv->filename);
+#line 39 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       self->priv->filename = _tmp4_;
+#line 43 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       jsdoc_collapse_spaces (self);
+#line 45 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       _tmp5_ = ((JSDOCTokenStream*) self)->tokens;
+#line 45 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       _tmp6_ = jsdoc_collapse_collapse (self, _tmp5_);
+#line 45 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       ar = _tmp6_;
+#line 47 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       _tmp7_ = _g_object_ref0 (ar);
+#line 47 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       _g_object_unref0 (((JSDOCTokenStream*) self)->tokens);
+#line 47 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       ((JSDOCTokenStream*) self)->tokens = _tmp7_;
+#line 34 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       _g_object_unref0 (ar);
+#line 34 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       return self;
+#line 347 "Collapse.c"
+}
+
+
+JSDOCCollapse* jsdoc_collapse_new (GeeArrayList* tokens, JSDOCPacker* pk, const gchar* filename) {
+#line 34 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       return jsdoc_collapse_construct (JSDOC_TYPE_COLLAPSE, tokens, pk, filename);
+#line 354 "Collapse.c"
+}
+
+
+static void jsdoc_collapse_spaces (JSDOCCollapse* self) {
+       GeeArrayList* ar = NULL;
+       GeeArrayList* _tmp0_;
+       GeeArrayList* pref = NULL;
+       GeeArrayList* _tmp1_;
+       GeeArrayList* _tmp43_;
+       GeeArrayList* _tmp44_;
+#line 55 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       g_return_if_fail (self != NULL);
+#line 57 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       _tmp0_ = gee_array_list_new (JSDOC_TYPE_TOKEN, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL);
+#line 57 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       ar = _tmp0_;
+#line 58 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       _tmp1_ = gee_array_list_new (JSDOC_TYPE_TOKEN, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL);
+#line 58 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       pref = _tmp1_;
+#line 375 "Collapse.c"
+       {
+               gint i = 0;
+#line 62 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+               i = 0;
+#line 380 "Collapse.c"
+               {
+                       gboolean _tmp2_ = FALSE;
+#line 62 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                       _tmp2_ = TRUE;
+#line 62 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                       while (TRUE) {
+#line 387 "Collapse.c"
+                               gint _tmp4_;
+                               GeeArrayList* _tmp5_;
+                               gint _tmp6_;
+                               gint _tmp7_;
+                               JSDOCToken* tok = NULL;
+                               GeeArrayList* _tmp8_;
+                               gint _tmp9_;
+                               gpointer _tmp10_;
+                               gboolean _tmp11_ = FALSE;
+                               JSDOCToken* _tmp12_;
+                               gboolean _tmp13_;
+                               JSDOCToken* _tmp18_;
+                               gchar* _tmp19_;
+                               GeeArrayList* _tmp20_;
+                               gint _tmp21_;
+                               gint _tmp22_;
+                               GeeArrayList* _tmp41_;
+                               JSDOCToken* _tmp42_;
+#line 62 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               if (!_tmp2_) {
+#line 408 "Collapse.c"
+                                       gint _tmp3_;
+#line 62 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                       _tmp3_ = i;
+#line 62 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                       i = _tmp3_ + 1;
+#line 414 "Collapse.c"
+                               }
+#line 62 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               _tmp2_ = FALSE;
+#line 62 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               _tmp4_ = i;
+#line 62 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               _tmp5_ = ((JSDOCTokenStream*) self)->tokens;
+#line 62 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               _tmp6_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp5_);
+#line 62 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               _tmp7_ = _tmp6_;
+#line 62 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               if (!(_tmp4_ < _tmp7_)) {
+#line 62 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                       break;
+#line 430 "Collapse.c"
+                               }
+#line 63 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               _tmp8_ = ((JSDOCTokenStream*) self)->tokens;
+#line 63 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               _tmp9_ = i;
+#line 63 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               _tmp10_ = gee_abstract_list_get ((GeeAbstractList*) _tmp8_, _tmp9_);
+#line 63 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               tok = (JSDOCToken*) _tmp10_;
+#line 64 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               _tmp12_ = tok;
+#line 64 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               _tmp13_ = jsdoc_token_isType (_tmp12_, JSDOC_TOKEN_TYPE_COMM);
+#line 64 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               if (_tmp13_) {
+#line 64 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                       _tmp11_ = TRUE;
+#line 448 "Collapse.c"
+                               } else {
+                                       JSDOCToken* _tmp14_;
+                                       gboolean _tmp15_;
+#line 64 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                       _tmp14_ = tok;
+#line 64 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                       _tmp15_ = jsdoc_token_isType (_tmp14_, JSDOC_TOKEN_TYPE_WHIT);
+#line 64 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                       _tmp11_ = _tmp15_;
+#line 458 "Collapse.c"
+                               }
+#line 64 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               if (_tmp11_) {
+#line 462 "Collapse.c"
+                                       GeeArrayList* _tmp16_;
+                                       JSDOCToken* _tmp17_;
+#line 65 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                       _tmp16_ = pref;
+#line 65 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                       _tmp17_ = tok;
+#line 65 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                       gee_abstract_collection_add ((GeeAbstractCollection*) _tmp16_, _tmp17_);
+#line 66 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                       _g_object_unref0 (tok);
+#line 66 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                       continue;
+#line 475 "Collapse.c"
+                               }
+#line 68 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               _tmp18_ = tok;
+#line 68 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               _tmp19_ = g_strdup ("");
+#line 68 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               _g_free0 (_tmp18_->prefix);
+#line 68 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               _tmp18_->prefix = _tmp19_;
+#line 69 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               _tmp20_ = pref;
+#line 69 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               _tmp21_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp20_);
+#line 69 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               _tmp22_ = _tmp21_;
+#line 69 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               if (_tmp22_ > 0) {
+#line 493 "Collapse.c"
+                                       GeeArrayList* _tmp40_;
+                                       {
+                                               GeeArrayList* _e_list = NULL;
+                                               GeeArrayList* _tmp23_;
+                                               GeeArrayList* _tmp24_;
+                                               gint _e_size = 0;
+                                               GeeArrayList* _tmp25_;
+                                               gint _tmp26_;
+                                               gint _tmp27_;
+                                               gint _e_index = 0;
+#line 70 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                               _tmp23_ = pref;
+#line 70 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                               _tmp24_ = _g_object_ref0 (_tmp23_);
+#line 70 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                               _e_list = _tmp24_;
+#line 70 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                               _tmp25_ = _e_list;
+#line 70 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                               _tmp26_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp25_);
+#line 70 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                               _tmp27_ = _tmp26_;
+#line 70 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                               _e_size = _tmp27_;
+#line 70 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                               _e_index = -1;
+#line 70 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                               while (TRUE) {
+#line 522 "Collapse.c"
+                                                       gint _tmp28_;
+                                                       gint _tmp29_;
+                                                       gint _tmp30_;
+                                                       JSDOCToken* e = NULL;
+                                                       GeeArrayList* _tmp31_;
+                                                       gint _tmp32_;
+                                                       gpointer _tmp33_;
+                                                       JSDOCToken* _tmp34_;
+                                                       JSDOCToken* _tmp35_;
+                                                       const gchar* _tmp36_;
+                                                       JSDOCToken* _tmp37_;
+                                                       const gchar* _tmp38_;
+                                                       gchar* _tmp39_;
+#line 70 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                       _tmp28_ = _e_index;
+#line 70 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                       _e_index = _tmp28_ + 1;
+#line 70 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                       _tmp29_ = _e_index;
+#line 70 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                       _tmp30_ = _e_size;
+#line 70 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                       if (!(_tmp29_ < _tmp30_)) {
+#line 70 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                               break;
+#line 548 "Collapse.c"
+                                                       }
+#line 70 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                       _tmp31_ = _e_list;
+#line 70 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                       _tmp32_ = _e_index;
+#line 70 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                       _tmp33_ = gee_abstract_list_get ((GeeAbstractList*) _tmp31_, _tmp32_);
+#line 70 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                       e = (JSDOCToken*) _tmp33_;
+#line 71 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                       _tmp34_ = tok;
+#line 71 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                       _tmp35_ = tok;
+#line 71 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                       _tmp36_ = _tmp35_->prefix;
+#line 71 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                       _tmp37_ = e;
+#line 71 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                       _tmp38_ = _tmp37_->data;
+#line 71 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                       _tmp39_ = g_strconcat (_tmp36_, _tmp38_, NULL);
+#line 71 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                       _g_free0 (_tmp35_->prefix);
+#line 71 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                       _tmp35_->prefix = _tmp39_;
+#line 70 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                       _g_object_unref0 (e);
+#line 576 "Collapse.c"
+                                               }
+#line 70 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                               _g_object_unref0 (_e_list);
+#line 580 "Collapse.c"
+                                       }
+#line 73 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                       _tmp40_ = gee_array_list_new (JSDOC_TYPE_TOKEN, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL);
+#line 73 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                       _g_object_unref0 (pref);
+#line 73 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                       pref = _tmp40_;
+#line 588 "Collapse.c"
+                               }
+#line 76 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               _tmp41_ = ar;
+#line 76 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               _tmp42_ = tok;
+#line 76 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               gee_abstract_collection_add ((GeeAbstractCollection*) _tmp41_, _tmp42_);
+#line 62 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               _g_object_unref0 (tok);
+#line 598 "Collapse.c"
+                       }
+               }
+       }
+#line 81 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       _tmp43_ = ar;
+#line 81 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       _tmp44_ = _g_object_ref0 (_tmp43_);
+#line 81 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       _g_object_unref0 (((JSDOCTokenStream*) self)->tokens);
+#line 81 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       ((JSDOCTokenStream*) self)->tokens = _tmp44_;
+#line 55 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       _g_object_unref0 (pref);
+#line 55 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       _g_object_unref0 (ar);
+#line 614 "Collapse.c"
+}
+
+
+static GeeArrayList* jsdoc_collapse_collapse (JSDOCCollapse* self, GeeArrayList* ar) {
+       GeeArrayList* result = NULL;
+       JSDOCTokenStream* st = NULL;
+       GeeArrayList* _tmp0_;
+       JSDOCTokenStream* _tmp1_;
+       GeeArrayList* ret = NULL;
+       GeeArrayList* _tmp2_;
+       gboolean last_is_object_def = FALSE;
+       GError * _inner_error_ = NULL;
+#line 87 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 87 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       g_return_val_if_fail (ar != NULL, NULL);
+#line 90 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       _tmp0_ = ar;
+#line 90 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       _tmp1_ = jsdoc_token_stream_new (_tmp0_);
+#line 90 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       st = _tmp1_;
+#line 91 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       _tmp2_ = gee_array_list_new (JSDOC_TYPE_TOKEN, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL);
+#line 91 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       ret = _tmp2_;
+#line 92 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       last_is_object_def = FALSE;
+#line 94 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       while (TRUE) {
+#line 645 "Collapse.c"
+               JSDOCToken* tok = NULL;
+               JSDOCTokenStream* _tmp3_;
+               JSDOCToken* _tmp4_;
+               JSDOCToken* _tmp5_;
+               JSDOCToken* _tmp6_;
+               JSDOCTokenType _tmp7_;
+#line 95 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+               _tmp3_ = st;
+#line 95 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+               _tmp4_ = jsdoc_token_stream_look (_tmp3_, 1, TRUE);
+#line 95 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+               tok = _tmp4_;
+#line 96 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+               _tmp5_ = tok;
+#line 96 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+               if (_tmp5_ == NULL) {
+#line 98 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                       result = ret;
+#line 98 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                       _g_object_unref0 (tok);
+#line 98 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                       _g_object_unref0 (st);
+#line 98 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                       return result;
+#line 670 "Collapse.c"
+               }
+#line 104 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+               _tmp6_ = tok;
+#line 104 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+               _tmp7_ = _tmp6_->type;
+#line 104 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+               switch (_tmp7_) {
+#line 104 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                       case JSDOC_TOKEN_TYPE_VOID:
+#line 680 "Collapse.c"
+                       {
+#line 106 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               result = ret;
+#line 106 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               _g_object_unref0 (tok);
+#line 106 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               _g_object_unref0 (st);
+#line 106 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               return result;
+#line 690 "Collapse.c"
+                       }
+#line 104 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                       case JSDOC_TOKEN_TYPE_KEYW:
+#line 104 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                       case JSDOC_TOKEN_TYPE_TOKN:
+#line 104 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                       case JSDOC_TOKEN_TYPE_NAME:
+#line 104 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                       case JSDOC_TOKEN_TYPE_STRN:
+#line 104 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                       case JSDOC_TOKEN_TYPE_NUMB:
+#line 104 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                       case JSDOC_TOKEN_TYPE_REGX:
+#line 704 "Collapse.c"
+                       {
+                               gboolean _tmp8_;
+                               JSDOCToken* nn = NULL;
+                               JSDOCTokenStream* _tmp13_;
+                               JSDOCToken* _tmp14_;
+                               JSDOCToken* _tmp15_;
+#line 115 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               _tmp8_ = last_is_object_def;
+#line 115 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               if (_tmp8_) {
+#line 715 "Collapse.c"
+                                       JSDOCPacker* _tmp9_;
+                                       const gchar* _tmp10_;
+                                       JSDOCToken* _tmp11_;
+                                       gint _tmp12_;
+#line 117 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                       _tmp9_ = self->priv->packer;
+#line 117 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                       _tmp10_ = self->priv->filename;
+#line 117 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                       _tmp11_ = tok;
+#line 117 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                       _tmp12_ = _tmp11_->line;
+#line 117 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                       jsdoc_packer_logError (_tmp9_, JSDOC_PACKER_RESULT_TYPE_err, _tmp10_, _tmp12_, "Syntax error - found non punctuation after object close brace");
+#line 730 "Collapse.c"
+                               }
+#line 125 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               _tmp13_ = st;
+#line 125 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               _tmp14_ = jsdoc_token_stream_next (_tmp13_);
+#line 125 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               nn = _tmp14_;
+#line 126 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               _tmp15_ = nn;
+#line 126 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               if (_tmp15_ != NULL) {
+#line 742 "Collapse.c"
+                                       GeeArrayList* _tmp16_;
+                                       JSDOCToken* _tmp17_;
+#line 127 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                       _tmp16_ = ret;
+#line 127 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                       _tmp17_ = nn;
+#line 127 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                       gee_abstract_collection_add ((GeeAbstractCollection*) _tmp16_, _tmp17_);
+#line 751 "Collapse.c"
+                               }
+#line 129 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               last_is_object_def = FALSE;
+#line 130 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               _g_object_unref0 (nn);
+#line 130 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               continue;
+#line 759 "Collapse.c"
+                       }
+#line 104 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                       case JSDOC_TOKEN_TYPE_PUNC:
+#line 763 "Collapse.c"
+                       {
+                               JSDOCToken* _tmp18_;
+                               const gchar* _tmp19_;
+                               const gchar* _tmp20_;
+                               GQuark _tmp22_ = 0U;
+#line 133 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               static GQuark _tmp21_label0 = 0;
+#line 133 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               static GQuark _tmp21_label1 = 0;
+#line 133 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               static GQuark _tmp21_label2 = 0;
+#line 133 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               _tmp18_ = tok;
+#line 133 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               _tmp19_ = _tmp18_->data;
+#line 133 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               _tmp20_ = _tmp19_;
+#line 133 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               _tmp22_ = (NULL == _tmp20_) ? 0 : g_quark_from_string (_tmp20_);
+#line 133 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               if (((_tmp22_ == ((0 != _tmp21_label0) ? _tmp21_label0 : (_tmp21_label0 = g_quark_from_static_string ("[")))) || (_tmp22_ == ((0 != _tmp21_label1) ? _tmp21_label1 : (_tmp21_label1 = g_quark_from_static_string ("{"))))) || (_tmp22_ == ((0 != _tmp21_label2) ? _tmp21_label2 : (_tmp21_label2 = g_quark_from_static_string ("("))))) {
+#line 133 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                       switch (0) {
+#line 787 "Collapse.c"
+                                               default:
+                                               {
+                                                       gint start = 0;
+                                                       JSDOCTokenStream* _tmp23_;
+                                                       gint _tmp24_;
+                                                       GeeArrayList* add = NULL;
+                                                       JSDOCTokenStream* _tmp25_;
+                                                       JSDOCToken* _tmp26_;
+                                                       JSDOCTokenName _tmp27_;
+                                                       GeeArrayList* _tmp28_;
+                                                       GeeArrayList* _tmp29_;
+                                                       gint _tmp30_;
+                                                       gint _tmp31_;
+                                                       GeeArrayList* _tmp35_ = NULL;
+                                                       GeeArrayList* _tmp36_;
+                                                       gint _tmp37_;
+                                                       gint _tmp38_;
+                                                       GeeArrayList* toks = NULL;
+                                                       GeeArrayList* _tmp43_;
+                                                       JSDOCToken* _tmp44_;
+                                                       GeeArrayList* _tmp45_;
+                                                       JSDOCToken* _tmp46_;
+                                                       GeeHashMap* _tmp47_;
+                                                       JSDOCToken* _tmp48_;
+                                                       const gchar* _tmp49_;
+                                                       GeeArrayList* _tmp73_;
+                                                       JSDOCToken* _tmp74_;
+#line 137 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                       last_is_object_def = FALSE;
+#line 138 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                       _tmp23_ = st;
+#line 138 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                       _tmp24_ = _tmp23_->cursor;
+#line 138 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                       start = _tmp24_;
+#line 141 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                       _tmp25_ = st;
+#line 141 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                       _tmp26_ = tok;
+#line 141 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                       _tmp27_ = _tmp26_->name;
+#line 141 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                       _tmp28_ = jsdoc_token_stream_balance (_tmp25_, _tmp27_, &_inner_error_);
+#line 141 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                       add = _tmp28_;
+#line 141 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                       if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 141 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                               _g_object_unref0 (tok);
+#line 141 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                               _g_object_unref0 (ret);
+#line 141 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                               _g_object_unref0 (st);
+#line 141 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                               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);
+#line 141 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                               g_clear_error (&_inner_error_);
+#line 141 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                               return NULL;
+#line 847 "Collapse.c"
+                                                       }
+#line 152 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                       _tmp29_ = add;
+#line 152 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                       _tmp30_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp29_);
+#line 152 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                       _tmp31_ = _tmp30_;
+#line 152 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                       if (_tmp31_ > 0) {
+#line 857 "Collapse.c"
+                                                               GeeArrayList* _tmp32_;
+                                                               gpointer _tmp33_;
+                                                               JSDOCToken* _tmp34_;
+#line 153 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                               _tmp32_ = add;
+#line 153 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                               _tmp33_ = gee_abstract_list_remove_at ((GeeAbstractList*) _tmp32_, 0);
+#line 153 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                               _tmp34_ = (JSDOCToken*) _tmp33_;
+#line 153 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                               _g_object_unref0 (_tmp34_);
+#line 869 "Collapse.c"
+                                                       }
+#line 160 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                       _tmp36_ = add;
+#line 160 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                       _tmp37_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp36_);
+#line 160 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                       _tmp38_ = _tmp37_;
+#line 160 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                       if (_tmp38_ > 0) {
+#line 879 "Collapse.c"
+                                                               GeeArrayList* _tmp39_;
+                                                               GeeArrayList* _tmp40_;
+#line 160 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                               _tmp39_ = add;
+#line 160 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                               _tmp40_ = jsdoc_collapse_collapse (self, _tmp39_);
+#line 160 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                               _g_object_unref0 (_tmp35_);
+#line 160 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                               _tmp35_ = _tmp40_;
+#line 890 "Collapse.c"
+                                                       } else {
+                                                               GeeArrayList* _tmp41_;
+                                                               GeeArrayList* _tmp42_;
+#line 160 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                               _tmp41_ = add;
+#line 160 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                               _tmp42_ = _g_object_ref0 (_tmp41_);
+#line 160 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                               _g_object_unref0 (_tmp35_);
+#line 160 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                               _tmp35_ = _tmp42_;
+#line 902 "Collapse.c"
+                                                       }
+#line 160 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                       _tmp43_ = _g_object_ref0 (_tmp35_);
+#line 160 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                       toks = _tmp43_;
+#line 162 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                       _tmp44_ = tok;
+#line 162 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                       _tmp45_ = gee_array_list_new (GEE_TYPE_ARRAY_LIST, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL);
+#line 162 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                       _g_object_unref0 (_tmp44_->items);
+#line 162 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                       _tmp44_->items = _tmp45_;
+#line 163 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                       _tmp46_ = tok;
+#line 163 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                       _tmp47_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, JSDOC_TYPE_TOKEN_KEY_MAP, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 163 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                       _g_object_unref0 (_tmp46_->props);
+#line 163 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                       _tmp46_->props = _tmp47_;
+#line 166 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                       _tmp48_ = tok;
+#line 166 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                       _tmp49_ = _tmp48_->data;
+#line 166 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                       if (g_strcmp0 (_tmp49_, "{") != 0) {
+#line 930 "Collapse.c"
+                                                               JSDOCToken* _tmp50_;
+                                                               GeeArrayList* _tmp51_;
+                                                               GeeArrayList* _tmp52_;
+                                                               JSDOCToken* _tmp53_;
+                                                               const gchar* _tmp54_;
+#line 168 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                               _tmp50_ = tok;
+#line 168 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                               _tmp51_ = toks;
+#line 168 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                               _tmp52_ = jsdoc_collapse_toItems (self, _tmp51_, ",");
+#line 168 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                               _g_object_unref0 (_tmp50_->items);
+#line 168 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                               _tmp50_->items = _tmp52_;
+#line 169 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                               _tmp53_ = tok;
+#line 169 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                               _tmp54_ = _tmp53_->data;
+#line 169 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                               if (g_strcmp0 (_tmp54_, "]") == 0) {
+#line 170 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                                       last_is_object_def = TRUE;
+#line 954 "Collapse.c"
+                                                               }
+                                                       } else {
+                                                               JSDOCTokenStream* ost = NULL;
+                                                               GeeArrayList* _tmp55_;
+                                                               JSDOCTokenStream* _tmp56_;
+                                                               gboolean _tmp57_ = FALSE;
+                                                               JSDOCTokenStream* _tmp58_;
+                                                               JSDOCToken* _tmp59_;
+                                                               JSDOCToken* _tmp60_;
+                                                               gboolean _tmp61_;
+#line 176 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                               _tmp55_ = toks;
+#line 176 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                               _tmp56_ = jsdoc_token_stream_new (_tmp55_);
+#line 176 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                               ost = _tmp56_;
+#line 178 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                               _tmp58_ = ost;
+#line 178 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                               _tmp59_ = jsdoc_token_stream_look (_tmp58_, 2, TRUE);
+#line 178 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                               _tmp60_ = _tmp59_;
+#line 178 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                               _tmp61_ = _tmp60_ != NULL;
+#line 178 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                               _g_object_unref0 (_tmp60_);
+#line 178 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                               if (_tmp61_) {
+#line 983 "Collapse.c"
+                                                                       JSDOCTokenStream* _tmp62_;
+                                                                       JSDOCToken* _tmp63_;
+                                                                       JSDOCToken* _tmp64_;
+                                                                       const gchar* _tmp65_;
+#line 178 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                                       _tmp62_ = ost;
+#line 178 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                                       _tmp63_ = jsdoc_token_stream_look (_tmp62_, 2, TRUE);
+#line 178 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                                       _tmp64_ = _tmp63_;
+#line 178 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                                       _tmp65_ = _tmp64_->data;
+#line 178 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                                       _tmp57_ = g_strcmp0 (_tmp65_, ":") == 0;
+#line 178 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                                       _g_object_unref0 (_tmp64_);
+#line 1000 "Collapse.c"
+                                                               } else {
+#line 178 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                                       _tmp57_ = FALSE;
+#line 1004 "Collapse.c"
+                                                               }
+#line 178 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                               if (_tmp57_) {
+#line 1008 "Collapse.c"
+                                                                       GeeArrayList* _tmp66_;
+                                                                       JSDOCToken* _tmp67_;
+                                                                       GeeHashMap* _tmp68_;
+                                                                       GeeHashMap* _tmp69_;
+#line 180 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                                       _tmp66_ = toks;
+#line 180 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                                       _tmp67_ = tok;
+#line 180 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                                       _tmp68_ = jsdoc_collapse_toProps (self, _tmp66_, _tmp67_);
+#line 180 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                                       _tmp69_ = _tmp68_;
+#line 180 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                                       _g_object_unref0 (_tmp69_);
+#line 181 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                                       last_is_object_def = TRUE;
+#line 1025 "Collapse.c"
+                                                               } else {
+                                                                       JSDOCToken* _tmp70_;
+                                                                       GeeArrayList* _tmp71_;
+                                                                       GeeArrayList* _tmp72_;
+#line 184 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                                       _tmp70_ = tok;
+#line 184 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                                       _tmp71_ = toks;
+#line 184 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                                       _tmp72_ = jsdoc_collapse_toItems (self, _tmp71_, ";{");
+#line 184 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                                       _g_object_unref0 (_tmp70_->items);
+#line 184 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                                       _tmp70_->items = _tmp72_;
+#line 1040 "Collapse.c"
+                                                               }
+#line 166 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                               _g_object_unref0 (ost);
+#line 1044 "Collapse.c"
+                                                       }
+#line 198 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                       _tmp73_ = ret;
+#line 198 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                       _tmp74_ = tok;
+#line 198 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                       gee_abstract_collection_add ((GeeAbstractCollection*) _tmp73_, _tmp74_);
+#line 200 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                       _g_object_unref0 (toks);
+#line 200 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                       _g_object_unref0 (_tmp35_);
+#line 200 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                       _g_object_unref0 (add);
+#line 200 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                       continue;
+#line 1060 "Collapse.c"
+                                               }
+                                       }
+                               } else {
+#line 133 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                       switch (0) {
+#line 1066 "Collapse.c"
+                                               default:
+                                               {
+                                                       GeeArrayList* _tmp75_;
+                                                       JSDOCTokenStream* _tmp76_;
+                                                       JSDOCToken* _tmp77_;
+                                                       JSDOCToken* _tmp78_;
+#line 203 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                       last_is_object_def = FALSE;
+#line 204 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                       _tmp75_ = ret;
+#line 204 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                       _tmp76_ = st;
+#line 204 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                       _tmp77_ = jsdoc_token_stream_next (_tmp76_);
+#line 204 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                       _tmp78_ = _tmp77_;
+#line 204 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                       gee_abstract_collection_add ((GeeAbstractCollection*) _tmp75_, _tmp78_);
+#line 204 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                       _g_object_unref0 (_tmp78_);
+#line 205 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                       continue;
+#line 1089 "Collapse.c"
+                                               }
+                                       }
+                               }
+#line 207 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               g_print ("OOPS");
+#line 208 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               continue;
+#line 1097 "Collapse.c"
+                       }
+                       default:
+                       {
+                               JSDOCToken* _tmp79_;
+                               JSDOCTokenType _tmp80_;
+                               GEnumValue* _tmp81_;
+                               gchar* _tmp82_;
+                               gchar* _tmp83_;
+#line 210 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               _tmp79_ = tok;
+#line 210 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               _tmp80_ = _tmp79_->type;
+#line 210 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               _tmp81_ = g_enum_get_value (g_type_class_ref (JSDOC_TYPE_TOKEN_TYPE), _tmp80_);
+#line 210 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               _tmp82_ = g_strconcat ("OOPS", (_tmp81_ != NULL) ? _tmp81_->value_name : NULL, NULL);
+#line 210 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               _tmp83_ = _tmp82_;
+#line 210 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               g_print ("%s", _tmp83_);
+#line 210 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               _g_free0 (_tmp83_);
+#line 211 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               continue;
+#line 1122 "Collapse.c"
+                       }
+               }
+#line 94 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+               _g_object_unref0 (tok);
+#line 1127 "Collapse.c"
+       }
+#line 87 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       _g_object_unref0 (ret);
+#line 87 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       _g_object_unref0 (st);
+#line 1133 "Collapse.c"
+}
+
+
+static gint string_index_of (const gchar* self, const gchar* needle, gint start_index) {
+       gint result = 0;
+       gchar* _result_ = NULL;
+       gint _tmp0_;
+       const gchar* _tmp1_;
+       gchar* _tmp2_;
+       gchar* _tmp3_;
+#line 1011 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (self != NULL, 0);
+#line 1011 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (needle != NULL, 0);
+#line 1012 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp0_ = start_index;
+#line 1012 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp1_ = needle;
+#line 1012 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp2_ = strstr (((gchar*) self) + _tmp0_, (gchar*) _tmp1_);
+#line 1012 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _result_ = _tmp2_;
+#line 1014 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp3_ = _result_;
+#line 1014 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if (_tmp3_ != NULL) {
+#line 1160 "Collapse.c"
+               gchar* _tmp4_;
+#line 1015 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp4_ = _result_;
+#line 1015 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               result = (gint) (_tmp4_ - ((gchar*) self));
+#line 1015 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               return result;
+#line 1168 "Collapse.c"
+       } else {
+#line 1017 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               result = -1;
+#line 1017 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               return result;
+#line 1174 "Collapse.c"
+       }
+}
+
+
+static GeeArrayList* jsdoc_collapse_toItems (JSDOCCollapse* self, GeeArrayList* ar, const gchar* sep) {
+       GeeArrayList* result = NULL;
+       GeeArrayList* ret = NULL;
+       GeeArrayList* _tmp0_;
+       GeeArrayList* g = NULL;
+       GeeArrayList* _tmp1_;
+       GeeArrayList* _tmp49_;
+       gint _tmp50_;
+       gint _tmp51_;
+#line 226 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 226 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       g_return_val_if_fail (ar != NULL, NULL);
+#line 226 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       g_return_val_if_fail (sep != NULL, NULL);
+#line 228 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       _tmp0_ = gee_array_list_new (GEE_TYPE_ARRAY_LIST, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL);
+#line 228 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       ret = _tmp0_;
+#line 229 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       _tmp1_ = gee_array_list_new (JSDOC_TYPE_TOKEN, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL);
+#line 229 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       g = _tmp1_;
+#line 1202 "Collapse.c"
+       {
+               gint i = 0;
+#line 231 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+               i = 0;
+#line 1207 "Collapse.c"
+               {
+                       gboolean _tmp2_ = FALSE;
+#line 231 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                       _tmp2_ = TRUE;
+#line 231 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                       while (TRUE) {
+#line 1214 "Collapse.c"
+                               gint _tmp4_;
+                               GeeArrayList* _tmp5_;
+                               gint _tmp6_;
+                               gint _tmp7_;
+                               const gchar* _tmp8_;
+                               GeeArrayList* _tmp9_;
+                               gint _tmp10_;
+                               gpointer _tmp11_;
+                               JSDOCToken* _tmp12_;
+                               const gchar* _tmp13_;
+                               gint _tmp14_;
+                               gboolean _tmp15_;
+                               gboolean _tmp21_ = FALSE;
+                               gboolean _tmp22_ = FALSE;
+                               GeeArrayList* _tmp23_;
+                               gint _tmp24_;
+                               gpointer _tmp25_;
+                               JSDOCToken* _tmp26_;
+                               const gchar* _tmp27_;
+                               gboolean _tmp28_;
+                               GeeArrayList* _tmp41_;
+                               GeeArrayList* _tmp42_;
+                               gint _tmp43_;
+                               gpointer _tmp44_;
+                               JSDOCToken* _tmp45_;
+                               GeeArrayList* _tmp46_;
+                               GeeArrayList* _tmp47_;
+                               GeeArrayList* _tmp48_;
+#line 231 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               if (!_tmp2_) {
+#line 1245 "Collapse.c"
+                                       gint _tmp3_;
+#line 231 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                       _tmp3_ = i;
+#line 231 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                       i = _tmp3_ + 1;
+#line 1251 "Collapse.c"
+                               }
+#line 231 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               _tmp2_ = FALSE;
+#line 231 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               _tmp4_ = i;
+#line 231 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               _tmp5_ = ar;
+#line 231 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               _tmp6_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp5_);
+#line 231 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               _tmp7_ = _tmp6_;
+#line 231 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               if (!(_tmp4_ < _tmp7_)) {
+#line 231 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                       break;
+#line 1267 "Collapse.c"
+                               }
+#line 232 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               _tmp8_ = sep;
+#line 232 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               _tmp9_ = ar;
+#line 232 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               _tmp10_ = i;
+#line 232 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               _tmp11_ = gee_abstract_list_get ((GeeAbstractList*) _tmp9_, _tmp10_);
+#line 232 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               _tmp12_ = (JSDOCToken*) _tmp11_;
+#line 232 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               _tmp13_ = _tmp12_->data;
+#line 232 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               _tmp14_ = string_index_of (_tmp8_, _tmp13_, 0);
+#line 232 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               _tmp15_ = _tmp14_ < 0;
+#line 232 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               _g_object_unref0 (_tmp12_);
+#line 232 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               if (_tmp15_) {
+#line 1289 "Collapse.c"
+                                       GeeArrayList* _tmp16_;
+                                       GeeArrayList* _tmp17_;
+                                       gint _tmp18_;
+                                       gpointer _tmp19_;
+                                       JSDOCToken* _tmp20_;
+#line 233 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                       _tmp16_ = g;
+#line 233 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                       _tmp17_ = ar;
+#line 233 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                       _tmp18_ = i;
+#line 233 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                       _tmp19_ = gee_abstract_list_get ((GeeAbstractList*) _tmp17_, _tmp18_);
+#line 233 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                       _tmp20_ = (JSDOCToken*) _tmp19_;
+#line 233 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                       gee_abstract_collection_add ((GeeAbstractCollection*) _tmp16_, _tmp20_);
+#line 233 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                       _g_object_unref0 (_tmp20_);
+#line 234 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                       continue;
+#line 1311 "Collapse.c"
+                               }
+#line 237 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               _tmp23_ = ar;
+#line 237 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               _tmp24_ = i;
+#line 237 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               _tmp25_ = gee_abstract_list_get ((GeeAbstractList*) _tmp23_, _tmp24_);
+#line 237 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               _tmp26_ = (JSDOCToken*) _tmp25_;
+#line 237 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               _tmp27_ = _tmp26_->data;
+#line 237 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               _tmp28_ = g_strcmp0 (_tmp27_, ";") != 0;
+#line 237 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               _g_object_unref0 (_tmp26_);
+#line 237 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               if (_tmp28_) {
+#line 1329 "Collapse.c"
+                                       GeeArrayList* _tmp29_;
+                                       gint _tmp30_;
+                                       gint _tmp31_;
+#line 237 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                       _tmp29_ = g;
+#line 237 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                       _tmp30_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp29_);
+#line 237 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                       _tmp31_ = _tmp30_;
+#line 237 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                       _tmp22_ = _tmp31_ > 0;
+#line 1341 "Collapse.c"
+                               } else {
+#line 237 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                       _tmp22_ = FALSE;
+#line 1345 "Collapse.c"
+                               }
+#line 237 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               if (_tmp22_) {
+#line 1349 "Collapse.c"
+                                       GeeArrayList* _tmp32_;
+                                       gpointer _tmp33_;
+                                       JSDOCToken* _tmp34_;
+                                       JSDOCTokenName _tmp35_;
+#line 237 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                       _tmp32_ = g;
+#line 237 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                       _tmp33_ = gee_abstract_list_get ((GeeAbstractList*) _tmp32_, 0);
+#line 237 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                       _tmp34_ = (JSDOCToken*) _tmp33_;
+#line 237 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                       _tmp35_ = _tmp34_->name;
+#line 237 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                       _tmp21_ = _tmp35_ == JSDOC_TOKEN_NAME_VAR;
+#line 237 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                       _g_object_unref0 (_tmp34_);
+#line 1366 "Collapse.c"
+                               } else {
+#line 237 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                       _tmp21_ = FALSE;
+#line 1370 "Collapse.c"
+                               }
+#line 237 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               if (_tmp21_) {
+#line 1374 "Collapse.c"
+                                       GeeArrayList* _tmp36_;
+                                       GeeArrayList* _tmp37_;
+                                       gint _tmp38_;
+                                       gpointer _tmp39_;
+                                       JSDOCToken* _tmp40_;
+#line 238 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                       _tmp36_ = g;
+#line 238 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                       _tmp37_ = ar;
+#line 238 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                       _tmp38_ = i;
+#line 238 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                       _tmp39_ = gee_abstract_list_get ((GeeAbstractList*) _tmp37_, _tmp38_);
+#line 238 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                       _tmp40_ = (JSDOCToken*) _tmp39_;
+#line 238 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                       gee_abstract_collection_add ((GeeAbstractCollection*) _tmp36_, _tmp40_);
+#line 238 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                       _g_object_unref0 (_tmp40_);
+#line 239 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                       continue;
+#line 1396 "Collapse.c"
+                               }
+#line 242 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               _tmp41_ = g;
+#line 242 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               _tmp42_ = ar;
+#line 242 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               _tmp43_ = i;
+#line 242 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               _tmp44_ = gee_abstract_list_get ((GeeAbstractList*) _tmp42_, _tmp43_);
+#line 242 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               _tmp45_ = (JSDOCToken*) _tmp44_;
+#line 242 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               gee_abstract_collection_add ((GeeAbstractCollection*) _tmp41_, _tmp45_);
+#line 242 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               _g_object_unref0 (_tmp45_);
+#line 243 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               _tmp46_ = ret;
+#line 243 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               _tmp47_ = g;
+#line 243 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               gee_abstract_collection_add ((GeeAbstractCollection*) _tmp46_, _tmp47_);
+#line 244 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               _tmp48_ = gee_array_list_new (JSDOC_TYPE_TOKEN, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL);
+#line 244 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               _g_object_unref0 (g);
+#line 244 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               g = _tmp48_;
+#line 1424 "Collapse.c"
+                       }
+               }
+       }
+#line 248 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       _tmp49_ = g;
+#line 248 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       _tmp50_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp49_);
+#line 248 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       _tmp51_ = _tmp50_;
+#line 248 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       if (_tmp51_ > 0) {
+#line 1436 "Collapse.c"
+               GeeArrayList* _tmp52_;
+               GeeArrayList* _tmp53_;
+#line 249 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+               _tmp52_ = ret;
+#line 249 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+               _tmp53_ = g;
+#line 249 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+               gee_abstract_collection_add ((GeeAbstractCollection*) _tmp52_, _tmp53_);
+#line 1445 "Collapse.c"
+       }
+#line 251 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       result = ret;
+#line 251 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       _g_object_unref0 (g);
+#line 251 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       return result;
+#line 1453 "Collapse.c"
+}
+
+
+static GeeHashMap* jsdoc_collapse_toProps (JSDOCCollapse* self, GeeArrayList* ar, JSDOCToken* tok) {
+       GeeHashMap* result = NULL;
+       GeeHashMap* ret = NULL;
+       GeeHashMap* _tmp0_;
+       GeeArrayList* keyseq = NULL;
+       GeeArrayList* _tmp1_;
+       JSDOCTokenKeyMap* g = NULL;
+       JSDOCTokenKeyMap* _tmp2_;
+       gchar* k = NULL;
+       gchar* _tmp3_;
+       gint state = 0;
+       gboolean _tmp39_ = FALSE;
+       const gchar* _tmp40_;
+       gint _tmp41_;
+       gint _tmp42_;
+       JSDOCToken* _tmp50_;
+       GeeHashMap* _tmp51_;
+       GeeHashMap* _tmp52_;
+       JSDOCToken* _tmp53_;
+       GeeArrayList* _tmp54_;
+       GeeArrayList* _tmp55_;
+#line 255 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 255 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       g_return_val_if_fail (ar != NULL, NULL);
+#line 255 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       g_return_val_if_fail (tok != NULL, NULL);
+#line 258 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       _tmp0_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, JSDOC_TYPE_TOKEN_KEY_MAP, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 258 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       ret = _tmp0_;
+#line 260 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       _tmp1_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL);
+#line 260 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       keyseq = _tmp1_;
+#line 262 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       _tmp2_ = jsdoc_token_key_map_new ();
+#line 262 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       g = _tmp2_;
+#line 265 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       _tmp3_ = g_strdup ("");
+#line 265 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       k = _tmp3_;
+#line 266 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       state = 0;
+#line 1502 "Collapse.c"
+       {
+               gint i = 0;
+#line 267 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+               i = 0;
+#line 1507 "Collapse.c"
+               {
+                       gboolean _tmp4_ = FALSE;
+#line 267 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                       _tmp4_ = TRUE;
+#line 267 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                       while (TRUE) {
+#line 1514 "Collapse.c"
+                               gint _tmp6_;
+                               GeeArrayList* _tmp7_;
+                               gint _tmp8_;
+                               gint _tmp9_;
+                               gint _tmp10_;
+#line 267 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               if (!_tmp4_) {
+#line 1522 "Collapse.c"
+                                       gint _tmp5_;
+#line 267 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                       _tmp5_ = i;
+#line 267 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                       i = _tmp5_ + 1;
+#line 1528 "Collapse.c"
+                               }
+#line 267 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               _tmp4_ = FALSE;
+#line 267 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               _tmp6_ = i;
+#line 267 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               _tmp7_ = ar;
+#line 267 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               _tmp8_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp7_);
+#line 267 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               _tmp9_ = _tmp8_;
+#line 267 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               if (!(_tmp6_ < _tmp9_)) {
+#line 267 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                       break;
+#line 1544 "Collapse.c"
+                               }
+#line 269 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               _tmp10_ = state;
+#line 269 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                               switch (_tmp10_) {
+#line 269 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                       case 0:
+#line 1552 "Collapse.c"
+                                       {
+                                               GeeArrayList* _tmp11_;
+                                               gint _tmp12_;
+                                               gpointer _tmp13_;
+                                               JSDOCToken* _tmp14_;
+                                               const gchar* _tmp15_;
+                                               gchar* _tmp16_;
+                                               JSDOCTokenKeyMap* _tmp17_;
+                                               GeeArrayList* _tmp18_;
+                                               gint _tmp19_;
+                                               gpointer _tmp20_;
+                                               GeeArrayList* _tmp21_;
+                                               const gchar* _tmp22_;
+#line 271 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                               _tmp11_ = ar;
+#line 271 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                               _tmp12_ = i;
+#line 271 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                               _tmp13_ = gee_abstract_list_get ((GeeAbstractList*) _tmp11_, _tmp12_);
+#line 271 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                               _tmp14_ = (JSDOCToken*) _tmp13_;
+#line 271 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                               _tmp15_ = _tmp14_->data;
+#line 271 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                               _tmp16_ = g_strdup (_tmp15_);
+#line 271 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                               _g_free0 (k);
+#line 271 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                               k = _tmp16_;
+#line 271 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                               _g_object_unref0 (_tmp14_);
+#line 272 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                               _tmp17_ = g;
+#line 272 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                               _tmp18_ = ar;
+#line 272 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                               _tmp19_ = i;
+#line 272 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                               _tmp20_ = gee_abstract_list_get ((GeeAbstractList*) _tmp18_, _tmp19_);
+#line 272 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                               _g_object_unref0 (_tmp17_->key);
+#line 272 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                               _tmp17_->key = (JSDOCToken*) _tmp20_;
+#line 273 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                               _tmp21_ = keyseq;
+#line 273 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                               _tmp22_ = k;
+#line 273 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                               gee_abstract_collection_add ((GeeAbstractCollection*) _tmp21_, _tmp22_);
+#line 274 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                               state = 1;
+#line 275 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                               continue;
+#line 1606 "Collapse.c"
+                                       }
+#line 269 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                       case 1:
+#line 1610 "Collapse.c"
+                                       {
+#line 277 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                               state = 2;
+#line 278 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                               continue;
+#line 1616 "Collapse.c"
+                                       }
+#line 269 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                       case 2:
+#line 1620 "Collapse.c"
+                                       {
+                                               JSDOCTokenKeyMap* _tmp23_;
+                                               GeeArrayList* _tmp24_;
+                                               GeeArrayList* _tmp25_;
+                                               gint _tmp26_;
+                                               gpointer _tmp27_;
+                                               JSDOCToken* _tmp28_;
+                                               GeeArrayList* _tmp29_;
+                                               gint _tmp30_;
+                                               gpointer _tmp31_;
+                                               JSDOCToken* _tmp32_;
+                                               const gchar* _tmp33_;
+                                               gboolean _tmp34_;
+                                               GeeHashMap* _tmp35_;
+                                               const gchar* _tmp36_;
+                                               JSDOCTokenKeyMap* _tmp37_;
+                                               JSDOCTokenKeyMap* _tmp38_;
+#line 280 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                               _tmp23_ = g;
+#line 280 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                               _tmp24_ = _tmp23_->vals;
+#line 280 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                               _tmp25_ = ar;
+#line 280 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                               _tmp26_ = i;
+#line 280 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                               _tmp27_ = gee_abstract_list_get ((GeeAbstractList*) _tmp25_, _tmp26_);
+#line 280 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                               _tmp28_ = (JSDOCToken*) _tmp27_;
+#line 280 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                               gee_abstract_collection_add ((GeeAbstractCollection*) _tmp24_, _tmp28_);
+#line 280 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                               _g_object_unref0 (_tmp28_);
+#line 281 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                               _tmp29_ = ar;
+#line 281 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                               _tmp30_ = i;
+#line 281 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                               _tmp31_ = gee_abstract_list_get ((GeeAbstractList*) _tmp29_, _tmp30_);
+#line 281 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                               _tmp32_ = (JSDOCToken*) _tmp31_;
+#line 281 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                               _tmp33_ = _tmp32_->data;
+#line 281 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                               _tmp34_ = g_strcmp0 (_tmp33_, ",") != 0;
+#line 281 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                               _g_object_unref0 (_tmp32_);
+#line 281 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                               if (_tmp34_) {
+#line 282 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                                       continue;
+#line 1672 "Collapse.c"
+                                               }
+#line 284 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                               _tmp35_ = ret;
+#line 284 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                               _tmp36_ = k;
+#line 284 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                               _tmp37_ = g;
+#line 284 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                               gee_abstract_map_set ((GeeAbstractMap*) _tmp35_, _tmp36_, _tmp37_);
+#line 285 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                               _tmp38_ = jsdoc_token_key_map_new ();
+#line 285 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                               _g_object_unref0 (g);
+#line 285 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                               g = _tmp38_;
+#line 286 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                               state = 0;
+#line 287 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                               continue;
+#line 1692 "Collapse.c"
+                                       }
+                                       default:
+#line 269 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+                                       break;
+#line 1697 "Collapse.c"
+                               }
+                       }
+               }
+       }
+#line 293 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       _tmp40_ = k;
+#line 293 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       _tmp41_ = strlen (_tmp40_);
+#line 293 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       _tmp42_ = _tmp41_;
+#line 293 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       if (_tmp42_ > 0) {
+#line 1710 "Collapse.c"
+               JSDOCTokenKeyMap* _tmp43_;
+               GeeArrayList* _tmp44_;
+               gint _tmp45_;
+               gint _tmp46_;
+#line 293 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+               _tmp43_ = g;
+#line 293 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+               _tmp44_ = _tmp43_->vals;
+#line 293 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+               _tmp45_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp44_);
+#line 293 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+               _tmp46_ = _tmp45_;
+#line 293 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+               _tmp39_ = _tmp46_ > 0;
+#line 1725 "Collapse.c"
+       } else {
+#line 293 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+               _tmp39_ = FALSE;
+#line 1729 "Collapse.c"
+       }
+#line 293 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       if (_tmp39_) {
+#line 1733 "Collapse.c"
+               GeeHashMap* _tmp47_;
+               const gchar* _tmp48_;
+               JSDOCTokenKeyMap* _tmp49_;
+#line 294 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+               _tmp47_ = ret;
+#line 294 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+               _tmp48_ = k;
+#line 294 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+               _tmp49_ = g;
+#line 294 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+               gee_abstract_map_set ((GeeAbstractMap*) _tmp47_, _tmp48_, _tmp49_);
+#line 1745 "Collapse.c"
+       }
+#line 296 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       _tmp50_ = tok;
+#line 296 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       _tmp51_ = ret;
+#line 296 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       _tmp52_ = _g_object_ref0 (_tmp51_);
+#line 296 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       _g_object_unref0 (_tmp50_->props);
+#line 296 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       _tmp50_->props = _tmp52_;
+#line 297 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       _tmp53_ = tok;
+#line 297 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       _tmp54_ = keyseq;
+#line 297 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       _tmp55_ = _g_object_ref0 (_tmp54_);
+#line 297 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       _g_object_unref0 (_tmp53_->keyseq);
+#line 297 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       _tmp53_->keyseq = _tmp55_;
+#line 298 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       result = ret;
+#line 298 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       _g_free0 (k);
+#line 298 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       _g_object_unref0 (g);
+#line 298 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       _g_object_unref0 (keyseq);
+#line 298 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       return result;
+#line 1777 "Collapse.c"
+}
+
+
+static void jsdoc_collapse_class_init (JSDOCCollapseClass * klass) {
+#line 29 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       jsdoc_collapse_parent_class = g_type_class_peek_parent (klass);
+#line 29 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       g_type_class_add_private (klass, sizeof (JSDOCCollapsePrivate));
+#line 29 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       G_OBJECT_CLASS (klass)->finalize = jsdoc_collapse_finalize;
+#line 1788 "Collapse.c"
+}
+
+
+static void jsdoc_collapse_instance_init (JSDOCCollapse * self) {
+#line 29 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       self->priv = JSDOC_COLLAPSE_GET_PRIVATE (self);
+#line 1795 "Collapse.c"
+}
+
+
+static void jsdoc_collapse_finalize (GObject * obj) {
+       JSDOCCollapse * self;
+#line 29 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       self = G_TYPE_CHECK_INSTANCE_CAST (obj, JSDOC_TYPE_COLLAPSE, JSDOCCollapse);
+#line 31 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       _g_object_unref0 (self->priv->packer);
+#line 32 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       _g_free0 (self->priv->filename);
+#line 29 "/home/alan/gitlive/roojspacker/src/jsdoc/Collapse.vala"
+       G_OBJECT_CLASS (jsdoc_collapse_parent_class)->finalize (obj);
+#line 1809 "Collapse.c"
+}
+
+
+GType jsdoc_collapse_get_type (void) {
+       static volatile gsize jsdoc_collapse_type_id__volatile = 0;
+       if (g_once_init_enter (&jsdoc_collapse_type_id__volatile)) {
+               static const GTypeInfo g_define_type_info = { sizeof (JSDOCCollapseClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) jsdoc_collapse_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (JSDOCCollapse), 0, (GInstanceInitFunc) jsdoc_collapse_instance_init, NULL };
+               GType jsdoc_collapse_type_id;
+               jsdoc_collapse_type_id = g_type_register_static (JSDOC_TYPE_TOKEN_STREAM, "JSDOCCollapse", &g_define_type_info, 0);
+               g_once_init_leave (&jsdoc_collapse_type_id__volatile, jsdoc_collapse_type_id);
+       }
+       return jsdoc_collapse_type_id__volatile;
+}
+
+
+
diff --git a/jsdoc/Collapse.vala b/jsdoc/Collapse.vala
new file mode 100644 (file)
index 0000000..37810c3
--- /dev/null
@@ -0,0 +1,305 @@
+
+/**
+ * 
+ * base class for parsing segments of token array..
+ * 
+ * 
+ * We want to make parsing the whole thing easy..
+ * 
+ * so we do various tricks:
+ * 
+ * 
+ * a) white space collased
+ *    wsPrefix 
+ * b)  toks
+ *     { } - collapse into first element.
+       ( ) - collapse into first element.
+       [ ] - collapse into first element.
+ * c) items = , seperation within the above..
+ * 
+ * usage: x = new Collapse(token_array)
+ * 
+ * 
+ * 
+ * 
+ */ 
+
+namespace JSDOC {
+
+       public class  Collapse : TokenStream  {
+
+               Packer packer;
+               string filename;
+       
+               public Collapse(Gee.ArrayList<Token> tokens, Packer pk, string filename) 
+               {
+                   base(tokens);
+                   
+                   this.packer = pk;
+                   this.filename = filename;
+                   
+                   
+                   
+                   this.spaces();
+                   
+                   var ar = this.collapse(this.tokens);
+                   
+                   this.tokens = ar;
+                   
+                  // console.dump(ar);
+                   
+               }
+               
+               // put spaces into prefix of tokens..
+    
+        void spaces () 
+        {
+            var ar = new Gee.ArrayList<Token>();
+            var pref =  new Gee.ArrayList<Token>();
+            
+                       
+            
+            for (var i = 0; i < this.tokens.size; i ++) {
+                var tok = this.tokens[i];
+                if (tok.isType(TokenType.COMM) || tok.isType(TokenType.WHIT)) {
+                    pref.add(tok);
+                    continue;
+                }
+                tok.prefix = "";
+                if (pref.size > 0) {
+                       foreach(var e in pref) {
+                        tok.prefix += e.data;
+                    }
+                    pref =  new Gee.ArrayList<Token>(); // reset pref..
+                }
+                
+                ar.add(tok);
+                
+
+                
+            }
+            this.tokens = ar;
+            
+        }
+        
+        
+        
+        Gee.ArrayList<Token>  collapse(Gee.ArrayList<Token>  ar) 
+        {
+            
+            var st = new TokenStream(ar);
+            var ret = new Gee.ArrayList<Token>();
+            var last_is_object_def = false;
+            
+            while (true) {
+                var  tok = st.look(1,true);
+                if (tok == null) {
+                  //  Seed.print(TokenStream.toString(ret));
+                    return ret;
+                }
+                // console.log(tok.data);
+                
+                //print("COL: %s\n", tok.asString());
+                
+                switch(tok.type) {
+                    case TokenType.VOID: 
+                        return ret; //EOF
+                        
+                        
+                    case TokenType.KEYW: 
+                    case TokenType.TOKN:
+                    case TokenType.NAME:
+                    case TokenType.STRN:
+                    case TokenType.NUMB:
+                    case TokenType.REGX:
+                               if (last_is_object_def) {
+                               
+                                       this.packer.logError(Packer.ResultType.err, this.filename, tok.line, 
+                                                       "Syntax error - found non punctuation after object close brace");
+                                       
+                                       
+                               
+                                       //GLib.error("Syntax error - found non punctuation after object close brace\n%s", tok.asString());
+                               }
+                    
+                               var nn = st.next();
+                               if (nn != null) { 
+                               ret.add(nn);
+                        }
+                        last_is_object_def = false;
+                        continue;
+                        
+                    case TokenType.PUNC:
+                        switch (tok.data) {
+                            case "[":
+                            case "{":
+                            case "(":
+                                last_is_object_def = false;
+                                var start = st.cursor;
+                                //st.next(); << no need to shift, balance will start at first character..
+                                
+                                var add = st.balance(tok.name);
+                                
+                               // print("BALANCE returned %d items\n", add.size);
+                                
+                                
+                               // if (!add) {
+                                    //console.dump(tok);
+                                    //console.dump(start + '...' + st.cursor);
+                                    //console.dump(st.tokens);
+                                 
+                                //}
+                                if (add.size > 0) {
+                                               add.remove_at(0);  // remove the first element... (as it's the 
+                                }
+                                //Seed.print("ADD");
+                                //Seed.print(JSON.stringify(add, null,4));
+                                
+                                
+                                
+                                var toks = add.size > 0 ? this.collapse(add) : add;
+                                
+                                tok.items = new Gee.ArrayList<Gee.ArrayList<Token>>(); //?? needed?
+                                tok.props = new Gee.HashMap<string,TokenKeyMap>();
+                                 
+                                
+                                if (tok.data != "{") {
+                                    // paramters or array elements..
+                                    tok.items = this.toItems(toks, ",");
+                                    if (tok.data == "]") {   // ) can be folowed with lots of things...
+                                           last_is_object_def = true;
+                                    }
+                                } else {
+                                    // check for types.. it could be a list of statements.. or object
+                                    // format "{" "xXXX" ":" << looks for the ':'.. seems to work.. not sure if it's foolproof...
+                                    
+                                    var ost = new  TokenStream(toks);
+                                    //console.dump(ost.look(2,true) );
+                                    if (ost.look(2,true) != null && ost.look(2,true).data == ":") {
+                                               // object properties...
+                                                                               this.toProps(toks,tok);
+                                                                               last_is_object_def = true;
+                                    } else {
+                                        // list of statemetns..
+                                        tok.items = this.toItems(toks, ";{");;
+                                    }
+                                    
+                                    
+                                }
+                                 
+                                
+                                
+                                
+                                
+                                
+                                
+                                //Seed.print(" ADD : " + add.length  +  " ITEMS: " + tok.items.length);
+                                
+                                ret.add(tok);
+                                
+                                continue;
+                   
+                            default:
+                                   last_is_object_def = false;
+                                ret.add(st.next());
+                                continue;
+                        }
+                       print("OOPS");
+                        continue;
+                    default : 
+                       print("OOPS" + tok.type.to_string());
+                        continue;
+                }
+            }
+                
+                
+            
+            
+            
+            
+            
+            
+            
+            
+        }
+        // array of arrays of tokens
+        Gee.ArrayList<Gee.ArrayList<Token>>  toItems(Gee.ArrayList<Token>  ar, string sep)
+        {
+            var ret = new Gee.ArrayList<Gee.ArrayList<Token>>() ;
+            var g =  new Gee.ArrayList<Token>() ;
+              
+            for (var i = 0; i < ar.size; i ++) {
+                if (sep.index_of(ar.get(i).data) < 0) {
+                    g.add(ar.get(i));
+                    continue;
+                }
+                // var a=..., b =...
+                if ((ar.get(i).data != ";") && g.size> 0  && (g[0].name == TokenName.VAR)) {;
+                    g.add(ar.get(i));
+                    continue;
+                }
+                
+                g.add(ar.get(i));
+                ret.add(g);
+                g =  new Gee.ArrayList<Token>() ;
+                
+            }
+            // last..
+            if (g.size > 0) {
+                ret.add(g);
+            }
+            return ret;
+            
+        }
+        
+        Gee.HashMap<string,TokenKeyMap> toProps (Gee.ArrayList<Token> ar, Token tok)
+        {
+            
+            var ret = new Gee.HashMap<string,TokenKeyMap>();
+                       
+                       var keyseq = new Gee.ArrayList<string>();
+               
+            var g = new TokenKeyMap();
+               
+            
+            var k = "";
+            var state = 0;
+            for (var i = 0; i < ar.size; i ++) {
+                
+                switch(state) {
+                    case 0:
+                        k = ar.get(i).data;
+                        g.key = ar.get(i);
+                        keyseq.add(k);
+                        state = 1;
+                        continue;
+                    case 1:
+                        state =2; // should be ':'
+                        continue;
+                    case 2:
+                        g.vals.add( ar.get(i));
+                        if ( ar.get(i).data != ",") {
+                            continue;
+                        }
+                        ret.set(k, g);
+                        g = new TokenKeyMap();
+                        state = 0;
+                        continue;
+                   
+                }
+            }
+             // last.. - if g.val.length is 0 then it's a trailing ','...
+             // we should really throw a syntax error in that case..
+            if (k.length > 0 && g.vals.size > 0) {
+                ret.set(k, g);
+            }
+            tok.props = ret;
+            tok.keyseq = keyseq;
+            return ret;
+            
+            
+        }
+
+       }   
+    
+}
diff --git a/jsdoc/CompressWhite.c b/jsdoc/CompressWhite.c
new file mode 100644 (file)
index 0000000..4bca1cb
--- /dev/null
@@ -0,0 +1,2357 @@
+/* CompressWhite.c generated by valac 0.36.6, the Vala compiler
+ * generated from CompressWhite.vala, do not modify */
+
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gee.h>
+
+
+#define JSDOC_TYPE_TOKEN_STREAM (jsdoc_token_stream_get_type ())
+#define JSDOC_TOKEN_STREAM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_TOKEN_STREAM, JSDOCTokenStream))
+#define JSDOC_TOKEN_STREAM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_TOKEN_STREAM, JSDOCTokenStreamClass))
+#define JSDOC_IS_TOKEN_STREAM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_TOKEN_STREAM))
+#define JSDOC_IS_TOKEN_STREAM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_TOKEN_STREAM))
+#define JSDOC_TOKEN_STREAM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_TOKEN_STREAM, JSDOCTokenStreamClass))
+
+typedef struct _JSDOCTokenStream JSDOCTokenStream;
+typedef struct _JSDOCTokenStreamClass JSDOCTokenStreamClass;
+
+#define JSDOC_TYPE_PACKER (jsdoc_packer_get_type ())
+#define JSDOC_PACKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_PACKER, JSDOCPacker))
+#define JSDOC_PACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_PACKER, JSDOCPackerClass))
+#define JSDOC_IS_PACKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_PACKER))
+#define JSDOC_IS_PACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_PACKER))
+#define JSDOC_PACKER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_PACKER, JSDOCPackerClass))
+
+typedef struct _JSDOCPacker JSDOCPacker;
+typedef struct _JSDOCPackerClass JSDOCPackerClass;
+
+#define JSDOC_TYPE_TOKEN (jsdoc_token_get_type ())
+#define JSDOC_TOKEN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_TOKEN, JSDOCToken))
+#define JSDOC_TOKEN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_TOKEN, JSDOCTokenClass))
+#define JSDOC_IS_TOKEN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_TOKEN))
+#define JSDOC_IS_TOKEN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_TOKEN))
+#define JSDOC_TOKEN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_TOKEN, JSDOCTokenClass))
+
+typedef struct _JSDOCToken JSDOCToken;
+typedef struct _JSDOCTokenClass JSDOCTokenClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+typedef struct _JSDOCTokenPrivate JSDOCTokenPrivate;
+
+#define JSDOC_TYPE_TOKEN_TYPE (jsdoc_token_type_get_type ())
+
+#define JSDOC_TYPE_TOKEN_NAME (jsdoc_token_name_get_type ())
+
+#define JSDOC_TYPE_IDENTIFIER (jsdoc_identifier_get_type ())
+#define JSDOC_IDENTIFIER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_IDENTIFIER, JSDOCIdentifier))
+#define JSDOC_IDENTIFIER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_IDENTIFIER, JSDOCIdentifierClass))
+#define JSDOC_IS_IDENTIFIER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_IDENTIFIER))
+#define JSDOC_IS_IDENTIFIER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_IDENTIFIER))
+#define JSDOC_IDENTIFIER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_IDENTIFIER, JSDOCIdentifierClass))
+
+typedef struct _JSDOCIdentifier JSDOCIdentifier;
+typedef struct _JSDOCIdentifierClass JSDOCIdentifierClass;
+
+#define JSDOC_TYPE_TOKEN_KEY_MAP (jsdoc_token_key_map_get_type ())
+#define JSDOC_TOKEN_KEY_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_TOKEN_KEY_MAP, JSDOCTokenKeyMap))
+#define JSDOC_TOKEN_KEY_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_TOKEN_KEY_MAP, JSDOCTokenKeyMapClass))
+#define JSDOC_IS_TOKEN_KEY_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_TOKEN_KEY_MAP))
+#define JSDOC_IS_TOKEN_KEY_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_TOKEN_KEY_MAP))
+#define JSDOC_TOKEN_KEY_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_TOKEN_KEY_MAP, JSDOCTokenKeyMapClass))
+
+typedef struct _JSDOCTokenKeyMap JSDOCTokenKeyMap;
+typedef struct _JSDOCTokenKeyMapClass JSDOCTokenKeyMapClass;
+#define _g_free0(var) (var = (g_free (var), NULL))
+typedef struct _JSDOCTokenStreamPrivate JSDOCTokenStreamPrivate;
+typedef struct _JSDOCIdentifierPrivate JSDOCIdentifierPrivate;
+
+#define JSDOC_TYPE_SCOPE (jsdoc_scope_get_type ())
+#define JSDOC_SCOPE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_SCOPE, JSDOCScope))
+#define JSDOC_SCOPE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_SCOPE, JSDOCScopeClass))
+#define JSDOC_IS_SCOPE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_SCOPE))
+#define JSDOC_IS_SCOPE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_SCOPE))
+#define JSDOC_SCOPE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_SCOPE, JSDOCScopeClass))
+
+typedef struct _JSDOCScope JSDOCScope;
+typedef struct _JSDOCScopeClass JSDOCScopeClass;
+
+typedef enum  {
+       JSDOC_COMPRESS_WHITE_ERROR_BRACE
+} JSDOCCompressWhiteError;
+#define JSDOC_COMPRESS_WHITE_ERROR jsdoc_compress_white_error_quark ()
+typedef enum  {
+       JSDOC_TOKEN_TYPE_TOKN,
+       JSDOC_TOKEN_TYPE_KEYW,
+       JSDOC_TOKEN_TYPE_NAME,
+       JSDOC_TOKEN_TYPE_COMM,
+       JSDOC_TOKEN_TYPE_PUNC,
+       JSDOC_TOKEN_TYPE_WHIT,
+       JSDOC_TOKEN_TYPE_STRN,
+       JSDOC_TOKEN_TYPE_NUMB,
+       JSDOC_TOKEN_TYPE_REGX,
+       JSDOC_TOKEN_TYPE_VOID
+} JSDOCTokenType;
+
+typedef enum  {
+       JSDOC_TOKEN_NAME_UNKNOWN_TOKEN,
+       JSDOC_TOKEN_NAME_BREAK,
+       JSDOC_TOKEN_NAME_CASE,
+       JSDOC_TOKEN_NAME_CATCH,
+       JSDOC_TOKEN_NAME_CONST,
+       JSDOC_TOKEN_NAME_CONTINUE,
+       JSDOC_TOKEN_NAME_DEFAULT,
+       JSDOC_TOKEN_NAME_DELETE,
+       JSDOC_TOKEN_NAME_DO,
+       JSDOC_TOKEN_NAME_ELSE,
+       JSDOC_TOKEN_NAME_FALSE,
+       JSDOC_TOKEN_NAME_FINALLY,
+       JSDOC_TOKEN_NAME_FOR,
+       JSDOC_TOKEN_NAME_FUNCTION,
+       JSDOC_TOKEN_NAME_IF,
+       JSDOC_TOKEN_NAME_IN,
+       JSDOC_TOKEN_NAME_INSTANCEOF,
+       JSDOC_TOKEN_NAME_NEW,
+       JSDOC_TOKEN_NAME_NULL,
+       JSDOC_TOKEN_NAME_RETURN,
+       JSDOC_TOKEN_NAME_SWITCH,
+       JSDOC_TOKEN_NAME_THIS,
+       JSDOC_TOKEN_NAME_THROW,
+       JSDOC_TOKEN_NAME_TRUE,
+       JSDOC_TOKEN_NAME_TRY,
+       JSDOC_TOKEN_NAME_TYPEOF,
+       JSDOC_TOKEN_NAME_VOID,
+       JSDOC_TOKEN_NAME_WHILE,
+       JSDOC_TOKEN_NAME_WITH,
+       JSDOC_TOKEN_NAME_VAR,
+       JSDOC_TOKEN_NAME_EVAL,
+       JSDOC_TOKEN_NAME_NAME,
+       JSDOC_TOKEN_NAME_MULTI_LINE_COMM,
+       JSDOC_TOKEN_NAME_JSDOC,
+       JSDOC_TOKEN_NAME_SINGLE_LINE_COMM,
+       JSDOC_TOKEN_NAME_SEMICOLON,
+       JSDOC_TOKEN_NAME_COMMA,
+       JSDOC_TOKEN_NAME_HOOK,
+       JSDOC_TOKEN_NAME_COLON,
+       JSDOC_TOKEN_NAME_OR,
+       JSDOC_TOKEN_NAME_AND,
+       JSDOC_TOKEN_NAME_BITWISE_OR,
+       JSDOC_TOKEN_NAME_BITWISE_XOR,
+       JSDOC_TOKEN_NAME_BITWISE_AND,
+       JSDOC_TOKEN_NAME_STRICT_EQ,
+       JSDOC_TOKEN_NAME_EQ,
+       JSDOC_TOKEN_NAME_ASSIGN,
+       JSDOC_TOKEN_NAME_STRICT_NE,
+       JSDOC_TOKEN_NAME_NE,
+       JSDOC_TOKEN_NAME_LSH,
+       JSDOC_TOKEN_NAME_LE,
+       JSDOC_TOKEN_NAME_LT,
+       JSDOC_TOKEN_NAME_URSH,
+       JSDOC_TOKEN_NAME_RSH,
+       JSDOC_TOKEN_NAME_GE,
+       JSDOC_TOKEN_NAME_GT,
+       JSDOC_TOKEN_NAME_INCREMENT,
+       JSDOC_TOKEN_NAME_DECREMENT,
+       JSDOC_TOKEN_NAME_PLUS,
+       JSDOC_TOKEN_NAME_MINUS,
+       JSDOC_TOKEN_NAME_MUL,
+       JSDOC_TOKEN_NAME_DIV,
+       JSDOC_TOKEN_NAME_MOD,
+       JSDOC_TOKEN_NAME_NOT,
+       JSDOC_TOKEN_NAME_BITWISE_NOT,
+       JSDOC_TOKEN_NAME_DOT,
+       JSDOC_TOKEN_NAME_LEFT_BRACE,
+       JSDOC_TOKEN_NAME_RIGHT_BRACE,
+       JSDOC_TOKEN_NAME_LEFT_CURLY,
+       JSDOC_TOKEN_NAME_RIGHT_CURLY,
+       JSDOC_TOKEN_NAME_LEFT_PAREN,
+       JSDOC_TOKEN_NAME_RIGHT_PAREN,
+       JSDOC_TOKEN_NAME_SPACE,
+       JSDOC_TOKEN_NAME_NEWLINE,
+       JSDOC_TOKEN_NAME_DOUBLE_QUOTE,
+       JSDOC_TOKEN_NAME_SINGLE_QUOTE,
+       JSDOC_TOKEN_NAME_OCTAL,
+       JSDOC_TOKEN_NAME_DECIMAL,
+       JSDOC_TOKEN_NAME_HEX_DEC,
+       JSDOC_TOKEN_NAME_REGX,
+       JSDOC_TOKEN_NAME_START_OF_STREAM,
+       JSDOC_TOKEN_NAME_END_OF_STREAM,
+       JSDOC_TOKEN_NAME_UNKNOWN
+} JSDOCTokenName;
+
+struct _JSDOCToken {
+       GObject parent_instance;
+       JSDOCTokenPrivate * priv;
+       gint id;
+       gchar* data;
+       JSDOCTokenType type;
+       JSDOCTokenName name;
+       gint line;
+       gchar* prefix;
+       gchar* outData;
+       JSDOCIdentifier* identifier;
+       GeeArrayList* items;
+       GeeHashMap* props;
+       GeeArrayList* keyseq;
+};
+
+struct _JSDOCTokenClass {
+       GObjectClass parent_class;
+};
+
+struct _JSDOCTokenStream {
+       GObject parent_instance;
+       JSDOCTokenStreamPrivate * priv;
+       GeeArrayList* tokens;
+       gint cursor;
+};
+
+struct _JSDOCTokenStreamClass {
+       GObjectClass parent_class;
+};
+
+typedef enum  {
+       JSDOC_TOKEN_STREAM_ERROR_ArgumentError
+} JSDOCTokenStreamError;
+#define JSDOC_TOKEN_STREAM_ERROR jsdoc_token_stream_error_quark ()
+struct _JSDOCIdentifier {
+       GObject parent_instance;
+       JSDOCIdentifierPrivate * priv;
+       gchar* name;
+       gint refcount;
+       gchar* mungedValue;
+       JSDOCScope* scope;
+       gboolean toMunge;
+};
+
+struct _JSDOCIdentifierClass {
+       GObjectClass parent_class;
+};
+
+
+
+GQuark jsdoc_compress_white_error_quark (void);
+GType jsdoc_token_stream_get_type (void) G_GNUC_CONST;
+GType jsdoc_packer_get_type (void) G_GNUC_CONST;
+gchar* jsdoc_CompressWhite (JSDOCTokenStream* ts, JSDOCPacker* packer, gboolean keepWhite);
+void jsdoc_token_stream_rewind (JSDOCTokenStream* self);
+GType jsdoc_token_get_type (void) G_GNUC_CONST;
+JSDOCToken* jsdoc_token_stream_next (JSDOCTokenStream* self);
+GType jsdoc_token_type_get_type (void) G_GNUC_CONST;
+GType jsdoc_token_name_get_type (void) G_GNUC_CONST;
+GType jsdoc_identifier_get_type (void) G_GNUC_CONST;
+GType jsdoc_token_key_map_get_type (void) G_GNUC_CONST;
+JSDOCToken* jsdoc_token_stream_lookTok (JSDOCTokenStream* self, gint n);
+JSDOCToken* jsdoc_token_stream_look (JSDOCTokenStream* self, gint n, gboolean considerWhitespace);
+GQuark jsdoc_token_stream_error_quark (void);
+GeeArrayList* jsdoc_token_stream_balance (JSDOCTokenStream* self, JSDOCTokenName in_start, GError** error);
+JSDOCToken* jsdoc_token_stream_nextTok (JSDOCTokenStream* self);
+GeeArrayList* jsdoc_token_stream_toArray (JSDOCTokenStream* self);
+void jsdoc_token_stream_dump (JSDOCTokenStream* self, gint start, gint end);
+GType jsdoc_scope_get_type (void) G_GNUC_CONST;
+
+
+GQuark jsdoc_compress_white_error_quark (void) {
+       return g_quark_from_static_string ("jsdoc_compress_white_error-quark");
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 307 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+       return self ? g_object_ref (self) : NULL;
+#line 265 "CompressWhite.c"
+}
+
+
+gchar* jsdoc_CompressWhite (JSDOCTokenStream* ts, JSDOCPacker* packer, gboolean keepWhite) {
+       gchar* result = NULL;
+       JSDOCTokenStream* _tmp0_;
+       gint rep_var = 0;
+       JSDOCTokenStream* _tmp348_;
+       gchar* outstr = NULL;
+       gchar* _tmp349_;
+       gint outoff = 0;
+       JSDOCToken* tok = NULL;
+       GError * _inner_error_ = NULL;
+#line 16 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+       g_return_val_if_fail (ts != NULL, NULL);
+#line 16 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+       g_return_val_if_fail (packer != NULL, NULL);
+#line 19 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+       _tmp0_ = ts;
+#line 19 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+       jsdoc_token_stream_rewind (_tmp0_);
+#line 23 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+       rep_var = 1;
+#line 27 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+       while (TRUE) {
+#line 291 "CompressWhite.c"
+               JSDOCToken* tok = NULL;
+               JSDOCTokenStream* _tmp1_;
+               JSDOCToken* _tmp2_;
+               JSDOCToken* _tmp3_;
+               JSDOCToken* _tmp4_;
+               JSDOCTokenType _tmp5_;
+               JSDOCToken* _tmp6_;
+               const gchar* _tmp7_;
+               JSDOCToken* _tmp26_;
+               JSDOCTokenType _tmp27_;
+               JSDOCToken* _tmp265_;
+               JSDOCTokenName _tmp266_;
+#line 28 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+               _tmp1_ = ts;
+#line 28 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+               _tmp2_ = jsdoc_token_stream_next (_tmp1_);
+#line 28 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+               tok = _tmp2_;
+#line 29 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+               _tmp3_ = tok;
+#line 29 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+               if (_tmp3_ == NULL) {
+#line 30 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _g_object_unref0 (tok);
+#line 30 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       break;
+#line 318 "CompressWhite.c"
+               }
+#line 32 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+               _tmp4_ = tok;
+#line 32 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+               _tmp5_ = _tmp4_->type;
+#line 32 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+               if (_tmp5_ == JSDOC_TOKEN_TYPE_WHIT) {
+#line 34 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _g_object_unref0 (tok);
+#line 34 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       continue;
+#line 330 "CompressWhite.c"
+               }
+#line 45 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+               _tmp6_ = tok;
+#line 45 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+               _tmp7_ = _tmp6_->data;
+#line 45 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+               if (g_strcmp0 (_tmp7_, "}") == 0) {
+#line 338 "CompressWhite.c"
+                       gboolean _tmp8_ = FALSE;
+                       JSDOCTokenStream* _tmp9_;
+                       JSDOCToken* _tmp10_;
+                       JSDOCToken* _tmp11_;
+                       JSDOCTokenType _tmp12_;
+                       gboolean _tmp13_;
+#line 47 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp9_ = ts;
+#line 47 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp10_ = jsdoc_token_stream_lookTok (_tmp9_, 0);
+#line 47 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp11_ = _tmp10_;
+#line 47 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp12_ = _tmp11_->type;
+#line 47 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp13_ = _tmp12_ == JSDOC_TOKEN_TYPE_NAME;
+#line 47 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _g_object_unref0 (_tmp11_);
+#line 47 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       if (_tmp13_) {
+#line 359 "CompressWhite.c"
+                               JSDOCTokenStream* _tmp14_;
+                               JSDOCToken* _tmp15_;
+                               JSDOCToken* _tmp16_;
+                               JSDOCTokenName _tmp17_;
+#line 47 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp14_ = ts;
+#line 47 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp15_ = jsdoc_token_stream_look (_tmp14_, 1, TRUE);
+#line 47 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp16_ = _tmp15_;
+#line 47 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp17_ = _tmp16_->name;
+#line 47 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp8_ = _tmp17_ == JSDOC_TOKEN_NAME_NEWLINE;
+#line 47 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _g_object_unref0 (_tmp16_);
+#line 376 "CompressWhite.c"
+                       } else {
+#line 47 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp8_ = FALSE;
+#line 380 "CompressWhite.c"
+                       }
+#line 47 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       if (_tmp8_) {
+#line 384 "CompressWhite.c"
+                               JSDOCTokenStream* _tmp18_;
+                               JSDOCToken* _tmp19_;
+                               JSDOCToken* _tmp20_;
+                               JSDOCTokenStream* _tmp21_;
+                               JSDOCToken* _tmp22_;
+                               JSDOCToken* _tmp23_;
+                               const gchar* _tmp24_;
+                               gchar* _tmp25_;
+#line 48 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp18_ = ts;
+#line 48 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp19_ = jsdoc_token_stream_look (_tmp18_, 0, TRUE);
+#line 48 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp20_ = _tmp19_;
+#line 48 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp21_ = ts;
+#line 48 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp22_ = jsdoc_token_stream_look (_tmp21_, 0, TRUE);
+#line 48 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp23_ = _tmp22_;
+#line 48 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp24_ = _tmp23_->data;
+#line 48 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp25_ = g_strconcat (_tmp24_, "\n", NULL);
+#line 48 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _g_free0 (_tmp20_->outData);
+#line 48 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp20_->outData = _tmp25_;
+#line 48 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _g_object_unref0 (_tmp23_);
+#line 48 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _g_object_unref0 (_tmp20_);
+#line 417 "CompressWhite.c"
+                       }
+#line 52 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _g_object_unref0 (tok);
+#line 52 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       continue;
+#line 423 "CompressWhite.c"
+               }
+#line 55 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+               _tmp26_ = tok;
+#line 55 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+               _tmp27_ = _tmp26_->type;
+#line 55 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+               if (_tmp27_ == JSDOC_TOKEN_TYPE_NAME) {
+#line 431 "CompressWhite.c"
+                       gboolean _tmp28_ = FALSE;
+                       gboolean _tmp29_ = FALSE;
+                       JSDOCTokenStream* _tmp30_;
+                       JSDOCToken* _tmp31_;
+                       JSDOCToken* _tmp32_;
+                       const gchar* _tmp33_;
+                       gboolean _tmp34_;
+                       gboolean _tmp76_ = FALSE;
+                       JSDOCTokenStream* _tmp77_;
+                       JSDOCToken* _tmp78_;
+                       JSDOCToken* _tmp79_;
+                       const gchar* _tmp80_;
+                       gboolean _tmp81_;
+                       gboolean _tmp163_ = FALSE;
+                       gboolean _tmp164_ = FALSE;
+                       JSDOCTokenStream* _tmp165_;
+                       JSDOCToken* _tmp166_;
+                       JSDOCToken* _tmp167_;
+                       JSDOCTokenType _tmp168_;
+                       gboolean _tmp169_;
+                       JSDOCTokenStream* _tmp186_;
+                       JSDOCToken* _tmp187_;
+                       JSDOCToken* _tmp188_;
+                       const gchar* _tmp189_;
+                       gboolean _tmp190_;
+                       gboolean _tmp216_ = FALSE;
+                       JSDOCTokenStream* _tmp217_;
+                       JSDOCToken* _tmp218_;
+                       JSDOCToken* _tmp219_;
+                       const gchar* _tmp220_;
+                       gboolean _tmp221_;
+#line 58 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp30_ = ts;
+#line 58 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp31_ = jsdoc_token_stream_lookTok (_tmp30_, 1);
+#line 58 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp32_ = _tmp31_;
+#line 58 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp33_ = _tmp32_->data;
+#line 58 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp34_ = g_strcmp0 (_tmp33_, "=") == 0;
+#line 58 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _g_object_unref0 (_tmp32_);
+#line 58 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       if (_tmp34_) {
+#line 477 "CompressWhite.c"
+                               JSDOCTokenStream* _tmp35_;
+                               JSDOCToken* _tmp36_;
+                               JSDOCToken* _tmp37_;
+                               JSDOCTokenName _tmp38_;
+#line 58 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp35_ = ts;
+#line 58 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp36_ = jsdoc_token_stream_lookTok (_tmp35_, 2);
+#line 58 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp37_ = _tmp36_;
+#line 58 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp38_ = _tmp37_->name;
+#line 58 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp29_ = _tmp38_ == JSDOC_TOKEN_NAME_NEW;
+#line 58 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _g_object_unref0 (_tmp37_);
+#line 494 "CompressWhite.c"
+                       } else {
+#line 58 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp29_ = FALSE;
+#line 498 "CompressWhite.c"
+                       }
+#line 58 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       if (_tmp29_) {
+#line 502 "CompressWhite.c"
+                               JSDOCTokenStream* _tmp39_;
+                               JSDOCToken* _tmp40_;
+                               JSDOCToken* _tmp41_;
+                               JSDOCTokenName _tmp42_;
+#line 59 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp39_ = ts;
+#line 59 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp40_ = jsdoc_token_stream_lookTok (_tmp39_, 3);
+#line 59 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp41_ = _tmp40_;
+#line 59 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp42_ = _tmp41_->name;
+#line 59 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp28_ = _tmp42_ == JSDOC_TOKEN_NAME_FUNCTION;
+#line 59 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _g_object_unref0 (_tmp41_);
+#line 519 "CompressWhite.c"
+                       } else {
+#line 58 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp28_ = FALSE;
+#line 523 "CompressWhite.c"
+                       }
+#line 58 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       if (_tmp28_) {
+#line 527 "CompressWhite.c"
+                               gint cu = 0;
+                               JSDOCTokenStream* _tmp43_;
+                               gint _tmp44_;
+                               JSDOCTokenStream* _tmp45_;
+                               GeeArrayList* _tmp46_;
+                               GeeArrayList* _tmp47_;
+                               JSDOCTokenStream* _tmp48_;
+                               GeeArrayList* _tmp49_;
+                               GeeArrayList* _tmp50_;
+                               gboolean _tmp51_ = FALSE;
+                               gboolean _tmp52_ = FALSE;
+                               JSDOCTokenStream* _tmp53_;
+                               JSDOCToken* _tmp54_;
+                               JSDOCToken* _tmp55_;
+                               const gchar* _tmp56_;
+                               gboolean _tmp57_;
+                               JSDOCTokenStream* _tmp74_;
+                               gint _tmp75_;
+#line 61 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp43_ = ts;
+#line 61 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp44_ = _tmp43_->cursor;
+#line 61 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               cu = _tmp44_;
+#line 63 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp45_ = ts;
+#line 63 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp46_ = jsdoc_token_stream_balance (_tmp45_, JSDOC_TOKEN_NAME_LEFT_PAREN, &_inner_error_);
+#line 63 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp47_ = _tmp46_;
+#line 63 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _g_object_unref0 (_tmp47_);
+#line 63 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 63 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _g_object_unref0 (tok);
+#line 63 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       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);
+#line 63 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       g_clear_error (&_inner_error_);
+#line 63 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       return NULL;
+#line 570 "CompressWhite.c"
+                               }
+#line 66 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp48_ = ts;
+#line 66 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp49_ = jsdoc_token_stream_balance (_tmp48_, JSDOC_TOKEN_NAME_LEFT_CURLY, &_inner_error_);
+#line 66 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp50_ = _tmp49_;
+#line 66 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _g_object_unref0 (_tmp50_);
+#line 66 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 66 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _g_object_unref0 (tok);
+#line 66 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       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);
+#line 66 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       g_clear_error (&_inner_error_);
+#line 66 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       return NULL;
+#line 590 "CompressWhite.c"
+                               }
+#line 69 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp53_ = ts;
+#line 69 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp54_ = jsdoc_token_stream_lookTok (_tmp53_, 1);
+#line 69 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp55_ = _tmp54_;
+#line 69 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp56_ = _tmp55_->data;
+#line 69 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp57_ = g_strcmp0 (_tmp56_, ";") != 0;
+#line 69 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _g_object_unref0 (_tmp55_);
+#line 69 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               if (_tmp57_) {
+#line 606 "CompressWhite.c"
+                                       JSDOCTokenStream* _tmp58_;
+                                       JSDOCToken* _tmp59_;
+                                       JSDOCToken* _tmp60_;
+                                       const gchar* _tmp61_;
+#line 69 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp58_ = ts;
+#line 69 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp59_ = jsdoc_token_stream_lookTok (_tmp58_, 1);
+#line 69 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp60_ = _tmp59_;
+#line 69 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp61_ = _tmp60_->data;
+#line 69 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp52_ = g_strcmp0 (_tmp61_, "}") != 0;
+#line 69 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _g_object_unref0 (_tmp60_);
+#line 623 "CompressWhite.c"
+                               } else {
+#line 69 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp52_ = FALSE;
+#line 627 "CompressWhite.c"
+                               }
+#line 69 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               if (_tmp52_) {
+#line 631 "CompressWhite.c"
+                                       JSDOCTokenStream* _tmp62_;
+                                       JSDOCToken* _tmp63_;
+                                       JSDOCToken* _tmp64_;
+                                       JSDOCTokenName _tmp65_;
+#line 69 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp62_ = ts;
+#line 69 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp63_ = jsdoc_token_stream_lookTok (_tmp62_, 1);
+#line 69 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp64_ = _tmp63_;
+#line 69 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp65_ = _tmp64_->name;
+#line 69 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp51_ = _tmp65_ == JSDOC_TOKEN_NAME_NEWLINE;
+#line 69 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _g_object_unref0 (_tmp64_);
+#line 648 "CompressWhite.c"
+                               } else {
+#line 69 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp51_ = FALSE;
+#line 652 "CompressWhite.c"
+                               }
+#line 69 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               if (_tmp51_) {
+#line 656 "CompressWhite.c"
+                                       JSDOCTokenStream* _tmp66_;
+                                       JSDOCToken* _tmp67_;
+                                       JSDOCToken* _tmp68_;
+                                       JSDOCTokenStream* _tmp69_;
+                                       JSDOCToken* _tmp70_;
+                                       JSDOCToken* _tmp71_;
+                                       const gchar* _tmp72_;
+                                       gchar* _tmp73_;
+#line 70 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp66_ = ts;
+#line 70 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp67_ = jsdoc_token_stream_look (_tmp66_, 0, TRUE);
+#line 70 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp68_ = _tmp67_;
+#line 70 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp69_ = ts;
+#line 70 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp70_ = jsdoc_token_stream_lookTok (_tmp69_, 0);
+#line 70 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp71_ = _tmp70_;
+#line 70 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp72_ = _tmp71_->data;
+#line 70 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp73_ = g_strconcat (_tmp72_, ";", NULL);
+#line 70 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _g_free0 (_tmp68_->outData);
+#line 70 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp68_->outData = _tmp73_;
+#line 70 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _g_object_unref0 (_tmp71_);
+#line 70 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _g_object_unref0 (_tmp68_);
+#line 689 "CompressWhite.c"
+                               }
+#line 73 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp74_ = ts;
+#line 73 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp75_ = cu;
+#line 73 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp74_->cursor = _tmp75_;
+#line 74 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _g_object_unref0 (tok);
+#line 74 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               continue;
+#line 701 "CompressWhite.c"
+                       }
+#line 78 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp77_ = ts;
+#line 78 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp78_ = jsdoc_token_stream_lookTok (_tmp77_, 1);
+#line 78 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp79_ = _tmp78_;
+#line 78 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp80_ = _tmp79_->data;
+#line 78 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp81_ = g_strcmp0 (_tmp80_, "=") == 0;
+#line 78 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _g_object_unref0 (_tmp79_);
+#line 78 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       if (_tmp81_) {
+#line 717 "CompressWhite.c"
+                               JSDOCTokenStream* _tmp82_;
+                               JSDOCToken* _tmp83_;
+                               JSDOCToken* _tmp84_;
+                               JSDOCTokenName _tmp85_;
+#line 78 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp82_ = ts;
+#line 78 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp83_ = jsdoc_token_stream_lookTok (_tmp82_, 2);
+#line 78 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp84_ = _tmp83_;
+#line 78 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp85_ = _tmp84_->name;
+#line 78 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp76_ = _tmp85_ == JSDOC_TOKEN_NAME_FUNCTION;
+#line 78 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _g_object_unref0 (_tmp84_);
+#line 734 "CompressWhite.c"
+                       } else {
+#line 78 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp76_ = FALSE;
+#line 738 "CompressWhite.c"
+                       }
+#line 78 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       if (_tmp76_) {
+#line 742 "CompressWhite.c"
+                               JSDOCTokenStream* _tmp86_;
+                               JSDOCToken* _tmp87_;
+                               JSDOCTokenStream* _tmp88_;
+                               JSDOCToken* _tmp89_;
+                               gint cu = 0;
+                               JSDOCTokenStream* _tmp90_;
+                               gint _tmp91_;
+                               gboolean _tmp92_ = FALSE;
+                               JSDOCTokenStream* _tmp93_;
+                               JSDOCToken* _tmp94_;
+                               JSDOCToken* _tmp95_;
+                               const gchar* _tmp96_;
+                               gboolean _tmp97_;
+                               JSDOCTokenStream* _tmp117_;
+                               JSDOCToken* _tmp118_;
+                               JSDOCTokenStream* _tmp119_;
+                               gint _tmp120_;
+                               JSDOCTokenStream* _tmp121_;
+                               gint _tmp122_;
+                               gboolean _tmp123_ = FALSE;
+                               JSDOCToken* _tmp124_;
+                               const gchar* _tmp125_;
+                               gboolean _tmp138_ = FALSE;
+                               gboolean _tmp139_ = FALSE;
+                               JSDOCTokenStream* _tmp140_;
+                               JSDOCToken* _tmp141_;
+                               JSDOCToken* _tmp142_;
+                               const gchar* _tmp143_;
+                               gboolean _tmp144_;
+                               JSDOCTokenStream* _tmp161_;
+                               gint _tmp162_;
+#line 81 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp86_ = ts;
+#line 81 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp87_ = jsdoc_token_stream_nextTok (_tmp86_);
+#line 81 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _g_object_unref0 (tok);
+#line 81 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               tok = _tmp87_;
+#line 82 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp88_ = ts;
+#line 82 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp89_ = jsdoc_token_stream_nextTok (_tmp88_);
+#line 82 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _g_object_unref0 (tok);
+#line 82 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               tok = _tmp89_;
+#line 85 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp90_ = ts;
+#line 85 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp91_ = _tmp90_->cursor;
+#line 85 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               cu = _tmp91_;
+#line 90 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp93_ = ts;
+#line 90 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp94_ = jsdoc_token_stream_lookTok (_tmp93_, 1);
+#line 90 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp95_ = _tmp94_;
+#line 90 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp96_ = _tmp95_->data;
+#line 90 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp97_ = g_strcmp0 (_tmp96_, "(") != 0;
+#line 90 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _g_object_unref0 (_tmp95_);
+#line 90 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               if (_tmp97_) {
+#line 90 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp92_ = TRUE;
+#line 812 "CompressWhite.c"
+                               } else {
+                                       GeeArrayList* _tmp98_ = NULL;
+                                       JSDOCTokenStream* _tmp99_;
+                                       GeeArrayList* _tmp100_;
+                                       gint _tmp101_;
+                                       gint _tmp102_;
+#line 90 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp99_ = ts;
+#line 90 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp100_ = jsdoc_token_stream_balance (_tmp99_, JSDOC_TOKEN_NAME_LEFT_PAREN, &_inner_error_);
+#line 90 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp98_ = _tmp100_;
+#line 90 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 90 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                               _g_object_unref0 (tok);
+#line 90 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                               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);
+#line 90 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                               g_clear_error (&_inner_error_);
+#line 90 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                               return NULL;
+#line 835 "CompressWhite.c"
+                                       }
+#line 90 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp101_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp98_);
+#line 90 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp102_ = _tmp101_;
+#line 90 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp92_ = _tmp102_ < 1;
+#line 90 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _g_object_unref0 (_tmp98_);
+#line 845 "CompressWhite.c"
+                               }
+#line 90 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               if (_tmp92_) {
+#line 849 "CompressWhite.c"
+                                       JSDOCTokenStream* _tmp103_;
+                                       GeeArrayList* _tmp104_;
+                                       GeeArrayList* _tmp105_;
+                                       gint _tmp106_;
+                                       gpointer _tmp107_;
+                                       JSDOCToken* _tmp108_;
+                                       gint _tmp109_;
+                                       JSDOCTokenStream* _tmp110_;
+                                       gint _tmp111_;
+                                       gint _tmp112_;
+                                       JSDOCTokenStream* _tmp113_;
+                                       gint _tmp114_;
+                                       gint _tmp115_;
+                                       GError* _tmp116_;
+#line 91 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp103_ = ts;
+#line 91 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp104_ = jsdoc_token_stream_toArray (_tmp103_);
+#line 91 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp105_ = _tmp104_;
+#line 91 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp106_ = cu;
+#line 91 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp107_ = gee_abstract_list_get ((GeeAbstractList*) _tmp105_, _tmp106_);
+#line 91 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp108_ = (JSDOCToken*) _tmp107_;
+#line 91 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp109_ = _tmp108_->line;
+#line 91 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       g_print ("balance ( issue on line %d\n", _tmp109_);
+#line 91 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _g_object_unref0 (_tmp108_);
+#line 91 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _g_object_unref0 (_tmp105_);
+#line 92 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp110_ = ts;
+#line 92 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp111_ = cu;
+#line 92 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp112_ = cu;
+#line 92 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       jsdoc_token_stream_dump (_tmp110_, _tmp111_ - 40, _tmp112_ + 2);
+#line 93 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       g_print (">>>>>>>>>>>>>>>>>HERE>>>>>>>>>>>>");
+#line 94 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp113_ = ts;
+#line 94 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp114_ = cu;
+#line 94 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp115_ = cu;
+#line 94 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       jsdoc_token_stream_dump (_tmp113_, _tmp114_ + 2, _tmp115_ + 40);
+#line 96 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp116_ = g_error_new_literal (JSDOC_COMPRESS_WHITE_ERROR, JSDOC_COMPRESS_WHITE_ERROR_BRACE, "could not find end lbrace!!!");
+#line 96 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _inner_error_ = _tmp116_;
+#line 96 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _g_object_unref0 (tok);
+#line 96 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       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);
+#line 96 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       g_clear_error (&_inner_error_);
+#line 96 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       return NULL;
+#line 914 "CompressWhite.c"
+                               }
+#line 101 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp117_ = ts;
+#line 101 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp118_ = jsdoc_token_stream_nextTok (_tmp117_);
+#line 101 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _g_object_unref0 (tok);
+#line 101 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               tok = _tmp118_;
+#line 103 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp119_ = ts;
+#line 103 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp120_ = _tmp119_->cursor;
+#line 103 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               cu = _tmp120_;
+#line 110 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp121_ = ts;
+#line 110 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp122_ = _tmp121_->cursor;
+#line 110 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp121_->cursor = _tmp122_ - 1;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp124_ = tok;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp125_ = _tmp124_->data;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               if (g_strcmp0 (_tmp125_, "{") != 0) {
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp123_ = TRUE;
+#line 944 "CompressWhite.c"
+                               } else {
+                                       GeeArrayList* _tmp126_ = NULL;
+                                       JSDOCTokenStream* _tmp127_;
+                                       GeeArrayList* _tmp128_;
+                                       gint _tmp129_;
+                                       gint _tmp130_;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp127_ = ts;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp128_ = jsdoc_token_stream_balance (_tmp127_, JSDOC_TOKEN_NAME_LEFT_CURLY, &_inner_error_);
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp126_ = _tmp128_;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                               _g_object_unref0 (tok);
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                               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);
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                               g_clear_error (&_inner_error_);
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                               return NULL;
+#line 967 "CompressWhite.c"
+                                       }
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp129_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp126_);
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp130_ = _tmp129_;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp123_ = _tmp130_ < 1;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _g_object_unref0 (_tmp126_);
+#line 977 "CompressWhite.c"
+                               }
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               if (_tmp123_) {
+#line 981 "CompressWhite.c"
+                                       JSDOCTokenStream* _tmp131_;
+                                       gint _tmp132_;
+                                       gint _tmp133_;
+                                       JSDOCTokenStream* _tmp134_;
+                                       gint _tmp135_;
+                                       gint _tmp136_;
+                                       GError* _tmp137_;
+#line 113 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp131_ = ts;
+#line 113 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp132_ = cu;
+#line 113 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp133_ = cu;
+#line 113 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       jsdoc_token_stream_dump (_tmp131_, _tmp132_ - 40, _tmp133_);
+#line 114 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       g_print (">>>>>>>>>>>>>>>>>HERE>>>>>>>>>>>>");
+#line 115 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp134_ = ts;
+#line 115 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp135_ = cu;
+#line 115 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp136_ = cu;
+#line 115 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       jsdoc_token_stream_dump (_tmp134_, _tmp135_, _tmp136_ + 40);
+#line 117 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp137_ = g_error_new_literal (JSDOC_COMPRESS_WHITE_ERROR, JSDOC_COMPRESS_WHITE_ERROR_BRACE, "could not find end lbrace!!!");
+#line 117 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _inner_error_ = _tmp137_;
+#line 117 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _g_object_unref0 (tok);
+#line 117 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       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);
+#line 117 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       g_clear_error (&_inner_error_);
+#line 117 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       return NULL;
+#line 1019 "CompressWhite.c"
+                               }
+#line 125 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp140_ = ts;
+#line 125 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp141_ = jsdoc_token_stream_lookTok (_tmp140_, 1);
+#line 125 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp142_ = _tmp141_;
+#line 125 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp143_ = _tmp142_->data;
+#line 125 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp144_ = g_strcmp0 (_tmp143_, ";") != 0;
+#line 125 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _g_object_unref0 (_tmp142_);
+#line 125 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               if (_tmp144_) {
+#line 1035 "CompressWhite.c"
+                                       JSDOCTokenStream* _tmp145_;
+                                       JSDOCToken* _tmp146_;
+                                       JSDOCToken* _tmp147_;
+                                       const gchar* _tmp148_;
+#line 125 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp145_ = ts;
+#line 125 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp146_ = jsdoc_token_stream_lookTok (_tmp145_, 1);
+#line 125 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp147_ = _tmp146_;
+#line 125 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp148_ = _tmp147_->data;
+#line 125 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp139_ = g_strcmp0 (_tmp148_, "}") != 0;
+#line 125 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _g_object_unref0 (_tmp147_);
+#line 1052 "CompressWhite.c"
+                               } else {
+#line 125 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp139_ = FALSE;
+#line 1056 "CompressWhite.c"
+                               }
+#line 125 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               if (_tmp139_) {
+#line 1060 "CompressWhite.c"
+                                       JSDOCTokenStream* _tmp149_;
+                                       JSDOCToken* _tmp150_;
+                                       JSDOCToken* _tmp151_;
+                                       JSDOCTokenName _tmp152_;
+#line 125 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp149_ = ts;
+#line 125 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp150_ = jsdoc_token_stream_look (_tmp149_, 1, TRUE);
+#line 125 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp151_ = _tmp150_;
+#line 125 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp152_ = _tmp151_->name;
+#line 125 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp138_ = _tmp152_ == JSDOC_TOKEN_NAME_NEWLINE;
+#line 125 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _g_object_unref0 (_tmp151_);
+#line 1077 "CompressWhite.c"
+                               } else {
+#line 125 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp138_ = FALSE;
+#line 1081 "CompressWhite.c"
+                               }
+#line 125 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               if (_tmp138_) {
+#line 1085 "CompressWhite.c"
+                                       JSDOCTokenStream* _tmp153_;
+                                       JSDOCToken* _tmp154_;
+                                       JSDOCToken* _tmp155_;
+                                       JSDOCTokenStream* _tmp156_;
+                                       JSDOCToken* _tmp157_;
+                                       JSDOCToken* _tmp158_;
+                                       const gchar* _tmp159_;
+                                       gchar* _tmp160_;
+#line 127 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp153_ = ts;
+#line 127 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp154_ = jsdoc_token_stream_look (_tmp153_, 0, TRUE);
+#line 127 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp155_ = _tmp154_;
+#line 127 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp156_ = ts;
+#line 127 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp157_ = jsdoc_token_stream_look (_tmp156_, 0, TRUE);
+#line 127 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp158_ = _tmp157_;
+#line 127 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp159_ = _tmp158_->data;
+#line 127 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp160_ = g_strconcat (_tmp159_, ";", NULL);
+#line 127 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _g_free0 (_tmp155_->outData);
+#line 127 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp155_->outData = _tmp160_;
+#line 127 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _g_object_unref0 (_tmp158_);
+#line 127 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _g_object_unref0 (_tmp155_);
+#line 1118 "CompressWhite.c"
+                               }
+#line 134 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp161_ = ts;
+#line 134 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp162_ = cu;
+#line 134 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp161_->cursor = _tmp162_;
+#line 135 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _g_object_unref0 (tok);
+#line 135 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               continue;
+#line 1130 "CompressWhite.c"
+                       }
+#line 138 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp165_ = ts;
+#line 138 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp166_ = jsdoc_token_stream_lookTok (_tmp165_, 1);
+#line 138 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp167_ = _tmp166_;
+#line 138 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp168_ = _tmp167_->type;
+#line 138 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp169_ = _tmp168_ == JSDOC_TOKEN_TYPE_NAME;
+#line 138 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _g_object_unref0 (_tmp167_);
+#line 138 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       if (_tmp169_) {
+#line 138 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp164_ = TRUE;
+#line 1148 "CompressWhite.c"
+                       } else {
+                               JSDOCTokenStream* _tmp170_;
+                               JSDOCToken* _tmp171_;
+                               JSDOCToken* _tmp172_;
+                               JSDOCTokenType _tmp173_;
+#line 138 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp170_ = ts;
+#line 138 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp171_ = jsdoc_token_stream_lookTok (_tmp170_, 1);
+#line 138 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp172_ = _tmp171_;
+#line 138 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp173_ = _tmp172_->type;
+#line 138 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp164_ = _tmp173_ == JSDOC_TOKEN_TYPE_KEYW;
+#line 138 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _g_object_unref0 (_tmp172_);
+#line 1166 "CompressWhite.c"
+                       }
+#line 138 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       if (_tmp164_) {
+#line 1170 "CompressWhite.c"
+                               JSDOCTokenStream* _tmp174_;
+                               JSDOCToken* _tmp175_;
+                               JSDOCToken* _tmp176_;
+                               JSDOCTokenName _tmp177_;
+#line 139 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp174_ = ts;
+#line 139 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp175_ = jsdoc_token_stream_look (_tmp174_, 1, TRUE);
+#line 139 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp176_ = _tmp175_;
+#line 139 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp177_ = _tmp176_->name;
+#line 139 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp163_ = _tmp177_ == JSDOC_TOKEN_NAME_NEWLINE;
+#line 139 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _g_object_unref0 (_tmp176_);
+#line 1187 "CompressWhite.c"
+                       } else {
+#line 138 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp163_ = FALSE;
+#line 1191 "CompressWhite.c"
+                       }
+#line 138 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       if (_tmp163_) {
+#line 1195 "CompressWhite.c"
+                               JSDOCTokenStream* _tmp178_;
+                               JSDOCToken* _tmp179_;
+                               JSDOCToken* _tmp180_;
+                               JSDOCTokenStream* _tmp181_;
+                               JSDOCToken* _tmp182_;
+                               JSDOCToken* _tmp183_;
+                               const gchar* _tmp184_;
+                               gchar* _tmp185_;
+#line 141 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp178_ = ts;
+#line 141 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp179_ = jsdoc_token_stream_look (_tmp178_, 0, TRUE);
+#line 141 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp180_ = _tmp179_;
+#line 141 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp181_ = ts;
+#line 141 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp182_ = jsdoc_token_stream_look (_tmp181_, 0, TRUE);
+#line 141 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp183_ = _tmp182_;
+#line 141 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp184_ = _tmp183_->data;
+#line 141 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp185_ = g_strconcat (_tmp184_, "\n", NULL);
+#line 141 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _g_free0 (_tmp180_->outData);
+#line 141 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp180_->outData = _tmp185_;
+#line 141 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _g_object_unref0 (_tmp183_);
+#line 141 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _g_object_unref0 (_tmp180_);
+#line 1228 "CompressWhite.c"
+                       }
+#line 144 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp186_ = ts;
+#line 144 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp187_ = jsdoc_token_stream_lookTok (_tmp186_, 1);
+#line 144 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp188_ = _tmp187_;
+#line 144 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp189_ = _tmp188_->data;
+#line 144 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp190_ = g_strcmp0 (_tmp189_, "(") == 0;
+#line 144 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _g_object_unref0 (_tmp188_);
+#line 144 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       if (_tmp190_) {
+#line 1244 "CompressWhite.c"
+                               gint cu = 0;
+                               JSDOCTokenStream* _tmp191_;
+                               gint _tmp192_;
+                               JSDOCTokenStream* _tmp193_;
+                               GeeArrayList* _tmp194_;
+                               GeeArrayList* _tmp195_;
+                               gboolean _tmp196_ = FALSE;
+                               JSDOCTokenStream* _tmp197_;
+                               JSDOCToken* _tmp198_;
+                               JSDOCToken* _tmp199_;
+                               JSDOCTokenType _tmp200_;
+                               gboolean _tmp201_;
+                               JSDOCTokenStream* _tmp214_;
+                               gint _tmp215_;
+#line 145 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp191_ = ts;
+#line 145 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp192_ = _tmp191_->cursor;
+#line 145 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               cu = _tmp192_;
+#line 147 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp193_ = ts;
+#line 147 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp194_ = jsdoc_token_stream_balance (_tmp193_, JSDOC_TOKEN_NAME_LEFT_PAREN, &_inner_error_);
+#line 147 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp195_ = _tmp194_;
+#line 147 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _g_object_unref0 (_tmp195_);
+#line 147 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 147 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _g_object_unref0 (tok);
+#line 147 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       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);
+#line 147 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       g_clear_error (&_inner_error_);
+#line 147 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       return NULL;
+#line 1283 "CompressWhite.c"
+                               }
+#line 150 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp197_ = ts;
+#line 150 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp198_ = jsdoc_token_stream_lookTok (_tmp197_, 1);
+#line 150 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp199_ = _tmp198_;
+#line 150 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp200_ = _tmp199_->type;
+#line 150 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp201_ = _tmp200_ == JSDOC_TOKEN_TYPE_NAME;
+#line 150 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _g_object_unref0 (_tmp199_);
+#line 150 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               if (_tmp201_) {
+#line 1299 "CompressWhite.c"
+                                       JSDOCTokenStream* _tmp202_;
+                                       JSDOCToken* _tmp203_;
+                                       JSDOCToken* _tmp204_;
+                                       JSDOCTokenName _tmp205_;
+#line 150 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp202_ = ts;
+#line 150 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp203_ = jsdoc_token_stream_look (_tmp202_, 1, TRUE);
+#line 150 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp204_ = _tmp203_;
+#line 150 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp205_ = _tmp204_->name;
+#line 150 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp196_ = _tmp205_ == JSDOC_TOKEN_NAME_NEWLINE;
+#line 150 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _g_object_unref0 (_tmp204_);
+#line 1316 "CompressWhite.c"
+                               } else {
+#line 150 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp196_ = FALSE;
+#line 1320 "CompressWhite.c"
+                               }
+#line 150 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               if (_tmp196_) {
+#line 1324 "CompressWhite.c"
+                                       JSDOCTokenStream* _tmp206_;
+                                       JSDOCToken* _tmp207_;
+                                       JSDOCToken* _tmp208_;
+                                       JSDOCTokenStream* _tmp209_;
+                                       JSDOCToken* _tmp210_;
+                                       JSDOCToken* _tmp211_;
+                                       const gchar* _tmp212_;
+                                       gchar* _tmp213_;
+#line 152 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp206_ = ts;
+#line 152 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp207_ = jsdoc_token_stream_look (_tmp206_, 0, TRUE);
+#line 152 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp208_ = _tmp207_;
+#line 152 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp209_ = ts;
+#line 152 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp210_ = jsdoc_token_stream_look (_tmp209_, 0, TRUE);
+#line 152 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp211_ = _tmp210_;
+#line 152 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp212_ = _tmp211_->data;
+#line 152 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp213_ = g_strconcat (_tmp212_, "\n", NULL);
+#line 152 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _g_free0 (_tmp208_->outData);
+#line 152 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp208_->outData = _tmp213_;
+#line 152 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _g_object_unref0 (_tmp211_);
+#line 152 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _g_object_unref0 (_tmp208_);
+#line 1357 "CompressWhite.c"
+                               }
+#line 155 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp214_ = ts;
+#line 155 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp215_ = cu;
+#line 155 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp214_->cursor = _tmp215_;
+#line 156 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _g_object_unref0 (tok);
+#line 156 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               continue;
+#line 1369 "CompressWhite.c"
+                       }
+#line 182 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp217_ = ts;
+#line 182 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp218_ = jsdoc_token_stream_lookTok (_tmp217_, 1);
+#line 182 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp219_ = _tmp218_;
+#line 182 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp220_ = _tmp219_->data;
+#line 182 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp221_ = g_strcmp0 (_tmp220_, "=") == 0;
+#line 182 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _g_object_unref0 (_tmp219_);
+#line 182 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       if (_tmp221_) {
+#line 1385 "CompressWhite.c"
+                               JSDOCTokenStream* _tmp222_;
+                               JSDOCToken* _tmp223_;
+                               JSDOCToken* _tmp224_;
+                               const gchar* _tmp225_;
+#line 182 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp222_ = ts;
+#line 182 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp223_ = jsdoc_token_stream_lookTok (_tmp222_, 2);
+#line 182 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp224_ = _tmp223_;
+#line 182 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp225_ = _tmp224_->data;
+#line 182 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp216_ = g_strcmp0 (_tmp225_, "{") == 0;
+#line 182 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _g_object_unref0 (_tmp224_);
+#line 1402 "CompressWhite.c"
+                       } else {
+#line 182 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp216_ = FALSE;
+#line 1406 "CompressWhite.c"
+                       }
+#line 182 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       if (_tmp216_) {
+#line 1410 "CompressWhite.c"
+                               gint cu = 0;
+                               JSDOCTokenStream* _tmp226_;
+                               gint _tmp227_;
+                               GeeArrayList* _tmp228_ = NULL;
+                               JSDOCTokenStream* _tmp229_;
+                               GeeArrayList* _tmp230_;
+                               gint _tmp231_;
+                               gint _tmp232_;
+                               gboolean _tmp240_ = FALSE;
+                               gboolean _tmp241_ = FALSE;
+                               JSDOCTokenStream* _tmp242_;
+                               JSDOCToken* _tmp243_;
+                               JSDOCToken* _tmp244_;
+                               const gchar* _tmp245_;
+                               gboolean _tmp246_;
+                               JSDOCTokenStream* _tmp263_;
+                               gint _tmp264_;
+#line 185 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp226_ = ts;
+#line 185 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp227_ = _tmp226_->cursor;
+#line 185 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               cu = _tmp227_;
+#line 187 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp229_ = ts;
+#line 187 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp230_ = jsdoc_token_stream_balance (_tmp229_, JSDOC_TOKEN_NAME_LEFT_CURLY, &_inner_error_);
+#line 187 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp228_ = _tmp230_;
+#line 187 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 187 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _g_object_unref0 (tok);
+#line 187 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       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);
+#line 187 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       g_clear_error (&_inner_error_);
+#line 187 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       return NULL;
+#line 1450 "CompressWhite.c"
+                               }
+#line 187 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp231_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp228_);
+#line 187 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp232_ = _tmp231_;
+#line 187 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               if (_tmp232_ < 1) {
+#line 1458 "CompressWhite.c"
+                                       JSDOCTokenStream* _tmp233_;
+                                       gint _tmp234_;
+                                       gint _tmp235_;
+                                       JSDOCTokenStream* _tmp236_;
+                                       gint _tmp237_;
+                                       gint _tmp238_;
+                                       GError* _tmp239_;
+#line 189 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp233_ = ts;
+#line 189 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp234_ = cu;
+#line 189 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp235_ = cu;
+#line 189 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       jsdoc_token_stream_dump (_tmp233_, _tmp234_ - 40, _tmp235_);
+#line 190 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       g_print (">>>>>>>>>>>>>>>>>HERE>>>>>>>>>>>>");
+#line 191 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp236_ = ts;
+#line 191 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp237_ = cu;
+#line 191 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp238_ = cu;
+#line 191 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       jsdoc_token_stream_dump (_tmp236_, _tmp237_, _tmp238_ + 40);
+#line 193 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp239_ = g_error_new_literal (JSDOC_COMPRESS_WHITE_ERROR, JSDOC_COMPRESS_WHITE_ERROR_BRACE, "could not find end lbrace!!!");
+#line 193 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _inner_error_ = _tmp239_;
+#line 193 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _g_object_unref0 (_tmp228_);
+#line 193 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _g_object_unref0 (tok);
+#line 193 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       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);
+#line 193 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       g_clear_error (&_inner_error_);
+#line 193 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       return NULL;
+#line 1498 "CompressWhite.c"
+                               }
+#line 197 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp242_ = ts;
+#line 197 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp243_ = jsdoc_token_stream_lookTok (_tmp242_, 1);
+#line 197 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp244_ = _tmp243_;
+#line 197 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp245_ = _tmp244_->data;
+#line 197 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp246_ = g_strcmp0 (_tmp245_, ";") != 0;
+#line 197 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _g_object_unref0 (_tmp244_);
+#line 197 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               if (_tmp246_) {
+#line 1514 "CompressWhite.c"
+                                       JSDOCTokenStream* _tmp247_;
+                                       JSDOCToken* _tmp248_;
+                                       JSDOCToken* _tmp249_;
+                                       const gchar* _tmp250_;
+#line 197 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp247_ = ts;
+#line 197 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp248_ = jsdoc_token_stream_lookTok (_tmp247_, 1);
+#line 197 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp249_ = _tmp248_;
+#line 197 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp250_ = _tmp249_->data;
+#line 197 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp241_ = g_strcmp0 (_tmp250_, "}") != 0;
+#line 197 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _g_object_unref0 (_tmp249_);
+#line 1531 "CompressWhite.c"
+                               } else {
+#line 197 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp241_ = FALSE;
+#line 1535 "CompressWhite.c"
+                               }
+#line 197 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               if (_tmp241_) {
+#line 1539 "CompressWhite.c"
+                                       JSDOCTokenStream* _tmp251_;
+                                       JSDOCToken* _tmp252_;
+                                       JSDOCToken* _tmp253_;
+                                       JSDOCTokenName _tmp254_;
+#line 197 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp251_ = ts;
+#line 197 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp252_ = jsdoc_token_stream_look (_tmp251_, 1, TRUE);
+#line 197 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp253_ = _tmp252_;
+#line 197 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp254_ = _tmp253_->name;
+#line 197 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp240_ = _tmp254_ == JSDOC_TOKEN_NAME_NEWLINE;
+#line 197 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _g_object_unref0 (_tmp253_);
+#line 1556 "CompressWhite.c"
+                               } else {
+#line 197 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp240_ = FALSE;
+#line 1560 "CompressWhite.c"
+                               }
+#line 197 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               if (_tmp240_) {
+#line 1564 "CompressWhite.c"
+                                       JSDOCTokenStream* _tmp255_;
+                                       JSDOCToken* _tmp256_;
+                                       JSDOCToken* _tmp257_;
+                                       JSDOCTokenStream* _tmp258_;
+                                       JSDOCToken* _tmp259_;
+                                       JSDOCToken* _tmp260_;
+                                       const gchar* _tmp261_;
+                                       gchar* _tmp262_;
+#line 198 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp255_ = ts;
+#line 198 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp256_ = jsdoc_token_stream_look (_tmp255_, 0, TRUE);
+#line 198 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp257_ = _tmp256_;
+#line 198 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp258_ = ts;
+#line 198 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp259_ = jsdoc_token_stream_look (_tmp258_, 0, TRUE);
+#line 198 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp260_ = _tmp259_;
+#line 198 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp261_ = _tmp260_->data;
+#line 198 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp262_ = g_strconcat (_tmp261_, ";", NULL);
+#line 198 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _g_free0 (_tmp257_->outData);
+#line 198 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp257_->outData = _tmp262_;
+#line 198 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _g_object_unref0 (_tmp260_);
+#line 198 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _g_object_unref0 (_tmp257_);
+#line 1597 "CompressWhite.c"
+                               }
+#line 201 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp263_ = ts;
+#line 201 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp264_ = cu;
+#line 201 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp263_->cursor = _tmp264_;
+#line 202 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _g_object_unref0 (_tmp228_);
+#line 202 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _g_object_unref0 (tok);
+#line 202 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               continue;
+#line 1611 "CompressWhite.c"
+                       }
+               }
+#line 217 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+               _tmp265_ = tok;
+#line 217 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+               _tmp266_ = _tmp265_->name;
+#line 217 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+               switch (_tmp266_) {
+#line 217 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       case JSDOC_TOKEN_NAME_FUNCTION:
+#line 217 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       case JSDOC_TOKEN_NAME_BREAK:
+#line 217 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       case JSDOC_TOKEN_NAME_CONTINUE:
+#line 1626 "CompressWhite.c"
+                       {
+                               gboolean _tmp267_ = FALSE;
+                               JSDOCTokenStream* _tmp268_;
+                               JSDOCToken* _tmp269_;
+                               JSDOCToken* _tmp270_;
+                               JSDOCTokenType _tmp271_;
+                               gboolean _tmp272_;
+#line 223 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp268_ = ts;
+#line 223 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp269_ = jsdoc_token_stream_lookTok (_tmp268_, 1);
+#line 223 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp270_ = _tmp269_;
+#line 223 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp271_ = _tmp270_->type;
+#line 223 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp272_ = _tmp271_ == JSDOC_TOKEN_TYPE_NAME;
+#line 223 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _g_object_unref0 (_tmp270_);
+#line 223 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               if (_tmp272_) {
+#line 223 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp267_ = TRUE;
+#line 1650 "CompressWhite.c"
+                               } else {
+                                       JSDOCTokenStream* _tmp273_;
+                                       JSDOCToken* _tmp274_;
+                                       JSDOCToken* _tmp275_;
+                                       const gchar* _tmp276_;
+                                       gboolean _tmp277_;
+#line 223 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp273_ = ts;
+#line 223 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp274_ = jsdoc_token_stream_lookTok (_tmp273_, 1);
+#line 223 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp275_ = _tmp274_;
+#line 223 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp276_ = _tmp275_->data;
+#line 223 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp277_ = g_regex_match_simple ("^[a-z]+$", _tmp276_, G_REGEX_CASELESS, 0);
+#line 223 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp267_ = _tmp277_;
+#line 223 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _g_object_unref0 (_tmp275_);
+#line 1671 "CompressWhite.c"
+                               }
+#line 223 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               if (_tmp267_) {
+#line 1675 "CompressWhite.c"
+                                       JSDOCToken* _tmp278_;
+                                       JSDOCToken* _tmp279_;
+                                       const gchar* _tmp280_;
+                                       gchar* _tmp281_;
+#line 224 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp278_ = tok;
+#line 224 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp279_ = tok;
+#line 224 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp280_ = _tmp279_->data;
+#line 224 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp281_ = g_strconcat (_tmp280_, " ", NULL);
+#line 224 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _g_free0 (_tmp278_->outData);
+#line 224 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp278_->outData = _tmp281_;
+#line 1692 "CompressWhite.c"
+                               }
+#line 226 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               continue;
+#line 1696 "CompressWhite.c"
+                       }
+#line 217 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       case JSDOC_TOKEN_NAME_RETURN:
+#line 1700 "CompressWhite.c"
+                       {
+                               gboolean _tmp282_ = FALSE;
+                               JSDOCTokenStream* _tmp283_;
+                               JSDOCToken* _tmp284_;
+                               JSDOCToken* _tmp285_;
+                               const gchar* _tmp286_;
+                               gboolean _tmp287_;
+                               JSDOCToken* _tmp292_;
+                               JSDOCToken* _tmp293_;
+                               const gchar* _tmp294_;
+                               gchar* _tmp295_;
+#line 230 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp283_ = ts;
+#line 230 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp284_ = jsdoc_token_stream_lookTok (_tmp283_, 1);
+#line 230 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp285_ = _tmp284_;
+#line 230 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp286_ = _tmp285_->data;
+#line 230 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp287_ = g_strcmp0 (_tmp286_, ";") == 0;
+#line 230 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _g_object_unref0 (_tmp285_);
+#line 230 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               if (_tmp287_) {
+#line 230 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp282_ = TRUE;
+#line 1728 "CompressWhite.c"
+                               } else {
+                                       JSDOCTokenStream* _tmp288_;
+                                       JSDOCToken* _tmp289_;
+                                       JSDOCToken* _tmp290_;
+                                       const gchar* _tmp291_;
+#line 230 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp288_ = ts;
+#line 230 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp289_ = jsdoc_token_stream_lookTok (_tmp288_, 1);
+#line 230 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp290_ = _tmp289_;
+#line 230 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp291_ = _tmp290_->data;
+#line 230 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp282_ = g_strcmp0 (_tmp291_, "}") == 0;
+#line 230 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _g_object_unref0 (_tmp290_);
+#line 1746 "CompressWhite.c"
+                               }
+#line 230 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               if (_tmp282_) {
+#line 231 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       continue;
+#line 1752 "CompressWhite.c"
+                               }
+#line 233 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp292_ = tok;
+#line 233 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp293_ = tok;
+#line 233 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp294_ = _tmp293_->data;
+#line 233 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp295_ = g_strconcat (_tmp294_, " ", NULL);
+#line 233 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _g_free0 (_tmp292_->outData);
+#line 233 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp292_->outData = _tmp295_;
+#line 235 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               continue;
+#line 1768 "CompressWhite.c"
+                       }
+#line 217 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       case JSDOC_TOKEN_NAME_ELSE:
+#line 1772 "CompressWhite.c"
+                       {
+                               JSDOCTokenStream* _tmp296_;
+                               JSDOCToken* _tmp297_;
+                               JSDOCToken* _tmp298_;
+                               JSDOCTokenName _tmp299_;
+                               gboolean _tmp300_;
+                               JSDOCToken* _tmp301_;
+                               JSDOCToken* _tmp302_;
+                               const gchar* _tmp303_;
+                               gchar* _tmp304_;
+#line 239 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp296_ = ts;
+#line 239 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp297_ = jsdoc_token_stream_lookTok (_tmp296_, 1);
+#line 239 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp298_ = _tmp297_;
+#line 239 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp299_ = _tmp298_->name;
+#line 239 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp300_ = _tmp299_ != JSDOC_TOKEN_NAME_IF;
+#line 239 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _g_object_unref0 (_tmp298_);
+#line 239 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               if (_tmp300_) {
+#line 240 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       continue;
+#line 1799 "CompressWhite.c"
+                               }
+#line 243 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp301_ = tok;
+#line 243 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp302_ = tok;
+#line 243 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp303_ = _tmp302_->data;
+#line 243 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp304_ = g_strconcat (_tmp303_, " ", NULL);
+#line 243 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _g_free0 (_tmp301_->outData);
+#line 243 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp301_->outData = _tmp304_;
+#line 244 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               continue;
+#line 1815 "CompressWhite.c"
+                       }
+#line 217 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       case JSDOC_TOKEN_NAME_INCREMENT:
+#line 217 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       case JSDOC_TOKEN_NAME_DECREMENT:
+#line 1821 "CompressWhite.c"
+                       {
+                               const gchar* _tmp305_ = NULL;
+                               JSDOCToken* _tmp306_;
+                               const gchar* _tmp307_;
+                               gchar* p = NULL;
+                               gchar* _tmp308_;
+                               JSDOCTokenStream* _tmp309_;
+                               JSDOCToken* _tmp310_;
+                               JSDOCToken* _tmp311_;
+                               const gchar* _tmp312_;
+                               const gchar* _tmp313_;
+                               gboolean _tmp314_;
+                               JSDOCTokenStream* _tmp319_;
+                               JSDOCToken* _tmp320_;
+                               JSDOCToken* _tmp321_;
+                               const gchar* _tmp322_;
+                               const gchar* _tmp323_;
+                               gboolean _tmp324_;
+#line 249 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp306_ = tok;
+#line 249 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp307_ = _tmp306_->data;
+#line 249 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               if (g_strcmp0 (_tmp307_, "--") == 0) {
+#line 249 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp305_ = "-";
+#line 1848 "CompressWhite.c"
+                               } else {
+#line 249 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp305_ = "+";
+#line 1852 "CompressWhite.c"
+                               }
+#line 249 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp308_ = g_strdup (_tmp305_);
+#line 249 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               p = _tmp308_;
+#line 251 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp309_ = ts;
+#line 251 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp310_ = jsdoc_token_stream_lookTok (_tmp309_, 1);
+#line 251 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp311_ = _tmp310_;
+#line 251 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp312_ = _tmp311_->data;
+#line 251 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp313_ = p;
+#line 251 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp314_ = g_strcmp0 (_tmp312_, _tmp313_) == 0;
+#line 251 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _g_object_unref0 (_tmp311_);
+#line 251 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               if (_tmp314_) {
+#line 1874 "CompressWhite.c"
+                                       JSDOCToken* _tmp315_;
+                                       JSDOCToken* _tmp316_;
+                                       const gchar* _tmp317_;
+                                       gchar* _tmp318_;
+#line 252 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp315_ = tok;
+#line 252 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp316_ = tok;
+#line 252 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp317_ = _tmp316_->data;
+#line 252 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp318_ = g_strconcat (_tmp317_, " ", NULL);
+#line 252 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _g_free0 (_tmp315_->outData);
+#line 252 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp315_->outData = _tmp318_;
+#line 1891 "CompressWhite.c"
+                               }
+#line 254 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp319_ = ts;
+#line 254 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp320_ = jsdoc_token_stream_lookTok (_tmp319_, -1);
+#line 254 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp321_ = _tmp320_;
+#line 254 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp322_ = _tmp321_->data;
+#line 254 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp323_ = p;
+#line 254 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp324_ = g_strcmp0 (_tmp322_, _tmp323_) == 0;
+#line 254 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _g_object_unref0 (_tmp321_);
+#line 254 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               if (_tmp324_) {
+#line 1909 "CompressWhite.c"
+                                       JSDOCToken* _tmp325_;
+                                       JSDOCToken* _tmp326_;
+                                       const gchar* _tmp327_;
+                                       gchar* _tmp328_;
+#line 255 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp325_ = tok;
+#line 255 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp326_ = tok;
+#line 255 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp327_ = _tmp326_->data;
+#line 255 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp328_ = g_strconcat (" ", _tmp327_, NULL);
+#line 255 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _g_free0 (_tmp325_->outData);
+#line 255 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp325_->outData = _tmp328_;
+#line 1926 "CompressWhite.c"
+                               }
+#line 258 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _g_free0 (p);
+#line 258 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               continue;
+#line 1932 "CompressWhite.c"
+                       }
+#line 217 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       case JSDOC_TOKEN_NAME_IN:
+#line 217 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       case JSDOC_TOKEN_NAME_INSTANCEOF:
+#line 1938 "CompressWhite.c"
+                       {
+                               JSDOCToken* _tmp329_;
+                               JSDOCToken* _tmp330_;
+                               const gchar* _tmp331_;
+                               gchar* _tmp332_;
+                               gchar* _tmp333_;
+                               gchar* _tmp334_;
+#line 263 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp329_ = tok;
+#line 263 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp330_ = tok;
+#line 263 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp331_ = _tmp330_->data;
+#line 263 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp332_ = g_strconcat (" ", _tmp331_, NULL);
+#line 263 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp333_ = _tmp332_;
+#line 263 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp334_ = g_strconcat (_tmp333_, " ", NULL);
+#line 263 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _g_free0 (_tmp329_->outData);
+#line 263 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp329_->outData = _tmp334_;
+#line 263 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _g_free0 (_tmp333_);
+#line 264 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               continue;
+#line 1966 "CompressWhite.c"
+                       }
+#line 217 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       case JSDOC_TOKEN_NAME_VAR:
+#line 217 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       case JSDOC_TOKEN_NAME_NEW:
+#line 217 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       case JSDOC_TOKEN_NAME_DELETE:
+#line 217 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       case JSDOC_TOKEN_NAME_THROW:
+#line 217 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       case JSDOC_TOKEN_NAME_CASE:
+#line 217 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       case JSDOC_TOKEN_NAME_CONST:
+#line 217 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       case JSDOC_TOKEN_NAME_VOID:
+#line 1982 "CompressWhite.c"
+                       {
+                               JSDOCToken* _tmp335_;
+                               JSDOCToken* _tmp336_;
+                               const gchar* _tmp337_;
+                               gchar* _tmp338_;
+#line 273 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp335_ = tok;
+#line 273 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp336_ = tok;
+#line 273 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp337_ = _tmp336_->data;
+#line 273 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp338_ = g_strconcat (_tmp337_, " ", NULL);
+#line 273 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _g_free0 (_tmp335_->outData);
+#line 273 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp335_->outData = _tmp338_;
+#line 275 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               continue;
+#line 2002 "CompressWhite.c"
+                       }
+#line 217 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       case JSDOC_TOKEN_NAME_TYPEOF:
+#line 2006 "CompressWhite.c"
+                       {
+                               JSDOCTokenStream* _tmp339_;
+                               JSDOCToken* _tmp340_;
+                               JSDOCToken* _tmp341_;
+                               const gchar* _tmp342_;
+                               gboolean _tmp343_;
+#line 278 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp339_ = ts;
+#line 278 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp340_ = jsdoc_token_stream_lookTok (_tmp339_, 1);
+#line 278 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp341_ = _tmp340_;
+#line 278 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp342_ = _tmp341_->data;
+#line 278 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _tmp343_ = g_strcmp0 (_tmp342_, "(") != 0;
+#line 278 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               _g_object_unref0 (_tmp341_);
+#line 278 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               if (_tmp343_) {
+#line 2027 "CompressWhite.c"
+                                       JSDOCToken* _tmp344_;
+                                       JSDOCToken* _tmp345_;
+                                       const gchar* _tmp346_;
+                                       gchar* _tmp347_;
+#line 279 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp344_ = tok;
+#line 279 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp345_ = tok;
+#line 279 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp346_ = _tmp345_->data;
+#line 279 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp347_ = g_strconcat (_tmp346_, " ", NULL);
+#line 279 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _g_free0 (_tmp344_->outData);
+#line 279 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                                       _tmp344_->outData = _tmp347_;
+#line 2044 "CompressWhite.c"
+                               }
+#line 281 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               continue;
+#line 2048 "CompressWhite.c"
+                       }
+#line 217 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       case JSDOC_TOKEN_NAME_SEMICOLON:
+#line 2052 "CompressWhite.c"
+                       {
+#line 287 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               continue;
+#line 2056 "CompressWhite.c"
+                       }
+                       default:
+                       {
+#line 290 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                               continue;
+#line 2062 "CompressWhite.c"
+                       }
+               }
+#line 27 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+               _g_object_unref0 (tok);
+#line 2067 "CompressWhite.c"
+       }
+#line 294 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+       _tmp348_ = ts;
+#line 294 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+       jsdoc_token_stream_rewind (_tmp348_);
+#line 299 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+       _tmp349_ = g_strdup ("");
+#line 299 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+       outstr = _tmp349_;
+#line 300 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+       outoff = 0;
+#line 305 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+       while (TRUE) {
+#line 2081 "CompressWhite.c"
+               JSDOCToken* _tmp350_ = NULL;
+               gboolean _tmp351_;
+               JSDOCToken* _tmp356_;
+               JSDOCToken* _tmp357_;
+               JSDOCToken* _tmp358_;
+               JSDOCTokenType _tmp359_;
+               gboolean _tmp362_ = FALSE;
+               gboolean _tmp363_ = FALSE;
+               JSDOCToken* _tmp364_;
+               JSDOCTokenType _tmp365_;
+               const gchar* _tmp378_ = NULL;
+               JSDOCToken* _tmp379_;
+               const gchar* _tmp380_;
+               const gchar* _tmp385_;
+               gchar* _tmp386_;
+               gboolean _tmp387_ = FALSE;
+               gboolean _tmp388_ = FALSE;
+               JSDOCToken* _tmp389_;
+               JSDOCTokenName _tmp390_;
+#line 307 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+               _tmp351_ = keepWhite;
+#line 307 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+               if (_tmp351_) {
+#line 2105 "CompressWhite.c"
+                       JSDOCTokenStream* _tmp352_;
+                       JSDOCToken* _tmp353_;
+#line 307 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp352_ = ts;
+#line 307 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp353_ = jsdoc_token_stream_next (_tmp352_);
+#line 307 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _g_object_unref0 (_tmp350_);
+#line 307 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp350_ = _tmp353_;
+#line 2116 "CompressWhite.c"
+               } else {
+                       JSDOCTokenStream* _tmp354_;
+                       JSDOCToken* _tmp355_;
+#line 307 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp354_ = ts;
+#line 307 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp355_ = jsdoc_token_stream_nextTok (_tmp354_);
+#line 307 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _g_object_unref0 (_tmp350_);
+#line 307 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp350_ = _tmp355_;
+#line 2128 "CompressWhite.c"
+               }
+#line 307 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+               _tmp356_ = _g_object_ref0 (_tmp350_);
+#line 307 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+               _g_object_unref0 (tok);
+#line 307 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+               tok = _tmp356_;
+#line 309 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+               _tmp357_ = tok;
+#line 309 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+               if (_tmp357_ == NULL) {
+#line 310 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _g_object_unref0 (_tmp350_);
+#line 310 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       break;
+#line 2144 "CompressWhite.c"
+               }
+#line 312 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+               _tmp358_ = tok;
+#line 312 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+               _tmp359_ = _tmp358_->type;
+#line 312 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+               if (_tmp359_ == JSDOC_TOKEN_TYPE_COMM) {
+#line 2152 "CompressWhite.c"
+                       JSDOCToken* _tmp360_;
+                       gchar* _tmp361_;
+#line 313 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp360_ = tok;
+#line 313 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp361_ = g_strdup ("\n");
+#line 313 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _g_free0 (_tmp360_->outData);
+#line 313 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp360_->outData = _tmp361_;
+#line 2163 "CompressWhite.c"
+               }
+#line 318 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+               _tmp364_ = tok;
+#line 318 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+               _tmp365_ = _tmp364_->type;
+#line 318 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+               if (_tmp365_ == JSDOC_TOKEN_TYPE_NAME) {
+#line 2171 "CompressWhite.c"
+                       JSDOCToken* _tmp366_;
+                       JSDOCIdentifier* _tmp367_;
+#line 319 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp366_ = tok;
+#line 319 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp367_ = _tmp366_->identifier;
+#line 319 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp363_ = _tmp367_ != NULL;
+#line 2180 "CompressWhite.c"
+               } else {
+#line 318 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp363_ = FALSE;
+#line 2184 "CompressWhite.c"
+               }
+#line 318 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+               if (_tmp363_) {
+#line 2188 "CompressWhite.c"
+                       JSDOCToken* _tmp368_;
+                       JSDOCIdentifier* _tmp369_;
+                       const gchar* _tmp370_;
+                       gint _tmp371_;
+                       gint _tmp372_;
+#line 320 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp368_ = tok;
+#line 320 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp369_ = _tmp368_->identifier;
+#line 320 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp370_ = _tmp369_->mungedValue;
+#line 320 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp371_ = strlen (_tmp370_);
+#line 320 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp372_ = _tmp371_;
+#line 320 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp362_ = _tmp372_ > 0;
+#line 2206 "CompressWhite.c"
+               } else {
+#line 318 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp362_ = FALSE;
+#line 2210 "CompressWhite.c"
+               }
+#line 318 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+               if (_tmp362_) {
+#line 2214 "CompressWhite.c"
+                       const gchar* _tmp373_;
+                       JSDOCToken* _tmp374_;
+                       JSDOCIdentifier* _tmp375_;
+                       const gchar* _tmp376_;
+                       gchar* _tmp377_;
+#line 323 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp373_ = outstr;
+#line 323 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp374_ = tok;
+#line 323 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp375_ = _tmp374_->identifier;
+#line 323 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp376_ = _tmp375_->mungedValue;
+#line 323 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp377_ = g_strconcat (_tmp373_, _tmp376_, NULL);
+#line 323 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _g_free0 (outstr);
+#line 323 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       outstr = _tmp377_;
+#line 324 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _g_object_unref0 (_tmp350_);
+#line 324 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       continue;
+#line 2238 "CompressWhite.c"
+               }
+#line 336 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+               _tmp379_ = tok;
+#line 336 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+               _tmp380_ = _tmp379_->outData;
+#line 336 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+               if (g_strcmp0 (_tmp380_, "") != 0) {
+#line 2246 "CompressWhite.c"
+                       JSDOCToken* _tmp381_;
+                       const gchar* _tmp382_;
+#line 336 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp381_ = tok;
+#line 336 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp382_ = _tmp381_->outData;
+#line 336 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp378_ = _tmp382_;
+#line 2255 "CompressWhite.c"
+               } else {
+                       JSDOCToken* _tmp383_;
+                       const gchar* _tmp384_;
+#line 336 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp383_ = tok;
+#line 336 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp384_ = _tmp383_->data;
+#line 336 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp378_ = _tmp384_;
+#line 2265 "CompressWhite.c"
+               }
+#line 336 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+               _tmp385_ = outstr;
+#line 336 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+               _tmp386_ = g_strconcat (_tmp385_, _tmp378_, NULL);
+#line 336 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+               _g_free0 (outstr);
+#line 336 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+               outstr = _tmp386_;
+#line 338 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+               _tmp389_ = tok;
+#line 338 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+               _tmp390_ = _tmp389_->name;
+#line 338 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+               if (_tmp390_ == JSDOC_TOKEN_NAME_SEMICOLON) {
+#line 338 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp388_ = TRUE;
+#line 2283 "CompressWhite.c"
+               } else {
+                       JSDOCToken* _tmp391_;
+                       JSDOCTokenName _tmp392_;
+#line 338 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp391_ = tok;
+#line 338 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp392_ = _tmp391_->name;
+#line 338 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp388_ = _tmp392_ == JSDOC_TOKEN_NAME_RIGHT_CURLY;
+#line 2293 "CompressWhite.c"
+               }
+#line 338 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+               if (_tmp388_) {
+#line 2297 "CompressWhite.c"
+                       const gchar* _tmp393_;
+                       gint _tmp394_;
+                       gint _tmp395_;
+                       gint _tmp396_;
+#line 338 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp393_ = outstr;
+#line 338 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp394_ = strlen (_tmp393_);
+#line 338 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp395_ = _tmp394_;
+#line 338 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp396_ = outoff;
+#line 338 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp387_ = (_tmp395_ - _tmp396_) > 255;
+#line 2312 "CompressWhite.c"
+               } else {
+#line 338 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp387_ = FALSE;
+#line 2316 "CompressWhite.c"
+               }
+#line 338 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+               if (_tmp387_) {
+#line 2320 "CompressWhite.c"
+                       const gchar* _tmp397_;
+                       gint _tmp398_;
+                       gint _tmp399_;
+                       const gchar* _tmp400_;
+                       gchar* _tmp401_;
+#line 339 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp397_ = outstr;
+#line 339 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp398_ = strlen (_tmp397_);
+#line 339 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp399_ = _tmp398_;
+#line 339 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       outoff = _tmp399_;
+#line 340 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp400_ = outstr;
+#line 340 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _tmp401_ = g_strconcat (_tmp400_, "\n", NULL);
+#line 340 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       _g_free0 (outstr);
+#line 340 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+                       outstr = _tmp401_;
+#line 2342 "CompressWhite.c"
+               }
+#line 305 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+               _g_object_unref0 (_tmp350_);
+#line 2346 "CompressWhite.c"
+       }
+#line 350 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+       result = outstr;
+#line 350 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+       _g_object_unref0 (tok);
+#line 350 "/home/alan/gitlive/roojspacker/src/jsdoc/CompressWhite.vala"
+       return result;
+#line 2354 "CompressWhite.c"
+}
+
+
+
diff --git a/jsdoc/CompressWhite.vala b/jsdoc/CompressWhite.vala
new file mode 100644 (file)
index 0000000..a3971af
--- /dev/null
@@ -0,0 +1,354 @@
+/**
+ * 
+ * pack a javascript file, and return a shorter version!
+ * 
+ * a bit picky at present with ; and crlf reading...
+ * @arg ts {TokenStream} 
+   @arg packer {Packer} 
+ */
+namespace JSDOC 
+{
+       public errordomain CompressWhiteError {
+            BRACE
+    }
+        
+       public string CompressWhite (TokenStream ts, Packer packer, bool keepWhite) // throws CompressWhiteError,TokenStreamError
+       {
+               //keepWhite = keepWhite || false;
+               ts.rewind();
+               //ts.dumpAllFlat(); GLib.Process.exit(1);
+               
+               //var str = File.read(fn);
+               var rep_var = 1;
+       
+       
+       
+               while (true) {
+                       var tok = ts.next();
+                       if (tok == null) {
+                           break;
+                       }
+                       if (tok.type == TokenType.WHIT) {
+                          
+                           continue;
+                           //if (tok._isDoc) {
+                           //    continue;
+                           //}
+                           // just spaces, not \n!
+                           //if (tok.data.indexOf("\n") < 0) {
+                           //    continue;
+                          // }
+                           
+                           
+                       }
+                       if (tok.data == "}")  {
+                           
+                           if (ts.lookTok(0).type == TokenType.NAME && ts.look(1,true).name == TokenName.NEWLINE) {
+                               ts.look(0,true).outData = ts.look(0,true).data+"\n";
+                           }
+                           // restore.. 
+                           
+                           continue;
+                       }
+                       // add semi-colon's where linebreaks are used... - not foolproof yet.!
+                       if (tok.type == TokenType.NAME)  {
+                           //var tokident = ts.look(-1).data + tok.data + ts.look(1).data +  ts.look(2).data;
+                           // a = new function() {} 
+                           if (ts.lookTok(1).data == "=" && ts.lookTok(2).name == TokenName.NEW  && 
+                               ts.lookTok(3).name == TokenName.FUNCTION) {
+                               // freeze time.. 
+                               var cu = ts.cursor;
+                               
+                               ts.balance(TokenName.LEFT_PAREN); //"(");
+                               
+                               
+                               ts.balance(TokenName.LEFT_CURLY); //"{");
+                               // if next is not ';' -> make it so...
+                               
+                               if (ts.lookTok(1).data != ";"  && ts.lookTok(1).data != "}" && ts.lookTok(1).name == TokenName.NEWLINE) {
+                                   ts.look(0,true).outData = ts.lookTok(0).data +";";
+                               }
+                               // restore.. 
+                               ts.cursor = cu;
+                               continue;
+                           }
+                           // a = function() { ... -- add a semi colon a tthe end if not one there..
+                              
+                           if (ts.lookTok(1).data == "=" &&  ts.lookTok(2).name == TokenName.FUNCTION) {
+                               // freeze time.. 
+                               //println("got = function() ");
+                               tok = ts.nextTok();
+                               tok = ts.nextTok();
+                               
+                               //tok = ts.next();
+                                var cu = ts.cursor;
+                                       //print("NEXT = should be brac: %s\n", ts.lookTok(1).asString());
+                                         
+                              //print("cursor = %d", ts.cursor);
+                                 
+                               if (ts.lookTok(1).data != "(" || ts.balance(TokenName.LEFT_PAREN /*"("*/).size < 1 ){
+                                       print("balance ( issue on line %d\n", ts.toArray().get(cu).line);
+                                   ts.dump(cu-40, cu+2);
+                                   print(">>>>>>>>>>>>>>>>>HERE>>>>>>>>>>>>");
+                                   ts.dump(cu+2, cu+40);
+                                   
+                                   throw new CompressWhiteError.BRACE( "could not find end lbrace!!!" );
+                               }
+                               //print("cursor = %d", ts.cursor);
+                               //print("CUR = should be ): %s\n", ts.lookTok(0).asString());
+
+                               tok = ts.nextTok();
+                               //print("CUR = should be {: %s\n", ts.lookTok(0).asString());                           
+                               cu = ts.cursor; // set the cursor to here.. so the next bit of the code will check inside the method.
+                               
+                               //print("cursor = %d", ts.cursor);
+                              // print("AFTER BALANCE (");
+                               //ts.dump(cu, ts.cursor);
+                               
+                               
+                               ts.cursor--; // cursor at the (
+                               if (tok.data != "{" || ts.balance(TokenName.LEFT_CURLY /*"("*/).size < 1 ){
+
+                                   ts.dump(cu-40, cu);
+                                   print(">>>>>>>>>>>>>>>>>HERE>>>>>>>>>>>>");
+                                   ts.dump(cu, cu+40);
+                                   
+                                   throw new CompressWhiteError.BRACE( "could not find end lbrace!!!");
+                               }
+                               //print('FN: '+ts.tokens[cu].toString());
+                               //print('F1: '+ts.lookTok(1).toString());
+                               //print('F2: '+ts.look(1,true).toString());
+                               
+                               // if next is not ';' -> make it so...
+                               // although this var a=function(){},v,c; causes 
+                               if (ts.lookTok(1).data != ";" && ts.lookTok(1).data != "}" && ts.look(1,true).name == TokenName.NEWLINE) {
+                                   
+                                   ts.look(0,true).outData = ts.look(0,true).data+";";
+                                  // print("ADDING SEMI: " + ts.look(0).toString());
+                                   //ts.dump(cu, ts.cursor+2);
+                               }
+                               
+                                //ts.dump(cu, ts.cursor+2);
+                               // restore.. 
+                               ts.cursor = cu;
+                               continue;
+                           }
+                           // next item is a name..
+                           if ((ts.lookTok(1).type == TokenType.NAME || ts.lookTok(1).type == TokenType.KEYW ) 
+                                               &&  ts.look(1,true).name == TokenName.NEWLINE) {
+                               // preserve linebraek
+                               ts.look(0,true).outData = ts.look(0,true).data+"\n";
+                           }
+                           // method call followed by name..
+                           if (ts.lookTok(1).data == "(")  {
+                               var cu = ts.cursor;
+                               
+                                ts.balance(TokenName.LEFT_PAREN); //"(");
+                                // although this var a=function(){},v,c; causes 
+                               
+                               if (ts.lookTok(1).type == TokenType.NAME && ts.look(1,true).name == TokenName.NEWLINE) {
+                               
+                                   ts.look(0,true).outData = ts.look(0,true).data+"\n";
+                               }
+                               // restore.. 
+                               ts.cursor = cu;
+                               continue;
+                           }
+                           
+                           
+                           // function a () { ... };
+                               /*
+                           if (ts.look(-1).isTypeN(Script.TOKfunction) &&  ts.look(1).isTypeN(Script.TOKlparen)) {
+                               // freeze time.. 
+                               //println("got = function() ");
+                               var cu = ts.cursor;
+                               
+                               ts.balance("lparen");
+                               ts.balance("lbrace");
+                               // if next is not ';' -> make it so...
+                               // although this var a=function(){},v,c; causes 
+                               if (!ts.look(1).isData(';') && !ts.look(1).isData('}') && ts.look(1,true).isLineBreak()) {
+                                   ts.cur().outData = ts.cur().data+";";
+                               }
+                               // restore.. 
+                               ts.cursor = cu;
+                               continue;
+                           }
+                           */
+                           
+                           // a = { ....
+                               
+                           if (ts.lookTok(1).data == "=" &&  ts.lookTok(2).data == "{") {
+                               // freeze time.. 
+                               //println("----------*** 3 *** --------------");
+                               var cu = ts.cursor;
+                               ;
+                               if (ts.balance(TokenName.LEFT_CURLY /*"{" */).size < 1 ){
+
+                                   ts.dump(cu-40, cu);
+                                   print(">>>>>>>>>>>>>>>>>HERE>>>>>>>>>>>>");
+                                   ts.dump(cu, cu+40);
+                                   
+                                   throw new CompressWhiteError.BRACE("could not find end lbrace!!!");
+                               }
+                               // if next is not ';' -> make it so...
+                               
+                               if (ts.lookTok(1).data != ";" && ts.lookTok(1).data != "}" && ts.look(1,true).name==TokenName.NEWLINE) {
+                                   ts.look(0,true).outData = ts.look(0,true).data +";";
+                               }
+                               // restore.. 
+                               ts.cursor = cu;
+                               continue;
+                           }
+                           
+                           // any more??
+                           // a = function(....) { } 
+                         
+                       }
+                       
+                       
+                       
+                        
+                       //println("got Token: " + tok.type);
+                       
+                       
+                       
+                       switch(tok.name) {
+                           // things that need space appending
+                           case TokenName.FUNCTION:
+                           case TokenName.BREAK:
+                           case TokenName.CONTINUE:
+                               // if next item is a identifier..
+                               if (ts.lookTok(1).type == TokenType.NAME || Regex.match_simple("^[a-z]+$", ts.lookTok(1).data, GLib.RegexCompileFlags.CASELESS) ) { // as include is a keyword for us!!
+                                  tok.outData =  tok.data + " ";
+                               }
+                               continue;
+                               
+                               
+                           case TokenName.RETURN: // if next item is not a semi; (or }
+                               if (ts.lookTok(1).data == ";" || ts.lookTok(1).data == "}") {
+                                   continue;
+                               }
+                               tok.outData =  tok.data + " ";
+                               
+                               continue;
+                           
+                               
+                           case TokenName.ELSE: // if next item is not a semi; (or }
+                               if (ts.lookTok(1).name != TokenName.IF) {
+                                   continue;
+                               }
+                               // add a space if next element is 'IF'
+                               tok.outData =  tok.data + " ";
+                               continue;
+                           
+                           case TokenName.INCREMENT: //"++": // if previous was a plus or next is a + add a space..
+                           case TokenName.DECREMENT: //"--": // if previous was a - or next is a - add a space..
+                           
+                               var p = (tok.data == "--" ? "-" : "+"); 
+                           
+                               if (ts.lookTok(1).data == p) {
+                                   tok.outData =  tok.data + " ";
+                               }
+                               if (ts.lookTok(-1).data == p) {
+                                   tok.outData =  " " +  tok.data;
+                                   
+                               }
+                               continue;
+                           
+                           case TokenName.IN: // before and after?? 
+                           case TokenName.INSTANCEOF:
+                               
+                               tok.outData = " " + tok.data + " ";
+                               continue;
+                           
+                           case TokenName.VAR: // always after..
+                           case TokenName.NEW:
+                           case TokenName.DELETE:
+                           case TokenName.THROW:
+                           case TokenName.CASE:
+                           case TokenName.CONST:
+                           case TokenName.VOID:
+                               tok.outData =  tok.data + " ";
+                               
+                               continue;
+                               
+                           case TokenName.TYPEOF: // what about typeof(
+                               if (ts.lookTok(1).data != "(") {
+                                   tok.outData =  tok.data + " ";
+                               }
+                               continue;
+                            case TokenName.SEMICOLON: //";":
+                               //remove semicolon before brace -- 
+                               //if(ts.look(1).isTypeN(Script.TOKrbrace)) {
+                               //    tok.outData = '';
+                              // }
+                               continue;
+                          
+                           default:
+                               continue;
+                       }
+               }
+       
+               ts.rewind();
+       
+               // NOW OUTPUT THE THING.
+               //var f = new File(minfile, File.NEW);
+       
+               var outstr = "";
+               var outoff = 0;
+               //try { out.length = ts.slen; } catch (e) {} // prealloc.
+       
+
+               Token tok;
+               while (true) {
+                       
+                       tok = keepWhite ? ts.next() : ts.nextTok();
+                       
+                       if (tok == null) {
+                           break;
+                       }
+                       if (tok.type == TokenType.COMM) {
+                           tok.outData = "\n";
+                       }
+                       
+                       ///print(tok.type + ':' + tok.data);
+                       
+                       if (tok.type == TokenType.NAME  &&
+                                tok.identifier != null  &&
+                           tok.identifier.mungedValue.length > 0) {
+                           //f.write(tok.identifier.mungedValue);
+                           //print("MUNGED: " + tok.identifier.mungedValue);
+                           outstr += tok.identifier.mungedValue;
+                           continue;
+                       }
+                       
+                       // at this point we can apply a text translation kit...
+                       // NOT SUPPORTED..
+                       //if ((tok.type == "STRN") && (tok.name== "DOUBLE_QUOTE")) {
+                       //    if (packer && packer.stringHandler) {
+                       //        outstr += packer.stringHandler(tok);
+                       //        continue;
+                       //    }
+                       //}
+                
+                       outstr += tok.outData != "" ? tok.outData : tok.data;
+                       
+                       if ((tok.name == TokenName.SEMICOLON || tok.name == TokenName.RIGHT_CURLY) && (outstr.length - outoff > 255)) {
+                           outoff = outstr.length;
+                           outstr += "\n";
+                       }
+               }
+               //f.close();
+               /*
+               // remove the last ';' !!!
+               if (out.substring(out.length-1) == ';') {
+                       return out.substring(0,out.length-1);
+                  }
+               */
+               return outstr;
+       
+       }
+        
+}
\ No newline at end of file
diff --git a/jsdoc/DocBuilder.c b/jsdoc/DocBuilder.c
new file mode 100644 (file)
index 0000000..48cfd5a
--- /dev/null
@@ -0,0 +1,6438 @@
+/* DocBuilder.c generated by valac 0.36.6, the Vala compiler
+ * generated from DocBuilder.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>
+#include <gio/gio.h>
+#include <glib/gstdio.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+
+
+#define JSDOC_TYPE_DOC_BUILDER (jsdoc_doc_builder_get_type ())
+#define JSDOC_DOC_BUILDER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_DOC_BUILDER, JSDOCDocBuilder))
+#define JSDOC_DOC_BUILDER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_DOC_BUILDER, JSDOCDocBuilderClass))
+#define JSDOC_IS_DOC_BUILDER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_DOC_BUILDER))
+#define JSDOC_IS_DOC_BUILDER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_DOC_BUILDER))
+#define JSDOC_DOC_BUILDER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_DOC_BUILDER, JSDOCDocBuilderClass))
+
+typedef struct _JSDOCDocBuilder JSDOCDocBuilder;
+typedef struct _JSDOCDocBuilderClass JSDOCDocBuilderClass;
+typedef struct _JSDOCDocBuilderPrivate JSDOCDocBuilderPrivate;
+
+#define JSDOC_TYPE_SYMBOL_SET (jsdoc_symbol_set_get_type ())
+#define JSDOC_SYMBOL_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_SYMBOL_SET, JSDOCSymbolSet))
+#define JSDOC_SYMBOL_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_SYMBOL_SET, JSDOCSymbolSetClass))
+#define JSDOC_IS_SYMBOL_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_SYMBOL_SET))
+#define JSDOC_IS_SYMBOL_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_SYMBOL_SET))
+#define JSDOC_SYMBOL_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_SYMBOL_SET, JSDOCSymbolSetClass))
+
+typedef struct _JSDOCSymbolSet JSDOCSymbolSet;
+typedef struct _JSDOCSymbolSetClass JSDOCSymbolSetClass;
+
+#define JSDOC_TYPE_PACKER (jsdoc_packer_get_type ())
+#define JSDOC_PACKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_PACKER, JSDOCPacker))
+#define JSDOC_PACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_PACKER, JSDOCPackerClass))
+#define JSDOC_IS_PACKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_PACKER))
+#define JSDOC_IS_PACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_PACKER))
+#define JSDOC_PACKER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_PACKER, JSDOCPackerClass))
+
+typedef struct _JSDOCPacker JSDOCPacker;
+typedef struct _JSDOCPackerClass JSDOCPackerClass;
+#define _g_free0(var) (var = (g_free (var), NULL))
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _json_array_unref0(var) ((var == NULL) ? NULL : (var = (json_array_unref (var), NULL)))
+#define _g_date_time_unref0(var) ((var == NULL) ? NULL : (var = (g_date_time_unref (var), NULL)))
+typedef struct _JSDOCPackerPrivate JSDOCPackerPrivate;
+
+#define JSDOC_TYPE_PACKER_RUN (jsdoc_packer_run_get_type ())
+#define JSDOC_PACKER_RUN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_PACKER_RUN, JSDOCPackerRun))
+#define JSDOC_PACKER_RUN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_PACKER_RUN, JSDOCPackerRunClass))
+#define JSDOC_IS_PACKER_RUN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_PACKER_RUN))
+#define JSDOC_IS_PACKER_RUN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_PACKER_RUN))
+#define JSDOC_PACKER_RUN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_PACKER_RUN, JSDOCPackerRunClass))
+
+typedef struct _JSDOCPackerRun JSDOCPackerRun;
+typedef struct _JSDOCPackerRunClass JSDOCPackerRunClass;
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+
+#define JSDOC_TYPE_TOKEN_READER (jsdoc_token_reader_get_type ())
+#define JSDOC_TOKEN_READER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_TOKEN_READER, JSDOCTokenReader))
+#define JSDOC_TOKEN_READER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_TOKEN_READER, JSDOCTokenReaderClass))
+#define JSDOC_IS_TOKEN_READER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_TOKEN_READER))
+#define JSDOC_IS_TOKEN_READER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_TOKEN_READER))
+#define JSDOC_TOKEN_READER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_TOKEN_READER, JSDOCTokenReaderClass))
+
+typedef struct _JSDOCTokenReader JSDOCTokenReader;
+typedef struct _JSDOCTokenReaderClass JSDOCTokenReaderClass;
+typedef struct _JSDOCTokenReaderPrivate JSDOCTokenReaderPrivate;
+
+#define JSDOC_TYPE_TOKEN_ARRAY (jsdoc_token_array_get_type ())
+#define JSDOC_TOKEN_ARRAY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_TOKEN_ARRAY, JSDOCTokenArray))
+#define JSDOC_TOKEN_ARRAY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_TOKEN_ARRAY, JSDOCTokenArrayClass))
+#define JSDOC_IS_TOKEN_ARRAY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_TOKEN_ARRAY))
+#define JSDOC_IS_TOKEN_ARRAY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_TOKEN_ARRAY))
+#define JSDOC_TOKEN_ARRAY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_TOKEN_ARRAY, JSDOCTokenArrayClass))
+
+typedef struct _JSDOCTokenArray JSDOCTokenArray;
+typedef struct _JSDOCTokenArrayClass JSDOCTokenArrayClass;
+
+#define JSDOC_TYPE_TEXT_STREAM (jsdoc_text_stream_get_type ())
+#define JSDOC_TEXT_STREAM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_TEXT_STREAM, JSDOCTextStream))
+#define JSDOC_TEXT_STREAM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_TEXT_STREAM, JSDOCTextStreamClass))
+#define JSDOC_IS_TEXT_STREAM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_TEXT_STREAM))
+#define JSDOC_IS_TEXT_STREAM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_TEXT_STREAM))
+#define JSDOC_TEXT_STREAM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_TEXT_STREAM, JSDOCTextStreamClass))
+
+typedef struct _JSDOCTextStream JSDOCTextStream;
+typedef struct _JSDOCTextStreamClass JSDOCTextStreamClass;
+typedef struct _JSDOCPackerRunPrivate JSDOCPackerRunPrivate;
+
+#define JSDOC_TYPE_TOKEN_STREAM (jsdoc_token_stream_get_type ())
+#define JSDOC_TOKEN_STREAM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_TOKEN_STREAM, JSDOCTokenStream))
+#define JSDOC_TOKEN_STREAM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_TOKEN_STREAM, JSDOCTokenStreamClass))
+#define JSDOC_IS_TOKEN_STREAM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_TOKEN_STREAM))
+#define JSDOC_IS_TOKEN_STREAM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_TOKEN_STREAM))
+#define JSDOC_TOKEN_STREAM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_TOKEN_STREAM, JSDOCTokenStreamClass))
+
+typedef struct _JSDOCTokenStream JSDOCTokenStream;
+typedef struct _JSDOCTokenStreamClass JSDOCTokenStreamClass;
+typedef struct _JSDOCTokenArrayPrivate JSDOCTokenArrayPrivate;
+
+#define JSDOC_TYPE_TOKEN (jsdoc_token_get_type ())
+#define JSDOC_TOKEN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_TOKEN, JSDOCToken))
+#define JSDOC_TOKEN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_TOKEN, JSDOCTokenClass))
+#define JSDOC_IS_TOKEN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_TOKEN))
+#define JSDOC_IS_TOKEN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_TOKEN))
+#define JSDOC_TOKEN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_TOKEN, JSDOCTokenClass))
+
+typedef struct _JSDOCToken JSDOCToken;
+typedef struct _JSDOCTokenClass JSDOCTokenClass;
+
+#define JSDOC_TYPE_SYMBOL (jsdoc_symbol_get_type ())
+#define JSDOC_SYMBOL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_SYMBOL, JSDOCSymbol))
+#define JSDOC_SYMBOL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_SYMBOL, JSDOCSymbolClass))
+#define JSDOC_IS_SYMBOL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_SYMBOL))
+#define JSDOC_IS_SYMBOL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_SYMBOL))
+#define JSDOC_SYMBOL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_SYMBOL, JSDOCSymbolClass))
+
+typedef struct _JSDOCSymbol JSDOCSymbol;
+typedef struct _JSDOCSymbolClass JSDOCSymbolClass;
+typedef struct _JSDOCSymbolPrivate JSDOCSymbolPrivate;
+
+#define JSDOC_TYPE_DOC_TAG (jsdoc_doc_tag_get_type ())
+#define JSDOC_DOC_TAG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_DOC_TAG, JSDOCDocTag))
+#define JSDOC_DOC_TAG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_DOC_TAG, JSDOCDocTagClass))
+#define JSDOC_IS_DOC_TAG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_DOC_TAG))
+#define JSDOC_IS_DOC_TAG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_DOC_TAG))
+#define JSDOC_DOC_TAG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_DOC_TAG, JSDOCDocTagClass))
+
+typedef struct _JSDOCDocTag JSDOCDocTag;
+typedef struct _JSDOCDocTagClass JSDOCDocTagClass;
+
+#define JSDOC_TYPE_DOC_COMMENT (jsdoc_doc_comment_get_type ())
+#define JSDOC_DOC_COMMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_DOC_COMMENT, JSDOCDocComment))
+#define JSDOC_DOC_COMMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_DOC_COMMENT, JSDOCDocCommentClass))
+#define JSDOC_IS_DOC_COMMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_DOC_COMMENT))
+#define JSDOC_IS_DOC_COMMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_DOC_COMMENT))
+#define JSDOC_DOC_COMMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_DOC_COMMENT, JSDOCDocCommentClass))
+
+typedef struct _JSDOCDocComment JSDOCDocComment;
+typedef struct _JSDOCDocCommentClass JSDOCDocCommentClass;
+#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 JSDOC_TYPE_DOC_TAG_TITLE (jsdoc_doc_tag_title_get_type ())
+typedef struct _JSDOCDocTagPrivate JSDOCDocTagPrivate;
+#define _g_regex_unref0(var) ((var == NULL) ? NULL : (var = (g_regex_unref (var), NULL)))
+
+struct _JSDOCDocBuilder {
+       GObject parent_instance;
+       JSDOCDocBuilderPrivate * priv;
+       gchar* VERSION;
+};
+
+struct _JSDOCDocBuilderClass {
+       GObjectClass parent_class;
+};
+
+struct _JSDOCDocBuilderPrivate {
+       JSDOCSymbolSet* symbolSet;
+       JSDOCPacker* packer;
+       gchar* tempdir;
+       GeeHashMap* class_tree_map;
+       JsonArray* class_tree_top;
+};
+
+struct _JSDOCPacker {
+       GObject parent_instance;
+       JSDOCPackerPrivate * priv;
+       GeeArrayList* files;
+       gchar* activeFile;
+       gchar* outstr;
+       JSDOCPackerRun* config;
+       JsonObject* result;
+};
+
+struct _JSDOCPackerClass {
+       GObjectClass parent_class;
+};
+
+struct _JSDOCTokenReader {
+       GObject parent_instance;
+       JSDOCTokenReaderPrivate * priv;
+       gboolean collapseWhite;
+       gboolean keepDocs;
+       gboolean keepWhite;
+       gboolean keepComments;
+       gboolean sepIdents;
+       gchar* filename;
+       gboolean ignoreBadGrammer;
+};
+
+struct _JSDOCTokenReaderClass {
+       GObjectClass parent_class;
+};
+
+struct _JSDOCPackerRun {
+       GApplication parent_instance;
+       JSDOCPackerRunPrivate * priv;
+       gchar* opt_target;
+       gchar* opt_debug_target;
+       gchar* opt_real_basedir;
+       gchar* opt_doc_target;
+       gchar* opt_doc_template_dir;
+       gboolean opt_doc_include_private;
+       gboolean opt_debug;
+       gboolean opt_skip_scope;
+       gboolean opt_keep_whitespace;
+       gboolean opt_dump_tokens;
+       gboolean opt_clean_cache;
+       gchar* opt_doc_ext;
+};
+
+struct _JSDOCPackerRunClass {
+       GApplicationClass parent_class;
+};
+
+struct _JSDOCTokenArray {
+       GObject parent_instance;
+       JSDOCTokenArrayPrivate * priv;
+       GeeArrayList* tokens;
+};
+
+struct _JSDOCTokenArrayClass {
+       GObjectClass parent_class;
+};
+
+struct _JSDOCSymbol {
+       GObject parent_instance;
+       JSDOCSymbolPrivate * priv;
+       GeeArrayList* augments;
+       GeeArrayList* methods;
+       GeeArrayList* properties;
+       GeeArrayList* returns;
+       GeeArrayList* childClasses;
+       GeeArrayList* inheritsFrom;
+       GeeHashMap* cfgs;
+       JSDOCDocComment* comment;
+       gchar* alias;
+       gchar* desc;
+       gchar* isa;
+       gboolean isEvent;
+       gboolean isConstant;
+       gboolean isIgnored;
+       gboolean isInner;
+       gboolean isNamespace;
+       gboolean isPrivate;
+       gboolean isStatic;
+       gchar* memberOf;
+};
+
+struct _JSDOCSymbolClass {
+       GObjectClass parent_class;
+};
+
+typedef enum  {
+       JSDOC_DOC_TAG_TITLE_NO_VALUE,
+       JSDOC_DOC_TAG_TITLE_PARAM,
+       JSDOC_DOC_TAG_TITLE_PROPERTY,
+       JSDOC_DOC_TAG_TITLE_CFG,
+       JSDOC_DOC_TAG_TITLE_EXAMPLE,
+       JSDOC_DOC_TAG_TITLE_SINGLETON,
+       JSDOC_DOC_TAG_TITLE_AUTHOR,
+       JSDOC_DOC_TAG_TITLE_METHOD,
+       JSDOC_DOC_TAG_TITLE_DESC,
+       JSDOC_DOC_TAG_TITLE_OVERVIEW,
+       JSDOC_DOC_TAG_TITLE_SINCE,
+       JSDOC_DOC_TAG_TITLE_CONSTANT,
+       JSDOC_DOC_TAG_TITLE_VERSION,
+       JSDOC_DOC_TAG_TITLE_DEPRECATED,
+       JSDOC_DOC_TAG_TITLE_SEE,
+       JSDOC_DOC_TAG_TITLE_CLASS,
+       JSDOC_DOC_TAG_TITLE_NAMESPACE,
+       JSDOC_DOC_TAG_TITLE_CONSTRUCTOR,
+       JSDOC_DOC_TAG_TITLE_STATIC,
+       JSDOC_DOC_TAG_TITLE_INNER,
+       JSDOC_DOC_TAG_TITLE_FIELD,
+       JSDOC_DOC_TAG_TITLE_FUNCTION,
+       JSDOC_DOC_TAG_TITLE_EVENT,
+       JSDOC_DOC_TAG_TITLE_NAME,
+       JSDOC_DOC_TAG_TITLE_RETURN,
+       JSDOC_DOC_TAG_TITLE_THROWS,
+       JSDOC_DOC_TAG_TITLE_REQUIRES,
+       JSDOC_DOC_TAG_TITLE_TYPE,
+       JSDOC_DOC_TAG_TITLE_PRIVATE,
+       JSDOC_DOC_TAG_TITLE_IGNORE,
+       JSDOC_DOC_TAG_TITLE_ARGUMENTS,
+       JSDOC_DOC_TAG_TITLE_EXTENDS,
+       JSDOC_DOC_TAG_TITLE_DEFAULT,
+       JSDOC_DOC_TAG_TITLE_MEMBEROF,
+       JSDOC_DOC_TAG_TITLE_PUBLIC,
+       JSDOC_DOC_TAG_TITLE_SCOPE,
+       JSDOC_DOC_TAG_TITLE_SCOPEALIAS
+} JSDOCDocTagTitle;
+
+struct _JSDOCDocTag {
+       GObject parent_instance;
+       JSDOCDocTagPrivate * priv;
+       JSDOCDocTagTitle title;
+       gchar* type;
+       gchar* name;
+       gboolean isOptional;
+       gchar* defaultValue;
+       gchar* desc;
+       GeeArrayList* optvalues;
+       gchar* memberOf;
+};
+
+struct _JSDOCDocTagClass {
+       GObjectClass parent_class;
+};
+
+
+static gpointer jsdoc_doc_builder_parent_class = NULL;
+
+GType jsdoc_doc_builder_get_type (void) G_GNUC_CONST;
+GType jsdoc_symbol_set_get_type (void) G_GNUC_CONST;
+GType jsdoc_packer_get_type (void) G_GNUC_CONST;
+#define JSDOC_DOC_BUILDER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), JSDOC_TYPE_DOC_BUILDER, JSDOCDocBuilderPrivate))
+enum  {
+       JSDOC_DOC_BUILDER_DUMMY_PROPERTY
+};
+JSDOCDocBuilder* jsdoc_doc_builder_new (JSDOCPacker* p);
+JSDOCDocBuilder* jsdoc_doc_builder_construct (GType object_type, JSDOCPacker* p);
+static void jsdoc_doc_builder_parseSrcFiles (JSDOCDocBuilder* self);
+JSDOCSymbolSet* jsdoc_doc_parser_symbols (void);
+static void jsdoc_doc_builder_publish (JSDOCDocBuilder* self);
+GType jsdoc_packer_run_get_type (void) G_GNUC_CONST;
+GType jsdoc_token_reader_get_type (void) G_GNUC_CONST;
+JSDOCTokenReader* jsdoc_token_reader_new (JSDOCPacker* packer);
+JSDOCTokenReader* jsdoc_token_reader_construct (GType object_type, JSDOCPacker* packer);
+GType jsdoc_token_array_get_type (void) G_GNUC_CONST;
+GType jsdoc_text_stream_get_type (void) G_GNUC_CONST;
+JSDOCTokenArray* jsdoc_token_reader_tokenize (JSDOCTokenReader* self, JSDOCTextStream* stream);
+JSDOCTextStream* jsdoc_text_stream_new (const gchar* text);
+JSDOCTextStream* jsdoc_text_stream_construct (GType object_type, const gchar* text);
+JSDOCPackerRun* jsdoc_packer_run_singleton (void);
+void jsdoc_token_array_dump (JSDOCTokenArray* self);
+GType jsdoc_token_stream_get_type (void) G_GNUC_CONST;
+GType jsdoc_token_get_type (void) G_GNUC_CONST;
+JSDOCTokenStream* jsdoc_token_stream_new (GeeArrayList* tokens);
+JSDOCTokenStream* jsdoc_token_stream_construct (GType object_type, GeeArrayList* tokens);
+void jsdoc_doc_parser_parse (JSDOCTokenStream* ts, const gchar* srcFile);
+void jsdoc_doc_parser_finish (void);
+GType jsdoc_symbol_get_type (void) G_GNUC_CONST;
+GeeArrayList* jsdoc_symbol_set_values (JSDOCSymbolSet* self);
+static void jsdoc_doc_builder_makeSrcFile (JSDOCDocBuilder* self, const gchar* sourceFile);
+gboolean jsdoc_symbol_isaClass (JSDOCSymbol* self);
+static gint __lambda10_ (JSDOCDocBuilder* self, JSDOCSymbol* a, JSDOCSymbol* b);
+GType jsdoc_doc_tag_get_type (void) G_GNUC_CONST;
+GType jsdoc_doc_comment_get_type (void) G_GNUC_CONST;
+static gint ___lambda10__gcompare_data_func (gconstpointer a, gconstpointer b, gpointer self);
+static JsonObject* jsdoc_doc_builder_class_to_json (JSDOCDocBuilder* self, JSDOCSymbol* cls);
+static void jsdoc_doc_builder_writeJson (JSDOCDocBuilder* self, JsonGenerator* g, const gchar* fname);
+static JsonObject* jsdoc_doc_builder_publishJSON (JSDOCDocBuilder* self, JSDOCSymbol* data);
+static void _vala_JsonNode_free (JsonNode* self);
+static JsonArray* jsdoc_doc_builder_class_tree (JSDOCDocBuilder* self, GeeArrayList* classes);
+JSDOCSymbol* jsdoc_symbol_set_getSymbol (JSDOCSymbolSet* self, const gchar* alias);
+GType jsdoc_doc_tag_title_get_type (void) G_GNUC_CONST;
+GeeArrayList* jsdoc_doc_comment_getTag (JSDOCDocComment* self, JSDOCDocTagTitle tagTitle);
+gboolean jsdoc_symbol_isBuiltin (JSDOCSymbol* self);
+const gchar* jsdoc_symbol_get_name (JSDOCSymbol* self);
+gchar* jsdoc_doc_comment_getTagAsString (JSDOCDocComment* self, JSDOCDocTagTitle tagTitle);
+JsonArray* jsdoc_symbol_paramsToJson (JSDOCSymbol* self);
+GeeArrayList* jsdoc_symbol_configToArray (JSDOCSymbol* self);
+JsonArray* jsdoc_doc_tag_optvalue_as_json_array (JSDOCDocTag* self);
+JsonArray* jsdoc_symbol_returnsToJson (JSDOCSymbol* self);
+static gint ___lambda11_ (JSDOCDocBuilder* self, JSDOCDocTag* a, JSDOCDocTag* b);
+static gint ____lambda11__gcompare_data_func (gconstpointer a, gconstpointer b, gpointer self);
+static gint __lambda12_ (JSDOCDocBuilder* self, JSDOCSymbol* a, JSDOCSymbol* b);
+static gint ___lambda12__gcompare_data_func (gconstpointer a, gconstpointer b, gpointer self);
+gchar* jsdoc_symbol_makeFuncSkel (JSDOCSymbol* self);
+static gint __lambda13_ (JSDOCDocBuilder* self, JSDOCSymbol* a, JSDOCSymbol* b);
+static gint ___lambda13__gcompare_data_func (gconstpointer a, gconstpointer b, gpointer self);
+gchar* jsdoc_symbol_makeMethodSkel (JSDOCSymbol* self);
+static JsonObject* jsdoc_doc_builder_class_tree_new_obj (JSDOCDocBuilder* self, const gchar* name, gboolean is_class, gboolean* is_new);
+static void jsdoc_doc_builder_class_tree_make_parents (JSDOCDocBuilder* self, JsonObject* add);
+static void _vala_array_add8 (gchar** * array, int* length, int* size, gchar* value);
+static gchar* jsdoc_doc_builder_srcFileRelName (JSDOCDocBuilder* self, const gchar* sourceFile);
+static gchar* jsdoc_doc_builder_srcFileFlatName (JSDOCDocBuilder* self, const gchar* sourceFile);
+gchar* jsdoc_pretty_print_toPretty (const gchar* str);
+static void jsdoc_doc_builder_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 GRegex* _tmp_regex_0 = NULL;
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 24 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       return self ? g_object_ref (self) : NULL;
+#line 398 "DocBuilder.c"
+}
+
+
+JSDOCDocBuilder* jsdoc_doc_builder_construct (GType object_type, JSDOCPacker* p) {
+       JSDOCDocBuilder * self = NULL;
+       GDateTime* _tmp0_;
+       GDateTime* _tmp1_;
+       gchar* _tmp2_;
+       gchar* _tmp3_;
+       JSDOCPacker* _tmp4_;
+       JSDOCPacker* _tmp5_;
+       JSDOCSymbolSet* _tmp6_;
+#line 18 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       g_return_val_if_fail (p != NULL, NULL);
+#line 18 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       self = (JSDOCDocBuilder*) g_object_new (object_type, NULL);
+#line 22 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp0_ = g_date_time_new_now_local ();
+#line 22 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp1_ = _tmp0_;
+#line 22 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp2_ = g_date_time_format (_tmp1_, "Y/m/d H:i:s");
+#line 22 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp3_ = _tmp2_;
+#line 22 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       g_debug ("DocBuilder.vala:22: Roo JsDoc Toolkit started  at %s ", _tmp3_);
+#line 22 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_free0 (_tmp3_);
+#line 22 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_date_time_unref0 (_tmp1_);
+#line 24 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp4_ = p;
+#line 24 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp5_ = _g_object_ref0 (_tmp4_);
+#line 24 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_object_unref0 (self->priv->packer);
+#line 24 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       self->priv->packer = _tmp5_;
+#line 31 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       jsdoc_doc_builder_parseSrcFiles (self);
+#line 33 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp6_ = jsdoc_doc_parser_symbols ();
+#line 33 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_object_unref0 (self->priv->symbolSet);
+#line 33 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       self->priv->symbolSet = _tmp6_;
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       jsdoc_doc_builder_publish (self);
+#line 18 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       return self;
+#line 449 "DocBuilder.c"
+}
+
+
+JSDOCDocBuilder* jsdoc_doc_builder_new (JSDOCPacker* p) {
+#line 18 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       return jsdoc_doc_builder_construct (JSDOC_TYPE_DOC_BUILDER, p);
+#line 456 "DocBuilder.c"
+}
+
+
+/**
+ * Parse the source files.
+ * 
+ */
+static void jsdoc_doc_builder_parseSrcFiles (JSDOCDocBuilder* self) {
+       GError * _inner_error_ = NULL;
+#line 49 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       g_return_if_fail (self != NULL);
+#line 468 "DocBuilder.c"
+       {
+               gint i = 0;
+               gint l = 0;
+               JSDOCPacker* _tmp0_;
+               GeeArrayList* _tmp1_;
+               gint _tmp2_;
+               gint _tmp3_;
+#line 57 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               i = 0;
+#line 57 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp0_ = self->priv->packer;
+#line 57 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp1_ = _tmp0_->files;
+#line 57 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp2_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp1_);
+#line 57 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp3_ = _tmp2_;
+#line 57 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               l = _tmp3_;
+#line 488 "DocBuilder.c"
+               {
+                       gboolean _tmp4_ = FALSE;
+#line 57 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp4_ = TRUE;
+#line 57 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       while (TRUE) {
+#line 495 "DocBuilder.c"
+                               gint _tmp6_;
+                               gint _tmp7_;
+                               gchar* srcFile = NULL;
+                               JSDOCPacker* _tmp8_;
+                               GeeArrayList* _tmp9_;
+                               gint _tmp10_;
+                               gpointer _tmp11_;
+                               const gchar* _tmp12_;
+                               gchar* src = NULL;
+                               gchar* _tmp13_;
+                               JSDOCTokenReader* tr = NULL;
+                               JSDOCPacker* _tmp20_;
+                               JSDOCTokenReader* _tmp21_;
+                               JSDOCTokenReader* _tmp22_;
+                               JSDOCTokenReader* _tmp23_;
+                               JSDOCTokenReader* _tmp24_;
+                               JSDOCTokenReader* _tmp25_;
+                               JSDOCTokenReader* _tmp26_;
+                               JSDOCTokenReader* _tmp27_;
+                               const gchar* _tmp28_;
+                               gchar* _tmp29_;
+                               JSDOCTokenArray* toks = NULL;
+                               JSDOCTokenReader* _tmp30_;
+                               const gchar* _tmp31_;
+                               JSDOCTextStream* _tmp32_;
+                               JSDOCTextStream* _tmp33_;
+                               JSDOCTokenArray* _tmp34_;
+                               JSDOCTokenArray* _tmp35_;
+                               JSDOCPackerRun* _tmp36_;
+                               JSDOCPackerRun* _tmp37_;
+                               gboolean _tmp38_;
+                               gboolean _tmp39_;
+                               JSDOCTokenStream* ts = NULL;
+                               JSDOCTokenArray* _tmp41_;
+                               GeeArrayList* _tmp42_;
+                               JSDOCTokenStream* _tmp43_;
+                               JSDOCTokenStream* _tmp44_;
+                               const gchar* _tmp45_;
+#line 57 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               if (!_tmp4_) {
+#line 536 "DocBuilder.c"
+                                       gint _tmp5_;
+#line 57 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       _tmp5_ = i;
+#line 57 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       i = _tmp5_ + 1;
+#line 542 "DocBuilder.c"
+                               }
+#line 57 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp4_ = FALSE;
+#line 57 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp6_ = i;
+#line 57 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp7_ = l;
+#line 57 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               if (!(_tmp6_ < _tmp7_)) {
+#line 57 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       break;
+#line 554 "DocBuilder.c"
+                               }
+#line 59 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp8_ = self->priv->packer;
+#line 59 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp9_ = _tmp8_->files;
+#line 59 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp10_ = i;
+#line 59 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp11_ = gee_abstract_list_get ((GeeAbstractList*) _tmp9_, _tmp10_);
+#line 59 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               srcFile = (gchar*) _tmp11_;
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp12_ = srcFile;
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               g_debug ("DocBuilder.vala:60: Parsing source File: %s", _tmp12_);
+#line 96 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp13_ = g_strdup ("");
+#line 96 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               src = _tmp13_;
+#line 574 "DocBuilder.c"
+                               {
+                                       const gchar* _tmp14_;
+                                       const gchar* _tmp15_;
+                                       gchar* _tmp16_ = NULL;
+#line 98 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       _tmp14_ = srcFile;
+#line 98 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       g_debug ("DocBuilder.vala:98: reading : %s", _tmp14_);
+#line 99 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       _tmp15_ = srcFile;
+#line 99 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       g_file_get_contents (_tmp15_, &_tmp16_, NULL, &_inner_error_);
+#line 99 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       _g_free0 (src);
+#line 99 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       src = _tmp16_;
+#line 99 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 99 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                               if (_inner_error_->domain == G_FILE_ERROR) {
+#line 595 "DocBuilder.c"
+                                                       goto __catch4_g_file_error;
+                                               }
+#line 99 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                               _g_free0 (src);
+#line 99 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                               _g_free0 (srcFile);
+#line 99 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                               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);
+#line 99 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                               g_clear_error (&_inner_error_);
+#line 99 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                               return;
+#line 608 "DocBuilder.c"
+                                       }
+                               }
+                               goto __finally4;
+                               __catch4_g_file_error:
+                               {
+                                       GError* e = NULL;
+                                       const gchar* _tmp17_;
+                                       GError* _tmp18_;
+                                       const gchar* _tmp19_;
+#line 97 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       e = _inner_error_;
+#line 97 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       _inner_error_ = NULL;
+#line 102 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       _tmp17_ = srcFile;
+#line 102 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       _tmp18_ = e;
+#line 102 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       _tmp19_ = _tmp18_->message;
+#line 102 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       g_debug ("DocBuilder.vala:102: Can't read source file '%s': %s", _tmp17_, _tmp19_);
+#line 103 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       _g_error_free0 (e);
+#line 103 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       _g_free0 (src);
+#line 103 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       _g_free0 (srcFile);
+#line 103 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       continue;
+#line 638 "DocBuilder.c"
+                               }
+                               __finally4:
+#line 97 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 97 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       _g_free0 (src);
+#line 97 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       _g_free0 (srcFile);
+#line 97 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       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);
+#line 97 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       g_clear_error (&_inner_error_);
+#line 97 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       return;
+#line 653 "DocBuilder.c"
+                               }
+#line 108 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp20_ = self->priv->packer;
+#line 108 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp21_ = jsdoc_token_reader_new (_tmp20_);
+#line 108 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               tr = _tmp21_;
+#line 109 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp22_ = tr;
+#line 109 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp22_->keepDocs = TRUE;
+#line 110 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp23_ = tr;
+#line 110 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp23_->keepWhite = TRUE;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp24_ = tr;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp24_->keepComments = TRUE;
+#line 112 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp25_ = tr;
+#line 112 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp25_->sepIdents = FALSE;
+#line 113 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp26_ = tr;
+#line 113 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp26_->collapseWhite = FALSE;
+#line 114 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp27_ = tr;
+#line 114 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp28_ = src;
+#line 114 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp29_ = g_strdup (_tmp28_);
+#line 114 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _g_free0 (_tmp27_->filename);
+#line 114 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp27_->filename = _tmp29_;
+#line 117 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp30_ = tr;
+#line 117 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp31_ = src;
+#line 117 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp32_ = jsdoc_text_stream_new (_tmp31_);
+#line 117 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp33_ = _tmp32_;
+#line 117 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp34_ = jsdoc_token_reader_tokenize (_tmp30_, _tmp33_);
+#line 117 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp35_ = _tmp34_;
+#line 117 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _g_object_unref0 (_tmp33_);
+#line 117 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               toks = _tmp35_;
+#line 118 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp36_ = jsdoc_packer_run_singleton ();
+#line 118 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp37_ = _tmp36_;
+#line 118 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp38_ = _tmp37_->opt_dump_tokens;
+#line 118 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp39_ = _tmp38_;
+#line 118 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _g_object_unref0 (_tmp37_);
+#line 118 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               if (_tmp39_) {
+#line 719 "DocBuilder.c"
+                                       JSDOCTokenArray* _tmp40_;
+#line 119 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       _tmp40_ = toks;
+#line 119 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       jsdoc_token_array_dump (_tmp40_);
+#line 120 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       _g_object_unref0 (toks);
+#line 120 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       _g_object_unref0 (tr);
+#line 120 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       _g_free0 (src);
+#line 120 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       _g_free0 (srcFile);
+#line 120 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       return;
+#line 735 "DocBuilder.c"
+                               }
+#line 125 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp41_ = toks;
+#line 125 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp42_ = _tmp41_->tokens;
+#line 125 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp43_ = jsdoc_token_stream_new (_tmp42_);
+#line 125 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               ts = _tmp43_;
+#line 130 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp44_ = ts;
+#line 130 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp45_ = srcFile;
+#line 130 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               jsdoc_doc_parser_parse (_tmp44_, _tmp45_);
+#line 57 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _g_object_unref0 (ts);
+#line 57 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _g_object_unref0 (toks);
+#line 57 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _g_object_unref0 (tr);
+#line 57 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _g_free0 (src);
+#line 57 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _g_free0 (srcFile);
+#line 761 "DocBuilder.c"
+                       }
+               }
+       }
+#line 158 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       jsdoc_doc_parser_finish ();
+#line 767 "DocBuilder.c"
+}
+
+
+static gint __lambda10_ (JSDOCDocBuilder* self, JSDOCSymbol* a, JSDOCSymbol* b) {
+       gint result = 0;
+       JSDOCSymbol* _tmp0_;
+       const gchar* _tmp1_;
+       JSDOCSymbol* _tmp2_;
+       const gchar* _tmp3_;
+       gint _tmp4_;
+#line 292 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       g_return_val_if_fail (a != NULL, 0);
+#line 292 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       g_return_val_if_fail (b != NULL, 0);
+#line 293 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp0_ = a;
+#line 293 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp1_ = _tmp0_->alias;
+#line 293 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp2_ = b;
+#line 293 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp3_ = _tmp2_->alias;
+#line 293 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp4_ = g_utf8_collate (_tmp1_, _tmp3_);
+#line 293 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       result = _tmp4_;
+#line 293 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       return result;
+#line 796 "DocBuilder.c"
+}
+
+
+static gint ___lambda10__gcompare_data_func (gconstpointer a, gconstpointer b, gpointer self) {
+       gint result;
+       result = __lambda10_ ((JSDOCDocBuilder*) self, (JSDOCSymbol*) a, (JSDOCSymbol*) b);
+#line 292 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       return result;
+#line 805 "DocBuilder.c"
+}
+
+
+static void _vala_JsonNode_free (JsonNode* self) {
+#line 304 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       g_boxed_free (json_node_get_type (), self);
+#line 812 "DocBuilder.c"
+}
+
+
+static void jsdoc_doc_builder_publish (JSDOCDocBuilder* self) {
+       gchar* _tmp0_ = NULL;
+       gchar* _tmp1_;
+       gchar* _tmp2_;
+       JSDOCPackerRun* _tmp3_;
+       JSDOCPackerRun* _tmp4_;
+       const gchar* _tmp5_;
+       gboolean _tmp6_;
+       gboolean _tmp7_;
+       JSDOCPackerRun* _tmp11_;
+       JSDOCPackerRun* _tmp12_;
+       const gchar* _tmp13_;
+       gchar* _tmp14_;
+       gchar* _tmp15_;
+       gboolean _tmp16_;
+       gboolean _tmp17_;
+       JSDOCPackerRun* _tmp23_;
+       JSDOCPackerRun* _tmp24_;
+       const gchar* _tmp25_;
+       gchar* _tmp26_;
+       gchar* _tmp27_;
+       gboolean _tmp28_;
+       gboolean _tmp29_;
+       JSDOCPackerRun* _tmp35_;
+       JSDOCPackerRun* _tmp36_;
+       const gchar* _tmp37_;
+       gchar* _tmp38_;
+       gchar* _tmp39_;
+       gboolean _tmp40_;
+       gboolean _tmp41_;
+       JSDOCPackerRun* _tmp47_;
+       JSDOCPackerRun* _tmp48_;
+       const gchar* _tmp49_;
+       JSDOCPackerRun* _tmp50_;
+       JSDOCPackerRun* _tmp51_;
+       const gchar* _tmp52_;
+       gboolean _tmp53_;
+       GeeArrayList* symbols = NULL;
+       JSDOCSymbolSet* _tmp94_;
+       GeeArrayList* _tmp95_;
+       GeeArrayList* files = NULL;
+       JSDOCPacker* _tmp96_;
+       GeeArrayList* _tmp97_;
+       GeeArrayList* _tmp98_;
+       GeeArrayList* classes = NULL;
+       GeeArrayList* _tmp110_;
+       GeeArrayList* _tmp126_;
+       JsonObject* jsonAll = NULL;
+       JsonObject* _tmp127_;
+       JsonGenerator* class_tree_gen = NULL;
+       JsonGenerator* _tmp179_;
+       JsonNode* class_tree_root = NULL;
+       JsonNode* _tmp180_;
+       JsonNode* _tmp181_;
+       GeeArrayList* _tmp182_;
+       JsonArray* _tmp183_;
+       JsonArray* _tmp184_;
+       JsonGenerator* _tmp185_;
+       JsonNode* _tmp186_;
+       JsonGenerator* _tmp187_;
+       JsonGenerator* _tmp188_;
+       JSDOCPackerRun* _tmp189_;
+       JSDOCPackerRun* _tmp190_;
+       const gchar* _tmp191_;
+       gchar* _tmp192_;
+       gchar* _tmp193_;
+       JsonGenerator* _tmp194_;
+       JSDOCPackerRun* _tmp195_;
+       JSDOCPackerRun* _tmp196_;
+       const gchar* _tmp197_;
+       gchar* _tmp198_;
+       gchar* _tmp199_;
+       gsize class_tree_l = 0UL;
+       JsonGenerator* generator = NULL;
+       JsonGenerator* _tmp200_;
+       JsonNode* root = NULL;
+       JsonNode* _tmp201_;
+       JsonNode* _tmp202_;
+       JsonObject* _tmp203_;
+       JsonGenerator* _tmp204_;
+       JsonNode* _tmp205_;
+       JsonGenerator* _tmp206_;
+       JsonGenerator* _tmp207_;
+       JSDOCPackerRun* _tmp208_;
+       JSDOCPackerRun* _tmp209_;
+       const gchar* _tmp210_;
+       gchar* _tmp211_;
+       gchar* _tmp212_;
+       JsonGenerator* _tmp213_;
+       JSDOCPackerRun* _tmp214_;
+       JSDOCPackerRun* _tmp215_;
+       const gchar* _tmp216_;
+       gchar* _tmp217_;
+       gchar* _tmp218_;
+       gsize l = 0UL;
+       GError * _inner_error_ = NULL;
+#line 219 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       g_return_if_fail (self != NULL);
+#line 221 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       g_debug ("DocBuilder.vala:221: Publishing");
+#line 224 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp1_ = g_dir_make_tmp ("roopackerXXXXXX", &_inner_error_);
+#line 224 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp0_ = _tmp1_;
+#line 224 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 224 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               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);
+#line 224 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               g_clear_error (&_inner_error_);
+#line 224 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               return;
+#line 928 "DocBuilder.c"
+       }
+#line 224 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp2_ = _tmp0_;
+#line 224 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp0_ = NULL;
+#line 224 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_free0 (self->priv->tempdir);
+#line 224 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       self->priv->tempdir = _tmp2_;
+#line 226 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       g_debug ("DocBuilder.vala:226: Making directories");
+#line 227 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp3_ = jsdoc_packer_run_singleton ();
+#line 227 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp4_ = _tmp3_;
+#line 227 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp5_ = _tmp4_->opt_doc_target;
+#line 227 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp6_ = g_file_test (_tmp5_, G_FILE_TEST_IS_DIR);
+#line 227 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp7_ = !_tmp6_;
+#line 227 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_object_unref0 (_tmp4_);
+#line 227 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       if (_tmp7_) {
+#line 954 "DocBuilder.c"
+               JSDOCPackerRun* _tmp8_;
+               JSDOCPackerRun* _tmp9_;
+               const gchar* _tmp10_;
+#line 228 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp8_ = jsdoc_packer_run_singleton ();
+#line 228 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp9_ = _tmp8_;
+#line 228 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp10_ = _tmp9_->opt_doc_target;
+#line 228 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               mkdir (_tmp10_, (mode_t) 0755);
+#line 228 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _g_object_unref0 (_tmp9_);
+#line 968 "DocBuilder.c"
+       }
+#line 230 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp11_ = jsdoc_packer_run_singleton ();
+#line 230 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp12_ = _tmp11_;
+#line 230 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp13_ = _tmp12_->opt_doc_target;
+#line 230 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp14_ = g_strconcat (_tmp13_, "/symbols", NULL);
+#line 230 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp15_ = _tmp14_;
+#line 230 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp16_ = g_file_test (_tmp15_, G_FILE_TEST_IS_DIR);
+#line 230 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp17_ = !_tmp16_;
+#line 230 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_free0 (_tmp15_);
+#line 230 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_object_unref0 (_tmp12_);
+#line 230 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       if (_tmp17_) {
+#line 990 "DocBuilder.c"
+               JSDOCPackerRun* _tmp18_;
+               JSDOCPackerRun* _tmp19_;
+               const gchar* _tmp20_;
+               gchar* _tmp21_;
+               gchar* _tmp22_;
+#line 231 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp18_ = jsdoc_packer_run_singleton ();
+#line 231 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp19_ = _tmp18_;
+#line 231 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp20_ = _tmp19_->opt_doc_target;
+#line 231 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp21_ = g_strconcat (_tmp20_, "/symbols", NULL);
+#line 231 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp22_ = _tmp21_;
+#line 231 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               mkdir (_tmp22_, (mode_t) 0755);
+#line 231 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _g_free0 (_tmp22_);
+#line 231 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _g_object_unref0 (_tmp19_);
+#line 1012 "DocBuilder.c"
+       }
+#line 233 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp23_ = jsdoc_packer_run_singleton ();
+#line 233 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp24_ = _tmp23_;
+#line 233 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp25_ = _tmp24_->opt_doc_target;
+#line 233 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp26_ = g_strconcat (_tmp25_, "/src", NULL);
+#line 233 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp27_ = _tmp26_;
+#line 233 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp28_ = g_file_test (_tmp27_, G_FILE_TEST_IS_DIR);
+#line 233 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp29_ = !_tmp28_;
+#line 233 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_free0 (_tmp27_);
+#line 233 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_object_unref0 (_tmp24_);
+#line 233 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       if (_tmp29_) {
+#line 1034 "DocBuilder.c"
+               JSDOCPackerRun* _tmp30_;
+               JSDOCPackerRun* _tmp31_;
+               const gchar* _tmp32_;
+               gchar* _tmp33_;
+               gchar* _tmp34_;
+#line 234 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp30_ = jsdoc_packer_run_singleton ();
+#line 234 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp31_ = _tmp30_;
+#line 234 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp32_ = _tmp31_->opt_doc_target;
+#line 234 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp33_ = g_strconcat (_tmp32_, "/src", NULL);
+#line 234 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp34_ = _tmp33_;
+#line 234 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               mkdir (_tmp34_, (mode_t) 0755);
+#line 234 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _g_free0 (_tmp34_);
+#line 234 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _g_object_unref0 (_tmp31_);
+#line 1056 "DocBuilder.c"
+       }
+#line 236 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp35_ = jsdoc_packer_run_singleton ();
+#line 236 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp36_ = _tmp35_;
+#line 236 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp37_ = _tmp36_->opt_doc_target;
+#line 236 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp38_ = g_strconcat (_tmp37_, "/json", NULL);
+#line 236 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp39_ = _tmp38_;
+#line 236 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp40_ = g_file_test (_tmp39_, G_FILE_TEST_IS_DIR);
+#line 236 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp41_ = !_tmp40_;
+#line 236 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_free0 (_tmp39_);
+#line 236 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_object_unref0 (_tmp36_);
+#line 236 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       if (_tmp41_) {
+#line 1078 "DocBuilder.c"
+               JSDOCPackerRun* _tmp42_;
+               JSDOCPackerRun* _tmp43_;
+               const gchar* _tmp44_;
+               gchar* _tmp45_;
+               gchar* _tmp46_;
+#line 237 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp42_ = jsdoc_packer_run_singleton ();
+#line 237 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp43_ = _tmp42_;
+#line 237 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp44_ = _tmp43_->opt_doc_target;
+#line 237 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp45_ = g_strconcat (_tmp44_, "/json", NULL);
+#line 237 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp46_ = _tmp45_;
+#line 237 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               mkdir (_tmp46_, (mode_t) 0755);
+#line 237 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _g_free0 (_tmp46_);
+#line 237 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _g_object_unref0 (_tmp43_);
+#line 1100 "DocBuilder.c"
+       }
+#line 240 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp47_ = jsdoc_packer_run_singleton ();
+#line 240 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp48_ = _tmp47_;
+#line 240 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp49_ = _tmp48_->opt_doc_template_dir;
+#line 240 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       g_debug ("DocBuilder.vala:240: Copying files from static: %s ", _tmp49_);
+#line 240 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_object_unref0 (_tmp48_);
+#line 243 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp50_ = jsdoc_packer_run_singleton ();
+#line 243 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp51_ = _tmp50_;
+#line 243 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp52_ = _tmp51_->opt_doc_template_dir;
+#line 243 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp53_ = _tmp52_ != NULL;
+#line 243 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_object_unref0 (_tmp51_);
+#line 243 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       if (_tmp53_) {
+#line 1124 "DocBuilder.c"
+               GFileEnumerator* iter = NULL;
+               JSDOCPackerRun* _tmp54_;
+               JSDOCPackerRun* _tmp55_;
+               const gchar* _tmp56_;
+               gchar* _tmp57_;
+               gchar* _tmp58_;
+               GFile* _tmp59_;
+               GFile* _tmp60_;
+               GFileEnumerator* _tmp61_;
+               GFileEnumerator* _tmp62_;
+               GFileInfo* info = NULL;
+#line 245 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp54_ = jsdoc_packer_run_singleton ();
+#line 245 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp55_ = _tmp54_;
+#line 245 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp56_ = _tmp55_->opt_doc_template_dir;
+#line 245 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp57_ = g_strconcat (_tmp56_, "/static", NULL);
+#line 245 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp58_ = _tmp57_;
+#line 245 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp59_ = g_file_new_for_path (_tmp58_);
+#line 245 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp60_ = _tmp59_;
+#line 245 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp61_ = g_file_enumerate_children (_tmp60_, "standard::*", G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS, NULL, &_inner_error_);
+#line 245 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp62_ = _tmp61_;
+#line 245 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _g_object_unref0 (_tmp60_);
+#line 245 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _g_free0 (_tmp58_);
+#line 245 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _g_object_unref0 (_tmp55_);
+#line 245 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               iter = _tmp62_;
+#line 245 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 245 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _g_free0 (_tmp0_);
+#line 245 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       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);
+#line 245 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       g_clear_error (&_inner_error_);
+#line 245 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       return;
+#line 1172 "DocBuilder.c"
+               }
+#line 253 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               while (TRUE) {
+#line 1176 "DocBuilder.c"
+                       GFileInfo* _tmp63_ = NULL;
+                       GFileEnumerator* _tmp64_;
+                       GFileInfo* _tmp65_;
+                       GFileInfo* _tmp66_;
+                       GFileInfo* _tmp67_;
+                       GFileInfo* _tmp68_;
+                       GFileType _tmp69_;
+                       GFile* src = NULL;
+                       GFileInfo* _tmp70_;
+                       const gchar* _tmp71_;
+                       GFile* _tmp72_;
+                       GFileInfo* _tmp73_;
+                       const gchar* _tmp74_;
+                       JSDOCPackerRun* _tmp75_;
+                       JSDOCPackerRun* _tmp76_;
+                       const gchar* _tmp77_;
+                       GFile* _tmp78_;
+                       gchar* _tmp79_;
+                       gchar* _tmp80_;
+                       GFile* _tmp81_;
+                       JSDOCPackerRun* _tmp82_;
+                       JSDOCPackerRun* _tmp83_;
+                       const gchar* _tmp84_;
+                       gchar* _tmp85_;
+                       gchar* _tmp86_;
+                       GFile* _tmp87_;
+                       gchar* _tmp88_;
+                       gchar* _tmp89_;
+                       gchar* _tmp90_;
+                       gchar* _tmp91_;
+                       GFile* _tmp92_;
+                       GFile* _tmp93_;
+#line 253 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp64_ = iter;
+#line 253 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp65_ = g_file_enumerator_next_file (_tmp64_, NULL, &_inner_error_);
+#line 253 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp63_ = _tmp65_;
+#line 253 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 253 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _g_object_unref0 (info);
+#line 253 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _g_object_unref0 (iter);
+#line 253 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _g_free0 (_tmp0_);
+#line 253 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               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);
+#line 253 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               g_clear_error (&_inner_error_);
+#line 253 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               return;
+#line 1229 "DocBuilder.c"
+                       }
+#line 253 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp66_ = _tmp63_;
+#line 253 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp63_ = NULL;
+#line 253 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _g_object_unref0 (info);
+#line 253 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       info = _tmp66_;
+#line 253 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp67_ = info;
+#line 253 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       if (!(_tmp67_ != NULL)) {
+#line 253 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _g_object_unref0 (_tmp63_);
+#line 253 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               break;
+#line 1247 "DocBuilder.c"
+                       }
+#line 254 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp68_ = info;
+#line 254 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp69_ = g_file_info_get_file_type (_tmp68_);
+#line 254 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       if (_tmp69_ == G_FILE_TYPE_DIRECTORY) {
+#line 255 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _g_object_unref0 (_tmp63_);
+#line 255 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               continue;
+#line 1259 "DocBuilder.c"
+                       }
+#line 257 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp70_ = info;
+#line 257 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp71_ = g_file_info_get_name (_tmp70_);
+#line 257 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp72_ = g_file_new_for_path (_tmp71_);
+#line 257 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       src = _tmp72_;
+#line 258 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp73_ = info;
+#line 258 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp74_ = g_file_info_get_name (_tmp73_);
+#line 258 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp75_ = jsdoc_packer_run_singleton ();
+#line 258 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp76_ = _tmp75_;
+#line 258 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp77_ = _tmp76_->opt_doc_target;
+#line 258 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp78_ = src;
+#line 258 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp79_ = g_file_get_basename (_tmp78_);
+#line 258 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp80_ = _tmp79_;
+#line 258 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       g_debug ("DocBuilder.vala:258: Copy %s to %s/%s", _tmp74_, _tmp77_, _tmp80_);
+#line 258 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _g_free0 (_tmp80_);
+#line 258 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _g_object_unref0 (_tmp76_);
+#line 262 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp81_ = src;
+#line 262 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp82_ = jsdoc_packer_run_singleton ();
+#line 262 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp83_ = _tmp82_;
+#line 262 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp84_ = _tmp83_->opt_doc_target;
+#line 262 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp85_ = g_strconcat (_tmp84_, "/", NULL);
+#line 262 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp86_ = _tmp85_;
+#line 262 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp87_ = src;
+#line 262 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp88_ = g_file_get_basename (_tmp87_);
+#line 262 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp89_ = _tmp88_;
+#line 262 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp90_ = g_strconcat (_tmp86_, _tmp89_, NULL);
+#line 262 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp91_ = _tmp90_;
+#line 262 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp92_ = g_file_new_for_path (_tmp91_);
+#line 262 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp93_ = _tmp92_;
+#line 262 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       g_file_copy (_tmp81_, _tmp93_, G_FILE_COPY_OVERWRITE, NULL, NULL, NULL, &_inner_error_);
+#line 262 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _g_object_unref0 (_tmp93_);
+#line 262 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _g_free0 (_tmp91_);
+#line 262 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _g_free0 (_tmp89_);
+#line 262 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _g_free0 (_tmp86_);
+#line 262 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _g_object_unref0 (_tmp83_);
+#line 262 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 262 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _g_object_unref0 (src);
+#line 262 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _g_object_unref0 (_tmp63_);
+#line 262 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _g_object_unref0 (info);
+#line 262 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _g_object_unref0 (iter);
+#line 262 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _g_free0 (_tmp0_);
+#line 262 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               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);
+#line 262 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               g_clear_error (&_inner_error_);
+#line 262 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               return;
+#line 1347 "DocBuilder.c"
+                       }
+#line 253 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _g_object_unref0 (src);
+#line 253 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _g_object_unref0 (_tmp63_);
+#line 1353 "DocBuilder.c"
+               }
+#line 243 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _g_object_unref0 (info);
+#line 243 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _g_object_unref0 (iter);
+#line 1359 "DocBuilder.c"
+       }
+#line 271 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       g_debug ("DocBuilder.vala:271: Setting up templates");
+#line 275 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp94_ = self->priv->symbolSet;
+#line 275 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp95_ = jsdoc_symbol_set_values (_tmp94_);
+#line 275 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       symbols = _tmp95_;
+#line 277 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp96_ = self->priv->packer;
+#line 277 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp97_ = _tmp96_->files;
+#line 277 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp98_ = _g_object_ref0 (_tmp97_);
+#line 277 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       files = _tmp98_;
+#line 1377 "DocBuilder.c"
+       {
+               gint i = 0;
+               gint l = 0;
+               GeeArrayList* _tmp99_;
+               gint _tmp100_;
+               gint _tmp101_;
+#line 279 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               i = 0;
+#line 279 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp99_ = files;
+#line 279 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp100_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp99_);
+#line 279 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp101_ = _tmp100_;
+#line 279 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               l = _tmp101_;
+#line 1394 "DocBuilder.c"
+               {
+                       gboolean _tmp102_ = FALSE;
+#line 279 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp102_ = TRUE;
+#line 279 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       while (TRUE) {
+#line 1401 "DocBuilder.c"
+                               gint _tmp104_;
+                               gint _tmp105_;
+                               gchar* file = NULL;
+                               GeeArrayList* _tmp106_;
+                               gint _tmp107_;
+                               gpointer _tmp108_;
+                               const gchar* _tmp109_;
+#line 279 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               if (!_tmp102_) {
+#line 1411 "DocBuilder.c"
+                                       gint _tmp103_;
+#line 279 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       _tmp103_ = i;
+#line 279 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       i = _tmp103_ + 1;
+#line 1417 "DocBuilder.c"
+                               }
+#line 279 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp102_ = FALSE;
+#line 279 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp104_ = i;
+#line 279 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp105_ = l;
+#line 279 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               if (!(_tmp104_ < _tmp105_)) {
+#line 279 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       break;
+#line 1429 "DocBuilder.c"
+                               }
+#line 280 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp106_ = files;
+#line 280 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp107_ = i;
+#line 280 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp108_ = gee_abstract_list_get ((GeeAbstractList*) _tmp106_, _tmp107_);
+#line 280 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               file = (gchar*) _tmp108_;
+#line 282 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp109_ = file;
+#line 282 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               jsdoc_doc_builder_makeSrcFile (self, _tmp109_);
+#line 279 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _g_free0 (file);
+#line 1445 "DocBuilder.c"
+                       }
+               }
+       }
+#line 285 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp110_ = gee_array_list_new (JSDOC_TYPE_SYMBOL, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL);
+#line 285 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       classes = _tmp110_;
+#line 1453 "DocBuilder.c"
+       {
+               GeeArrayList* _symbol_list = NULL;
+               GeeArrayList* _tmp111_;
+               GeeArrayList* _tmp112_;
+               gint _symbol_size = 0;
+               GeeArrayList* _tmp113_;
+               gint _tmp114_;
+               gint _tmp115_;
+               gint _symbol_index = 0;
+#line 287 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp111_ = symbols;
+#line 287 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp112_ = _g_object_ref0 (_tmp111_);
+#line 287 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _symbol_list = _tmp112_;
+#line 287 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp113_ = _symbol_list;
+#line 287 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp114_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp113_);
+#line 287 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp115_ = _tmp114_;
+#line 287 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _symbol_size = _tmp115_;
+#line 287 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _symbol_index = -1;
+#line 287 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               while (TRUE) {
+#line 1481 "DocBuilder.c"
+                       gint _tmp116_;
+                       gint _tmp117_;
+                       gint _tmp118_;
+                       JSDOCSymbol* symbol = NULL;
+                       GeeArrayList* _tmp119_;
+                       gint _tmp120_;
+                       gpointer _tmp121_;
+                       JSDOCSymbol* _tmp122_;
+                       gboolean _tmp123_;
+#line 287 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp116_ = _symbol_index;
+#line 287 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _symbol_index = _tmp116_ + 1;
+#line 287 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp117_ = _symbol_index;
+#line 287 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp118_ = _symbol_size;
+#line 287 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       if (!(_tmp117_ < _tmp118_)) {
+#line 287 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               break;
+#line 1503 "DocBuilder.c"
+                       }
+#line 287 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp119_ = _symbol_list;
+#line 287 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp120_ = _symbol_index;
+#line 287 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp121_ = gee_abstract_list_get ((GeeAbstractList*) _tmp119_, _tmp120_);
+#line 287 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       symbol = (JSDOCSymbol*) _tmp121_;
+#line 288 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp122_ = symbol;
+#line 288 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp123_ = jsdoc_symbol_isaClass (_tmp122_);
+#line 288 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       if (_tmp123_) {
+#line 1519 "DocBuilder.c"
+                               GeeArrayList* _tmp124_;
+                               JSDOCSymbol* _tmp125_;
+#line 289 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp124_ = classes;
+#line 289 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp125_ = symbol;
+#line 289 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               gee_abstract_collection_add ((GeeAbstractCollection*) _tmp124_, _tmp125_);
+#line 1528 "DocBuilder.c"
+                       }
+#line 287 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _g_object_unref0 (symbol);
+#line 1532 "DocBuilder.c"
+               }
+#line 287 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _g_object_unref0 (_symbol_list);
+#line 1536 "DocBuilder.c"
+       }
+#line 292 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp126_ = classes;
+#line 292 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       gee_list_sort ((GeeList*) _tmp126_, ___lambda10__gcompare_data_func, g_object_ref (self), g_object_unref);
+#line 300 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       g_debug ("DocBuilder.vala:300: iterate classes");
+#line 302 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp127_ = json_object_new ();
+#line 302 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       jsonAll = _tmp127_;
+#line 1548 "DocBuilder.c"
+       {
+               gint i = 0;
+               gint l = 0;
+               GeeArrayList* _tmp128_;
+               gint _tmp129_;
+               gint _tmp130_;
+#line 304 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               i = 0;
+#line 304 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp128_ = classes;
+#line 304 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp129_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp128_);
+#line 304 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp130_ = _tmp129_;
+#line 304 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               l = _tmp130_;
+#line 1565 "DocBuilder.c"
+               {
+                       gboolean _tmp131_ = FALSE;
+#line 304 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp131_ = TRUE;
+#line 304 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       while (TRUE) {
+#line 1572 "DocBuilder.c"
+                               gint _tmp133_;
+                               gint _tmp134_;
+                               JSDOCSymbol* symbol = NULL;
+                               GeeArrayList* _tmp135_;
+                               gint _tmp136_;
+                               gpointer _tmp137_;
+                               gchar* output = NULL;
+                               gchar* _tmp138_;
+                               JSDOCSymbol* _tmp139_;
+                               const gchar* _tmp140_;
+                               JsonGenerator* class_gen = NULL;
+                               JsonGenerator* _tmp141_;
+                               JsonNode* class_root = NULL;
+                               JsonNode* _tmp142_;
+                               JsonNode* _tmp143_;
+                               JSDOCSymbol* _tmp144_;
+                               JsonObject* _tmp145_;
+                               JsonObject* _tmp146_;
+                               JsonGenerator* _tmp147_;
+                               JsonNode* _tmp148_;
+                               JsonGenerator* _tmp149_;
+                               JsonGenerator* _tmp150_;
+                               JSDOCPackerRun* _tmp151_;
+                               JSDOCPackerRun* _tmp152_;
+                               const gchar* _tmp153_;
+                               gchar* _tmp154_;
+                               gchar* _tmp155_;
+                               JSDOCSymbol* _tmp156_;
+                               const gchar* _tmp157_;
+                               gchar* _tmp158_;
+                               gchar* _tmp159_;
+                               gchar* _tmp160_;
+                               gchar* _tmp161_;
+                               JsonGenerator* _tmp162_;
+                               JSDOCPackerRun* _tmp163_;
+                               JSDOCPackerRun* _tmp164_;
+                               const gchar* _tmp165_;
+                               gchar* _tmp166_;
+                               gchar* _tmp167_;
+                               JSDOCSymbol* _tmp168_;
+                               const gchar* _tmp169_;
+                               gchar* _tmp170_;
+                               gchar* _tmp171_;
+                               gchar* _tmp172_;
+                               gchar* _tmp173_;
+                               JsonObject* _tmp174_;
+                               JSDOCSymbol* _tmp175_;
+                               const gchar* _tmp176_;
+                               JSDOCSymbol* _tmp177_;
+                               JsonObject* _tmp178_;
+#line 304 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               if (!_tmp131_) {
+#line 1625 "DocBuilder.c"
+                                       gint _tmp132_;
+#line 304 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       _tmp132_ = i;
+#line 304 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       i = _tmp132_ + 1;
+#line 1631 "DocBuilder.c"
+                               }
+#line 304 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp131_ = FALSE;
+#line 304 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp133_ = i;
+#line 304 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp134_ = l;
+#line 304 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               if (!(_tmp133_ < _tmp134_)) {
+#line 304 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       break;
+#line 1643 "DocBuilder.c"
+                               }
+#line 305 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp135_ = classes;
+#line 305 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp136_ = i;
+#line 305 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp137_ = gee_abstract_list_get ((GeeAbstractList*) _tmp135_, _tmp136_);
+#line 305 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               symbol = (JSDOCSymbol*) _tmp137_;
+#line 306 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp138_ = g_strdup ("");
+#line 306 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               output = _tmp138_;
+#line 308 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp139_ = symbol;
+#line 308 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp140_ = _tmp139_->alias;
+#line 308 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               g_debug ("DocBuilder.vala:308: classTemplate Process : %s", _tmp140_);
+#line 311 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp141_ = json_generator_new ();
+#line 311 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               class_gen = _tmp141_;
+#line 312 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp142_ = json_node_new (JSON_NODE_OBJECT);
+#line 312 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               class_root = _tmp142_;
+#line 313 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp143_ = class_root;
+#line 313 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp144_ = symbol;
+#line 313 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp145_ = jsdoc_doc_builder_class_to_json (self, _tmp144_);
+#line 313 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp146_ = _tmp145_;
+#line 313 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               json_node_init_object (_tmp143_, _tmp146_);
+#line 313 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _json_object_unref0 (_tmp146_);
+#line 314 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp147_ = class_gen;
+#line 314 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp148_ = class_root;
+#line 314 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               json_generator_set_root (_tmp147_, _tmp148_);
+#line 315 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp149_ = class_gen;
+#line 315 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               json_generator_set_pretty (_tmp149_, TRUE);
+#line 316 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp150_ = class_gen;
+#line 316 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               json_generator_set_indent (_tmp150_, (guint) 2);
+#line 317 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp151_ = jsdoc_packer_run_singleton ();
+#line 317 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp152_ = _tmp151_;
+#line 317 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp153_ = _tmp152_->opt_doc_target;
+#line 317 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp154_ = g_strconcat (_tmp153_, "/symbols/", NULL);
+#line 317 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp155_ = _tmp154_;
+#line 317 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp156_ = symbol;
+#line 317 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp157_ = _tmp156_->alias;
+#line 317 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp158_ = g_strconcat (_tmp155_, _tmp157_, NULL);
+#line 317 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp159_ = _tmp158_;
+#line 317 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp160_ = g_strconcat (_tmp159_, ".json", NULL);
+#line 317 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp161_ = _tmp160_;
+#line 317 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               g_warning ("DocBuilder.vala:317: writing JSON:  %s", _tmp161_);
+#line 317 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _g_free0 (_tmp161_);
+#line 317 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _g_free0 (_tmp159_);
+#line 317 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _g_free0 (_tmp155_);
+#line 317 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _g_object_unref0 (_tmp152_);
+#line 318 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp162_ = class_gen;
+#line 318 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp163_ = jsdoc_packer_run_singleton ();
+#line 318 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp164_ = _tmp163_;
+#line 318 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp165_ = _tmp164_->opt_doc_target;
+#line 318 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp166_ = g_strconcat (_tmp165_, "/symbols/", NULL);
+#line 318 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp167_ = _tmp166_;
+#line 318 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp168_ = symbol;
+#line 318 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp169_ = _tmp168_->alias;
+#line 318 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp170_ = g_strconcat (_tmp167_, _tmp169_, NULL);
+#line 318 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp171_ = _tmp170_;
+#line 318 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp172_ = g_strconcat (_tmp171_, ".json", NULL);
+#line 318 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp173_ = _tmp172_;
+#line 318 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               jsdoc_doc_builder_writeJson (self, _tmp162_, _tmp173_);
+#line 318 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _g_free0 (_tmp173_);
+#line 318 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _g_free0 (_tmp171_);
+#line 318 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _g_free0 (_tmp167_);
+#line 318 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _g_object_unref0 (_tmp164_);
+#line 320 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp174_ = jsonAll;
+#line 320 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp175_ = symbol;
+#line 320 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp176_ = _tmp175_->alias;
+#line 320 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp177_ = symbol;
+#line 320 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp178_ = jsdoc_doc_builder_publishJSON (self, _tmp177_);
+#line 320 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               json_object_set_object_member (_tmp174_, _tmp176_, _tmp178_);
+#line 304 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               __vala_JsonNode_free0 (class_root);
+#line 304 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _g_object_unref0 (class_gen);
+#line 304 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _g_free0 (output);
+#line 304 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _g_object_unref0 (symbol);
+#line 1783 "DocBuilder.c"
+                       }
+               }
+       }
+#line 326 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp179_ = json_generator_new ();
+#line 326 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       class_tree_gen = _tmp179_;
+#line 327 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp180_ = json_node_new (JSON_NODE_ARRAY);
+#line 327 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       class_tree_root = _tmp180_;
+#line 328 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp181_ = class_tree_root;
+#line 328 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp182_ = classes;
+#line 328 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp183_ = jsdoc_doc_builder_class_tree (self, _tmp182_);
+#line 328 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp184_ = _tmp183_;
+#line 328 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       json_node_init_array (_tmp181_, _tmp184_);
+#line 328 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _json_array_unref0 (_tmp184_);
+#line 329 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp185_ = class_tree_gen;
+#line 329 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp186_ = class_tree_root;
+#line 329 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       json_generator_set_root (_tmp185_, _tmp186_);
+#line 330 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp187_ = class_tree_gen;
+#line 330 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       json_generator_set_pretty (_tmp187_, TRUE);
+#line 331 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp188_ = class_tree_gen;
+#line 331 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       json_generator_set_indent (_tmp188_, (guint) 2);
+#line 332 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp189_ = jsdoc_packer_run_singleton ();
+#line 332 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp190_ = _tmp189_;
+#line 332 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp191_ = _tmp190_->opt_doc_target;
+#line 332 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp192_ = g_strconcat (_tmp191_, "/tree.json", NULL);
+#line 332 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp193_ = _tmp192_;
+#line 332 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       g_warning ("DocBuilder.vala:332: writing JSON:  %s", _tmp193_);
+#line 332 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_free0 (_tmp193_);
+#line 332 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_object_unref0 (_tmp190_);
+#line 333 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp194_ = class_tree_gen;
+#line 333 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp195_ = jsdoc_packer_run_singleton ();
+#line 333 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp196_ = _tmp195_;
+#line 333 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp197_ = _tmp196_->opt_doc_target;
+#line 333 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp198_ = g_strconcat (_tmp197_, "/tree.json", NULL);
+#line 333 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp199_ = _tmp198_;
+#line 333 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       jsdoc_doc_builder_writeJson (self, _tmp194_, _tmp199_);
+#line 333 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_free0 (_tmp199_);
+#line 333 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_object_unref0 (_tmp196_);
+#line 342 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp200_ = json_generator_new ();
+#line 342 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       generator = _tmp200_;
+#line 343 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp201_ = json_node_new (JSON_NODE_OBJECT);
+#line 343 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       root = _tmp201_;
+#line 344 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp202_ = root;
+#line 344 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp203_ = jsonAll;
+#line 344 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       json_node_init_object (_tmp202_, _tmp203_);
+#line 345 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp204_ = generator;
+#line 345 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp205_ = root;
+#line 345 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       json_generator_set_root (_tmp204_, _tmp205_);
+#line 346 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp206_ = generator;
+#line 346 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       json_generator_set_pretty (_tmp206_, TRUE);
+#line 347 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp207_ = generator;
+#line 347 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       json_generator_set_indent (_tmp207_, (guint) 2);
+#line 348 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp208_ = jsdoc_packer_run_singleton ();
+#line 348 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp209_ = _tmp208_;
+#line 348 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp210_ = _tmp209_->opt_doc_target;
+#line 348 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp211_ = g_strconcat (_tmp210_, "/json/roodata.json", NULL);
+#line 348 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp212_ = _tmp211_;
+#line 348 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       g_warning ("DocBuilder.vala:348: writing JSON:  %s", _tmp212_);
+#line 348 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_free0 (_tmp212_);
+#line 348 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_object_unref0 (_tmp209_);
+#line 351 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp213_ = generator;
+#line 351 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp214_ = jsdoc_packer_run_singleton ();
+#line 351 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp215_ = _tmp214_;
+#line 351 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp216_ = _tmp215_->opt_doc_target;
+#line 351 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp217_ = g_strconcat (_tmp216_, "/json/roodata.json", NULL);
+#line 351 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp218_ = _tmp217_;
+#line 351 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       jsdoc_doc_builder_writeJson (self, _tmp213_, _tmp218_);
+#line 351 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_free0 (_tmp218_);
+#line 351 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_object_unref0 (_tmp215_);
+#line 358 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       g_debug ("DocBuilder.vala:358: build index");
+#line 219 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       __vala_JsonNode_free0 (root);
+#line 219 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_object_unref0 (generator);
+#line 219 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       __vala_JsonNode_free0 (class_tree_root);
+#line 219 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_object_unref0 (class_tree_gen);
+#line 219 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _json_object_unref0 (jsonAll);
+#line 219 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_object_unref0 (classes);
+#line 219 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_object_unref0 (files);
+#line 219 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_object_unref0 (symbols);
+#line 219 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_free0 (_tmp0_);
+#line 1937 "DocBuilder.c"
+}
+
+
+static gpointer _json_array_ref0 (gpointer self) {
+#line 369 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       return self ? json_array_ref (self) : NULL;
+#line 1944 "DocBuilder.c"
+}
+
+
+static gpointer _json_object_ref0 (gpointer self) {
+#line 412 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       return self ? json_object_ref (self) : NULL;
+#line 1951 "DocBuilder.c"
+}
+
+
+static glong string_strnlen (gchar* str, glong maxlen) {
+       glong result = 0L;
+       gchar* end = NULL;
+       gchar* _tmp0_;
+       glong _tmp1_;
+       gchar* _tmp2_;
+       gchar* _tmp3_;
+#line 1322 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp0_ = str;
+#line 1322 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp1_ = maxlen;
+#line 1322 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp2_ = memchr (_tmp0_, 0, (gsize) _tmp1_);
+#line 1322 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       end = _tmp2_;
+#line 1323 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp3_ = end;
+#line 1323 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if (_tmp3_ == NULL) {
+#line 1974 "DocBuilder.c"
+               glong _tmp4_;
+#line 1324 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp4_ = maxlen;
+#line 1324 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               result = _tmp4_;
+#line 1324 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               return result;
+#line 1982 "DocBuilder.c"
+       } else {
+               gchar* _tmp5_;
+               gchar* _tmp6_;
+#line 1326 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp5_ = end;
+#line 1326 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp6_ = str;
+#line 1326 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               result = (glong) (_tmp5_ - _tmp6_);
+#line 1326 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               return result;
+#line 1994 "DocBuilder.c"
+       }
+}
+
+
+static gchar* string_substring (const gchar* self, glong offset, glong len) {
+       gchar* result = NULL;
+       glong string_length = 0L;
+       gboolean _tmp0_ = FALSE;
+       glong _tmp1_;
+       glong _tmp8_;
+       glong _tmp14_;
+       glong _tmp17_;
+       glong _tmp18_;
+       glong _tmp19_;
+       glong _tmp20_;
+       glong _tmp21_;
+       gchar* _tmp22_;
+#line 1333 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 1335 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp1_ = offset;
+#line 1335 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if (_tmp1_ >= ((glong) 0)) {
+#line 2018 "DocBuilder.c"
+               glong _tmp2_;
+#line 1335 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp2_ = len;
+#line 1335 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp0_ = _tmp2_ >= ((glong) 0);
+#line 2024 "DocBuilder.c"
+       } else {
+#line 1335 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp0_ = FALSE;
+#line 2028 "DocBuilder.c"
+       }
+#line 1335 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if (_tmp0_) {
+#line 2032 "DocBuilder.c"
+               glong _tmp3_;
+               glong _tmp4_;
+               glong _tmp5_;
+#line 1337 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp3_ = offset;
+#line 1337 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp4_ = len;
+#line 1337 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp5_ = string_strnlen ((gchar*) self, _tmp3_ + _tmp4_);
+#line 1337 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               string_length = _tmp5_;
+#line 2044 "DocBuilder.c"
+       } else {
+               gint _tmp6_;
+               gint _tmp7_;
+#line 1339 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp6_ = strlen (self);
+#line 1339 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp7_ = _tmp6_;
+#line 1339 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               string_length = (glong) _tmp7_;
+#line 2054 "DocBuilder.c"
+       }
+#line 1342 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp8_ = offset;
+#line 1342 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if (_tmp8_ < ((glong) 0)) {
+#line 2060 "DocBuilder.c"
+               glong _tmp9_;
+               glong _tmp10_;
+               glong _tmp11_;
+#line 1343 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp9_ = string_length;
+#line 1343 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp10_ = offset;
+#line 1343 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               offset = _tmp9_ + _tmp10_;
+#line 1344 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp11_ = offset;
+#line 1344 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               g_return_val_if_fail (_tmp11_ >= ((glong) 0), NULL);
+#line 2074 "DocBuilder.c"
+       } else {
+               glong _tmp12_;
+               glong _tmp13_;
+#line 1346 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp12_ = offset;
+#line 1346 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp13_ = string_length;
+#line 1346 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               g_return_val_if_fail (_tmp12_ <= _tmp13_, NULL);
+#line 2084 "DocBuilder.c"
+       }
+#line 1348 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp14_ = len;
+#line 1348 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if (_tmp14_ < ((glong) 0)) {
+#line 2090 "DocBuilder.c"
+               glong _tmp15_;
+               glong _tmp16_;
+#line 1349 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp15_ = string_length;
+#line 1349 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp16_ = offset;
+#line 1349 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               len = _tmp15_ - _tmp16_;
+#line 2099 "DocBuilder.c"
+       }
+#line 1351 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp17_ = offset;
+#line 1351 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp18_ = len;
+#line 1351 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp19_ = string_length;
+#line 1351 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       g_return_val_if_fail ((_tmp17_ + _tmp18_) <= _tmp19_, NULL);
+#line 1352 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp20_ = offset;
+#line 1352 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp21_ = len;
+#line 1352 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp22_ = g_strndup (((gchar*) self) + _tmp20_, (gsize) _tmp21_);
+#line 1352 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       result = _tmp22_;
+#line 1352 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       return result;
+#line 2119 "DocBuilder.c"
+}
+
+
+static JsonObject* jsdoc_doc_builder_class_to_json (JSDOCDocBuilder* self, JSDOCSymbol* cls) {
+       JsonObject* result = NULL;
+       JsonObject* ret = NULL;
+       JsonObject* _tmp0_;
+       JsonObject* _tmp1_;
+       JSDOCSymbol* _tmp2_;
+       const gchar* _tmp3_;
+       JsonArray* ag = NULL;
+       JsonArray* _tmp4_;
+       JsonObject* _tmp5_;
+       JsonArray* _tmp6_;
+       JsonArray* _tmp7_;
+       JsonObject* _tmp28_;
+       JSDOCSymbol* _tmp29_;
+       const gchar* _tmp30_;
+       JsonObject* _tmp31_;
+       JSDOCSymbol* _tmp32_;
+       const gchar* _tmp33_;
+       JsonObject* _tmp34_;
+       JSDOCSymbol* _tmp35_;
+       JSDOCDocComment* _tmp36_;
+       GeeArrayList* _tmp37_;
+       GeeArrayList* _tmp38_;
+       gint _tmp39_;
+       gint _tmp40_;
+       JsonObject* _tmp41_;
+       JSDOCSymbol* _tmp42_;
+       const gchar* _tmp43_;
+       JsonObject* _tmp44_;
+       JSDOCSymbol* _tmp45_;
+       gboolean _tmp46_;
+       JsonObject* _tmp47_;
+       JSDOCSymbol* _tmp48_;
+       const gchar* _tmp49_;
+       const gchar* _tmp50_;
+       JsonObject* _tmp51_;
+       JSDOCSymbol* _tmp52_;
+       JSDOCDocComment* _tmp53_;
+       gchar* _tmp54_;
+       gchar* _tmp55_;
+       gchar* _tmp56_ = NULL;
+       JSDOCSymbol* _tmp57_;
+       JSDOCDocComment* _tmp58_;
+       GeeArrayList* _tmp59_;
+       GeeArrayList* _tmp60_;
+       gint _tmp61_;
+       gint _tmp62_;
+       gboolean _tmp63_;
+       JsonObject* _tmp70_;
+       JsonObject* _tmp71_;
+       JSDOCSymbol* _tmp72_;
+       JSDOCDocComment* _tmp73_;
+       gchar* _tmp74_;
+       gchar* _tmp75_;
+       JsonObject* _tmp76_;
+       JSDOCSymbol* _tmp77_;
+       JSDOCDocComment* _tmp78_;
+       gchar* _tmp79_;
+       gchar* _tmp80_;
+       JsonObject* _tmp81_;
+       JSDOCSymbol* _tmp82_;
+       JsonArray* _tmp83_;
+       JsonObject* _tmp84_;
+       JsonArray* _tmp85_;
+       JsonArray* props = NULL;
+       JsonArray* _tmp86_;
+       JsonObject* _tmp87_;
+       JsonArray* _tmp88_;
+       JsonArray* _tmp89_;
+       GeeArrayList* cfgProperties = NULL;
+       JSDOCSymbol* _tmp90_;
+       GeeArrayList* _tmp91_;
+       JsonArray* methods = NULL;
+       JsonArray* _tmp127_;
+       JsonObject* _tmp128_;
+       JsonArray* _tmp129_;
+       JsonArray* _tmp130_;
+       JsonArray* events = NULL;
+       JsonArray* _tmp207_;
+       JsonObject* _tmp208_;
+       JsonArray* _tmp209_;
+       JsonArray* _tmp210_;
+#line 364 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 364 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       g_return_val_if_fail (cls != NULL, NULL);
+#line 366 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp0_ = json_object_new ();
+#line 366 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       ret = _tmp0_;
+#line 367 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp1_ = ret;
+#line 367 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp2_ = cls;
+#line 367 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp3_ = _tmp2_->alias;
+#line 367 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       json_object_set_string_member (_tmp1_, "name", _tmp3_);
+#line 368 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp4_ = json_array_new ();
+#line 368 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       ag = _tmp4_;
+#line 369 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp5_ = ret;
+#line 369 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp6_ = ag;
+#line 369 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp7_ = _json_array_ref0 (_tmp6_);
+#line 369 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       json_object_set_array_member (_tmp5_, "augments", _tmp7_);
+#line 2233 "DocBuilder.c"
+       {
+               gint ii = 0;
+               gint il = 0;
+               JSDOCSymbol* _tmp8_;
+               GeeArrayList* _tmp9_;
+               gint _tmp10_;
+               gint _tmp11_;
+#line 370 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               ii = 0;
+#line 370 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp8_ = cls;
+#line 370 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp9_ = _tmp8_->augments;
+#line 370 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp10_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp9_);
+#line 370 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp11_ = _tmp10_;
+#line 370 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               il = _tmp11_;
+#line 2253 "DocBuilder.c"
+               {
+                       gboolean _tmp12_ = FALSE;
+#line 370 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp12_ = TRUE;
+#line 370 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       while (TRUE) {
+#line 2260 "DocBuilder.c"
+                               gint _tmp14_;
+                               gint _tmp15_;
+                               JSDOCSymbol* contributer = NULL;
+                               JSDOCSymbolSet* _tmp16_;
+                               JSDOCSymbol* _tmp17_;
+                               GeeArrayList* _tmp18_;
+                               gint _tmp19_;
+                               gpointer _tmp20_;
+                               gchar* _tmp21_;
+                               JSDOCSymbol* _tmp22_;
+                               JSDOCSymbol* _tmp23_;
+                               JSDOCSymbol* _tmp24_;
+                               JsonArray* _tmp25_;
+                               JSDOCSymbol* _tmp26_;
+                               const gchar* _tmp27_;
+#line 370 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               if (!_tmp12_) {
+#line 2278 "DocBuilder.c"
+                                       gint _tmp13_;
+#line 370 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       _tmp13_ = ii;
+#line 370 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       ii = _tmp13_ + 1;
+#line 2284 "DocBuilder.c"
+                               }
+#line 370 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp12_ = FALSE;
+#line 370 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp14_ = ii;
+#line 370 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp15_ = il;
+#line 370 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               if (!(_tmp14_ < _tmp15_)) {
+#line 370 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       break;
+#line 2296 "DocBuilder.c"
+                               }
+#line 371 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp16_ = self->priv->symbolSet;
+#line 371 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp17_ = cls;
+#line 371 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp18_ = _tmp17_->augments;
+#line 371 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp19_ = ii;
+#line 371 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp20_ = gee_abstract_list_get ((GeeAbstractList*) _tmp18_, _tmp19_);
+#line 371 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp21_ = (gchar*) _tmp20_;
+#line 371 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp22_ = jsdoc_symbol_set_getSymbol (_tmp16_, _tmp21_);
+#line 371 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp23_ = _tmp22_;
+#line 371 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _g_free0 (_tmp21_);
+#line 371 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               contributer = _tmp23_;
+#line 372 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp24_ = contributer;
+#line 372 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               if (_tmp24_ == NULL) {
+#line 373 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       _g_object_unref0 (contributer);
+#line 373 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       continue;
+#line 2326 "DocBuilder.c"
+                               }
+#line 375 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp25_ = ag;
+#line 375 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp26_ = contributer;
+#line 375 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp27_ = _tmp26_->alias;
+#line 375 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               json_array_add_string_element (_tmp25_, _tmp27_);
+#line 370 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _g_object_unref0 (contributer);
+#line 2338 "DocBuilder.c"
+                       }
+               }
+       }
+#line 377 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp28_ = ret;
+#line 377 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp29_ = cls;
+#line 377 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp30_ = _tmp29_->alias;
+#line 377 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       json_object_set_string_member (_tmp28_, "name", _tmp30_);
+#line 378 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp31_ = ret;
+#line 378 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp32_ = cls;
+#line 378 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp33_ = _tmp32_->desc;
+#line 378 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       json_object_set_string_member (_tmp31_, "desc", _tmp33_);
+#line 379 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp34_ = ret;
+#line 379 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp35_ = cls;
+#line 379 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp36_ = _tmp35_->comment;
+#line 379 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp37_ = jsdoc_doc_comment_getTag (_tmp36_, JSDOC_DOC_TAG_TITLE_SINGLETON);
+#line 379 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp38_ = _tmp37_;
+#line 379 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp39_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp38_);
+#line 379 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp40_ = _tmp39_;
+#line 379 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       json_object_set_boolean_member (_tmp34_, "isSingleton", _tmp40_ > 0);
+#line 379 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_object_unref0 (_tmp38_);
+#line 380 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp41_ = ret;
+#line 380 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp42_ = cls;
+#line 380 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp43_ = _tmp42_->isa;
+#line 380 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       json_object_set_boolean_member (_tmp41_, "isStatic", g_strcmp0 (_tmp43_, "CONSTRUCTOR") != 0);
+#line 381 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp44_ = ret;
+#line 381 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp45_ = cls;
+#line 381 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp46_ = jsdoc_symbol_isBuiltin (_tmp45_);
+#line 381 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       json_object_set_boolean_member (_tmp44_, "isBuiltin", _tmp46_);
+#line 384 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp47_ = ret;
+#line 384 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp48_ = cls;
+#line 384 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp49_ = jsdoc_symbol_get_name (_tmp48_);
+#line 384 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp50_ = _tmp49_;
+#line 384 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       json_object_set_string_member (_tmp47_, "memberOf", _tmp50_);
+#line 385 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp51_ = ret;
+#line 385 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp52_ = cls;
+#line 385 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp53_ = _tmp52_->comment;
+#line 385 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp54_ = jsdoc_doc_comment_getTagAsString (_tmp53_, JSDOC_DOC_TAG_TITLE_EXAMPLE);
+#line 385 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp55_ = _tmp54_;
+#line 385 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       json_object_set_string_member (_tmp51_, "example", _tmp55_);
+#line 385 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_free0 (_tmp55_);
+#line 387 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp57_ = cls;
+#line 387 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp58_ = _tmp57_->comment;
+#line 387 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp59_ = jsdoc_doc_comment_getTag (_tmp58_, JSDOC_DOC_TAG_TITLE_DEPRECATED);
+#line 387 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp60_ = _tmp59_;
+#line 387 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp61_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp60_);
+#line 387 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp62_ = _tmp61_;
+#line 387 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp63_ = _tmp62_ > 0;
+#line 387 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_object_unref0 (_tmp60_);
+#line 387 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       if (_tmp63_) {
+#line 2434 "DocBuilder.c"
+               JSDOCSymbol* _tmp64_;
+               JSDOCDocComment* _tmp65_;
+               gchar* _tmp66_;
+               gchar* _tmp67_;
+               gchar* _tmp68_;
+#line 388 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp64_ = cls;
+#line 388 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp65_ = _tmp64_->comment;
+#line 388 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp66_ = jsdoc_doc_comment_getTagAsString (_tmp65_, JSDOC_DOC_TAG_TITLE_DEPRECATED);
+#line 388 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp67_ = _tmp66_;
+#line 388 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp68_ = g_strconcat ("This has been deprecated: ", _tmp67_, NULL);
+#line 388 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _g_free0 (_tmp56_);
+#line 388 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp56_ = _tmp68_;
+#line 388 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _g_free0 (_tmp67_);
+#line 2456 "DocBuilder.c"
+       } else {
+               gchar* _tmp69_;
+#line 389 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp69_ = g_strdup ("");
+#line 389 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _g_free0 (_tmp56_);
+#line 389 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp56_ = _tmp69_;
+#line 2465 "DocBuilder.c"
+       }
+#line 386 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp70_ = ret;
+#line 386 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       json_object_set_string_member (_tmp70_, "deprecated", _tmp56_);
+#line 390 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp71_ = ret;
+#line 390 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp72_ = cls;
+#line 390 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp73_ = _tmp72_->comment;
+#line 390 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp74_ = jsdoc_doc_comment_getTagAsString (_tmp73_, JSDOC_DOC_TAG_TITLE_SINCE);
+#line 390 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp75_ = _tmp74_;
+#line 390 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       json_object_set_string_member (_tmp71_, "since", _tmp75_);
+#line 390 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_free0 (_tmp75_);
+#line 391 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp76_ = ret;
+#line 391 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp77_ = cls;
+#line 391 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp78_ = _tmp77_->comment;
+#line 391 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp79_ = jsdoc_doc_comment_getTagAsString (_tmp78_, JSDOC_DOC_TAG_TITLE_SINCE);
+#line 391 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp80_ = _tmp79_;
+#line 391 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       json_object_set_string_member (_tmp76_, "see", _tmp80_);
+#line 391 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_free0 (_tmp80_);
+#line 395 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp81_ = ret;
+#line 395 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp82_ = cls;
+#line 395 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp83_ = jsdoc_symbol_paramsToJson (_tmp82_);
+#line 395 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       json_object_set_array_member (_tmp81_, "params", _tmp83_);
+#line 396 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp84_ = ret;
+#line 396 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp85_ = json_array_new ();
+#line 396 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       json_object_set_array_member (_tmp84_, "returns", _tmp85_);
+#line 401 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp86_ = json_array_new ();
+#line 401 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       props = _tmp86_;
+#line 402 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp87_ = ret;
+#line 402 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp88_ = props;
+#line 402 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp89_ = _json_array_ref0 (_tmp88_);
+#line 402 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       json_object_set_array_member (_tmp87_, "config", _tmp89_);
+#line 403 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp90_ = cls;
+#line 403 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp91_ = jsdoc_symbol_configToArray (_tmp90_);
+#line 403 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       cfgProperties = _tmp91_;
+#line 2531 "DocBuilder.c"
+       {
+               gint i = 0;
+#line 404 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               i = 0;
+#line 2536 "DocBuilder.c"
+               {
+                       gboolean _tmp92_ = FALSE;
+#line 404 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp92_ = TRUE;
+#line 404 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       while (TRUE) {
+#line 2543 "DocBuilder.c"
+                               gint _tmp94_;
+                               GeeArrayList* _tmp95_;
+                               gint _tmp96_;
+                               gint _tmp97_;
+                               JSDOCDocTag* p = NULL;
+                               GeeArrayList* _tmp98_;
+                               gint _tmp99_;
+                               gpointer _tmp100_;
+                               JsonObject* add = NULL;
+                               JsonObject* _tmp101_;
+                               JsonObject* _tmp102_;
+                               JSDOCDocTag* _tmp103_;
+                               const gchar* _tmp104_;
+                               JsonObject* _tmp105_;
+                               JSDOCDocTag* _tmp106_;
+                               const gchar* _tmp107_;
+                               JsonObject* _tmp108_;
+                               JSDOCDocTag* _tmp109_;
+                               const gchar* _tmp110_;
+                               JsonObject* _tmp111_;
+                               JSDOCDocTag* _tmp112_;
+                               const gchar* _tmp113_;
+                               JsonArray* _tmp114_ = NULL;
+                               JSDOCDocTag* _tmp115_;
+                               GeeArrayList* _tmp116_;
+                               gint _tmp117_;
+                               gint _tmp118_;
+                               JsonObject* _tmp122_;
+                               JsonArray* _tmp123_;
+                               JsonArray* _tmp124_;
+                               JsonObject* _tmp125_;
+                               JsonObject* _tmp126_;
+#line 404 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               if (!_tmp92_) {
+#line 2578 "DocBuilder.c"
+                                       gint _tmp93_;
+#line 404 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       _tmp93_ = i;
+#line 404 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       i = _tmp93_ + 1;
+#line 2584 "DocBuilder.c"
+                               }
+#line 404 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp92_ = FALSE;
+#line 404 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp94_ = i;
+#line 404 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp95_ = cfgProperties;
+#line 404 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp96_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp95_);
+#line 404 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp97_ = _tmp96_;
+#line 404 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               if (!(_tmp94_ < _tmp97_)) {
+#line 404 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       break;
+#line 2600 "DocBuilder.c"
+                               }
+#line 405 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp98_ = cfgProperties;
+#line 405 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp99_ = i;
+#line 405 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp100_ = gee_abstract_list_get ((GeeAbstractList*) _tmp98_, _tmp99_);
+#line 405 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               p = (JSDOCDocTag*) _tmp100_;
+#line 406 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp101_ = json_object_new ();
+#line 406 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               add = _tmp101_;
+#line 407 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp102_ = add;
+#line 407 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp103_ = p;
+#line 407 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp104_ = _tmp103_->name;
+#line 407 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               json_object_set_string_member (_tmp102_, "name", _tmp104_);
+#line 408 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp105_ = add;
+#line 408 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp106_ = p;
+#line 408 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp107_ = _tmp106_->type;
+#line 408 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               json_object_set_string_member (_tmp105_, "type", _tmp107_);
+#line 409 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp108_ = add;
+#line 409 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp109_ = p;
+#line 409 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp110_ = _tmp109_->desc;
+#line 409 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               json_object_set_string_member (_tmp108_, "desc", _tmp110_);
+#line 410 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp111_ = add;
+#line 410 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp112_ = p;
+#line 410 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp113_ = _tmp112_->memberOf;
+#line 410 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               json_object_set_string_member (_tmp111_, "memberOf", _tmp113_);
+#line 411 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp115_ = p;
+#line 411 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp116_ = _tmp115_->optvalues;
+#line 411 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp117_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp116_);
+#line 411 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp118_ = _tmp117_;
+#line 411 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               if (_tmp118_ > 0) {
+#line 2656 "DocBuilder.c"
+                                       JSDOCDocTag* _tmp119_;
+                                       JsonArray* _tmp120_;
+#line 411 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       _tmp119_ = p;
+#line 411 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       _tmp120_ = jsdoc_doc_tag_optvalue_as_json_array (_tmp119_);
+#line 411 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       _json_array_unref0 (_tmp114_);
+#line 411 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       _tmp114_ = _tmp120_;
+#line 2667 "DocBuilder.c"
+                               } else {
+                                       JsonArray* _tmp121_;
+#line 411 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       _tmp121_ = json_array_new ();
+#line 411 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       _json_array_unref0 (_tmp114_);
+#line 411 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       _tmp114_ = _tmp121_;
+#line 2676 "DocBuilder.c"
+                               }
+#line 411 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp122_ = add;
+#line 411 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp123_ = _json_array_ref0 (_tmp114_);
+#line 411 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               json_object_set_array_member (_tmp122_, "values", _tmp123_);
+#line 412 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp124_ = props;
+#line 412 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp125_ = add;
+#line 412 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp126_ = _json_object_ref0 (_tmp125_);
+#line 412 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               json_array_add_object_element (_tmp124_, _tmp126_);
+#line 404 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _json_array_unref0 (_tmp114_);
+#line 404 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _json_object_unref0 (add);
+#line 404 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _g_object_unref0 (p);
+#line 2698 "DocBuilder.c"
+                       }
+               }
+       }
+#line 418 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp127_ = json_array_new ();
+#line 418 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       methods = _tmp127_;
+#line 419 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp128_ = ret;
+#line 419 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp129_ = methods;
+#line 419 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp130_ = _json_array_ref0 (_tmp129_);
+#line 419 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       json_object_set_array_member (_tmp128_, "methods", _tmp130_);
+#line 2714 "DocBuilder.c"
+       {
+               GeeArrayList* _m_list = NULL;
+               JSDOCSymbol* _tmp131_;
+               GeeArrayList* _tmp132_;
+               GeeArrayList* _tmp133_;
+               gint _m_size = 0;
+               GeeArrayList* _tmp134_;
+               gint _tmp135_;
+               gint _tmp136_;
+               gint _m_index = 0;
+#line 420 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp131_ = cls;
+#line 420 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp132_ = _tmp131_->methods;
+#line 420 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp133_ = _g_object_ref0 (_tmp132_);
+#line 420 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _m_list = _tmp133_;
+#line 420 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp134_ = _m_list;
+#line 420 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp135_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp134_);
+#line 420 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp136_ = _tmp135_;
+#line 420 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _m_size = _tmp136_;
+#line 420 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _m_index = -1;
+#line 420 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               while (TRUE) {
+#line 2745 "DocBuilder.c"
+                       gint _tmp137_;
+                       gint _tmp138_;
+                       gint _tmp139_;
+                       JSDOCSymbol* m = NULL;
+                       GeeArrayList* _tmp140_;
+                       gint _tmp141_;
+                       gpointer _tmp142_;
+                       gboolean _tmp143_ = FALSE;
+                       JSDOCSymbol* _tmp144_;
+                       gboolean _tmp145_;
+                       JsonObject* add = NULL;
+                       JsonObject* _tmp148_;
+                       JsonObject* _tmp149_;
+                       JSDOCSymbol* _tmp150_;
+                       const gchar* _tmp151_;
+                       const gchar* _tmp152_;
+                       JsonObject* _tmp153_;
+                       JSDOCSymbol* _tmp154_;
+                       const gchar* _tmp155_;
+                       JsonObject* _tmp156_;
+                       JSDOCSymbol* _tmp157_;
+                       gboolean _tmp158_;
+                       JsonObject* _tmp159_;
+                       JSDOCSymbol* _tmp160_;
+                       const gchar* _tmp161_;
+                       JsonObject* _tmp162_;
+                       JSDOCSymbol* _tmp163_;
+                       gboolean _tmp164_;
+                       JsonObject* _tmp165_;
+                       JSDOCSymbol* _tmp166_;
+                       const gchar* _tmp167_;
+                       JsonObject* _tmp168_;
+                       JSDOCSymbol* _tmp169_;
+                       JSDOCDocComment* _tmp170_;
+                       gchar* _tmp171_;
+                       gchar* _tmp172_;
+                       gchar* _tmp173_ = NULL;
+                       JSDOCSymbol* _tmp174_;
+                       JSDOCDocComment* _tmp175_;
+                       GeeArrayList* _tmp176_;
+                       GeeArrayList* _tmp177_;
+                       gint _tmp178_;
+                       gint _tmp179_;
+                       gboolean _tmp180_;
+                       JsonObject* _tmp187_;
+                       JsonObject* _tmp188_;
+                       JSDOCSymbol* _tmp189_;
+                       JSDOCDocComment* _tmp190_;
+                       gchar* _tmp191_;
+                       gchar* _tmp192_;
+                       JsonObject* _tmp193_;
+                       JSDOCSymbol* _tmp194_;
+                       JSDOCDocComment* _tmp195_;
+                       gchar* _tmp196_;
+                       gchar* _tmp197_;
+                       JsonObject* _tmp198_;
+                       JSDOCSymbol* _tmp199_;
+                       JsonArray* _tmp200_;
+                       JsonObject* _tmp201_;
+                       JSDOCSymbol* _tmp202_;
+                       JsonArray* _tmp203_;
+                       JsonArray* _tmp204_;
+                       JsonObject* _tmp205_;
+                       JsonObject* _tmp206_;
+#line 420 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp137_ = _m_index;
+#line 420 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _m_index = _tmp137_ + 1;
+#line 420 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp138_ = _m_index;
+#line 420 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp139_ = _m_size;
+#line 420 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       if (!(_tmp138_ < _tmp139_)) {
+#line 420 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               break;
+#line 2822 "DocBuilder.c"
+                       }
+#line 420 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp140_ = _m_list;
+#line 420 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp141_ = _m_index;
+#line 420 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp142_ = gee_abstract_list_get ((GeeAbstractList*) _tmp140_, _tmp141_);
+#line 420 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       m = (JSDOCSymbol*) _tmp142_;
+#line 421 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp144_ = m;
+#line 421 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp145_ = _tmp144_->isEvent;
+#line 421 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       if (_tmp145_) {
+#line 421 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp143_ = TRUE;
+#line 2840 "DocBuilder.c"
+                       } else {
+                               JSDOCSymbol* _tmp146_;
+                               gboolean _tmp147_;
+#line 421 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp146_ = m;
+#line 421 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp147_ = _tmp146_->isIgnored;
+#line 421 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp143_ = _tmp147_;
+#line 2850 "DocBuilder.c"
+                       }
+#line 421 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       if (_tmp143_) {
+#line 422 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _g_object_unref0 (m);
+#line 422 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               continue;
+#line 2858 "DocBuilder.c"
+                       }
+#line 425 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp148_ = json_object_new ();
+#line 425 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       add = _tmp148_;
+#line 426 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp149_ = add;
+#line 426 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp150_ = m;
+#line 426 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp151_ = jsdoc_symbol_get_name (_tmp150_);
+#line 426 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp152_ = _tmp151_;
+#line 426 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       json_object_set_string_member (_tmp149_, "name", _tmp152_);
+#line 428 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp153_ = add;
+#line 428 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp154_ = m;
+#line 428 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp155_ = _tmp154_->desc;
+#line 428 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       json_object_set_string_member (_tmp153_, "desc", _tmp155_);
+#line 430 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp156_ = add;
+#line 430 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp157_ = m;
+#line 430 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp158_ = _tmp157_->isStatic;
+#line 430 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       json_object_set_boolean_member (_tmp156_, "isStatic", _tmp158_);
+#line 431 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp159_ = add;
+#line 431 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp160_ = m;
+#line 431 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp161_ = _tmp160_->isa;
+#line 431 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       json_object_set_boolean_member (_tmp159_, "isConstructor", g_strcmp0 (_tmp161_, "CONSTRUCTOR") == 0);
+#line 432 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp162_ = add;
+#line 432 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp163_ = m;
+#line 432 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp164_ = _tmp163_->isPrivate;
+#line 432 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       json_object_set_boolean_member (_tmp162_, "isPrivate", _tmp164_);
+#line 434 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp165_ = add;
+#line 434 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp166_ = m;
+#line 434 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp167_ = _tmp166_->memberOf;
+#line 434 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       json_object_set_string_member (_tmp165_, "memberOf", _tmp167_);
+#line 435 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp168_ = add;
+#line 435 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp169_ = m;
+#line 435 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp170_ = _tmp169_->comment;
+#line 435 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp171_ = jsdoc_doc_comment_getTagAsString (_tmp170_, JSDOC_DOC_TAG_TITLE_EXAMPLE);
+#line 435 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp172_ = _tmp171_;
+#line 435 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       json_object_set_string_member (_tmp168_, "example", _tmp172_);
+#line 435 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _g_free0 (_tmp172_);
+#line 437 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp174_ = m;
+#line 437 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp175_ = _tmp174_->comment;
+#line 437 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp176_ = jsdoc_doc_comment_getTag (_tmp175_, JSDOC_DOC_TAG_TITLE_DEPRECATED);
+#line 437 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp177_ = _tmp176_;
+#line 437 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp178_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp177_);
+#line 437 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp179_ = _tmp178_;
+#line 437 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp180_ = _tmp179_ > 0;
+#line 437 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _g_object_unref0 (_tmp177_);
+#line 437 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       if (_tmp180_) {
+#line 2946 "DocBuilder.c"
+                               JSDOCSymbol* _tmp181_;
+                               JSDOCDocComment* _tmp182_;
+                               gchar* _tmp183_;
+                               gchar* _tmp184_;
+                               gchar* _tmp185_;
+#line 438 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp181_ = m;
+#line 438 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp182_ = _tmp181_->comment;
+#line 438 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp183_ = jsdoc_doc_comment_getTagAsString (_tmp182_, JSDOC_DOC_TAG_TITLE_DEPRECATED);
+#line 438 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp184_ = _tmp183_;
+#line 438 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp185_ = g_strconcat ("This has been deprecated: ", _tmp184_, NULL);
+#line 438 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _g_free0 (_tmp173_);
+#line 438 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp173_ = _tmp185_;
+#line 438 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _g_free0 (_tmp184_);
+#line 2968 "DocBuilder.c"
+                       } else {
+                               gchar* _tmp186_;
+#line 439 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp186_ = g_strdup ("");
+#line 439 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _g_free0 (_tmp173_);
+#line 439 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp173_ = _tmp186_;
+#line 2977 "DocBuilder.c"
+                       }
+#line 436 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp187_ = add;
+#line 436 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       json_object_set_string_member (_tmp187_, "deprecated", _tmp173_);
+#line 440 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp188_ = add;
+#line 440 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp189_ = m;
+#line 440 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp190_ = _tmp189_->comment;
+#line 440 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp191_ = jsdoc_doc_comment_getTagAsString (_tmp190_, JSDOC_DOC_TAG_TITLE_SINCE);
+#line 440 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp192_ = _tmp191_;
+#line 440 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       json_object_set_string_member (_tmp188_, "since", _tmp192_);
+#line 440 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _g_free0 (_tmp192_);
+#line 441 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp193_ = add;
+#line 441 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp194_ = m;
+#line 441 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp195_ = _tmp194_->comment;
+#line 441 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp196_ = jsdoc_doc_comment_getTagAsString (_tmp195_, JSDOC_DOC_TAG_TITLE_SINCE);
+#line 441 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp197_ = _tmp196_;
+#line 441 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       json_object_set_string_member (_tmp193_, "see", _tmp197_);
+#line 441 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _g_free0 (_tmp197_);
+#line 445 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp198_ = add;
+#line 445 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp199_ = m;
+#line 445 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp200_ = jsdoc_symbol_paramsToJson (_tmp199_);
+#line 445 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       json_object_set_array_member (_tmp198_, "params", _tmp200_);
+#line 446 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp201_ = add;
+#line 446 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp202_ = m;
+#line 446 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp203_ = jsdoc_symbol_returnsToJson (_tmp202_);
+#line 446 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       json_object_set_array_member (_tmp201_, "returns", _tmp203_);
+#line 451 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp204_ = methods;
+#line 451 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp205_ = add;
+#line 451 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp206_ = _json_object_ref0 (_tmp205_);
+#line 451 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       json_array_add_object_element (_tmp204_, _tmp206_);
+#line 420 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _g_free0 (_tmp173_);
+#line 420 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _json_object_unref0 (add);
+#line 420 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _g_object_unref0 (m);
+#line 3041 "DocBuilder.c"
+               }
+#line 420 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _g_object_unref0 (_m_list);
+#line 3045 "DocBuilder.c"
+       }
+#line 455 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp207_ = json_array_new ();
+#line 455 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       events = _tmp207_;
+#line 456 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp208_ = ret;
+#line 456 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp209_ = events;
+#line 456 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp210_ = _json_array_ref0 (_tmp209_);
+#line 456 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       json_object_set_array_member (_tmp208_, "events", _tmp210_);
+#line 3059 "DocBuilder.c"
+       {
+               GeeArrayList* _m_list = NULL;
+               JSDOCSymbol* _tmp211_;
+               GeeArrayList* _tmp212_;
+               GeeArrayList* _tmp213_;
+               gint _m_size = 0;
+               GeeArrayList* _tmp214_;
+               gint _tmp215_;
+               gint _tmp216_;
+               gint _m_index = 0;
+#line 457 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp211_ = cls;
+#line 457 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp212_ = _tmp211_->methods;
+#line 457 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp213_ = _g_object_ref0 (_tmp212_);
+#line 457 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _m_list = _tmp213_;
+#line 457 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp214_ = _m_list;
+#line 457 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp215_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp214_);
+#line 457 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp216_ = _tmp215_;
+#line 457 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _m_size = _tmp216_;
+#line 457 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _m_index = -1;
+#line 457 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               while (TRUE) {
+#line 3090 "DocBuilder.c"
+                       gint _tmp217_;
+                       gint _tmp218_;
+                       gint _tmp219_;
+                       JSDOCSymbol* m = NULL;
+                       GeeArrayList* _tmp220_;
+                       gint _tmp221_;
+                       gpointer _tmp222_;
+                       gboolean _tmp223_ = FALSE;
+                       JSDOCSymbol* _tmp224_;
+                       gboolean _tmp225_;
+                       JsonObject* add = NULL;
+                       JsonObject* _tmp228_;
+                       JsonObject* _tmp229_;
+                       JSDOCSymbol* _tmp230_;
+                       const gchar* _tmp231_;
+                       const gchar* _tmp232_;
+                       gchar* _tmp233_;
+                       gchar* _tmp234_;
+                       JsonObject* _tmp235_;
+                       JSDOCSymbol* _tmp236_;
+                       const gchar* _tmp237_;
+                       JsonObject* _tmp238_;
+                       JSDOCSymbol* _tmp239_;
+                       const gchar* _tmp240_;
+                       JsonObject* _tmp241_;
+                       JSDOCSymbol* _tmp242_;
+                       JSDOCDocComment* _tmp243_;
+                       gchar* _tmp244_;
+                       gchar* _tmp245_;
+                       gchar* _tmp246_ = NULL;
+                       JSDOCSymbol* _tmp247_;
+                       JSDOCDocComment* _tmp248_;
+                       GeeArrayList* _tmp249_;
+                       GeeArrayList* _tmp250_;
+                       gint _tmp251_;
+                       gint _tmp252_;
+                       gboolean _tmp253_;
+                       JsonObject* _tmp260_;
+                       JsonObject* _tmp261_;
+                       JSDOCSymbol* _tmp262_;
+                       JSDOCDocComment* _tmp263_;
+                       gchar* _tmp264_;
+                       gchar* _tmp265_;
+                       JsonObject* _tmp266_;
+                       JSDOCSymbol* _tmp267_;
+                       JSDOCDocComment* _tmp268_;
+                       gchar* _tmp269_;
+                       gchar* _tmp270_;
+                       JsonObject* _tmp271_;
+                       JSDOCSymbol* _tmp272_;
+                       JsonArray* _tmp273_;
+                       JsonObject* _tmp274_;
+                       JSDOCSymbol* _tmp275_;
+                       JsonArray* _tmp276_;
+                       JsonArray* _tmp277_;
+                       JsonObject* _tmp278_;
+                       JsonObject* _tmp279_;
+#line 457 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp217_ = _m_index;
+#line 457 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _m_index = _tmp217_ + 1;
+#line 457 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp218_ = _m_index;
+#line 457 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp219_ = _m_size;
+#line 457 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       if (!(_tmp218_ < _tmp219_)) {
+#line 457 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               break;
+#line 3160 "DocBuilder.c"
+                       }
+#line 457 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp220_ = _m_list;
+#line 457 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp221_ = _m_index;
+#line 457 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp222_ = gee_abstract_list_get ((GeeAbstractList*) _tmp220_, _tmp221_);
+#line 457 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       m = (JSDOCSymbol*) _tmp222_;
+#line 458 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp224_ = m;
+#line 458 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp225_ = _tmp224_->isEvent;
+#line 458 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       if (!_tmp225_) {
+#line 458 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp223_ = TRUE;
+#line 3178 "DocBuilder.c"
+                       } else {
+                               JSDOCSymbol* _tmp226_;
+                               gboolean _tmp227_;
+#line 458 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp226_ = m;
+#line 458 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp227_ = _tmp226_->isIgnored;
+#line 458 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp223_ = _tmp227_;
+#line 3188 "DocBuilder.c"
+                       }
+#line 458 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       if (_tmp223_) {
+#line 459 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _g_object_unref0 (m);
+#line 459 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               continue;
+#line 3196 "DocBuilder.c"
+                       }
+#line 462 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp228_ = json_object_new ();
+#line 462 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       add = _tmp228_;
+#line 463 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp229_ = add;
+#line 463 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp230_ = m;
+#line 463 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp231_ = jsdoc_symbol_get_name (_tmp230_);
+#line 463 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp232_ = _tmp231_;
+#line 463 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp233_ = string_substring (_tmp232_, (glong) 1, (glong) -1);
+#line 463 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp234_ = _tmp233_;
+#line 463 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       json_object_set_string_member (_tmp229_, "name", _tmp234_);
+#line 463 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _g_free0 (_tmp234_);
+#line 465 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp235_ = add;
+#line 465 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp236_ = m;
+#line 465 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp237_ = _tmp236_->desc;
+#line 465 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       json_object_set_string_member (_tmp235_, "desc", _tmp237_);
+#line 468 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp238_ = add;
+#line 468 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp239_ = m;
+#line 468 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp240_ = _tmp239_->memberOf;
+#line 468 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       json_object_set_string_member (_tmp238_, "memberOf", _tmp240_);
+#line 469 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp241_ = add;
+#line 469 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp242_ = m;
+#line 469 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp243_ = _tmp242_->comment;
+#line 469 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp244_ = jsdoc_doc_comment_getTagAsString (_tmp243_, JSDOC_DOC_TAG_TITLE_EXAMPLE);
+#line 469 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp245_ = _tmp244_;
+#line 469 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       json_object_set_string_member (_tmp241_, "example", _tmp245_);
+#line 469 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _g_free0 (_tmp245_);
+#line 471 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp247_ = m;
+#line 471 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp248_ = _tmp247_->comment;
+#line 471 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp249_ = jsdoc_doc_comment_getTag (_tmp248_, JSDOC_DOC_TAG_TITLE_DEPRECATED);
+#line 471 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp250_ = _tmp249_;
+#line 471 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp251_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp250_);
+#line 471 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp252_ = _tmp251_;
+#line 471 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp253_ = _tmp252_ > 0;
+#line 471 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _g_object_unref0 (_tmp250_);
+#line 471 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       if (_tmp253_) {
+#line 3266 "DocBuilder.c"
+                               JSDOCSymbol* _tmp254_;
+                               JSDOCDocComment* _tmp255_;
+                               gchar* _tmp256_;
+                               gchar* _tmp257_;
+                               gchar* _tmp258_;
+#line 472 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp254_ = m;
+#line 472 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp255_ = _tmp254_->comment;
+#line 472 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp256_ = jsdoc_doc_comment_getTagAsString (_tmp255_, JSDOC_DOC_TAG_TITLE_DEPRECATED);
+#line 472 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp257_ = _tmp256_;
+#line 472 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp258_ = g_strconcat ("This has been deprecated: ", _tmp257_, NULL);
+#line 472 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _g_free0 (_tmp246_);
+#line 472 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp246_ = _tmp258_;
+#line 472 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _g_free0 (_tmp257_);
+#line 3288 "DocBuilder.c"
+                       } else {
+                               gchar* _tmp259_;
+#line 473 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp259_ = g_strdup ("");
+#line 473 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _g_free0 (_tmp246_);
+#line 473 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp246_ = _tmp259_;
+#line 3297 "DocBuilder.c"
+                       }
+#line 470 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp260_ = add;
+#line 470 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       json_object_set_string_member (_tmp260_, "deprecated", _tmp246_);
+#line 474 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp261_ = add;
+#line 474 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp262_ = m;
+#line 474 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp263_ = _tmp262_->comment;
+#line 474 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp264_ = jsdoc_doc_comment_getTagAsString (_tmp263_, JSDOC_DOC_TAG_TITLE_SINCE);
+#line 474 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp265_ = _tmp264_;
+#line 474 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       json_object_set_string_member (_tmp261_, "since", _tmp265_);
+#line 474 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _g_free0 (_tmp265_);
+#line 475 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp266_ = add;
+#line 475 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp267_ = m;
+#line 475 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp268_ = _tmp267_->comment;
+#line 475 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp269_ = jsdoc_doc_comment_getTagAsString (_tmp268_, JSDOC_DOC_TAG_TITLE_SINCE);
+#line 475 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp270_ = _tmp269_;
+#line 475 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       json_object_set_string_member (_tmp266_, "see", _tmp270_);
+#line 475 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _g_free0 (_tmp270_);
+#line 480 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp271_ = add;
+#line 480 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp272_ = m;
+#line 480 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp273_ = jsdoc_symbol_paramsToJson (_tmp272_);
+#line 480 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       json_object_set_array_member (_tmp271_, "params", _tmp273_);
+#line 481 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp274_ = add;
+#line 481 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp275_ = m;
+#line 481 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp276_ = jsdoc_symbol_returnsToJson (_tmp275_);
+#line 481 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       json_object_set_array_member (_tmp274_, "returns", _tmp276_);
+#line 486 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp277_ = events;
+#line 486 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp278_ = add;
+#line 486 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp279_ = _json_object_ref0 (_tmp278_);
+#line 486 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       json_array_add_object_element (_tmp277_, _tmp279_);
+#line 457 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _g_free0 (_tmp246_);
+#line 457 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _json_object_unref0 (add);
+#line 457 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _g_object_unref0 (m);
+#line 3361 "DocBuilder.c"
+               }
+#line 457 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _g_object_unref0 (_m_list);
+#line 3365 "DocBuilder.c"
+       }
+#line 492 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       result = ret;
+#line 492 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _json_array_unref0 (events);
+#line 492 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _json_array_unref0 (methods);
+#line 492 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_object_unref0 (cfgProperties);
+#line 492 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _json_array_unref0 (props);
+#line 492 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_free0 (_tmp56_);
+#line 492 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _json_array_unref0 (ag);
+#line 492 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       return result;
+#line 3383 "DocBuilder.c"
+}
+
+
+/**
+* needed as Json dumps .xXXX into same directory as it writes...
+*/
+static void jsdoc_doc_builder_writeJson (JSDOCDocBuilder* self, JsonGenerator* g, const gchar* fname) {
+       gchar* tmp = NULL;
+       const gchar* _tmp0_;
+       const gchar* _tmp1_;
+       gchar* _tmp2_;
+       gchar* _tmp3_;
+       gchar* _tmp4_;
+       gchar* _tmp5_;
+       JsonGenerator* _tmp6_;
+       const gchar* _tmp7_;
+       const gchar* _tmp8_;
+       gboolean _tmp9_;
+       const gchar* _tmp19_;
+       GFile* _tmp20_;
+       GFile* _tmp21_;
+       const gchar* _tmp22_;
+       GFile* _tmp23_;
+       GFile* _tmp24_;
+       GError * _inner_error_ = NULL;
+#line 497 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       g_return_if_fail (self != NULL);
+#line 497 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       g_return_if_fail (g != NULL);
+#line 497 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       g_return_if_fail (fname != NULL);
+#line 499 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp0_ = self->priv->tempdir;
+#line 499 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp1_ = fname;
+#line 499 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp2_ = g_path_get_basename (_tmp1_);
+#line 499 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp3_ = _tmp2_;
+#line 499 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp4_ = g_strconcat (_tmp0_, _tmp3_, NULL);
+#line 499 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp5_ = _tmp4_;
+#line 499 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_free0 (_tmp3_);
+#line 499 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       tmp = _tmp5_;
+#line 500 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp6_ = g;
+#line 500 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp7_ = tmp;
+#line 500 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       json_generator_to_file (_tmp6_, _tmp7_, &_inner_error_);
+#line 500 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 500 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _g_free0 (tmp);
+#line 500 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               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);
+#line 500 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               g_clear_error (&_inner_error_);
+#line 500 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               return;
+#line 3447 "DocBuilder.c"
+       }
+#line 502 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp8_ = fname;
+#line 502 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp9_ = g_file_test (_tmp8_, G_FILE_TEST_EXISTS);
+#line 502 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       if (_tmp9_) {
+#line 3455 "DocBuilder.c"
+               gchar* new_data = NULL;
+               gchar* old_data = NULL;
+               const gchar* _tmp10_;
+               gchar* _tmp11_ = NULL;
+               const gchar* _tmp12_;
+               gchar* _tmp13_ = NULL;
+               const gchar* _tmp14_;
+               const gchar* _tmp15_;
+#line 504 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp10_ = tmp;
+#line 504 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               g_file_get_contents (_tmp10_, &_tmp11_, NULL, &_inner_error_);
+#line 504 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _g_free0 (new_data);
+#line 504 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               new_data = _tmp11_;
+#line 504 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 504 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _g_free0 (old_data);
+#line 504 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _g_free0 (new_data);
+#line 504 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _g_free0 (tmp);
+#line 504 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       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);
+#line 504 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       g_clear_error (&_inner_error_);
+#line 504 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       return;
+#line 3486 "DocBuilder.c"
+               }
+#line 505 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp12_ = fname;
+#line 505 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               g_file_get_contents (_tmp12_, &_tmp13_, NULL, &_inner_error_);
+#line 505 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _g_free0 (old_data);
+#line 505 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               old_data = _tmp13_;
+#line 505 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 505 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _g_free0 (old_data);
+#line 505 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _g_free0 (new_data);
+#line 505 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _g_free0 (tmp);
+#line 505 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       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);
+#line 505 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       g_clear_error (&_inner_error_);
+#line 505 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       return;
+#line 3510 "DocBuilder.c"
+               }
+#line 506 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp14_ = old_data;
+#line 506 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp15_ = new_data;
+#line 506 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               if (g_strcmp0 (_tmp14_, _tmp15_) == 0) {
+#line 3518 "DocBuilder.c"
+                       const gchar* _tmp16_;
+                       GFile* _tmp17_;
+                       GFile* _tmp18_;
+#line 507 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp16_ = tmp;
+#line 507 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp17_ = g_file_new_for_path (_tmp16_);
+#line 507 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp18_ = _tmp17_;
+#line 507 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       g_file_delete (_tmp18_, NULL, &_inner_error_);
+#line 507 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _g_object_unref0 (_tmp18_);
+#line 507 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 507 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _g_free0 (old_data);
+#line 507 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _g_free0 (new_data);
+#line 507 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _g_free0 (tmp);
+#line 507 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               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);
+#line 507 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               g_clear_error (&_inner_error_);
+#line 507 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               return;
+#line 3546 "DocBuilder.c"
+                       }
+#line 508 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _g_free0 (old_data);
+#line 508 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _g_free0 (new_data);
+#line 508 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _g_free0 (tmp);
+#line 508 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       return;
+#line 3556 "DocBuilder.c"
+               }
+#line 502 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _g_free0 (old_data);
+#line 502 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _g_free0 (new_data);
+#line 3562 "DocBuilder.c"
+       }
+#line 512 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp19_ = tmp;
+#line 512 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp20_ = g_file_new_for_path (_tmp19_);
+#line 512 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp21_ = _tmp20_;
+#line 512 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp22_ = fname;
+#line 512 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp23_ = g_file_new_for_path (_tmp22_);
+#line 512 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp24_ = _tmp23_;
+#line 512 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       g_file_move (_tmp21_, _tmp24_, G_FILE_COPY_OVERWRITE, NULL, NULL, NULL, &_inner_error_);
+#line 512 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_object_unref0 (_tmp24_);
+#line 512 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_object_unref0 (_tmp21_);
+#line 512 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 512 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _g_free0 (tmp);
+#line 512 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               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);
+#line 512 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               g_clear_error (&_inner_error_);
+#line 512 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               return;
+#line 3592 "DocBuilder.c"
+       }
+#line 497 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_free0 (tmp);
+#line 3596 "DocBuilder.c"
+}
+
+
+/**
+ * JSON files are lookup files for the documentation
+ * - can be used by IDE's or AJAX based doc tools
+ * 
+ * 
+ */
+static gint ___lambda11_ (JSDOCDocBuilder* self, JSDOCDocTag* a, JSDOCDocTag* b) {
+       gint result = 0;
+       JSDOCDocTag* _tmp0_;
+       const gchar* _tmp1_;
+       JSDOCDocTag* _tmp2_;
+       const gchar* _tmp3_;
+       gint _tmp4_;
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       g_return_val_if_fail (a != NULL, 0);
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       g_return_val_if_fail (b != NULL, 0);
+#line 530 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp0_ = a;
+#line 530 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp1_ = _tmp0_->name;
+#line 530 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp2_ = b;
+#line 530 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp3_ = _tmp2_->name;
+#line 530 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp4_ = g_utf8_collate (_tmp1_, _tmp3_);
+#line 530 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       result = _tmp4_;
+#line 530 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       return result;
+#line 3631 "DocBuilder.c"
+}
+
+
+static gint ____lambda11__gcompare_data_func (gconstpointer a, gconstpointer b, gpointer self) {
+       gint result;
+       result = ___lambda11_ ((JSDOCDocBuilder*) self, (JSDOCDocTag*) a, (JSDOCDocTag*) b);
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       return result;
+#line 3640 "DocBuilder.c"
+}
+
+
+static gint __lambda12_ (JSDOCDocBuilder* self, JSDOCSymbol* a, JSDOCSymbol* b) {
+       gint result = 0;
+       JSDOCSymbol* _tmp0_;
+       const gchar* _tmp1_;
+       const gchar* _tmp2_;
+       JSDOCSymbol* _tmp3_;
+       const gchar* _tmp4_;
+       const gchar* _tmp5_;
+       gint _tmp6_;
+#line 561 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       g_return_val_if_fail (a != NULL, 0);
+#line 561 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       g_return_val_if_fail (b != NULL, 0);
+#line 562 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp0_ = a;
+#line 562 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp1_ = jsdoc_symbol_get_name (_tmp0_);
+#line 562 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp2_ = _tmp1_;
+#line 562 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp3_ = b;
+#line 562 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp4_ = jsdoc_symbol_get_name (_tmp3_);
+#line 562 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp5_ = _tmp4_;
+#line 562 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp6_ = g_utf8_collate (_tmp2_, _tmp5_);
+#line 562 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       result = _tmp6_;
+#line 562 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       return result;
+#line 3675 "DocBuilder.c"
+}
+
+
+static gint ___lambda12__gcompare_data_func (gconstpointer a, gconstpointer b, gpointer self) {
+       gint result;
+       result = __lambda12_ ((JSDOCDocBuilder*) self, (JSDOCSymbol*) a, (JSDOCSymbol*) b);
+#line 561 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       return result;
+#line 3684 "DocBuilder.c"
+}
+
+
+static gint __lambda13_ (JSDOCDocBuilder* self, JSDOCSymbol* a, JSDOCSymbol* b) {
+       gint result = 0;
+       JSDOCSymbol* _tmp0_;
+       const gchar* _tmp1_;
+       const gchar* _tmp2_;
+       JSDOCSymbol* _tmp3_;
+       const gchar* _tmp4_;
+       const gchar* _tmp5_;
+       gint _tmp6_;
+#line 586 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       g_return_val_if_fail (a != NULL, 0);
+#line 586 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       g_return_val_if_fail (b != NULL, 0);
+#line 587 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp0_ = a;
+#line 587 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp1_ = jsdoc_symbol_get_name (_tmp0_);
+#line 587 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp2_ = _tmp1_;
+#line 587 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp3_ = b;
+#line 587 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp4_ = jsdoc_symbol_get_name (_tmp3_);
+#line 587 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp5_ = _tmp4_;
+#line 587 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp6_ = g_utf8_collate (_tmp2_, _tmp5_);
+#line 587 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       result = _tmp6_;
+#line 587 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       return result;
+#line 3719 "DocBuilder.c"
+}
+
+
+static gint ___lambda13__gcompare_data_func (gconstpointer a, gconstpointer b, gpointer self) {
+       gint result;
+       result = __lambda13_ ((JSDOCDocBuilder*) self, (JSDOCSymbol*) a, (JSDOCSymbol*) b);
+#line 586 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       return result;
+#line 3728 "DocBuilder.c"
+}
+
+
+static JsonObject* jsdoc_doc_builder_publishJSON (JSDOCDocBuilder* self, JSDOCSymbol* data) {
+       JsonObject* result = NULL;
+       GeeArrayList* cfgProperties = NULL;
+       GeeArrayList* _tmp0_;
+       JSDOCSymbol* _tmp1_;
+       JSDOCDocComment* _tmp2_;
+       GeeArrayList* _tmp3_;
+       GeeArrayList* _tmp4_;
+       gint _tmp5_;
+       gint _tmp6_;
+       gboolean _tmp7_;
+       JsonArray* props = NULL;
+       JsonArray* _tmp11_;
+       GeeArrayList* ownEvents = NULL;
+       GeeArrayList* _tmp49_;
+       GeeArrayList* _tmp68_;
+       JsonArray* events = NULL;
+       JsonArray* _tmp69_;
+       GeeArrayList* ownMethods = NULL;
+       GeeArrayList* _tmp105_;
+       GeeArrayList* _tmp124_;
+       JsonArray* methods = NULL;
+       JsonArray* _tmp125_;
+       JsonObject* ret = NULL;
+       JsonObject* _tmp162_;
+       JsonArray* _tmp163_;
+       JsonArray* _tmp164_;
+       JsonArray* _tmp165_;
+       JsonArray* _tmp166_;
+       JsonArray* _tmp167_;
+       JsonArray* _tmp168_;
+#line 522 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 522 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       g_return_val_if_fail (data != NULL, NULL);
+#line 526 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp0_ = gee_array_list_new (JSDOC_TYPE_DOC_TAG, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL);
+#line 526 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       cfgProperties = _tmp0_;
+#line 527 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp1_ = data;
+#line 527 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp2_ = _tmp1_->comment;
+#line 527 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp3_ = jsdoc_doc_comment_getTag (_tmp2_, JSDOC_DOC_TAG_TITLE_SINGLETON);
+#line 527 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp4_ = _tmp3_;
+#line 527 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp5_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp4_);
+#line 527 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp6_ = _tmp5_;
+#line 527 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp7_ = _tmp6_ < 1;
+#line 527 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_object_unref0 (_tmp4_);
+#line 527 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       if (_tmp7_) {
+#line 3789 "DocBuilder.c"
+               JSDOCSymbol* _tmp8_;
+               GeeArrayList* _tmp9_;
+               GeeArrayList* _tmp10_;
+#line 528 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp8_ = data;
+#line 528 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp9_ = jsdoc_symbol_configToArray (_tmp8_);
+#line 528 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _g_object_unref0 (cfgProperties);
+#line 528 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               cfgProperties = _tmp9_;
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp10_ = cfgProperties;
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               gee_list_sort ((GeeList*) _tmp10_, ____lambda11__gcompare_data_func, g_object_ref (self), g_object_unref);
+#line 3805 "DocBuilder.c"
+       }
+#line 535 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp11_ = json_array_new ();
+#line 535 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       props = _tmp11_;
+#line 3811 "DocBuilder.c"
+       {
+               gint i = 0;
+#line 538 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               i = 0;
+#line 3816 "DocBuilder.c"
+               {
+                       gboolean _tmp12_ = FALSE;
+#line 538 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp12_ = TRUE;
+#line 538 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       while (TRUE) {
+#line 3823 "DocBuilder.c"
+                               gint _tmp14_;
+                               GeeArrayList* _tmp15_;
+                               gint _tmp16_;
+                               gint _tmp17_;
+                               JSDOCDocTag* p = NULL;
+                               GeeArrayList* _tmp18_;
+                               gint _tmp19_;
+                               gpointer _tmp20_;
+                               JsonObject* add = NULL;
+                               JsonObject* _tmp21_;
+                               JsonObject* _tmp22_;
+                               JSDOCDocTag* _tmp23_;
+                               const gchar* _tmp24_;
+                               JsonObject* _tmp25_;
+                               JSDOCDocTag* _tmp26_;
+                               const gchar* _tmp27_;
+                               JsonObject* _tmp28_;
+                               JSDOCDocTag* _tmp29_;
+                               const gchar* _tmp30_;
+                               const gchar* _tmp31_ = NULL;
+                               JSDOCDocTag* _tmp32_;
+                               const gchar* _tmp33_;
+                               JSDOCSymbol* _tmp34_;
+                               const gchar* _tmp35_;
+                               JsonObject* _tmp38_;
+                               JSDOCDocTag* _tmp39_;
+                               GeeArrayList* _tmp40_;
+                               gint _tmp41_;
+                               gint _tmp42_;
+                               JsonArray* _tmp46_;
+                               JsonObject* _tmp47_;
+                               JsonObject* _tmp48_;
+#line 538 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               if (!_tmp12_) {
+#line 3858 "DocBuilder.c"
+                                       gint _tmp13_;
+#line 538 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       _tmp13_ = i;
+#line 538 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       i = _tmp13_ + 1;
+#line 3864 "DocBuilder.c"
+                               }
+#line 538 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp12_ = FALSE;
+#line 538 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp14_ = i;
+#line 538 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp15_ = cfgProperties;
+#line 538 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp16_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp15_);
+#line 538 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp17_ = _tmp16_;
+#line 538 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               if (!(_tmp14_ < _tmp17_)) {
+#line 538 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       break;
+#line 3880 "DocBuilder.c"
+                               }
+#line 539 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp18_ = cfgProperties;
+#line 539 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp19_ = i;
+#line 539 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp20_ = gee_abstract_list_get ((GeeAbstractList*) _tmp18_, _tmp19_);
+#line 539 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               p = (JSDOCDocTag*) _tmp20_;
+#line 540 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp21_ = json_object_new ();
+#line 540 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               add = _tmp21_;
+#line 541 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp22_ = add;
+#line 541 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp23_ = p;
+#line 541 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp24_ = _tmp23_->name;
+#line 541 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               json_object_set_string_member (_tmp22_, "name", _tmp24_);
+#line 542 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp25_ = add;
+#line 542 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp26_ = p;
+#line 542 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp27_ = _tmp26_->type;
+#line 542 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               json_object_set_string_member (_tmp25_, "type", _tmp27_);
+#line 543 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp28_ = add;
+#line 543 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp29_ = p;
+#line 543 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp30_ = _tmp29_->desc;
+#line 543 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               json_object_set_string_member (_tmp28_, "desc", _tmp30_);
+#line 544 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp32_ = p;
+#line 544 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp33_ = _tmp32_->memberOf;
+#line 544 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp34_ = data;
+#line 544 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp35_ = _tmp34_->alias;
+#line 544 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               if (g_strcmp0 (_tmp33_, _tmp35_) == 0) {
+#line 544 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       _tmp31_ = "";
+#line 3930 "DocBuilder.c"
+                               } else {
+                                       JSDOCDocTag* _tmp36_;
+                                       const gchar* _tmp37_;
+#line 544 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       _tmp36_ = p;
+#line 544 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       _tmp37_ = _tmp36_->memberOf;
+#line 544 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       _tmp31_ = _tmp37_;
+#line 3940 "DocBuilder.c"
+                               }
+#line 544 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp38_ = add;
+#line 544 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               json_object_set_string_member (_tmp38_, "memberOf", _tmp31_);
+#line 546 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp39_ = p;
+#line 546 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp40_ = _tmp39_->optvalues;
+#line 546 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp41_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp40_);
+#line 546 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp42_ = _tmp41_;
+#line 546 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               if (_tmp42_ > 0) {
+#line 3956 "DocBuilder.c"
+                                       JsonObject* _tmp43_;
+                                       JSDOCDocTag* _tmp44_;
+                                       JsonArray* _tmp45_;
+#line 547 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       _tmp43_ = add;
+#line 547 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       _tmp44_ = p;
+#line 547 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       _tmp45_ = jsdoc_doc_tag_optvalue_as_json_array (_tmp44_);
+#line 547 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       json_object_set_array_member (_tmp43_, "desc", _tmp45_);
+#line 3968 "DocBuilder.c"
+                               }
+#line 550 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp46_ = props;
+#line 550 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp47_ = add;
+#line 550 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp48_ = _json_object_ref0 (_tmp47_);
+#line 550 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               json_array_add_object_element (_tmp46_, _tmp48_);
+#line 538 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _json_object_unref0 (add);
+#line 538 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _g_object_unref0 (p);
+#line 3982 "DocBuilder.c"
+                       }
+               }
+       }
+#line 554 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp49_ = gee_array_list_new (JSDOC_TYPE_SYMBOL, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL);
+#line 554 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       ownEvents = _tmp49_;
+#line 3990 "DocBuilder.c"
+       {
+               gint i = 0;
+#line 555 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               i = 0;
+#line 3995 "DocBuilder.c"
+               {
+                       gboolean _tmp50_ = FALSE;
+#line 555 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp50_ = TRUE;
+#line 555 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       while (TRUE) {
+#line 4002 "DocBuilder.c"
+                               gint _tmp52_;
+                               JSDOCSymbol* _tmp53_;
+                               GeeArrayList* _tmp54_;
+                               gint _tmp55_;
+                               gint _tmp56_;
+                               JSDOCSymbol* e = NULL;
+                               JSDOCSymbol* _tmp57_;
+                               GeeArrayList* _tmp58_;
+                               gint _tmp59_;
+                               gpointer _tmp60_;
+                               gboolean _tmp61_ = FALSE;
+                               JSDOCSymbol* _tmp62_;
+                               gboolean _tmp63_;
+#line 555 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               if (!_tmp50_) {
+#line 4018 "DocBuilder.c"
+                                       gint _tmp51_;
+#line 555 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       _tmp51_ = i;
+#line 555 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       i = _tmp51_ + 1;
+#line 4024 "DocBuilder.c"
+                               }
+#line 555 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp50_ = FALSE;
+#line 555 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp52_ = i;
+#line 555 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp53_ = data;
+#line 555 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp54_ = _tmp53_->methods;
+#line 555 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp55_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp54_);
+#line 555 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp56_ = _tmp55_;
+#line 555 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               if (!(_tmp52_ < _tmp56_)) {
+#line 555 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       break;
+#line 4042 "DocBuilder.c"
+                               }
+#line 556 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp57_ = data;
+#line 556 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp58_ = _tmp57_->methods;
+#line 556 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp59_ = i;
+#line 556 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp60_ = gee_abstract_list_get ((GeeAbstractList*) _tmp58_, _tmp59_);
+#line 556 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               e = (JSDOCSymbol*) _tmp60_;
+#line 557 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp62_ = e;
+#line 557 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp63_ = _tmp62_->isEvent;
+#line 557 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               if (_tmp63_) {
+#line 4060 "DocBuilder.c"
+                                       JSDOCSymbol* _tmp64_;
+                                       gboolean _tmp65_;
+#line 557 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       _tmp64_ = e;
+#line 557 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       _tmp65_ = _tmp64_->isIgnored;
+#line 557 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       _tmp61_ = !_tmp65_;
+#line 4069 "DocBuilder.c"
+                               } else {
+#line 557 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       _tmp61_ = FALSE;
+#line 4073 "DocBuilder.c"
+                               }
+#line 557 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               if (_tmp61_) {
+#line 4077 "DocBuilder.c"
+                                       GeeArrayList* _tmp66_;
+                                       JSDOCSymbol* _tmp67_;
+#line 558 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       _tmp66_ = ownEvents;
+#line 558 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       _tmp67_ = e;
+#line 558 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       gee_abstract_collection_add ((GeeAbstractCollection*) _tmp66_, _tmp67_);
+#line 4086 "DocBuilder.c"
+                               }
+#line 555 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _g_object_unref0 (e);
+#line 4090 "DocBuilder.c"
+                       }
+               }
+       }
+#line 561 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp68_ = ownEvents;
+#line 561 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       gee_list_sort ((GeeList*) _tmp68_, ___lambda12__gcompare_data_func, g_object_ref (self), g_object_unref);
+#line 565 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp69_ = json_array_new ();
+#line 565 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       events = _tmp69_;
+#line 4102 "DocBuilder.c"
+       {
+               gint i = 0;
+#line 567 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               i = 0;
+#line 4107 "DocBuilder.c"
+               {
+                       gboolean _tmp70_ = FALSE;
+#line 567 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp70_ = TRUE;
+#line 567 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       while (TRUE) {
+#line 4114 "DocBuilder.c"
+                               gint _tmp72_;
+                               GeeArrayList* _tmp73_;
+                               gint _tmp74_;
+                               gint _tmp75_;
+                               JSDOCSymbol* m = NULL;
+                               GeeArrayList* _tmp76_;
+                               gint _tmp77_;
+                               gpointer _tmp78_;
+                               JsonObject* add = NULL;
+                               JsonObject* _tmp79_;
+                               JsonObject* _tmp80_;
+                               JSDOCSymbol* _tmp81_;
+                               const gchar* _tmp82_;
+                               const gchar* _tmp83_;
+                               gchar* _tmp84_;
+                               gchar* _tmp85_;
+                               JsonObject* _tmp86_;
+                               JsonObject* _tmp87_;
+                               JSDOCSymbol* _tmp88_;
+                               const gchar* _tmp89_;
+                               JsonObject* _tmp90_;
+                               JSDOCSymbol* _tmp91_;
+                               gchar* _tmp92_;
+                               gchar* _tmp93_;
+                               const gchar* _tmp94_ = NULL;
+                               JSDOCSymbol* _tmp95_;
+                               const gchar* _tmp96_;
+                               JSDOCSymbol* _tmp97_;
+                               const gchar* _tmp98_;
+                               JsonObject* _tmp101_;
+                               JsonArray* _tmp102_;
+                               JsonObject* _tmp103_;
+                               JsonObject* _tmp104_;
+#line 567 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               if (!_tmp70_) {
+#line 4150 "DocBuilder.c"
+                                       gint _tmp71_;
+#line 567 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       _tmp71_ = i;
+#line 567 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       i = _tmp71_ + 1;
+#line 4156 "DocBuilder.c"
+                               }
+#line 567 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp70_ = FALSE;
+#line 567 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp72_ = i;
+#line 567 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp73_ = ownEvents;
+#line 567 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp74_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp73_);
+#line 567 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp75_ = _tmp74_;
+#line 567 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               if (!(_tmp72_ < _tmp75_)) {
+#line 567 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       break;
+#line 4172 "DocBuilder.c"
+                               }
+#line 568 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp76_ = ownEvents;
+#line 568 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp77_ = i;
+#line 568 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp78_ = gee_abstract_list_get ((GeeAbstractList*) _tmp76_, _tmp77_);
+#line 568 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               m = (JSDOCSymbol*) _tmp78_;
+#line 569 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp79_ = json_object_new ();
+#line 569 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               add = _tmp79_;
+#line 570 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp80_ = add;
+#line 570 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp81_ = m;
+#line 570 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp82_ = jsdoc_symbol_get_name (_tmp81_);
+#line 570 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp83_ = _tmp82_;
+#line 570 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp84_ = string_substring (_tmp83_, (glong) 1, (glong) -1);
+#line 570 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp85_ = _tmp84_;
+#line 570 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               json_object_set_string_member (_tmp80_, "name", _tmp85_);
+#line 570 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _g_free0 (_tmp85_);
+#line 571 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp86_ = add;
+#line 571 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               json_object_set_string_member (_tmp86_, "type", "function");
+#line 572 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp87_ = add;
+#line 572 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp88_ = m;
+#line 572 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp89_ = _tmp88_->desc;
+#line 572 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               json_object_set_string_member (_tmp87_, "desc", _tmp89_);
+#line 573 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp90_ = add;
+#line 573 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp91_ = m;
+#line 573 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp92_ = jsdoc_symbol_makeFuncSkel (_tmp91_);
+#line 573 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp93_ = _tmp92_;
+#line 573 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               json_object_set_string_member (_tmp90_, "sig", _tmp93_);
+#line 573 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _g_free0 (_tmp93_);
+#line 574 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp95_ = m;
+#line 574 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp96_ = _tmp95_->memberOf;
+#line 574 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp97_ = data;
+#line 574 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp98_ = _tmp97_->alias;
+#line 574 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               if (g_strcmp0 (_tmp96_, _tmp98_) == 0) {
+#line 574 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       _tmp94_ = "";
+#line 4238 "DocBuilder.c"
+                               } else {
+                                       JSDOCSymbol* _tmp99_;
+                                       const gchar* _tmp100_;
+#line 574 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       _tmp99_ = m;
+#line 574 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       _tmp100_ = _tmp99_->memberOf;
+#line 574 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       _tmp94_ = _tmp100_;
+#line 4248 "DocBuilder.c"
+                               }
+#line 574 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp101_ = add;
+#line 574 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               json_object_set_string_member (_tmp101_, "memberOf", _tmp94_);
+#line 575 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp102_ = events;
+#line 575 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp103_ = add;
+#line 575 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp104_ = _json_object_ref0 (_tmp103_);
+#line 575 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               json_array_add_object_element (_tmp102_, _tmp104_);
+#line 567 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _json_object_unref0 (add);
+#line 567 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _g_object_unref0 (m);
+#line 4266 "DocBuilder.c"
+                       }
+               }
+       }
+#line 579 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp105_ = gee_array_list_new (JSDOC_TYPE_SYMBOL, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL);
+#line 579 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       ownMethods = _tmp105_;
+#line 4274 "DocBuilder.c"
+       {
+               gint i = 0;
+#line 580 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               i = 0;
+#line 4279 "DocBuilder.c"
+               {
+                       gboolean _tmp106_ = FALSE;
+#line 580 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp106_ = TRUE;
+#line 580 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       while (TRUE) {
+#line 4286 "DocBuilder.c"
+                               gint _tmp108_;
+                               JSDOCSymbol* _tmp109_;
+                               GeeArrayList* _tmp110_;
+                               gint _tmp111_;
+                               gint _tmp112_;
+                               JSDOCSymbol* e = NULL;
+                               JSDOCSymbol* _tmp113_;
+                               GeeArrayList* _tmp114_;
+                               gint _tmp115_;
+                               gpointer _tmp116_;
+                               gboolean _tmp117_ = FALSE;
+                               JSDOCSymbol* _tmp118_;
+                               gboolean _tmp119_;
+#line 580 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               if (!_tmp106_) {
+#line 4302 "DocBuilder.c"
+                                       gint _tmp107_;
+#line 580 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       _tmp107_ = i;
+#line 580 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       i = _tmp107_ + 1;
+#line 4308 "DocBuilder.c"
+                               }
+#line 580 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp106_ = FALSE;
+#line 580 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp108_ = i;
+#line 580 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp109_ = data;
+#line 580 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp110_ = _tmp109_->methods;
+#line 580 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp111_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp110_);
+#line 580 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp112_ = _tmp111_;
+#line 580 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               if (!(_tmp108_ < _tmp112_)) {
+#line 580 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       break;
+#line 4326 "DocBuilder.c"
+                               }
+#line 581 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp113_ = data;
+#line 581 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp114_ = _tmp113_->methods;
+#line 581 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp115_ = i;
+#line 581 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp116_ = gee_abstract_list_get ((GeeAbstractList*) _tmp114_, _tmp115_);
+#line 581 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               e = (JSDOCSymbol*) _tmp116_;
+#line 582 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp118_ = e;
+#line 582 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp119_ = _tmp118_->isEvent;
+#line 582 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               if (!_tmp119_) {
+#line 4344 "DocBuilder.c"
+                                       JSDOCSymbol* _tmp120_;
+                                       gboolean _tmp121_;
+#line 582 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       _tmp120_ = e;
+#line 582 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       _tmp121_ = _tmp120_->isIgnored;
+#line 582 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       _tmp117_ = !_tmp121_;
+#line 4353 "DocBuilder.c"
+                               } else {
+#line 582 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       _tmp117_ = FALSE;
+#line 4357 "DocBuilder.c"
+                               }
+#line 582 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               if (_tmp117_) {
+#line 4361 "DocBuilder.c"
+                                       GeeArrayList* _tmp122_;
+                                       JSDOCSymbol* _tmp123_;
+#line 583 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       _tmp122_ = ownMethods;
+#line 583 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       _tmp123_ = e;
+#line 583 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       gee_abstract_collection_add ((GeeAbstractCollection*) _tmp122_, _tmp123_);
+#line 4370 "DocBuilder.c"
+                               }
+#line 580 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _g_object_unref0 (e);
+#line 4374 "DocBuilder.c"
+                       }
+               }
+       }
+#line 586 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp124_ = ownMethods;
+#line 586 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       gee_list_sort ((GeeList*) _tmp124_, ___lambda13__gcompare_data_func, g_object_ref (self), g_object_unref);
+#line 590 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp125_ = json_array_new ();
+#line 590 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       methods = _tmp125_;
+#line 4386 "DocBuilder.c"
+       {
+               gint i = 0;
+#line 592 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               i = 0;
+#line 4391 "DocBuilder.c"
+               {
+                       gboolean _tmp126_ = FALSE;
+#line 592 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp126_ = TRUE;
+#line 592 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       while (TRUE) {
+#line 4398 "DocBuilder.c"
+                               gint _tmp128_;
+                               GeeArrayList* _tmp129_;
+                               gint _tmp130_;
+                               gint _tmp131_;
+                               JSDOCSymbol* m = NULL;
+                               GeeArrayList* _tmp132_;
+                               gint _tmp133_;
+                               gpointer _tmp134_;
+                               JsonObject* add = NULL;
+                               JsonObject* _tmp135_;
+                               JsonObject* _tmp136_;
+                               JSDOCSymbol* _tmp137_;
+                               const gchar* _tmp138_;
+                               const gchar* _tmp139_;
+                               JsonObject* _tmp140_;
+                               JsonObject* _tmp141_;
+                               JSDOCSymbol* _tmp142_;
+                               const gchar* _tmp143_;
+                               JsonObject* _tmp144_;
+                               JSDOCSymbol* _tmp145_;
+                               gchar* _tmp146_;
+                               gchar* _tmp147_;
+                               JsonObject* _tmp148_;
+                               JSDOCSymbol* _tmp149_;
+                               gboolean _tmp150_;
+                               const gchar* _tmp151_ = NULL;
+                               JSDOCSymbol* _tmp152_;
+                               const gchar* _tmp153_;
+                               JSDOCSymbol* _tmp154_;
+                               const gchar* _tmp155_;
+                               JsonObject* _tmp158_;
+                               JsonArray* _tmp159_;
+                               JsonObject* _tmp160_;
+                               JsonObject* _tmp161_;
+#line 592 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               if (!_tmp126_) {
+#line 4435 "DocBuilder.c"
+                                       gint _tmp127_;
+#line 592 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       _tmp127_ = i;
+#line 592 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       i = _tmp127_ + 1;
+#line 4441 "DocBuilder.c"
+                               }
+#line 592 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp126_ = FALSE;
+#line 592 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp128_ = i;
+#line 592 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp129_ = ownMethods;
+#line 592 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp130_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp129_);
+#line 592 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp131_ = _tmp130_;
+#line 592 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               if (!(_tmp128_ < _tmp131_)) {
+#line 592 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       break;
+#line 4457 "DocBuilder.c"
+                               }
+#line 593 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp132_ = ownMethods;
+#line 593 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp133_ = i;
+#line 593 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp134_ = gee_abstract_list_get ((GeeAbstractList*) _tmp132_, _tmp133_);
+#line 593 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               m = (JSDOCSymbol*) _tmp134_;
+#line 594 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp135_ = json_object_new ();
+#line 594 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               add = _tmp135_;
+#line 595 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp136_ = add;
+#line 595 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp137_ = m;
+#line 595 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp138_ = jsdoc_symbol_get_name (_tmp137_);
+#line 595 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp139_ = _tmp138_;
+#line 595 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               json_object_set_string_member (_tmp136_, "name", _tmp139_);
+#line 596 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp140_ = add;
+#line 596 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               json_object_set_string_member (_tmp140_, "type", "function");
+#line 597 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp141_ = add;
+#line 597 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp142_ = m;
+#line 597 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp143_ = _tmp142_->desc;
+#line 597 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               json_object_set_string_member (_tmp141_, "desc", _tmp143_);
+#line 598 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp144_ = add;
+#line 598 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp145_ = m;
+#line 598 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp146_ = jsdoc_symbol_makeMethodSkel (_tmp145_);
+#line 598 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp147_ = _tmp146_;
+#line 598 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               json_object_set_string_member (_tmp144_, "sig", _tmp147_);
+#line 598 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _g_free0 (_tmp147_);
+#line 599 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp148_ = add;
+#line 599 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp149_ = m;
+#line 599 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp150_ = _tmp149_->isStatic;
+#line 599 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               json_object_set_boolean_member (_tmp148_, "static", _tmp150_);
+#line 600 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp152_ = m;
+#line 600 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp153_ = _tmp152_->memberOf;
+#line 600 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp154_ = data;
+#line 600 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp155_ = _tmp154_->alias;
+#line 600 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               if (g_strcmp0 (_tmp153_, _tmp155_) == 0) {
+#line 600 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       _tmp151_ = "";
+#line 4525 "DocBuilder.c"
+                               } else {
+                                       JSDOCSymbol* _tmp156_;
+                                       const gchar* _tmp157_;
+#line 600 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       _tmp156_ = m;
+#line 600 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       _tmp157_ = _tmp156_->memberOf;
+#line 600 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       _tmp151_ = _tmp157_;
+#line 4535 "DocBuilder.c"
+                               }
+#line 600 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp158_ = add;
+#line 600 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               json_object_set_string_member (_tmp158_, "memberOf", _tmp151_);
+#line 601 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp159_ = methods;
+#line 601 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp160_ = add;
+#line 601 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp161_ = _json_object_ref0 (_tmp160_);
+#line 601 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               json_array_add_object_element (_tmp159_, _tmp161_);
+#line 592 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _json_object_unref0 (add);
+#line 592 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _g_object_unref0 (m);
+#line 4553 "DocBuilder.c"
+                       }
+               }
+       }
+#line 611 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp162_ = json_object_new ();
+#line 611 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       ret = _tmp162_;
+#line 612 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp163_ = props;
+#line 612 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp164_ = _json_array_ref0 (_tmp163_);
+#line 612 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       json_object_set_array_member (ret, "props", _tmp164_);
+#line 613 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp165_ = events;
+#line 613 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp166_ = _json_array_ref0 (_tmp165_);
+#line 613 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       json_object_set_array_member (ret, "events", _tmp166_);
+#line 614 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp167_ = methods;
+#line 614 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp168_ = _json_array_ref0 (_tmp167_);
+#line 614 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       json_object_set_array_member (ret, "methods", _tmp168_);
+#line 616 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       result = ret;
+#line 616 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _json_array_unref0 (methods);
+#line 616 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_object_unref0 (ownMethods);
+#line 616 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _json_array_unref0 (events);
+#line 616 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_object_unref0 (ownEvents);
+#line 616 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _json_array_unref0 (props);
+#line 616 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_object_unref0 (cfgProperties);
+#line 616 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       return result;
+#line 4595 "DocBuilder.c"
+}
+
+
+static JsonObject* jsdoc_doc_builder_class_tree_new_obj (JSDOCDocBuilder* self, const gchar* name, gboolean is_class, gboolean* is_new) {
+       gboolean _vala_is_new = FALSE;
+       JsonObject* result = NULL;
+       GeeHashMap* _tmp0_;
+       const gchar* _tmp1_;
+       gboolean _tmp2_;
+       const gchar* _tmp12_;
+       JsonObject* add = NULL;
+       JsonObject* _tmp13_;
+       JsonObject* _tmp14_;
+       const gchar* _tmp15_;
+       JsonObject* _tmp16_;
+       JsonArray* _tmp17_;
+       JsonObject* _tmp18_;
+       gboolean _tmp19_;
+       GeeHashMap* _tmp20_;
+       const gchar* _tmp21_;
+       JsonObject* _tmp22_;
+       gchar** bits = NULL;
+       const gchar* _tmp23_;
+       gchar** _tmp24_;
+       gchar** _tmp25_;
+       gint bits_length1;
+       gint _bits_size_;
+       gchar** _tmp26_;
+       gint _tmp26__length1;
+#line 627 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 627 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       g_return_val_if_fail (name != NULL, NULL);
+#line 629 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp0_ = self->priv->class_tree_map;
+#line 629 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp1_ = name;
+#line 629 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp2_ = gee_abstract_map_has_key ((GeeAbstractMap*) _tmp0_, _tmp1_);
+#line 629 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       if (_tmp2_) {
+#line 4637 "DocBuilder.c"
+               JsonObject* ret = NULL;
+               GeeHashMap* _tmp3_;
+               const gchar* _tmp4_;
+               gpointer _tmp5_;
+               gboolean _tmp6_ = FALSE;
+               JsonObject* _tmp7_;
+               gboolean _tmp8_;
+#line 630 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp3_ = self->priv->class_tree_map;
+#line 630 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp4_ = name;
+#line 630 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp5_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp3_, _tmp4_);
+#line 630 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               ret = (JsonObject*) _tmp5_;
+#line 631 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp7_ = ret;
+#line 631 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp8_ = json_object_get_boolean_member (_tmp7_, "is_class");
+#line 631 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               if (!_tmp8_) {
+#line 4659 "DocBuilder.c"
+                       gboolean _tmp9_;
+#line 631 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp9_ = is_class;
+#line 631 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp6_ = _tmp9_;
+#line 4665 "DocBuilder.c"
+               } else {
+#line 631 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp6_ = FALSE;
+#line 4669 "DocBuilder.c"
+               }
+#line 631 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               if (_tmp6_) {
+#line 4673 "DocBuilder.c"
+                       JsonObject* _tmp10_;
+                       gboolean _tmp11_;
+#line 632 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp10_ = ret;
+#line 632 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp11_ = is_class;
+#line 632 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       json_object_set_boolean_member (_tmp10_, "is_class", _tmp11_);
+#line 4682 "DocBuilder.c"
+               }
+#line 634 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _vala_is_new = FALSE;
+#line 635 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               result = ret;
+#line 635 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               if (is_new) {
+#line 635 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       *is_new = _vala_is_new;
+#line 4692 "DocBuilder.c"
+               }
+#line 635 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               return result;
+#line 4696 "DocBuilder.c"
+       }
+#line 639 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp12_ = name;
+#line 639 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       g_debug ("DocBuilder.vala:639: Class Tree: new object %s", _tmp12_);
+#line 640 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp13_ = json_object_new ();
+#line 640 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       add = _tmp13_;
+#line 641 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp14_ = add;
+#line 641 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp15_ = name;
+#line 641 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       json_object_set_string_member (_tmp14_, "name", _tmp15_);
+#line 642 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp16_ = add;
+#line 642 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp17_ = json_array_new ();
+#line 642 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       json_object_set_array_member (_tmp16_, "cn", _tmp17_);
+#line 643 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp18_ = add;
+#line 643 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp19_ = is_class;
+#line 643 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       json_object_set_boolean_member (_tmp18_, "is_class", _tmp19_);
+#line 644 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp20_ = self->priv->class_tree_map;
+#line 644 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp21_ = name;
+#line 644 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp22_ = add;
+#line 644 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       gee_abstract_map_set ((GeeAbstractMap*) _tmp20_, _tmp21_, _tmp22_);
+#line 645 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp23_ = name;
+#line 645 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp25_ = _tmp24_ = g_strsplit (_tmp23_, ".", 0);
+#line 645 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       bits = _tmp25_;
+#line 645 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       bits_length1 = _vala_array_length (_tmp24_);
+#line 645 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _bits_size_ = bits_length1;
+#line 646 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp26_ = bits;
+#line 646 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp26__length1 = bits_length1;
+#line 646 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       if (_tmp26__length1 == 1) {
+#line 4748 "DocBuilder.c"
+               JsonArray* _tmp27_;
+               JsonObject* _tmp28_;
+               JsonObject* _tmp29_;
+#line 648 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp27_ = self->priv->class_tree_top;
+#line 648 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp28_ = add;
+#line 648 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp29_ = _json_object_ref0 (_tmp28_);
+#line 648 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               json_array_add_object_element (_tmp27_, _tmp29_);
+#line 4760 "DocBuilder.c"
+       }
+#line 651 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _vala_is_new = TRUE;
+#line 653 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       result = add;
+#line 653 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       bits = (_vala_array_free (bits, bits_length1, (GDestroyNotify) g_free), NULL);
+#line 653 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       if (is_new) {
+#line 653 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               *is_new = _vala_is_new;
+#line 4772 "DocBuilder.c"
+       }
+#line 653 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       return result;
+#line 4776 "DocBuilder.c"
+}
+
+
+static void _vala_array_add8 (gchar** * array, int* length, int* size, gchar* value) {
+#line 668 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       if ((*length) == (*size)) {
+#line 668 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               *size = (*size) ? (2 * (*size)) : 4;
+#line 668 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               *array = g_renew (gchar*, *array, (*size) + 1);
+#line 4787 "DocBuilder.c"
+       }
+#line 668 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       (*array)[(*length)++] = value;
+#line 668 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       (*array)[*length] = NULL;
+#line 4793 "DocBuilder.c"
+}
+
+
+static gchar* _vala_g_strjoinv (const gchar* separator, gchar** str_array, int str_array_length1) {
+       gchar* result = NULL;
+       const gchar* _tmp0_;
+       gboolean _tmp1_ = FALSE;
+       gboolean _tmp2_ = FALSE;
+       gchar** _tmp3_;
+       gint _tmp3__length1;
+#line 1078 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp0_ = separator;
+#line 1078 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if (_tmp0_ == NULL) {
+#line 1079 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               separator = "";
+#line 4810 "DocBuilder.c"
+       }
+#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp3_ = str_array;
+#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp3__length1 = str_array_length1;
+#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if (_tmp3_ != NULL) {
+#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp2_ = TRUE;
+#line 4820 "DocBuilder.c"
+       } else {
+               gchar** _tmp4_;
+               gint _tmp4__length1;
+#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp4_ = str_array;
+#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp4__length1 = str_array_length1;
+#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp2_ = _tmp4__length1 > 0;
+#line 4830 "DocBuilder.c"
+       }
+#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if (_tmp2_) {
+#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp1_ = TRUE;
+#line 4836 "DocBuilder.c"
+       } else {
+               gboolean _tmp5_ = FALSE;
+               gchar** _tmp6_;
+               gint _tmp6__length1;
+#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp6_ = str_array;
+#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp6__length1 = str_array_length1;
+#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               if (_tmp6__length1 == -1) {
+#line 4847 "DocBuilder.c"
+                       gchar** _tmp7_;
+                       gint _tmp7__length1;
+                       const gchar* _tmp8_;
+#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       _tmp7_ = str_array;
+#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       _tmp7__length1 = str_array_length1;
+#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       _tmp8_ = _tmp7_[0];
+#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       _tmp5_ = _tmp8_ != NULL;
+#line 4859 "DocBuilder.c"
+               } else {
+#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       _tmp5_ = FALSE;
+#line 4863 "DocBuilder.c"
+               }
+#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp1_ = _tmp5_;
+#line 4867 "DocBuilder.c"
+       }
+#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if (_tmp1_) {
+#line 4871 "DocBuilder.c"
+               gint i = 0;
+               gsize len = 0UL;
+               gint _tmp31_;
+               gint _tmp33_;
+               gint _tmp34_;
+               gsize _tmp35_;
+               const gchar* _tmp36_;
+               gint _tmp37_;
+               gint _tmp38_;
+               gint _tmp39_;
+               const gchar* res = NULL;
+               gsize _tmp40_;
+               void* _tmp41_;
+               void* ptr = NULL;
+               const gchar* _tmp42_;
+               gchar** _tmp43_;
+               gint _tmp43__length1;
+               const gchar* _tmp44_;
+               void* _tmp45_;
+               const gchar* _tmp62_;
+#line 1083 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               len = (gsize) 1;
+#line 4894 "DocBuilder.c"
+               {
+                       gboolean _tmp9_ = FALSE;
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       i = 0;
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       _tmp9_ = TRUE;
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       while (TRUE) {
+#line 4903 "DocBuilder.c"
+                               gboolean _tmp11_ = FALSE;
+                               gboolean _tmp12_ = FALSE;
+                               gchar** _tmp13_;
+                               gint _tmp13__length1;
+                               gint _tmp21_ = 0;
+                               gchar** _tmp22_;
+                               gint _tmp22__length1;
+                               gint _tmp23_;
+                               const gchar* _tmp24_;
+                               gsize _tmp30_;
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               if (!_tmp9_) {
+#line 4916 "DocBuilder.c"
+                                       gint _tmp10_;
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp10_ = i;
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       i = _tmp10_ + 1;
+#line 4922 "DocBuilder.c"
+                               }
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               _tmp9_ = FALSE;
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               _tmp13_ = str_array;
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               _tmp13__length1 = str_array_length1;
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               if (_tmp13__length1 != -1) {
+#line 4932 "DocBuilder.c"
+                                       gint _tmp14_;
+                                       gchar** _tmp15_;
+                                       gint _tmp15__length1;
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp14_ = i;
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp15_ = str_array;
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp15__length1 = str_array_length1;
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp12_ = _tmp14_ < _tmp15__length1;
+#line 4944 "DocBuilder.c"
+                               } else {
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp12_ = FALSE;
+#line 4948 "DocBuilder.c"
+                               }
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               if (_tmp12_) {
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp11_ = TRUE;
+#line 4954 "DocBuilder.c"
+                               } else {
+                                       gboolean _tmp16_ = FALSE;
+                                       gchar** _tmp17_;
+                                       gint _tmp17__length1;
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp17_ = str_array;
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp17__length1 = str_array_length1;
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       if (_tmp17__length1 == -1) {
+#line 4965 "DocBuilder.c"
+                                               gchar** _tmp18_;
+                                               gint _tmp18__length1;
+                                               gint _tmp19_;
+                                               const gchar* _tmp20_;
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                               _tmp18_ = str_array;
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                               _tmp18__length1 = str_array_length1;
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                               _tmp19_ = i;
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                               _tmp20_ = _tmp18_[_tmp19_];
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                               _tmp16_ = _tmp20_ != NULL;
+#line 4980 "DocBuilder.c"
+                                       } else {
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                               _tmp16_ = FALSE;
+#line 4984 "DocBuilder.c"
+                                       }
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp11_ = _tmp16_;
+#line 4988 "DocBuilder.c"
+                               }
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               if (!_tmp11_) {
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       break;
+#line 4994 "DocBuilder.c"
+                               }
+#line 1085 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               _tmp22_ = str_array;
+#line 1085 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               _tmp22__length1 = str_array_length1;
+#line 1085 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               _tmp23_ = i;
+#line 1085 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               _tmp24_ = _tmp22_[_tmp23_];
+#line 1085 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               if (_tmp24_ != NULL) {
+#line 5006 "DocBuilder.c"
+                                       gchar** _tmp25_;
+                                       gint _tmp25__length1;
+                                       gint _tmp26_;
+                                       const gchar* _tmp27_;
+                                       gint _tmp28_;
+                                       gint _tmp29_;
+#line 1085 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp25_ = str_array;
+#line 1085 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp25__length1 = str_array_length1;
+#line 1085 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp26_ = i;
+#line 1085 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp27_ = _tmp25_[_tmp26_];
+#line 1085 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp28_ = strlen ((const gchar*) _tmp27_);
+#line 1085 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp29_ = _tmp28_;
+#line 1085 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp21_ = _tmp29_;
+#line 5027 "DocBuilder.c"
+                               } else {
+#line 1085 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp21_ = 0;
+#line 5031 "DocBuilder.c"
+                               }
+#line 1085 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               _tmp30_ = len;
+#line 1085 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               len = _tmp30_ + _tmp21_;
+#line 5037 "DocBuilder.c"
+                       }
+               }
+#line 1087 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp31_ = i;
+#line 1087 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               if (_tmp31_ == 0) {
+#line 5044 "DocBuilder.c"
+                       gchar* _tmp32_;
+#line 1088 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       _tmp32_ = g_strdup ("");
+#line 1088 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       result = _tmp32_;
+#line 1088 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       return result;
+#line 5052 "DocBuilder.c"
+               }
+#line 1090 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp33_ = i;
+#line 1090 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               str_array_length1 = _tmp33_;
+#line 1090 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp34_ = str_array_length1;
+#line 1091 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp35_ = len;
+#line 1091 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp36_ = separator;
+#line 1091 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp37_ = strlen ((const gchar*) _tmp36_);
+#line 1091 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp38_ = _tmp37_;
+#line 1091 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp39_ = i;
+#line 1091 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               len = _tmp35_ + (_tmp38_ * (_tmp39_ - 1));
+#line 1093 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp40_ = len;
+#line 1093 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp41_ = g_malloc (_tmp40_);
+#line 1093 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               res = _tmp41_;
+#line 1094 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp42_ = res;
+#line 1094 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp43_ = str_array;
+#line 1094 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp43__length1 = str_array_length1;
+#line 1094 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp44_ = _tmp43_[0];
+#line 1094 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp45_ = g_stpcpy ((void*) _tmp42_, (const gchar*) _tmp44_);
+#line 1094 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               ptr = _tmp45_;
+#line 5090 "DocBuilder.c"
+               {
+                       gboolean _tmp46_ = FALSE;
+#line 1095 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       i = 1;
+#line 1095 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       _tmp46_ = TRUE;
+#line 1095 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       while (TRUE) {
+#line 5099 "DocBuilder.c"
+                               gint _tmp48_;
+                               gchar** _tmp49_;
+                               gint _tmp49__length1;
+                               void* _tmp50_;
+                               const gchar* _tmp51_;
+                               void* _tmp52_;
+                               const gchar* _tmp53_ = NULL;
+                               gchar** _tmp54_;
+                               gint _tmp54__length1;
+                               gint _tmp55_;
+                               const gchar* _tmp56_;
+                               void* _tmp60_;
+                               void* _tmp61_;
+#line 1095 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               if (!_tmp46_) {
+#line 5115 "DocBuilder.c"
+                                       gint _tmp47_;
+#line 1095 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp47_ = i;
+#line 1095 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       i = _tmp47_ + 1;
+#line 5121 "DocBuilder.c"
+                               }
+#line 1095 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               _tmp46_ = FALSE;
+#line 1095 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               _tmp48_ = i;
+#line 1095 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               _tmp49_ = str_array;
+#line 1095 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               _tmp49__length1 = str_array_length1;
+#line 1095 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               if (!(_tmp48_ < _tmp49__length1)) {
+#line 1095 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       break;
+#line 5135 "DocBuilder.c"
+                               }
+#line 1096 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               _tmp50_ = ptr;
+#line 1096 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               _tmp51_ = separator;
+#line 1096 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               _tmp52_ = g_stpcpy (_tmp50_, (const gchar*) _tmp51_);
+#line 1096 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               ptr = _tmp52_;
+#line 1097 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               _tmp54_ = str_array;
+#line 1097 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               _tmp54__length1 = str_array_length1;
+#line 1097 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               _tmp55_ = i;
+#line 1097 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               _tmp56_ = _tmp54_[_tmp55_];
+#line 1097 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               if (_tmp56_ != NULL) {
+#line 5155 "DocBuilder.c"
+                                       gchar** _tmp57_;
+                                       gint _tmp57__length1;
+                                       gint _tmp58_;
+                                       const gchar* _tmp59_;
+#line 1097 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp57_ = str_array;
+#line 1097 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp57__length1 = str_array_length1;
+#line 1097 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp58_ = i;
+#line 1097 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp59_ = _tmp57_[_tmp58_];
+#line 1097 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp53_ = (const gchar*) _tmp59_;
+#line 5170 "DocBuilder.c"
+                               } else {
+#line 1097 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp53_ = "";
+#line 5174 "DocBuilder.c"
+                               }
+#line 1097 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               _tmp60_ = ptr;
+#line 1097 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               _tmp61_ = g_stpcpy (_tmp60_, _tmp53_);
+#line 1097 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               ptr = _tmp61_;
+#line 5182 "DocBuilder.c"
+                       }
+               }
+#line 1100 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp62_ = res;
+#line 1100 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               res = NULL;
+#line 1100 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               result = (gchar*) _tmp62_;
+#line 1100 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               return result;
+#line 5193 "DocBuilder.c"
+       } else {
+               gchar* _tmp63_;
+#line 1102 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp63_ = g_strdup ("");
+#line 1102 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               result = _tmp63_;
+#line 1102 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               return result;
+#line 5202 "DocBuilder.c"
+       }
+}
+
+
+static void jsdoc_doc_builder_class_tree_make_parents (JSDOCDocBuilder* self, JsonObject* add) {
+       gchar* name = NULL;
+       JsonObject* _tmp0_;
+       const gchar* _tmp1_;
+       gchar* _tmp2_;
+       gchar** bits = NULL;
+       const gchar* _tmp3_;
+       gchar** _tmp4_;
+       gchar** _tmp5_;
+       gint bits_length1;
+       gint _bits_size_;
+       gchar** _tmp6_;
+       gint _tmp6__length1;
+       gchar** nn = NULL;
+       gchar** _tmp7_;
+       gint nn_length1;
+       gint _nn_size_;
+       gchar* pname = NULL;
+       gchar** _tmp17_;
+       gint _tmp17__length1;
+       gchar* _tmp18_;
+       const gchar* _tmp19_;
+       const gchar* _tmp20_;
+       gboolean is_new = FALSE;
+       JsonObject* parent = NULL;
+       const gchar* _tmp21_;
+       gboolean _tmp22_ = FALSE;
+       JsonObject* _tmp23_;
+       JsonObject* _tmp24_;
+       JsonArray* _tmp25_;
+       JsonObject* _tmp26_;
+       JsonObject* _tmp27_;
+       gboolean _tmp28_;
+#line 657 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       g_return_if_fail (self != NULL);
+#line 657 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       g_return_if_fail (add != NULL);
+#line 659 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp0_ = add;
+#line 659 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp1_ = json_object_get_string_member (_tmp0_, "name");
+#line 659 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp2_ = g_strdup (_tmp1_);
+#line 659 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       name = _tmp2_;
+#line 660 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp3_ = name;
+#line 660 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp5_ = _tmp4_ = g_strsplit (_tmp3_, ".", 0);
+#line 660 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       bits = _tmp5_;
+#line 660 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       bits_length1 = _vala_array_length (_tmp4_);
+#line 660 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _bits_size_ = bits_length1;
+#line 661 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp6_ = bits;
+#line 661 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp6__length1 = bits_length1;
+#line 661 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       if (_tmp6__length1 < 2) {
+#line 662 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               bits = (_vala_array_free (bits, bits_length1, (GDestroyNotify) g_free), NULL);
+#line 662 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _g_free0 (name);
+#line 662 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               return;
+#line 5274 "DocBuilder.c"
+       }
+#line 666 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp7_ = g_new0 (gchar*, 0 + 1);
+#line 666 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       nn = _tmp7_;
+#line 666 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       nn_length1 = 0;
+#line 666 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _nn_size_ = nn_length1;
+#line 5284 "DocBuilder.c"
+       {
+               gint i = 0;
+#line 667 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               i = 0;
+#line 5289 "DocBuilder.c"
+               {
+                       gboolean _tmp8_ = FALSE;
+#line 667 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp8_ = TRUE;
+#line 667 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       while (TRUE) {
+#line 5296 "DocBuilder.c"
+                               gint _tmp10_;
+                               gchar** _tmp11_;
+                               gint _tmp11__length1;
+                               gchar** _tmp12_;
+                               gint _tmp12__length1;
+                               gchar** _tmp13_;
+                               gint _tmp13__length1;
+                               gint _tmp14_;
+                               const gchar* _tmp15_;
+                               gchar* _tmp16_;
+#line 667 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               if (!_tmp8_) {
+#line 5309 "DocBuilder.c"
+                                       gint _tmp9_;
+#line 667 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       _tmp9_ = i;
+#line 667 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       i = _tmp9_ + 1;
+#line 5315 "DocBuilder.c"
+                               }
+#line 667 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp8_ = FALSE;
+#line 667 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp10_ = i;
+#line 667 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp11_ = bits;
+#line 667 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp11__length1 = bits_length1;
+#line 667 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               if (!(_tmp10_ < (_tmp11__length1 - 1))) {
+#line 667 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                                       break;
+#line 5329 "DocBuilder.c"
+                               }
+#line 668 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp12_ = nn;
+#line 668 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp12__length1 = nn_length1;
+#line 668 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp13_ = bits;
+#line 668 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp13__length1 = bits_length1;
+#line 668 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp14_ = i;
+#line 668 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp15_ = _tmp13_[_tmp14_];
+#line 668 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp16_ = g_strdup (_tmp15_);
+#line 668 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _vala_array_add8 (&nn, &nn_length1, &_nn_size_, _tmp16_);
+#line 5347 "DocBuilder.c"
+                       }
+               }
+       }
+#line 670 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp17_ = nn;
+#line 670 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp17__length1 = nn_length1;
+#line 670 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp18_ = _vala_g_strjoinv (".", _tmp17_, _tmp17__length1);
+#line 670 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       pname = _tmp18_;
+#line 671 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp19_ = name;
+#line 671 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp20_ = pname;
+#line 671 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       g_debug ("DocBuilder.vala:671: Class Tree: adding to parent %s => %s", _tmp19_, _tmp20_);
+#line 675 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp21_ = pname;
+#line 675 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp23_ = jsdoc_doc_builder_class_tree_new_obj (self, _tmp21_, FALSE, &_tmp22_);
+#line 675 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       is_new = _tmp22_;
+#line 675 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       parent = _tmp23_;
+#line 676 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp24_ = parent;
+#line 676 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp25_ = json_object_get_array_member (_tmp24_, "cn");
+#line 676 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp26_ = add;
+#line 676 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp27_ = _json_object_ref0 (_tmp26_);
+#line 676 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       json_array_add_object_element (_tmp25_, _tmp27_);
+#line 677 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp28_ = is_new;
+#line 677 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       if (_tmp28_) {
+#line 5387 "DocBuilder.c"
+               JsonObject* _tmp29_;
+#line 678 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp29_ = parent;
+#line 678 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               jsdoc_doc_builder_class_tree_make_parents (self, _tmp29_);
+#line 5393 "DocBuilder.c"
+       }
+#line 657 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _json_object_unref0 (parent);
+#line 657 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_free0 (pname);
+#line 657 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       nn = (_vala_array_free (nn, nn_length1, (GDestroyNotify) g_free), NULL);
+#line 657 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       bits = (_vala_array_free (bits, bits_length1, (GDestroyNotify) g_free), NULL);
+#line 657 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_free0 (name);
+#line 5405 "DocBuilder.c"
+}
+
+
+static JsonArray* jsdoc_doc_builder_class_tree (JSDOCDocBuilder* self, GeeArrayList* classes) {
+       JsonArray* result = NULL;
+       JsonArray* _tmp0_;
+       GeeHashMap* _tmp1_;
+       JsonArray* _tmp34_;
+       JsonArray* _tmp35_;
+#line 683 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 683 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       g_return_val_if_fail (classes != NULL, NULL);
+#line 709 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp0_ = json_array_new ();
+#line 709 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _json_array_unref0 (self->priv->class_tree_top);
+#line 709 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       self->priv->class_tree_top = _tmp0_;
+#line 710 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp1_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, json_object_get_type (), (GBoxedCopyFunc) json_object_ref, (GDestroyNotify) json_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 710 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_object_unref0 (self->priv->class_tree_map);
+#line 710 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       self->priv->class_tree_map = _tmp1_;
+#line 5431 "DocBuilder.c"
+       {
+               GeeArrayList* _cls_list = NULL;
+               GeeArrayList* _tmp2_;
+               GeeArrayList* _tmp3_;
+               gint _cls_size = 0;
+               GeeArrayList* _tmp4_;
+               gint _tmp5_;
+               gint _tmp6_;
+               gint _cls_index = 0;
+#line 711 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp2_ = classes;
+#line 711 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp3_ = _g_object_ref0 (_tmp2_);
+#line 711 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _cls_list = _tmp3_;
+#line 711 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp4_ = _cls_list;
+#line 711 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp5_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp4_);
+#line 711 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp6_ = _tmp5_;
+#line 711 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _cls_size = _tmp6_;
+#line 711 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _cls_index = -1;
+#line 711 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               while (TRUE) {
+#line 5459 "DocBuilder.c"
+                       gint _tmp7_;
+                       gint _tmp8_;
+                       gint _tmp9_;
+                       JSDOCSymbol* cls = NULL;
+                       GeeArrayList* _tmp10_;
+                       gint _tmp11_;
+                       gpointer _tmp12_;
+                       gboolean _tmp13_ = FALSE;
+                       gboolean _tmp14_ = FALSE;
+                       JSDOCSymbol* _tmp15_;
+                       const gchar* _tmp16_;
+                       gint _tmp17_;
+                       gint _tmp18_;
+                       gboolean is_new = FALSE;
+                       gboolean _tmp23_ = FALSE;
+                       JSDOCSymbol* _tmp24_;
+                       GeeArrayList* _tmp25_;
+                       gint _tmp26_;
+                       gint _tmp27_;
+                       JsonObject* add = NULL;
+                       JSDOCSymbol* _tmp28_;
+                       const gchar* _tmp29_;
+                       gboolean _tmp30_ = FALSE;
+                       JsonObject* _tmp31_;
+                       JsonObject* _tmp32_;
+#line 711 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp7_ = _cls_index;
+#line 711 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _cls_index = _tmp7_ + 1;
+#line 711 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp8_ = _cls_index;
+#line 711 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp9_ = _cls_size;
+#line 711 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       if (!(_tmp8_ < _tmp9_)) {
+#line 711 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               break;
+#line 5497 "DocBuilder.c"
+                       }
+#line 711 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp10_ = _cls_list;
+#line 711 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp11_ = _cls_index;
+#line 711 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp12_ = gee_abstract_list_get ((GeeAbstractList*) _tmp10_, _tmp11_);
+#line 711 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       cls = (JSDOCSymbol*) _tmp12_;
+#line 712 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp15_ = cls;
+#line 712 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp16_ = _tmp15_->alias;
+#line 712 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp17_ = strlen (_tmp16_);
+#line 712 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp18_ = _tmp17_;
+#line 712 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       if (_tmp18_ < 1) {
+#line 712 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp14_ = TRUE;
+#line 5519 "DocBuilder.c"
+                       } else {
+                               JSDOCSymbol* _tmp19_;
+                               const gchar* _tmp20_;
+#line 712 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp19_ = cls;
+#line 712 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp20_ = _tmp19_->alias;
+#line 712 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp14_ = g_strcmp0 (_tmp20_, "this") == 0;
+#line 5529 "DocBuilder.c"
+                       }
+#line 712 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       if (_tmp14_) {
+#line 712 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp13_ = TRUE;
+#line 5535 "DocBuilder.c"
+                       } else {
+                               JSDOCSymbol* _tmp21_;
+                               const gchar* _tmp22_;
+#line 712 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp21_ = cls;
+#line 712 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp22_ = _tmp21_->alias;
+#line 712 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp13_ = g_strcmp0 (_tmp22_, "_global_") == 0;
+#line 5545 "DocBuilder.c"
+                       }
+#line 712 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       if (_tmp13_) {
+#line 713 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _g_object_unref0 (cls);
+#line 713 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               continue;
+#line 5553 "DocBuilder.c"
+                       }
+#line 716 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp24_ = cls;
+#line 716 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp25_ = _tmp24_->methods;
+#line 716 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp26_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp25_);
+#line 716 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp27_ = _tmp26_;
+#line 716 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       if (_tmp27_ > 0) {
+#line 716 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp23_ = TRUE;
+#line 5567 "DocBuilder.c"
+                       } else {
+#line 716 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp23_ = FALSE;
+#line 5571 "DocBuilder.c"
+                       }
+#line 716 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp28_ = cls;
+#line 716 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp29_ = _tmp28_->alias;
+#line 716 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp31_ = jsdoc_doc_builder_class_tree_new_obj (self, _tmp29_, _tmp23_, &_tmp30_);
+#line 716 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       is_new = _tmp30_;
+#line 716 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       add = _tmp31_;
+#line 717 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp32_ = add;
+#line 717 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       if (_tmp32_ != NULL) {
+#line 5587 "DocBuilder.c"
+                               JsonObject* _tmp33_;
+#line 718 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _tmp33_ = add;
+#line 718 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               jsdoc_doc_builder_class_tree_make_parents (self, _tmp33_);
+#line 5593 "DocBuilder.c"
+                       }
+#line 711 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _json_object_unref0 (add);
+#line 711 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _g_object_unref0 (cls);
+#line 5599 "DocBuilder.c"
+               }
+#line 711 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _g_object_unref0 (_cls_list);
+#line 5603 "DocBuilder.c"
+       }
+#line 723 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp34_ = self->priv->class_tree_top;
+#line 723 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp35_ = _json_array_ref0 (_tmp34_);
+#line 723 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       result = _tmp35_;
+#line 723 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       return result;
+#line 5613 "DocBuilder.c"
+}
+
+
+static gchar* jsdoc_doc_builder_srcFileRelName (JSDOCDocBuilder* self, const gchar* sourceFile) {
+       gchar* result = NULL;
+       gchar* rp = NULL;
+       const gchar* _tmp0_;
+       gchar* _tmp1_;
+       JSDOCPackerRun* _tmp2_;
+       JSDOCPackerRun* _tmp3_;
+       const gchar* _tmp4_;
+       gint _tmp5_;
+       gint _tmp6_;
+       gchar* _tmp7_;
+       gchar* _tmp8_;
+#line 729 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 729 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       g_return_val_if_fail (sourceFile != NULL, NULL);
+#line 731 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp0_ = sourceFile;
+#line 731 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp1_ = realpath (_tmp0_, NULL);
+#line 731 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       rp = _tmp1_;
+#line 732 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp2_ = jsdoc_packer_run_singleton ();
+#line 732 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp3_ = _tmp2_;
+#line 732 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp4_ = _tmp3_->opt_real_basedir;
+#line 732 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp5_ = strlen (_tmp4_);
+#line 732 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp6_ = _tmp5_;
+#line 732 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp7_ = string_substring (rp, (glong) _tmp6_, (glong) -1);
+#line 732 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp8_ = _tmp7_;
+#line 732 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_object_unref0 (_tmp3_);
+#line 732 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       result = _tmp8_;
+#line 732 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_free0 (rp);
+#line 732 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       return result;
+#line 5661 "DocBuilder.c"
+}
+
+
+static inline GRegex* _thread_safe_regex_init (GRegex** re, const gchar * pattern, GRegexMatchFlags match_options) {
+#line 737 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       if (g_once_init_enter ((volatile gsize*) re)) {
+#line 737 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               GRegex* val = g_regex_new (pattern, match_options, 0, NULL);
+#line 737 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               g_once_init_leave ((volatile gsize*) re, (gsize) val);
+#line 5672 "DocBuilder.c"
+       }
+#line 737 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       return *re;
+#line 5676 "DocBuilder.c"
+}
+
+
+static gchar* string_replace (const gchar* self, const gchar* old, const gchar* replacement) {
+       gchar* result = NULL;
+       gboolean _tmp0_ = FALSE;
+       gboolean _tmp1_ = FALSE;
+       GError * _inner_error_ = NULL;
+#line 1407 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 1407 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (old != NULL, NULL);
+#line 1407 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (replacement != NULL, NULL);
+#line 1408 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if ((*((gchar*) self)) == '\0') {
+#line 1408 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp1_ = TRUE;
+#line 5695 "DocBuilder.c"
+       } else {
+               const gchar* _tmp2_;
+#line 1408 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp2_ = old;
+#line 1408 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp1_ = (*((gchar*) _tmp2_)) == '\0';
+#line 5702 "DocBuilder.c"
+       }
+#line 1408 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if (_tmp1_) {
+#line 1408 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp0_ = TRUE;
+#line 5708 "DocBuilder.c"
+       } else {
+               const gchar* _tmp3_;
+               const gchar* _tmp4_;
+#line 1408 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp3_ = old;
+#line 1408 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp4_ = replacement;
+#line 1408 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp0_ = g_strcmp0 (_tmp3_, _tmp4_) == 0;
+#line 5718 "DocBuilder.c"
+       }
+#line 1408 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if (_tmp0_) {
+#line 5722 "DocBuilder.c"
+               gchar* _tmp5_;
+#line 1409 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp5_ = g_strdup (self);
+#line 1409 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               result = _tmp5_;
+#line 1409 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               return result;
+#line 5730 "DocBuilder.c"
+       }
+       {
+               GRegex* regex = NULL;
+               const gchar* _tmp6_;
+               gchar* _tmp7_;
+               gchar* _tmp8_;
+               GRegex* _tmp9_;
+               GRegex* _tmp10_;
+               gchar* _tmp11_ = NULL;
+               GRegex* _tmp12_;
+               const gchar* _tmp13_;
+               gchar* _tmp14_;
+               gchar* _tmp15_;
+#line 1412 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp6_ = old;
+#line 1412 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp7_ = g_regex_escape_string (_tmp6_, -1);
+#line 1412 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp8_ = _tmp7_;
+#line 1412 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp9_ = g_regex_new (_tmp8_, 0, 0, &_inner_error_);
+#line 1412 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp10_ = _tmp9_;
+#line 1412 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _g_free0 (_tmp8_);
+#line 1412 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               regex = _tmp10_;
+#line 1412 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1412 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       if (_inner_error_->domain == G_REGEX_ERROR) {
+#line 5762 "DocBuilder.c"
+                               goto __catch5_g_regex_error;
+                       }
+#line 1412 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       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);
+#line 1412 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       g_clear_error (&_inner_error_);
+#line 1412 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       return NULL;
+#line 5771 "DocBuilder.c"
+               }
+#line 1413 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp12_ = regex;
+#line 1413 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp13_ = replacement;
+#line 1413 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp14_ = g_regex_replace_literal (_tmp12_, self, (gssize) -1, 0, _tmp13_, 0, &_inner_error_);
+#line 1413 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp11_ = _tmp14_;
+#line 1413 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1413 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       _g_regex_unref0 (regex);
+#line 1413 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       if (_inner_error_->domain == G_REGEX_ERROR) {
+#line 5787 "DocBuilder.c"
+                               goto __catch5_g_regex_error;
+                       }
+#line 1413 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       _g_regex_unref0 (regex);
+#line 1413 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       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);
+#line 1413 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       g_clear_error (&_inner_error_);
+#line 1413 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       return NULL;
+#line 5798 "DocBuilder.c"
+               }
+#line 1413 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp15_ = _tmp11_;
+#line 1413 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp11_ = NULL;
+#line 1413 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               result = _tmp15_;
+#line 1413 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _g_free0 (_tmp11_);
+#line 1413 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _g_regex_unref0 (regex);
+#line 1413 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               return result;
+#line 5812 "DocBuilder.c"
+       }
+       goto __finally5;
+       __catch5_g_regex_error:
+       {
+               GError* e = NULL;
+#line 1411 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               e = _inner_error_;
+#line 1411 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _inner_error_ = NULL;
+#line 1415 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               g_assert_not_reached ();
+#line 1411 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _g_error_free0 (e);
+#line 5826 "DocBuilder.c"
+       }
+       __finally5:
+#line 1411 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1411 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               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);
+#line 1411 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               g_clear_error (&_inner_error_);
+#line 1411 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               return NULL;
+#line 5837 "DocBuilder.c"
+       }
+}
+
+
+static gchar* jsdoc_doc_builder_srcFileFlatName (JSDOCDocBuilder* self, const gchar* sourceFile) {
+       gchar* result = NULL;
+       gchar* name = NULL;
+       const gchar* _tmp0_;
+       gchar* _tmp1_;
+       gchar* _tmp2_ = NULL;
+       const gchar* _tmp3_;
+       const gchar* _tmp4_;
+       gint _tmp5_;
+       gint _tmp6_;
+       gchar* _tmp7_;
+       gchar* _tmp8_;
+       const gchar* _tmp9_;
+       gchar* _tmp10_;
+       gchar* _tmp11_;
+       gchar* _tmp12_;
+       gchar* _tmp13_;
+       gchar* _tmp14_;
+       GError * _inner_error_ = NULL;
+#line 734 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 734 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       g_return_val_if_fail (sourceFile != NULL, NULL);
+#line 736 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp0_ = sourceFile;
+#line 736 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp1_ = jsdoc_doc_builder_srcFileRelName (self, _tmp0_);
+#line 736 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       name = _tmp1_;
+#line 737 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp3_ = name;
+#line 737 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp4_ = name;
+#line 737 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp5_ = strlen (_tmp4_);
+#line 737 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp6_ = _tmp5_;
+#line 737 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp7_ = g_regex_replace (_thread_safe_regex_init (&_tmp_regex_0, "\\.\\.?[\\/]", 0), _tmp3_, (gssize) _tmp6_, 0, "", 0, &_inner_error_);
+#line 737 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp2_ = _tmp7_;
+#line 737 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 737 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _g_free0 (name);
+#line 737 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               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);
+#line 737 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               g_clear_error (&_inner_error_);
+#line 737 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               return NULL;
+#line 5893 "DocBuilder.c"
+       }
+#line 737 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp8_ = _tmp2_;
+#line 737 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp2_ = NULL;
+#line 737 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_free0 (name);
+#line 737 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       name = _tmp8_;
+#line 738 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp9_ = name;
+#line 738 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp10_ = string_replace (_tmp9_, "/", "_");
+#line 738 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp11_ = _tmp10_;
+#line 738 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp12_ = string_replace (_tmp11_, ":", "_");
+#line 738 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp13_ = _tmp12_;
+#line 738 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp14_ = g_strconcat (_tmp13_, ".html", NULL);
+#line 738 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_free0 (name);
+#line 738 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       name = _tmp14_;
+#line 738 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_free0 (_tmp13_);
+#line 738 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_free0 (_tmp11_);
+#line 739 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       result = name;
+#line 739 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_free0 (_tmp2_);
+#line 739 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       return result;
+#line 5929 "DocBuilder.c"
+}
+
+
+static void jsdoc_doc_builder_makeSrcFile (JSDOCDocBuilder* self, const gchar* sourceFile) {
+       gchar* name = NULL;
+       const gchar* _tmp0_;
+       gchar* _tmp1_;
+       JSDOCPackerRun* _tmp2_;
+       JSDOCPackerRun* _tmp3_;
+       const gchar* _tmp4_;
+       const gchar* _tmp5_;
+       gchar* str = NULL;
+       gchar* _tmp6_;
+       const gchar* _tmp7_;
+       gchar* _tmp8_ = NULL;
+       gchar* pretty = NULL;
+       const gchar* _tmp9_;
+       gchar* _tmp10_;
+       gchar* fname = NULL;
+       JSDOCPackerRun* _tmp11_;
+       JSDOCPackerRun* _tmp12_;
+       const gchar* _tmp13_;
+       gchar* _tmp14_;
+       gchar* _tmp15_;
+       const gchar* _tmp16_;
+       gchar* _tmp17_;
+       gchar* _tmp18_;
+       gchar* tmp = NULL;
+       const gchar* _tmp19_;
+       const gchar* _tmp20_;
+       gchar* _tmp21_;
+       gchar* _tmp22_;
+       gchar* _tmp23_;
+       gchar* _tmp24_;
+       const gchar* _tmp25_;
+       const gchar* _tmp26_;
+       gchar* _tmp27_;
+       gchar* _tmp28_;
+       gchar* _tmp29_;
+       gchar* _tmp30_;
+       gchar* _tmp31_;
+       gchar* _tmp32_;
+       gchar* _tmp33_;
+       gchar* _tmp34_;
+       gchar* _tmp35_;
+       gchar* _tmp36_;
+       const gchar* _tmp37_;
+       gchar* _tmp38_;
+       gchar* _tmp39_;
+       gchar* _tmp40_;
+       gchar* _tmp41_;
+       const gchar* _tmp42_;
+       gboolean _tmp43_;
+       const gchar* _tmp53_;
+       GFile* _tmp54_;
+       GFile* _tmp55_;
+       const gchar* _tmp56_;
+       GFile* _tmp57_;
+       GFile* _tmp58_;
+       GError * _inner_error_ = NULL;
+#line 743 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       g_return_if_fail (self != NULL);
+#line 743 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       g_return_if_fail (sourceFile != NULL);
+#line 752 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp0_ = sourceFile;
+#line 752 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp1_ = jsdoc_doc_builder_srcFileFlatName (self, _tmp0_);
+#line 752 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       name = _tmp1_;
+#line 754 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp2_ = jsdoc_packer_run_singleton ();
+#line 754 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp3_ = _tmp2_;
+#line 754 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp4_ = _tmp3_->opt_doc_target;
+#line 754 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp5_ = name;
+#line 754 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       g_debug ("DocBuilder.vala:754: Write Source file : %s/src/%s", _tmp4_, _tmp5_);
+#line 754 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_object_unref0 (_tmp3_);
+#line 756 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp6_ = g_strdup ("");
+#line 756 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       str = _tmp6_;
+#line 757 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp7_ = sourceFile;
+#line 757 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       g_file_get_contents (_tmp7_, &_tmp8_, NULL, &_inner_error_);
+#line 757 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_free0 (str);
+#line 757 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       str = _tmp8_;
+#line 757 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 757 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _g_free0 (str);
+#line 757 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _g_free0 (name);
+#line 757 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               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);
+#line 757 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               g_clear_error (&_inner_error_);
+#line 757 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               return;
+#line 6036 "DocBuilder.c"
+       }
+#line 758 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp9_ = str;
+#line 758 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp10_ = jsdoc_pretty_print_toPretty (_tmp9_);
+#line 758 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       pretty = _tmp10_;
+#line 759 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp11_ = jsdoc_packer_run_singleton ();
+#line 759 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp12_ = _tmp11_;
+#line 759 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp13_ = _tmp12_->opt_doc_target;
+#line 759 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp14_ = g_strconcat (_tmp13_, "/src/", NULL);
+#line 759 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp15_ = _tmp14_;
+#line 759 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp16_ = name;
+#line 759 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp17_ = g_strconcat (_tmp15_, _tmp16_, NULL);
+#line 759 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp18_ = _tmp17_;
+#line 759 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_free0 (_tmp15_);
+#line 759 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_object_unref0 (_tmp12_);
+#line 759 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       fname = _tmp18_;
+#line 761 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp19_ = self->priv->tempdir;
+#line 761 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp20_ = fname;
+#line 761 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp21_ = g_path_get_basename (_tmp20_);
+#line 761 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp22_ = _tmp21_;
+#line 761 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp23_ = g_strconcat (_tmp19_, _tmp22_, NULL);
+#line 761 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp24_ = _tmp23_;
+#line 761 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_free0 (_tmp22_);
+#line 761 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       tmp = _tmp24_;
+#line 762 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp25_ = tmp;
+#line 762 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp26_ = sourceFile;
+#line 762 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp27_ = jsdoc_doc_builder_srcFileRelName (self, _tmp26_);
+#line 762 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp28_ = _tmp27_;
+#line 762 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp29_ = g_strconcat ("<html><head>" "<title>", _tmp28_, NULL);
+#line 762 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp30_ = _tmp29_;
+#line 762 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp31_ = g_strconcat (_tmp30_, "</title>", NULL);
+#line 762 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp32_ = _tmp31_;
+#line 762 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp33_ = g_strconcat (_tmp32_, "<link rel=\"stylesheet\" type=\"text/css\" href=\"../../css/highlight-" \
+"js.css\"/>", NULL);
+#line 762 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp34_ = _tmp33_;
+#line 762 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp35_ = g_strconcat (_tmp34_, "</head><body class=\"highlightpage\">", NULL);
+#line 762 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp36_ = _tmp35_;
+#line 762 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp37_ = pretty;
+#line 762 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp38_ = g_strconcat (_tmp36_, _tmp37_, NULL);
+#line 762 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp39_ = _tmp38_;
+#line 762 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp40_ = g_strconcat (_tmp39_, "</body></html>", NULL);
+#line 762 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp41_ = _tmp40_;
+#line 762 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       g_file_set_contents (_tmp25_, _tmp41_, (gssize) -1, &_inner_error_);
+#line 762 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_free0 (_tmp41_);
+#line 762 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_free0 (_tmp39_);
+#line 762 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_free0 (_tmp36_);
+#line 762 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_free0 (_tmp34_);
+#line 762 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_free0 (_tmp32_);
+#line 762 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_free0 (_tmp30_);
+#line 762 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_free0 (_tmp28_);
+#line 762 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 762 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _g_free0 (tmp);
+#line 762 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _g_free0 (fname);
+#line 762 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _g_free0 (pretty);
+#line 762 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _g_free0 (str);
+#line 762 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _g_free0 (name);
+#line 762 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               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);
+#line 762 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               g_clear_error (&_inner_error_);
+#line 762 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               return;
+#line 6150 "DocBuilder.c"
+       }
+#line 772 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp42_ = fname;
+#line 772 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp43_ = g_file_test (_tmp42_, G_FILE_TEST_EXISTS);
+#line 772 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       if (_tmp43_) {
+#line 6158 "DocBuilder.c"
+               gchar* new_data = NULL;
+               gchar* old_data = NULL;
+               const gchar* _tmp44_;
+               gchar* _tmp45_ = NULL;
+               const gchar* _tmp46_;
+               gchar* _tmp47_ = NULL;
+               const gchar* _tmp48_;
+               const gchar* _tmp49_;
+#line 774 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp44_ = tmp;
+#line 774 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               g_file_get_contents (_tmp44_, &_tmp45_, NULL, &_inner_error_);
+#line 774 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _g_free0 (new_data);
+#line 774 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               new_data = _tmp45_;
+#line 774 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 774 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _g_free0 (old_data);
+#line 774 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _g_free0 (new_data);
+#line 774 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _g_free0 (tmp);
+#line 774 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _g_free0 (fname);
+#line 774 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _g_free0 (pretty);
+#line 774 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _g_free0 (str);
+#line 774 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _g_free0 (name);
+#line 774 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       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);
+#line 774 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       g_clear_error (&_inner_error_);
+#line 774 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       return;
+#line 6197 "DocBuilder.c"
+               }
+#line 775 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp46_ = fname;
+#line 775 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               g_file_get_contents (_tmp46_, &_tmp47_, NULL, &_inner_error_);
+#line 775 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _g_free0 (old_data);
+#line 775 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               old_data = _tmp47_;
+#line 775 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 775 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _g_free0 (old_data);
+#line 775 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _g_free0 (new_data);
+#line 775 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _g_free0 (tmp);
+#line 775 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _g_free0 (fname);
+#line 775 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _g_free0 (pretty);
+#line 775 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _g_free0 (str);
+#line 775 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _g_free0 (name);
+#line 775 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       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);
+#line 775 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       g_clear_error (&_inner_error_);
+#line 775 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       return;
+#line 6229 "DocBuilder.c"
+               }
+#line 776 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp48_ = old_data;
+#line 776 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _tmp49_ = new_data;
+#line 776 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               if (g_strcmp0 (_tmp48_, _tmp49_) == 0) {
+#line 6237 "DocBuilder.c"
+                       const gchar* _tmp50_;
+                       GFile* _tmp51_;
+                       GFile* _tmp52_;
+#line 777 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp50_ = tmp;
+#line 777 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp51_ = g_file_new_for_path (_tmp50_);
+#line 777 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _tmp52_ = _tmp51_;
+#line 777 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       g_file_delete (_tmp52_, NULL, &_inner_error_);
+#line 777 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _g_object_unref0 (_tmp52_);
+#line 777 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 777 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _g_free0 (old_data);
+#line 777 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _g_free0 (new_data);
+#line 777 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _g_free0 (tmp);
+#line 777 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _g_free0 (fname);
+#line 777 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _g_free0 (pretty);
+#line 777 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _g_free0 (str);
+#line 777 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               _g_free0 (name);
+#line 777 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               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);
+#line 777 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               g_clear_error (&_inner_error_);
+#line 777 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                               return;
+#line 6273 "DocBuilder.c"
+                       }
+#line 778 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _g_free0 (old_data);
+#line 778 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _g_free0 (new_data);
+#line 778 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _g_free0 (tmp);
+#line 778 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _g_free0 (fname);
+#line 778 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _g_free0 (pretty);
+#line 778 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _g_free0 (str);
+#line 778 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       _g_free0 (name);
+#line 778 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+                       return;
+#line 6291 "DocBuilder.c"
+               }
+#line 772 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _g_free0 (old_data);
+#line 772 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _g_free0 (new_data);
+#line 6297 "DocBuilder.c"
+       }
+#line 782 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp53_ = tmp;
+#line 782 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp54_ = g_file_new_for_path (_tmp53_);
+#line 782 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp55_ = _tmp54_;
+#line 782 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp56_ = fname;
+#line 782 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp57_ = g_file_new_for_path (_tmp56_);
+#line 782 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp58_ = _tmp57_;
+#line 782 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       g_file_move (_tmp55_, _tmp58_, G_FILE_COPY_OVERWRITE, NULL, NULL, NULL, &_inner_error_);
+#line 782 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_object_unref0 (_tmp58_);
+#line 782 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_object_unref0 (_tmp55_);
+#line 782 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 782 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _g_free0 (tmp);
+#line 782 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _g_free0 (fname);
+#line 782 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _g_free0 (pretty);
+#line 782 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _g_free0 (str);
+#line 782 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               _g_free0 (name);
+#line 782 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               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);
+#line 782 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               g_clear_error (&_inner_error_);
+#line 782 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+               return;
+#line 6335 "DocBuilder.c"
+       }
+#line 743 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_free0 (tmp);
+#line 743 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_free0 (fname);
+#line 743 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_free0 (pretty);
+#line 743 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_free0 (str);
+#line 743 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_free0 (name);
+#line 6347 "DocBuilder.c"
+}
+
+
+static void jsdoc_doc_builder_class_init (JSDOCDocBuilderClass * klass) {
+#line 7 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       jsdoc_doc_builder_parent_class = g_type_class_peek_parent (klass);
+#line 7 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       g_type_class_add_private (klass, sizeof (JSDOCDocBuilderPrivate));
+#line 7 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       G_OBJECT_CLASS (klass)->finalize = jsdoc_doc_builder_finalize;
+#line 6358 "DocBuilder.c"
+}
+
+
+static void jsdoc_doc_builder_instance_init (JSDOCDocBuilder * self) {
+       gchar* _tmp0_;
+#line 7 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       self->priv = JSDOC_DOC_BUILDER_GET_PRIVATE (self);
+#line 12 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _tmp0_ = g_strdup ("1.0.0");
+#line 12 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       self->VERSION = _tmp0_;
+#line 6370 "DocBuilder.c"
+}
+
+
+static void jsdoc_doc_builder_finalize (GObject * obj) {
+       JSDOCDocBuilder * self;
+#line 7 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       self = G_TYPE_CHECK_INSTANCE_CAST (obj, JSDOC_TYPE_DOC_BUILDER, JSDOCDocBuilder);
+#line 12 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_free0 (self->VERSION);
+#line 14 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_object_unref0 (self->priv->symbolSet);
+#line 16 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_object_unref0 (self->priv->packer);
+#line 217 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_free0 (self->priv->tempdir);
+#line 624 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _g_object_unref0 (self->priv->class_tree_map);
+#line 625 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       _json_array_unref0 (self->priv->class_tree_top);
+#line 7 "/home/alan/gitlive/roojspacker/src/jsdoc/DocBuilder.vala"
+       G_OBJECT_CLASS (jsdoc_doc_builder_parent_class)->finalize (obj);
+#line 6392 "DocBuilder.c"
+}
+
+
+GType jsdoc_doc_builder_get_type (void) {
+       static volatile gsize jsdoc_doc_builder_type_id__volatile = 0;
+       if (g_once_init_enter (&jsdoc_doc_builder_type_id__volatile)) {
+               static const GTypeInfo g_define_type_info = { sizeof (JSDOCDocBuilderClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) jsdoc_doc_builder_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (JSDOCDocBuilder), 0, (GInstanceInitFunc) jsdoc_doc_builder_instance_init, NULL };
+               GType jsdoc_doc_builder_type_id;
+               jsdoc_doc_builder_type_id = g_type_register_static (G_TYPE_OBJECT, "JSDOCDocBuilder", &g_define_type_info, 0);
+               g_once_init_leave (&jsdoc_doc_builder_type_id__volatile, jsdoc_doc_builder_type_id);
+       }
+       return jsdoc_doc_builder_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;
+}
+
+
+
diff --git a/jsdoc/DocBuilder.vala b/jsdoc/DocBuilder.vala
new file mode 100644 (file)
index 0000000..bc281c5
--- /dev/null
@@ -0,0 +1,801 @@
+
+namespace JSDOC 
+{
+
+       class DocBuilder : Object 
+       {
+               
+               // extractable via JSON?
+               public string VERSION = "1.0.0" ;
+               
+               private SymbolSet symbolSet;
+               
+               private Packer packer;
+       
+               public DocBuilder (Packer p) 
+               {
+                       
+                       GLib.debug("Roo JsDoc Toolkit started  at %s ",  (new GLib.DateTime.now_local()).format("Y/m/d H:i:s"));
+                       
+                       this.packer = p;
+        
+                   //if (PackerRun.singleton().opt_tmp_dir != null && !FileUtils.test(PackerRun.singleton().opt_tmp_dir, GLib.FileTest.IS_DIR)) {   
+                   //    Posix.mkdir(PackerRun.singleton().opt_tmp_dir, 0700);
+                   //}
+        
+       
+                   this.parseSrcFiles();
+                   
+                   this.symbolSet = DocParser.symbols();
+                    
+                   // this currently uses the concept of publish.js...
+                   
+                   this.publish();
+        
+        
+               }
+               
+        
+               
+               /**
+                * Parse the source files.
+                * 
+                */
+               private void parseSrcFiles() 
+               {
+                  
+                   
+                   
+                   //var useCache = PackerRun.opt_cache_dir == null ;
+                   //var cacheFile = "";
+                   
+                   for (var i = 0, l = this.packer.files.size; i < l; i++) {
+                       
+                       var srcFile = this.packer.files.get(i);
+                       GLib.debug("Parsing source File: %s", srcFile);
+                    /*   
+                       if (useCache) {
+                       
+                               cacheFile = PackerRun.opt_cache_dir + srcFile.replace("/", '_') + ".cache";
+                                   
+                                   //print(cacheFile);
+                                   // disabled at present!@!!
+                                   
+                                   if (GLib.FileUtils.test(cacheFile, GLib.FileTest.EXISTS)) {
+                                       // check filetime?
+                                       var cache_mt = File.new_for_path (cacheFile).queryInfo(FileAttribute.TIME_MODIFIED,
+                                                           GLib.FileQueryInfoFlags.NONE, null).
+                                                           get_modification_time();
+                                       var original_mt = File.new_for_path (sourceInfo).queryInfo(FileAttribute.TIME_MODIFIED,
+                                                           GLib.FileQueryInfoFlags.NONE, null).
+                                                           get_modification_time();
+                                       // this check does not appear to work according to the doc's - need to check it out.
+                                      
+                                       if (cache_mt > original_mt) { // cached time  > original time!
+                                           // use the cached mtimes..
+                                           GLib.debug("Read %s" , cacheFile);
+                                                       var parser = new Json.Parser();
+                                           parser.load_from_file(cacheFile);
+                                           var ar = parser.get_root ().get_array();
+
+                                           for(var i = 0;i < ar.get_length();i++) {
+                                                       var o = ar.get_object_element(i);
+                                                       var sym = JSON.gobject_from_data(typeof(Symbol), o) as Symbol;
+                                                       DocParser.symbols.add(sym);
+                                               }
+                                               continue;
+                                       }
+                           }
+                       }
+                      */ 
+                       var src = "";
+                       try {
+                           GLib.debug("reading : %s" , srcFile);
+                           GLib.FileUtils.get_contents(srcFile, out src);
+                       }
+                       catch(GLib.FileError e) {
+                           GLib.debug("Can't read source file '%s': %s", srcFile, e.message);
+                           continue;
+                       }
+
+                         
+                       
+                       var tr = new  TokenReader(this.packer);
+                               tr.keepDocs = true;
+                               tr.keepWhite = true;
+                               tr.keepComments = true;
+                               tr.sepIdents = false;
+                               tr.collapseWhite = false;
+                               tr.filename = src;
+                       
+
+                       var toks = tr.tokenize( new TextStream(src) );
+                       if (PackerRun.singleton().opt_dump_tokens) {
+                                       toks.dump();
+                                       return;
+                                       //GLib.Process.exit(0);
+                               }
+                       
+                       
+                       var ts = new TokenStream(toks.tokens);
+                   
+                   
+                   
+                                
+                       DocParser.parse(ts, srcFile);
+                       /*
+                       if (useCache) {
+                               
+                               var ar = DocParser.symbolsToObject(srcFile);
+                               
+                               var builder = new Json.Builder ();
+                               builder.begin_array ();
+                               for (var i=0;i<ar.size;i++) {
+                               
+                                               builder.add_object_value (ar.get(i));
+                                       }
+                                       builder.end_array ();
+                                       Json.Generator generator = new Json.Generator ();
+                                       Json.Node root = builder.get_root ();
+                                       generator.set_root (root);
+                                       generator.pretty=  true;
+                                       generator.ident = 2;
+                                       generator.to_file(cacheFile);
+                       
+                        
+                           
+                                }
+                                */
+                   }
+                   
+                    
+                   
+                   DocParser.finish();
+               }
+               /*
+
+            //var txs =
+            
+            var tr = new  TokenReader(this.packer);
+                       tr.keepDocs = true;
+                       tr.keepWhite = true;
+                       tr.keepComments = true;
+                       tr.sepIdents = false;
+                       tr.collapseWhite = false;
+                       tr.filename = src;
+            
+
+            var toks = tr.tokenize( new TextStream(src));
+            if (PackerRun.opt_dump_tokens) {
+                               toks.dump();
+                               return "";
+                               //GLib.Process.exit(0);
+                       }
+            
+            
+            var ts = new TokenStream(toks);
+        
+        
+        
+                     
+            DocParser.parse(ts, srcFile);
+            
+            if (useCache) {
+                       
+                       var ar = DocParser.symbolsToObject(srcFile);
+                       
+                       var builder = new Json.Builder ();
+               builder.begin_array ();
+               for (var i=0;i<ar.size;i++) {
+               
+                                       builder.add_object_value (ar.get(i));
+                               }
+                               builder.end_array ();
+                               Json.Generator generator = new Json.Generator ();
+                               Json.Node root = builder.get_root ();
+                               generator.set_root (root);
+                               generator.pretty=  true;
+                               generator.ident = 2;
+                               generator.to_file(cacheFile);
+            
+             
+                
+    //         }
+        }
+        
+        
+        
+        Parser.finish();
+    }
+    
+     */
+       string tempdir;
+        
+               void publish() 
+               {
+                   GLib.debug("Publishing");
+                    
+                   // link!!!
+                   this.tempdir = GLib.DirUtils.make_tmp("roopackerXXXXXX");
+                   
+                   GLib.debug("Making directories");
+                   if (!FileUtils.test (PackerRun.singleton().opt_doc_target,FileTest.IS_DIR )) {
+                       Posix.mkdir(PackerRun.singleton().opt_doc_target,0755);
+                   }
+                   if (!FileUtils.test(PackerRun.singleton().opt_doc_target+"/symbols",FileTest.IS_DIR)) {
+                       Posix.mkdir(PackerRun.singleton().opt_doc_target+"/symbols",0755);
+                   }
+                   if (!FileUtils.test(PackerRun.singleton().opt_doc_target+"/src",FileTest.IS_DIR)) {
+                       Posix.mkdir(PackerRun.singleton().opt_doc_target+"/src",0755);
+                   }
+                   if (!FileUtils.test(PackerRun.singleton().opt_doc_target +"/json",FileTest.IS_DIR)) {
+                       Posix.mkdir(PackerRun.singleton().opt_doc_target +"/json",0755);
+                   }
+                   
+                   GLib.debug("Copying files from static: %s " , PackerRun.singleton().opt_doc_template_dir);
+                   // copy everything in 'static' into 
+                   
+                   if (PackerRun.singleton().opt_doc_template_dir  != null) {
+                               
+                               var iter = GLib.File.new_for_path(
+                                               PackerRun.singleton().opt_doc_template_dir + "/static"
+                                       ).enumerate_children (
+                                       "standard::*",
+                                       FileQueryInfoFlags.NOFOLLOW_SYMLINKS, 
+                                       null);
+                               FileInfo info;
+                               
+                               while ( (info = iter.next_file (null)) != null) {
+                                       if (info.get_file_type () == FileType.DIRECTORY) {
+                                               continue;
+                                       } 
+                                       var src = File.new_for_path(info.get_name());
+                                   GLib.debug("Copy %s to %s/%s" ,
+                                        info.get_name() ,
+                                         PackerRun.singleton().opt_doc_target , src.get_basename());                   
+                               
+                                       src.copy(
+                                               GLib.File.new_for_path(
+                                                       PackerRun.singleton().opt_doc_target + "/" + src.get_basename()
+                                               ),
+                                               GLib.FileCopyFlags.OVERWRITE
+                                       );
+                               }
+               
+                       }                   
+                   GLib.debug("Setting up templates");
+                    
+                   
+                   
+                   var symbols = this.symbolSet.values();
+                   
+                   var files = this.packer.files;
+                   
+                   for (var i = 0, l = files.size; i < l; i++) {
+                       var file = files.get(i);
+                      // var targetDir = PackerRun.singleton().opt_doc_target + "/symbols/src/";
+                       this.makeSrcFile(file);
+                   }
+                   //print(JSON.stringify(symbols,null,4));
+                   var classes = new Gee.ArrayList<Symbol>();
+                   
+                   foreach(var symbol in symbols) {
+                               if (symbol.isaClass()) { 
+                                       classes.add(symbol);
+                               }
+                   }    
+                   classes.sort( (a,b) => {
+                               return a.alias.collate(b.alias); 
+                       });
+                    
+                    //GLib.debug("classTemplate Process : all classes");
+                       
+                  // var classesIndex = classesTemplate.process(classes); // kept in memory
+                   
+                   GLib.debug("iterate classes");
+                  
+                   var jsonAll = new Json.Object(); 
+                   
+                   for (var i = 0, l = classes.size; i < l; i++) {
+                       var symbol = classes.get(i);
+                       var output = "";
+                       
+                       GLib.debug("classTemplate Process : %s" , symbol.alias);
+                       
+                       
+                       var   class_gen = new Json.Generator ();
+                           var  class_root = new Json.Node(Json.NodeType.OBJECT);
+                               class_root.init_object(this.class_to_json(symbol));
+                               class_gen.set_root (class_root);
+                               class_gen.pretty=  true;
+                               class_gen.indent = 2;
+                               GLib.warning("writing JSON:  %s", PackerRun.singleton().opt_doc_target+"/symbols/" +symbol.alias+".json");
+                               this.writeJson(class_gen, PackerRun.singleton().opt_doc_target+"/symbols/" +symbol.alias+".json");
+                       
+                       jsonAll.set_object_member(symbol.alias,  this.publishJSON(symbol));
+
+                   }
+                   
+                   // outptu class truee
+                   
+                   var   class_tree_gen = new Json.Generator ();
+           var  class_tree_root = new Json.Node(Json.NodeType.ARRAY);
+                       class_tree_root.init_array(this.class_tree(classes));
+                       class_tree_gen.set_root (class_tree_root);
+                       class_tree_gen.pretty=  true;
+                       class_tree_gen.indent = 2;
+                       GLib.warning("writing JSON:  %s", PackerRun.singleton().opt_doc_target+"/tree.json");
+                       this.writeJson(class_tree_gen,PackerRun.singleton().opt_doc_target+"/tree.json");
+                       size_t class_tree_l;
+                       //GLib.debug("JSON: %s", class_tree_gen.to_data(out class_tree_l));
+                   
+                   
+                   
+                   /*---- this is our 'builder' json file.. -- a full list of objects+functions */
+                   
+                   
+                   var   generator = new Json.Generator ();
+           var  root = new Json.Node(Json.NodeType.OBJECT);
+                       root.init_object(jsonAll);
+                       generator.set_root (root);
+                       generator.pretty=  true;
+                       generator.indent = 2;
+                       GLib.warning("writing JSON:  %s", PackerRun.singleton().opt_doc_target+"/json/roodata.json");
+                       
+                       
+                       this.writeJson(generator,PackerRun.singleton().opt_doc_target+"/json/roodata.json");
+                       size_t l;
+                       //GLib.debug("JSON: %s", generator.to_data(out l));
+                   
+                   
+                    
+                   
+                   GLib.debug("build index");
+                  
+                   
+                   
+               }
+               
+               Json.Object class_to_json (Symbol cls)
+               {
+                       var ret = new Json.Object();
+                       ret.set_string_member("name", cls.alias);
+                       var ag = new Json.Array();
+                       ret.set_array_member("augments", ag);                   
+                       for(var ii = 0, il = cls.augments.size; ii < il; ii++) {
+                  var contributer = this.symbolSet.getSymbol(cls.augments[ii]);
+                  if (contributer == null) {
+                       continue;
+                       }
+                  ag.add_string_element(contributer.alias);
+            }
+            ret.set_string_member("name", cls.alias);  
+            ret.set_string_member("desc", cls.desc);
+               ret.set_boolean_member("isSingleton", cls.comment.getTag(DocTagTitle.SINGLETON).size > 0);
+               ret.set_boolean_member("isStatic", cls.isa != "CONSTRUCTOR");
+               ret.set_boolean_member("isBuiltin", cls.isBuiltin());
+               
+               // needded so that the class can fake a ctor..
+            ret.set_string_member("memberOf", cls.name);
+                       ret.set_string_member("example", cls.comment.getTagAsString(DocTagTitle.EXAMPLE));
+                   ret.set_string_member("deprecated", // as depricated is used as a flag...
+                                       cls.comment.getTag(DocTagTitle.DEPRECATED).size > 0 ? 
+                                       "This has been deprecated: "+  cls.comment.getTagAsString(DocTagTitle.DEPRECATED) : 
+                               "");
+               ret.set_string_member("since", cls.comment.getTagAsString(DocTagTitle.SINCE));
+               ret.set_string_member("see", cls.comment.getTagAsString(DocTagTitle.SINCE));
+                       // not supported or used yet?
+                       //add.set_string_member("exceptions", m.comment.getTagAsString(DocTagTitle.EXCEPTIONS));
+                       //add.set_string_member("requires", m.comment.getTagAsString(DocTagTitle.REQUIRES));
+               ret.set_array_member("params", cls.paramsToJson());
+               ret.set_array_member("returns", new Json.Array()); 
+                               
+                       //ret.set_string_member("desc", cls.comment.getTagAsString(DocTagTitle.DESC));
+               /// fixme - @see ... any others..
+                       
+                       var props = new Json.Array(); 
+                       ret.set_array_member("config", props);
+                       var cfgProperties = cls.configToArray();
+                       for(var i =0; i < cfgProperties.size;i++) {
+                       var p = cfgProperties.get(i);
+                       var add = new Json.Object();
+                       add.set_string_member("name",p.name);
+                       add.set_string_member("type",p.type);
+                       add.set_string_member("desc",p.desc);
+                       add.set_string_member("memberOf",  p.memberOf);
+                       add.set_array_member("values",p.optvalues.size > 0 ? p.optvalue_as_json_array() : new Json.Array());
+                       props.add_object_element(add );
+                   }
+                    
+                   // methods
+
+                        
+                       var methods = new Json.Array();
+                       ret.set_array_member("methods", methods);                    
+                   foreach(var m in cls.methods) {
+                       if (m.isEvent || m.isIgnored) {
+                               continue;
+                       }
+                       
+                       var add = new Json.Object();
+                       add.set_string_member("name",m.name);
+                       //add.set_string_member("type","function");
+                       add.set_string_member("desc",m.desc);
+                       //add.set_string_member("sig", m.makeMethodSkel());
+                       add.set_boolean_member("isStatic", m.isStatic);
+                       add.set_boolean_member("isConstructor", m.isa == "CONSTRUCTOR");
+                       add.set_boolean_member("isPrivate", m.isPrivate);
+                       //add.set_string_member("instanceOf", m.comment.getTagAsString(DocTagTitle.INSTANCEOF));
+                       add.set_string_member("memberOf", m.memberOf);
+                       add.set_string_member("example", m.comment.getTagAsString(DocTagTitle.EXAMPLE));
+                       add.set_string_member("deprecated", // as depricated is used as a flag...
+                                       m.comment.getTag(DocTagTitle.DEPRECATED).size > 0 ? 
+                                       "This has been deprecated: "+  m.comment.getTagAsString(DocTagTitle.DEPRECATED) : 
+                                       "");
+                       add.set_string_member("since", m.comment.getTagAsString(DocTagTitle.SINCE));
+                       add.set_string_member("see", m.comment.getTagAsString(DocTagTitle.SINCE));
+                       // not supported or used yet?
+                       //add.set_string_member("exceptions", m.comment.getTagAsString(DocTagTitle.EXCEPTIONS));
+                       //add.set_string_member("requires", m.comment.getTagAsString(DocTagTitle.REQUIRES));
+                       add.set_array_member("params", m.paramsToJson());
+                       add.set_array_member("returns", m.returnsToJson());
+                       
+                       /// fixme - @see ... any others..
+                         
+                       
+                       methods.add_object_element(add);
+                   }
+                   
+                   
+                       var events = new Json.Array();
+                       ret.set_array_member("events", events);              
+                   foreach(var m in cls.methods) {
+                       if (!m.isEvent || m.isIgnored) {
+                               continue;
+                       }
+                       
+                       var add = new Json.Object();
+                       add.set_string_member("name",m.name.substring(1)); // all prefixed with '*'...
+                       //add.set_string_member("type","function");
+                       add.set_string_member("desc",m.desc);
+                       //add.set_string_member("sig", m.makeMethodSkel());
+
+                       add.set_string_member("memberOf", m.memberOf);
+                       add.set_string_member("example", m.comment.getTagAsString(DocTagTitle.EXAMPLE));
+                       add.set_string_member("deprecated", // as depricated is used as a flag...
+                                       m.comment.getTag(DocTagTitle.DEPRECATED).size > 0 ? 
+                                       "This has been deprecated: "+  m.comment.getTagAsString(DocTagTitle.DEPRECATED) : 
+                                       "");
+                       add.set_string_member("since", m.comment.getTagAsString(DocTagTitle.SINCE));
+                       add.set_string_member("see", m.comment.getTagAsString(DocTagTitle.SINCE));
+                       // not supported or used yet?
+                       //add.set_string_member("exceptions", m.comment.getTagAsString(DocTagTitle.EXCEPTIONS));
+                       //add.set_string_member("requires", m.comment.getTagAsString(DocTagTitle.REQUIRES));
+                       
+                       add.set_array_member("params", m.paramsToJson());
+                       add.set_array_member("returns", m.returnsToJson());
+                       
+                       /// fixme - @see ... any others..
+                         
+                       
+                       events.add_object_element(add);
+                   }
+                   
+                       
+                       
+               
+                       return ret;
+               }
+               /**
+               * needed as Json dumps .xXXX into same directory as it writes...
+               */
+               void writeJson(Json.Generator g, string fname)
+               {
+                               var tmp = this.tempdir + GLib.Path.get_basename(fname);
+                               g.to_file(tmp);
+                               
+                               if (GLib.FileUtils.test(fname, GLib.FileTest.EXISTS)) {
+                                       string new_data, old_data;
+                                       FileUtils.get_contents(tmp, out new_data);
+                                       FileUtils.get_contents(fname, out old_data);
+                                       if (old_data == new_data) {
+                                               GLib.File.new_for_path(tmp).delete();
+                                               return;
+                                       }
+                          }
+                               
+                       GLib.File.new_for_path(tmp).move( File.new_for_path(fname), GLib.FileCopyFlags.OVERWRITE);
+                     
+               }
+               
+               /**
+                * JSON files are lookup files for the documentation
+                * - can be used by IDE's or AJAX based doc tools
+                * 
+                * 
+                */
+               Json.Object publishJSON (Symbol data)
+               {
+                   // what we need to output to be usefull...
+                   // a) props..
+                   var cfgProperties = new Gee.ArrayList<DocTag>();
+                   if (data.comment.getTag(DocTagTitle.SINGLETON).size < 1) {
+                        cfgProperties = data.configToArray();
+                        cfgProperties.sort((a,b) =>{
+                               return a.name.collate(b.name);
+                       }); 
+                       
+                   } 
+                   
+                   var props = new Json.Array(); 
+                   //println(cfgProperties.toSource());
+                   
+                   for(var i =0; i < cfgProperties.size;i++) {
+                       var p = cfgProperties.get(i);
+                       var add = new Json.Object();
+                       add.set_string_member("name",p.name);
+                       add.set_string_member("type",p.type);
+                       add.set_string_member("desc",p.desc);
+                       add.set_string_member("memberOf", p.memberOf == data.alias ? "" : p.memberOf);
+                           
+                       if (p.optvalues.size > 0) {
+                               add.set_array_member("desc",p.optvalue_as_json_array());
+                       }
+                       
+                       props.add_object_element(add );
+                   }
+                   
+                   ///// --- events
+                   var ownEvents = new Gee.ArrayList<Symbol>();
+                   for(var i =0; i < data.methods.size;i++) {
+                               var e = data.methods.get(i);
+                               if (e.isEvent && !e.isIgnored) {
+                                       ownEvents.add(e);
+                               }
+                       }; 
+                       ownEvents.sort((a,b) => {
+                               return a.name.collate(b.name);
+                       });
+                   
+                   var events = new Json.Array();
+                    
+                   for(var i =0; i < ownEvents.size;i++) {
+                       var m = ownEvents.get(i);
+                       var add = new Json.Object();
+                       add.set_string_member("name",m.name.substring(1,-1)); // remove'*' on events..
+                       add.set_string_member("type","function");
+                       add.set_string_member("desc",m.desc);
+                       add.set_string_member("sig", m.makeFuncSkel());
+                       add.set_string_member("memberOf", m.memberOf == data.alias ? "" : m.memberOf);                  
+                       events.add_object_element(add);
+                   } 
+                    
+                   // methods
+                   var ownMethods = new Gee.ArrayList<Symbol>();
+                   for(var i =0; i < data.methods.size;i++) {
+                               var e = data.methods.get(i);
+                               if (!e.isEvent && !e.isIgnored) {
+                                       ownMethods.add(e);
+                               }
+                       };
+                       ownMethods.sort((a,b) => {
+                               return a.name.collate(b.name);
+                       });
+                   
+                       var methods = new Json.Array();
+                    
+                   for(var i =0; i < ownMethods.size;i++) {
+                       var m = ownMethods.get(i);
+                       var add = new Json.Object();
+                       add.set_string_member("name",m.name);
+                       add.set_string_member("type","function");
+                       add.set_string_member("desc",m.desc);
+                       add.set_string_member("sig", m.makeMethodSkel());
+                       add.set_boolean_member("static", m.isStatic);
+                       add.set_string_member("memberOf", m.memberOf == data.alias ? "" : m.memberOf);  
+                       methods.add_object_element(add);
+                   }
+                    
+                   //println(props.toSource());
+                   // we need to output:
+                   //classname => {
+                   //    propname => 
+                   //        type=>
+                   //        desc=>
+                   //    }
+                       var ret =  new Json.Object();
+                       ret.set_array_member("props", props);
+                       ret.set_array_member("events", events);
+                       ret.set_array_member("methods", methods);
+               
+                   return ret;
+                   
+                   
+                   // b) methods
+                   // c) events
+                   
+                   
+               }
+               Gee.HashMap<string,Json.Object> class_tree_map;
+               Json.Array class_tree_top;
+               
+               Json.Object? class_tree_new_obj(string name, bool is_class, out bool is_new) 
+               {
+               if (this.class_tree_map.has_key(name)) {
+                       var ret = this.class_tree_map.get(name);
+                       if (!ret.get_boolean_member("is_class") && is_class) {
+                               ret.set_boolean_member("is_class", is_class);
+                       }
+                       is_new = false;
+                       return ret; // no need to do anything
+               
+               }
+               
+               GLib.debug("Class Tree: new object %s", name);
+               var add =  new Json.Object();
+               add.set_string_member("name", name);
+               add.set_array_member("cn", new Json.Array());
+               add.set_boolean_member("is_class", is_class);
+               this.class_tree_map.set(name, add);
+               var bits = name.split(".");
+               if (bits.length == 1) {
+                       // top level..
+                       this.class_tree_top.add_object_element(add);
+                        
+               } 
+               is_new = true;
+               
+                       return add;
+               
+               }
+               
+               void class_tree_make_parents(  Json.Object add)
+               {
+                       var name = add.get_string_member("name");
+                       var bits = name.split(".");
+               if (bits.length < 2) {
+                       return;
+               }
+               // got aaa.bb or aaa.bb.cc
+               // find the parent..
+               string[] nn = {};
+               for(var i=0; i < bits.length-1; i++) {
+                       nn += bits[i];
+               }
+               var pname = string.joinv(".", nn);
+               GLib.debug("Class Tree: adding to parent %s => %s", name, pname); 
+                        
+                       // no parent found.. make one..
+                       bool is_new;
+                       var parent = this.class_tree_new_obj(pname, false, out is_new); 
+                       parent.get_array_member("cn").add_object_element(add);
+                       if (is_new) {
+                               this.class_tree_make_parents(  parent);
+                       }
+               
+               
+               }
+               Json.Array class_tree (Gee.ArrayList<Symbol> classes )
+               {
+               
+               
+                   // produce a tree array that can be used to render the navigation.
+                   /*
+                   should produce:
+                   
+                   [
+                       {
+                               name : Roo,
+                               desc : ....
+                               is_class : true,
+                               cn : [
+                                       {
+                                               name : 'Roo.util',
+                                               basename : 'util',
+                                               is_class : false,
+                                               cn : [
+                                                       {
+                                                               ....
+                   
+                   to do this, we will need to create the objects in a hashmap
+                   Roo.util => Json.Object
+                   
+                   */
+                   this.class_tree_top = new Json.Array();
+                   this.class_tree_map = new Gee.HashMap<string,Json.Object>();
+                   foreach (var cls in classes) {
+                       if(cls.alias.length < 1 || cls.alias == "this" || cls.alias == "_global_") {
+                               continue;
+                       }
+                       bool is_new;
+                       var add =  this.class_tree_new_obj(cls.alias, cls.methods.size > 0 ? true : false,out is_new);
+                               if (add != null) {
+                                       this.class_tree_make_parents( add);
+                               }
+                       
+                   }
+                   
+                    return this.class_tree_top;
+                   
+               }
+               
+               
+               // in Link (js) ???
+               string srcFileRelName(string sourceFile)
+               {
+                       var rp = Posix.realpath(sourceFile);
+                       return rp.substring(PackerRun.singleton().opt_real_basedir.length);
+               }
+               string srcFileFlatName(string sourceFile)
+               {
+                   var name = this.srcFileRelName(sourceFile);
+                   name = /\.\.?[\/]/.replace(name, name.length, 0, "");
+                   name = name.replace("/", "_").replace(":", "_") + ".html";
+                   return name;
+               }
+               
+               
+               void makeSrcFile(string sourceFile) 
+               {
+                   // this stuff works...
+                   
+                  
+                   
+                       // this check does not appear to work according to the doc's - need to check it out.
+              
+                 
+                   var name = this.srcFileFlatName(sourceFile);
+                   
+                   GLib.debug("Write Source file : %s/src/%s", 
+               PackerRun.singleton().opt_doc_target, name);
+               var str = "";
+               FileUtils.get_contents(sourceFile, out str);
+                   var pretty = PrettyPrint.toPretty(str); 
+                    var fname = PackerRun.singleton().opt_doc_target+"/src/" + name;
+                   
+                   var tmp = this.tempdir + GLib.Path.get_basename(fname);
+                   FileUtils.set_contents(
+                       tmp, 
+                       "<html><head>" +
+                       "<title>" + this.srcFileRelName(sourceFile) + "</title>" +
+                       "<link rel=\"stylesheet\" type=\"text/css\" href=\"../../css/highlight-js.css\"/>" + 
+                       "</head><body class=\"highlightpage\">" +
+                       pretty +
+                       "</body></html>");
+                       
+                   // same content?
+                    if (GLib.FileUtils.test(fname, GLib.FileTest.EXISTS)) {
+                               string new_data, old_data;
+                               FileUtils.get_contents(tmp, out new_data);
+                               FileUtils.get_contents(fname, out old_data);
+                               if (old_data == new_data) {
+                                       GLib.File.new_for_path(tmp).delete();
+                                       return;
+                               }
+                    }
+                       
+               GLib.File.new_for_path(tmp).move( File.new_for_path(fname), GLib.FileCopyFlags.OVERWRITE);
+                     
+                   
+                   
+
+               }
+       }
+                
+}
+  
+
+
+
+
+
+
+
+
+
diff --git a/jsdoc/DocComment.c b/jsdoc/DocComment.c
new file mode 100644 (file)
index 0000000..137efa5
--- /dev/null
@@ -0,0 +1,1703 @@
+/* DocComment.c generated by valac 0.36.6, the Vala compiler
+ * generated from DocComment.vala, do not modify */
+
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gee.h>
+
+
+#define JSDOC_TYPE_DOC_COMMENT (jsdoc_doc_comment_get_type ())
+#define JSDOC_DOC_COMMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_DOC_COMMENT, JSDOCDocComment))
+#define JSDOC_DOC_COMMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_DOC_COMMENT, JSDOCDocCommentClass))
+#define JSDOC_IS_DOC_COMMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_DOC_COMMENT))
+#define JSDOC_IS_DOC_COMMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_DOC_COMMENT))
+#define JSDOC_DOC_COMMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_DOC_COMMENT, JSDOCDocCommentClass))
+
+typedef struct _JSDOCDocComment JSDOCDocComment;
+typedef struct _JSDOCDocCommentClass JSDOCDocCommentClass;
+typedef struct _JSDOCDocCommentPrivate JSDOCDocCommentPrivate;
+
+#define JSDOC_TYPE_DOC_TAG (jsdoc_doc_tag_get_type ())
+#define JSDOC_DOC_TAG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_DOC_TAG, JSDOCDocTag))
+#define JSDOC_DOC_TAG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_DOC_TAG, JSDOCDocTagClass))
+#define JSDOC_IS_DOC_TAG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_DOC_TAG))
+#define JSDOC_IS_DOC_TAG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_DOC_TAG))
+#define JSDOC_DOC_TAG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_DOC_TAG, JSDOCDocTagClass))
+
+typedef struct _JSDOCDocTag JSDOCDocTag;
+typedef struct _JSDOCDocTagClass JSDOCDocTagClass;
+#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_regex_unref0(var) ((var == NULL) ? NULL : (var = (g_regex_unref (var), NULL)))
+
+#define JSDOC_TYPE_DOC_TAG_TITLE (jsdoc_doc_tag_title_get_type ())
+typedef struct _JSDOCDocTagPrivate JSDOCDocTagPrivate;
+
+struct _JSDOCDocComment {
+       GObject parent_instance;
+       JSDOCDocCommentPrivate * priv;
+       gboolean isUserComment;
+       gboolean hasTags;
+       gchar* src;
+       GeeArrayList* tags;
+};
+
+struct _JSDOCDocCommentClass {
+       GObjectClass parent_class;
+};
+
+typedef enum  {
+       JSDOC_DOC_TAG_TITLE_NO_VALUE,
+       JSDOC_DOC_TAG_TITLE_PARAM,
+       JSDOC_DOC_TAG_TITLE_PROPERTY,
+       JSDOC_DOC_TAG_TITLE_CFG,
+       JSDOC_DOC_TAG_TITLE_EXAMPLE,
+       JSDOC_DOC_TAG_TITLE_SINGLETON,
+       JSDOC_DOC_TAG_TITLE_AUTHOR,
+       JSDOC_DOC_TAG_TITLE_METHOD,
+       JSDOC_DOC_TAG_TITLE_DESC,
+       JSDOC_DOC_TAG_TITLE_OVERVIEW,
+       JSDOC_DOC_TAG_TITLE_SINCE,
+       JSDOC_DOC_TAG_TITLE_CONSTANT,
+       JSDOC_DOC_TAG_TITLE_VERSION,
+       JSDOC_DOC_TAG_TITLE_DEPRECATED,
+       JSDOC_DOC_TAG_TITLE_SEE,
+       JSDOC_DOC_TAG_TITLE_CLASS,
+       JSDOC_DOC_TAG_TITLE_NAMESPACE,
+       JSDOC_DOC_TAG_TITLE_CONSTRUCTOR,
+       JSDOC_DOC_TAG_TITLE_STATIC,
+       JSDOC_DOC_TAG_TITLE_INNER,
+       JSDOC_DOC_TAG_TITLE_FIELD,
+       JSDOC_DOC_TAG_TITLE_FUNCTION,
+       JSDOC_DOC_TAG_TITLE_EVENT,
+       JSDOC_DOC_TAG_TITLE_NAME,
+       JSDOC_DOC_TAG_TITLE_RETURN,
+       JSDOC_DOC_TAG_TITLE_THROWS,
+       JSDOC_DOC_TAG_TITLE_REQUIRES,
+       JSDOC_DOC_TAG_TITLE_TYPE,
+       JSDOC_DOC_TAG_TITLE_PRIVATE,
+       JSDOC_DOC_TAG_TITLE_IGNORE,
+       JSDOC_DOC_TAG_TITLE_ARGUMENTS,
+       JSDOC_DOC_TAG_TITLE_EXTENDS,
+       JSDOC_DOC_TAG_TITLE_DEFAULT,
+       JSDOC_DOC_TAG_TITLE_MEMBEROF,
+       JSDOC_DOC_TAG_TITLE_PUBLIC,
+       JSDOC_DOC_TAG_TITLE_SCOPE,
+       JSDOC_DOC_TAG_TITLE_SCOPEALIAS
+} JSDOCDocTagTitle;
+
+struct _JSDOCDocTag {
+       GObject parent_instance;
+       JSDOCDocTagPrivate * priv;
+       JSDOCDocTagTitle title;
+       gchar* type;
+       gchar* name;
+       gboolean isOptional;
+       gchar* defaultValue;
+       gchar* desc;
+       GeeArrayList* optvalues;
+       gchar* memberOf;
+};
+
+struct _JSDOCDocTagClass {
+       GObjectClass parent_class;
+};
+
+
+static gpointer jsdoc_doc_comment_parent_class = NULL;
+static GRegex* jsdoc_doc_comment_has_tag_regex;
+static GRegex* jsdoc_doc_comment_has_tag_regex = NULL;
+static GRegex* jsdoc_doc_comment_tag_regex;
+static GRegex* jsdoc_doc_comment_tag_regex = NULL;
+static GRegex* jsdoc_doc_comment_comment_line_start_regex;
+static GRegex* jsdoc_doc_comment_comment_line_start_regex = NULL;
+static GRegex* jsdoc_doc_comment_comment_line_start_white_space_regex;
+static GRegex* jsdoc_doc_comment_comment_line_start_white_space_regex = NULL;
+static GRegex* jsdoc_doc_comment_comment_needs_desc_regex;
+static GRegex* jsdoc_doc_comment_comment_needs_desc_regex = NULL;
+extern gchar* jsdoc_doc_comment_shared;
+gchar* jsdoc_doc_comment_shared = NULL;
+static gboolean jsdoc_doc_comment_done_init;
+static gboolean jsdoc_doc_comment_done_init = FALSE;
+
+GType jsdoc_doc_comment_get_type (void) G_GNUC_CONST;
+GType jsdoc_doc_tag_get_type (void) G_GNUC_CONST;
+enum  {
+       JSDOC_DOC_COMMENT_DUMMY_PROPERTY
+};
+static void jsdoc_doc_comment_initRegex (void);
+JSDOCDocComment* jsdoc_doc_comment_new (const gchar* comment);
+JSDOCDocComment* jsdoc_doc_comment_construct (GType object_type, const gchar* comment);
+gchar* jsdoc_doc_comment_unwrapComment (const gchar* comment);
+static void jsdoc_doc_comment_fixDesc (JSDOCDocComment* self);
+JSDOCDocTag* jsdoc_doc_tag_new (const gchar* in_src);
+JSDOCDocTag* jsdoc_doc_tag_construct (GType object_type, const gchar* in_src);
+GType jsdoc_doc_tag_title_get_type (void) G_GNUC_CONST;
+GeeArrayList* jsdoc_doc_comment_getTag (JSDOCDocComment* self, JSDOCDocTagTitle tagTitle);
+gchar* jsdoc_doc_comment_getTagAsString (JSDOCDocComment* self, JSDOCDocTagTitle tagTitle);
+static void _vala_array_add9 (gchar** * array, int* length, int* size, gchar* value);
+static void jsdoc_doc_comment_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 GRegex* _tmp_regex_0 = NULL;
+static GRegex* _tmp_regex_1 = NULL;
+static GRegex* _tmp_regex_2 = NULL;
+static GRegex* _tmp_regex_3 = NULL;
+
+static void jsdoc_doc_comment_initRegex (void) {
+       gboolean _tmp0_;
+       GRegex* _tmp1_ = NULL;
+       GRegex* _tmp2_;
+       GRegex* _tmp3_;
+       GRegex* _tmp4_ = NULL;
+       GRegex* _tmp5_;
+       GRegex* _tmp6_;
+       GRegex* _tmp7_ = NULL;
+       GRegex* _tmp8_;
+       GRegex* _tmp9_;
+       GRegex* _tmp10_ = NULL;
+       GRegex* _tmp11_;
+       GRegex* _tmp12_;
+       GRegex* _tmp13_ = NULL;
+       GRegex* _tmp14_;
+       GRegex* _tmp15_;
+       GError * _inner_error_ = NULL;
+#line 38 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _tmp0_ = jsdoc_doc_comment_done_init;
+#line 38 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       if (_tmp0_) {
+#line 39 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+               return;
+#line 177 "DocComment.c"
+       }
+#line 41 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _tmp2_ = g_regex_new ("^\\s*@\\s*\\S+", 0, 0, &_inner_error_);
+#line 41 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _tmp1_ = _tmp2_;
+#line 41 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 41 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+               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);
+#line 41 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+               g_clear_error (&_inner_error_);
+#line 41 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+               return;
+#line 191 "DocComment.c"
+       }
+#line 41 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _tmp3_ = _tmp1_;
+#line 41 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _tmp1_ = NULL;
+#line 41 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _g_regex_unref0 (jsdoc_doc_comment_has_tag_regex);
+#line 41 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       jsdoc_doc_comment_has_tag_regex = _tmp3_;
+#line 43 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _tmp5_ = g_regex_new ("(^|[\\r\\n])\\s*@", 0, 0, &_inner_error_);
+#line 43 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _tmp4_ = _tmp5_;
+#line 43 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 43 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+               _g_regex_unref0 (_tmp1_);
+#line 43 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+               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);
+#line 43 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+               g_clear_error (&_inner_error_);
+#line 43 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+               return;
+#line 215 "DocComment.c"
+       }
+#line 43 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _tmp6_ = _tmp4_;
+#line 43 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _tmp4_ = NULL;
+#line 43 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _g_regex_unref0 (jsdoc_doc_comment_tag_regex);
+#line 43 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       jsdoc_doc_comment_tag_regex = _tmp6_;
+#line 46 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _tmp8_ = g_regex_new ("(^\\/\\*\\*|\\*\\/$)", 0, 0, &_inner_error_);
+#line 46 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _tmp7_ = _tmp8_;
+#line 46 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 46 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+               _g_regex_unref0 (_tmp4_);
+#line 46 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+               _g_regex_unref0 (_tmp1_);
+#line 46 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+               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);
+#line 46 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+               g_clear_error (&_inner_error_);
+#line 46 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+               return;
+#line 241 "DocComment.c"
+       }
+#line 46 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _tmp9_ = _tmp7_;
+#line 46 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _tmp7_ = NULL;
+#line 46 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _g_regex_unref0 (jsdoc_doc_comment_comment_line_start_regex);
+#line 46 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       jsdoc_doc_comment_comment_line_start_regex = _tmp9_;
+#line 47 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _tmp11_ = g_regex_new ("\\s*\\* ?", 0, 0, &_inner_error_);
+#line 47 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _tmp10_ = _tmp11_;
+#line 47 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 47 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+               _g_regex_unref0 (_tmp7_);
+#line 47 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+               _g_regex_unref0 (_tmp4_);
+#line 47 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+               _g_regex_unref0 (_tmp1_);
+#line 47 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+               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);
+#line 47 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+               g_clear_error (&_inner_error_);
+#line 47 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+               return;
+#line 269 "DocComment.c"
+       }
+#line 47 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _tmp12_ = _tmp10_;
+#line 47 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _tmp10_ = NULL;
+#line 47 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _g_regex_unref0 (jsdoc_doc_comment_comment_line_start_white_space_regex);
+#line 47 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       jsdoc_doc_comment_comment_line_start_white_space_regex = _tmp12_;
+#line 48 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _tmp14_ = g_regex_new ("\\s*@(class|event|property)", 0, 0, &_inner_error_);
+#line 48 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _tmp13_ = _tmp14_;
+#line 48 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 48 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+               _g_regex_unref0 (_tmp10_);
+#line 48 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+               _g_regex_unref0 (_tmp7_);
+#line 48 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+               _g_regex_unref0 (_tmp4_);
+#line 48 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+               _g_regex_unref0 (_tmp1_);
+#line 48 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+               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);
+#line 48 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+               g_clear_error (&_inner_error_);
+#line 48 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+               return;
+#line 299 "DocComment.c"
+       }
+#line 48 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _tmp15_ = _tmp13_;
+#line 48 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _tmp13_ = NULL;
+#line 48 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _g_regex_unref0 (jsdoc_doc_comment_comment_needs_desc_regex);
+#line 48 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       jsdoc_doc_comment_comment_needs_desc_regex = _tmp15_;
+#line 50 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       jsdoc_doc_comment_done_init = TRUE;
+#line 36 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _g_regex_unref0 (_tmp13_);
+#line 36 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _g_regex_unref0 (_tmp10_);
+#line 36 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _g_regex_unref0 (_tmp7_);
+#line 36 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _g_regex_unref0 (_tmp4_);
+#line 36 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _g_regex_unref0 (_tmp1_);
+#line 321 "DocComment.c"
+}
+
+
+static gchar* string_strip (const gchar* self) {
+       gchar* result = NULL;
+       gchar* _result_ = NULL;
+       gchar* _tmp0_;
+       const gchar* _tmp1_;
+#line 1234 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 1235 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp0_ = g_strdup (self);
+#line 1235 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _result_ = _tmp0_;
+#line 1236 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp1_ = _result_;
+#line 1236 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       g_strstrip (_tmp1_);
+#line 1237 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       result = _result_;
+#line 1237 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       return result;
+#line 344 "DocComment.c"
+}
+
+
+static inline GRegex* _thread_safe_regex_init (GRegex** re, const gchar * pattern, GRegexMatchFlags match_options) {
+#line 81 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       if (g_once_init_enter ((volatile gsize*) re)) {
+#line 81 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+               GRegex* val = g_regex_new (pattern, match_options, 0, NULL);
+#line 81 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+               g_once_init_leave ((volatile gsize*) re, (gsize) val);
+#line 355 "DocComment.c"
+       }
+#line 81 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       return *re;
+#line 359 "DocComment.c"
+}
+
+
+JSDOCDocComment* jsdoc_doc_comment_construct (GType object_type, const gchar* comment) {
+       JSDOCDocComment * self = NULL;
+       const gchar* _tmp0_;
+       GeeArrayList* _tmp1_;
+       const gchar* _tmp2_;
+       gchar* _tmp3_;
+       gchar* _tmp4_;
+       gboolean _tmp5_;
+       const gchar* _tmp6_;
+       gchar* _tmp7_;
+       const gchar* _tmp8_;
+       gboolean _tmp9_;
+       const gchar* _tmp10_;
+       gchar* _tmp11_;
+       gchar* _tmp12_;
+       const gchar* _tmp13_;
+       gchar* _tmp14_;
+       gchar** bits = NULL;
+       const gchar* _tmp15_;
+       gchar** _tmp16_;
+       gchar** _tmp17_;
+       gint bits_length1;
+       gint _bits_size_;
+#line 53 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       g_return_val_if_fail (comment != NULL, NULL);
+#line 53 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       self = (JSDOCDocComment*) g_object_new (object_type, NULL);
+#line 56 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       jsdoc_doc_comment_initRegex ();
+#line 58 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _tmp0_ = comment;
+#line 58 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       g_debug ("DocComment.vala:58: parse comment : %s", _tmp0_);
+#line 59 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _tmp1_ = gee_array_list_new (JSDOC_TYPE_DOC_TAG, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL);
+#line 59 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _g_object_unref0 (self->tags);
+#line 59 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       self->tags = _tmp1_;
+#line 63 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _tmp2_ = comment;
+#line 63 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _tmp3_ = string_strip (_tmp2_);
+#line 63 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _tmp4_ = _tmp3_;
+#line 63 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _tmp5_ = g_strcmp0 (_tmp4_, "") == 0;
+#line 63 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _g_free0 (_tmp4_);
+#line 63 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       if (_tmp5_) {
+#line 64 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+               comment = "/** @desc */";
+#line 65 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+               self->isUserComment = FALSE;
+#line 418 "DocComment.c"
+       }
+#line 68 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _tmp6_ = comment;
+#line 68 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _tmp7_ = jsdoc_doc_comment_unwrapComment (_tmp6_);
+#line 68 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _g_free0 (self->src);
+#line 68 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       self->src = _tmp7_;
+#line 81 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _tmp8_ = self->src;
+#line 81 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _tmp9_ = g_regex_match (_thread_safe_regex_init (&_tmp_regex_0, "^\\s*@\\s*\\S+", 0), _tmp8_, 0, NULL);
+#line 81 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       self->hasTags = _tmp9_;
+#line 83 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       jsdoc_doc_comment_fixDesc (self);
+#line 89 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _tmp10_ = jsdoc_doc_comment_shared;
+#line 89 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _tmp11_ = g_strconcat (_tmp10_, "\n", NULL);
+#line 89 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _tmp12_ = _tmp11_;
+#line 89 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _tmp13_ = self->src;
+#line 89 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _tmp14_ = g_strconcat (_tmp12_, _tmp13_, NULL);
+#line 89 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _g_free0 (self->src);
+#line 89 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       self->src = _tmp14_;
+#line 89 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _g_free0 (_tmp12_);
+#line 94 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _tmp15_ = self->src;
+#line 94 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _tmp17_ = _tmp16_ = g_regex_split (_thread_safe_regex_init (&_tmp_regex_1, "(^|[\\r\\n])\\s*@", 0), _tmp15_, 0);
+#line 94 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       bits = _tmp17_;
+#line 94 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       bits_length1 = _vala_array_length (_tmp16_);
+#line 94 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _bits_size_ = bits_length1;
+#line 462 "DocComment.c"
+       {
+               gint i = 0;
+#line 95 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+               i = 0;
+#line 467 "DocComment.c"
+               {
+                       gboolean _tmp18_ = FALSE;
+#line 95 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                       _tmp18_ = TRUE;
+#line 95 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                       while (TRUE) {
+#line 474 "DocComment.c"
+                               gint _tmp20_;
+                               gchar** _tmp21_;
+                               gint _tmp21__length1;
+                               gchar* sa = NULL;
+                               gchar** _tmp22_;
+                               gint _tmp22__length1;
+                               gint _tmp23_;
+                               const gchar* _tmp24_;
+                               gchar* _tmp25_;
+                               const gchar* _tmp26_;
+                               gchar* _tmp27_;
+                               gchar* _tmp28_;
+                               gint _tmp29_;
+                               gint _tmp30_;
+                               gboolean _tmp31_;
+#line 95 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                               if (!_tmp18_) {
+#line 492 "DocComment.c"
+                                       gint _tmp19_;
+#line 95 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                                       _tmp19_ = i;
+#line 95 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                                       i = _tmp19_ + 1;
+#line 498 "DocComment.c"
+                               }
+#line 95 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                               _tmp18_ = FALSE;
+#line 95 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                               _tmp20_ = i;
+#line 95 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                               _tmp21_ = bits;
+#line 95 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                               _tmp21__length1 = bits_length1;
+#line 95 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                               if (!(_tmp20_ < _tmp21__length1)) {
+#line 95 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                                       break;
+#line 512 "DocComment.c"
+                               }
+#line 96 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                               _tmp22_ = bits;
+#line 96 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                               _tmp22__length1 = bits_length1;
+#line 96 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                               _tmp23_ = i;
+#line 96 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                               _tmp24_ = _tmp22_[_tmp23_];
+#line 96 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                               _tmp25_ = g_strdup (_tmp24_);
+#line 96 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                               sa = _tmp25_;
+#line 97 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                               _tmp26_ = sa;
+#line 97 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                               _tmp27_ = string_strip (_tmp26_);
+#line 97 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                               _tmp28_ = _tmp27_;
+#line 97 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                               _tmp29_ = strlen (_tmp28_);
+#line 97 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                               _tmp30_ = _tmp29_;
+#line 97 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                               _tmp31_ = _tmp30_ > 0;
+#line 97 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                               _g_free0 (_tmp28_);
+#line 97 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                               if (_tmp31_) {
+#line 542 "DocComment.c"
+                                       GeeArrayList* _tmp32_;
+                                       const gchar* _tmp33_;
+                                       JSDOCDocTag* _tmp34_;
+                                       JSDOCDocTag* _tmp35_;
+#line 98 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                                       _tmp32_ = self->tags;
+#line 98 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                                       _tmp33_ = sa;
+#line 98 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                                       _tmp34_ = jsdoc_doc_tag_new (_tmp33_);
+#line 98 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                                       _tmp35_ = _tmp34_;
+#line 98 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                                       gee_abstract_collection_add ((GeeAbstractCollection*) _tmp32_, _tmp35_);
+#line 98 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                                       _g_object_unref0 (_tmp35_);
+#line 559 "DocComment.c"
+                               }
+#line 95 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                               _g_free0 (sa);
+#line 563 "DocComment.c"
+                       }
+               }
+       }
+#line 53 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       bits = (_vala_array_free (bits, bits_length1, (GDestroyNotify) g_free), NULL);
+#line 53 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       return self;
+#line 571 "DocComment.c"
+}
+
+
+JSDOCDocComment* jsdoc_doc_comment_new (const gchar* comment) {
+#line 53 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       return jsdoc_doc_comment_construct (JSDOC_TYPE_DOC_COMMENT, comment);
+#line 578 "DocComment.c"
+}
+
+
+/**
+ * Remove slash-star comment wrapper from a raw comment string.
+ *  @type String
+ */
+gchar* jsdoc_doc_comment_unwrapComment (const gchar* comment) {
+       gchar* result = NULL;
+       const gchar* _tmp0_;
+       gint _tmp1_;
+       gint _tmp2_;
+       gchar* ret = NULL;
+       const gchar* _tmp4_;
+       const gchar* _tmp5_;
+       gint _tmp6_;
+       gint _tmp7_;
+       gchar* _tmp8_;
+       gchar* _tmp9_ = NULL;
+       const gchar* _tmp10_;
+       const gchar* _tmp11_;
+       gint _tmp12_;
+       gint _tmp13_;
+       gchar* _tmp14_;
+       gchar* _tmp15_;
+       const gchar* _tmp16_;
+       gchar* _tmp17_;
+       GError * _inner_error_ = NULL;
+#line 113 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       g_return_val_if_fail (comment != NULL, NULL);
+#line 115 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _tmp0_ = comment;
+#line 115 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _tmp1_ = strlen (_tmp0_);
+#line 115 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _tmp2_ = _tmp1_;
+#line 115 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       if (_tmp2_ < 1) {
+#line 617 "DocComment.c"
+               gchar* _tmp3_;
+#line 116 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+               _tmp3_ = g_strdup ("");
+#line 116 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+               result = _tmp3_;
+#line 116 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+               return result;
+#line 625 "DocComment.c"
+       }
+#line 119 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _tmp4_ = comment;
+#line 119 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _tmp5_ = comment;
+#line 119 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _tmp6_ = strlen (_tmp5_);
+#line 119 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _tmp7_ = _tmp6_;
+#line 119 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _tmp8_ = g_regex_replace (_thread_safe_regex_init (&_tmp_regex_2, "^\\/\\*\\*|\\*\\/$", 0), _tmp4_, (gssize) _tmp7_, 0, "", 0, &_inner_error_);
+#line 119 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       ret = _tmp8_;
+#line 119 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 119 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+               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);
+#line 119 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+               g_clear_error (&_inner_error_);
+#line 119 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+               return NULL;
+#line 647 "DocComment.c"
+       }
+#line 122 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _tmp10_ = ret;
+#line 122 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _tmp11_ = ret;
+#line 122 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _tmp12_ = strlen (_tmp11_);
+#line 122 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _tmp13_ = _tmp12_;
+#line 122 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _tmp14_ = g_regex_replace (_thread_safe_regex_init (&_tmp_regex_3, "(^|[\\r\\n])\\s*\\* ?", 0), _tmp10_, (gssize) _tmp13_, 0, "\n", 0, &_inner_error_);
+#line 122 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _tmp9_ = _tmp14_;
+#line 122 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 122 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+               _g_free0 (ret);
+#line 122 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+               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);
+#line 122 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+               g_clear_error (&_inner_error_);
+#line 122 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+               return NULL;
+#line 671 "DocComment.c"
+       }
+#line 122 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _tmp15_ = _tmp9_;
+#line 122 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _tmp9_ = NULL;
+#line 122 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _g_free0 (ret);
+#line 122 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       ret = _tmp15_;
+#line 124 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _tmp16_ = ret;
+#line 124 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _tmp17_ = string_strip (_tmp16_);
+#line 124 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       result = _tmp17_;
+#line 124 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _g_free0 (_tmp9_);
+#line 124 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _g_free0 (ret);
+#line 124 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       return result;
+#line 693 "DocComment.c"
+}
+
+
+/**
+        If no @desc tag is provided, this function will add it.
+     */
+static void jsdoc_doc_comment_fixDesc (JSDOCDocComment* self) {
+       gboolean _tmp0_;
+       GRegex* _tmp3_;
+       const gchar* _tmp4_;
+       gboolean _tmp5_;
+       gchar** lines = NULL;
+       const gchar* _tmp6_;
+       gchar** _tmp7_;
+       gchar** _tmp8_;
+       gint lines_length1;
+       gint _lines_size_;
+       gchar* nsrc = NULL;
+       gchar* _tmp9_;
+       gboolean gotf = FALSE;
+       const gchar* _tmp39_;
+       gchar* _tmp40_;
+#line 129 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       g_return_if_fail (self != NULL);
+#line 137 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _tmp0_ = self->hasTags;
+#line 137 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       if (!_tmp0_) {
+#line 722 "DocComment.c"
+               const gchar* _tmp1_;
+               gchar* _tmp2_;
+#line 138 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+               _tmp1_ = self->src;
+#line 138 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+               _tmp2_ = g_strconcat ("@desc ", _tmp1_, NULL);
+#line 138 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+               _g_free0 (self->src);
+#line 138 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+               self->src = _tmp2_;
+#line 143 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+               return;
+#line 735 "DocComment.c"
+       }
+#line 149 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _tmp3_ = jsdoc_doc_comment_comment_needs_desc_regex;
+#line 149 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _tmp4_ = self->src;
+#line 149 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _tmp5_ = g_regex_match (_tmp3_, _tmp4_, G_REGEX_MATCH_NEWLINE_ANYCRLF, NULL);
+#line 149 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       if (!_tmp5_) {
+#line 150 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+               return;
+#line 747 "DocComment.c"
+       }
+#line 153 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _tmp6_ = self->src;
+#line 153 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _tmp8_ = _tmp7_ = g_strsplit (_tmp6_, "\n", 0);
+#line 153 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       lines = _tmp8_;
+#line 153 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       lines_length1 = _vala_array_length (_tmp7_);
+#line 153 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _lines_size_ = lines_length1;
+#line 154 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _tmp9_ = g_strdup ("");
+#line 154 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       nsrc = _tmp9_;
+#line 155 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       gotf = FALSE;
+#line 765 "DocComment.c"
+       {
+               gint i = 0;
+#line 157 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+               i = 0;
+#line 770 "DocComment.c"
+               {
+                       gboolean _tmp10_ = FALSE;
+#line 157 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                       _tmp10_ = TRUE;
+#line 157 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                       while (TRUE) {
+#line 777 "DocComment.c"
+                               gint _tmp12_;
+                               gchar** _tmp13_;
+                               gint _tmp13__length1;
+                               gchar* line = NULL;
+                               gchar** _tmp14_;
+                               gint _tmp14__length1;
+                               gint _tmp15_;
+                               const gchar* _tmp16_;
+                               gchar* _tmp17_;
+                               gboolean _tmp18_;
+                               GRegex* _tmp24_;
+                               const gchar* _tmp25_;
+                               gboolean _tmp26_;
+                               const gchar* _tmp32_;
+                               const gchar* _tmp33_;
+                               gchar* _tmp34_;
+                               gchar* _tmp35_;
+                               gchar* _tmp36_;
+                               gchar* _tmp37_;
+                               gchar* _tmp38_;
+#line 157 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                               if (!_tmp10_) {
+#line 800 "DocComment.c"
+                                       gint _tmp11_;
+#line 157 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                                       _tmp11_ = i;
+#line 157 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                                       i = _tmp11_ + 1;
+#line 806 "DocComment.c"
+                               }
+#line 157 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                               _tmp10_ = FALSE;
+#line 157 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                               _tmp12_ = i;
+#line 157 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                               _tmp13_ = lines;
+#line 157 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                               _tmp13__length1 = lines_length1;
+#line 157 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                               if (!(_tmp12_ < _tmp13__length1)) {
+#line 157 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                                       break;
+#line 820 "DocComment.c"
+                               }
+#line 158 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                               _tmp14_ = lines;
+#line 158 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                               _tmp14__length1 = lines_length1;
+#line 158 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                               _tmp15_ = i;
+#line 158 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                               _tmp16_ = _tmp14_[_tmp15_];
+#line 158 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                               _tmp17_ = g_strdup (_tmp16_);
+#line 158 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                               line = _tmp17_;
+#line 159 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                               _tmp18_ = gotf;
+#line 159 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                               if (_tmp18_) {
+#line 838 "DocComment.c"
+                                       const gchar* _tmp19_;
+                                       const gchar* _tmp20_;
+                                       gchar* _tmp21_;
+                                       gchar* _tmp22_;
+                                       gchar* _tmp23_;
+#line 160 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                                       _tmp19_ = nsrc;
+#line 160 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                                       _tmp20_ = line;
+#line 160 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                                       _tmp21_ = g_strconcat (_tmp20_, "\n", NULL);
+#line 160 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                                       _tmp22_ = _tmp21_;
+#line 160 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                                       _tmp23_ = g_strconcat (_tmp19_, _tmp22_, NULL);
+#line 160 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                                       _g_free0 (nsrc);
+#line 160 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                                       nsrc = _tmp23_;
+#line 160 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                                       _g_free0 (_tmp22_);
+#line 161 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                                       _g_free0 (line);
+#line 161 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                                       continue;
+#line 864 "DocComment.c"
+                               }
+#line 163 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                               _tmp24_ = jsdoc_doc_comment_has_tag_regex;
+#line 163 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                               _tmp25_ = line;
+#line 163 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                               _tmp26_ = g_regex_match (_tmp24_, _tmp25_, 0, NULL);
+#line 163 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                               if (_tmp26_) {
+#line 874 "DocComment.c"
+                                       const gchar* _tmp27_;
+                                       const gchar* _tmp28_;
+                                       gchar* _tmp29_;
+                                       gchar* _tmp30_;
+                                       gchar* _tmp31_;
+#line 164 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                                       _tmp27_ = nsrc;
+#line 164 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                                       _tmp28_ = line;
+#line 164 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                                       _tmp29_ = g_strconcat (_tmp28_, "\n", NULL);
+#line 164 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                                       _tmp30_ = _tmp29_;
+#line 164 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                                       _tmp31_ = g_strconcat (_tmp27_, _tmp30_, NULL);
+#line 164 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                                       _g_free0 (nsrc);
+#line 164 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                                       nsrc = _tmp31_;
+#line 164 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                                       _g_free0 (_tmp30_);
+#line 165 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                                       _g_free0 (line);
+#line 165 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                                       continue;
+#line 900 "DocComment.c"
+                               }
+#line 167 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                               gotf = TRUE;
+#line 168 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                               _tmp32_ = nsrc;
+#line 168 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                               _tmp33_ = line;
+#line 168 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                               _tmp34_ = g_strconcat ("@desc ", _tmp33_, NULL);
+#line 168 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                               _tmp35_ = _tmp34_;
+#line 168 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                               _tmp36_ = g_strconcat (_tmp35_, "\n", NULL);
+#line 168 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                               _tmp37_ = _tmp36_;
+#line 168 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                               _tmp38_ = g_strconcat (_tmp32_, _tmp37_, NULL);
+#line 168 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                               _g_free0 (nsrc);
+#line 168 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                               nsrc = _tmp38_;
+#line 168 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                               _g_free0 (_tmp37_);
+#line 168 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                               _g_free0 (_tmp35_);
+#line 157 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                               _g_free0 (line);
+#line 928 "DocComment.c"
+                       }
+               }
+       }
+#line 172 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _tmp39_ = nsrc;
+#line 172 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _tmp40_ = g_strdup (_tmp39_);
+#line 172 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _g_free0 (self->src);
+#line 172 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       self->src = _tmp40_;
+#line 129 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _g_free0 (nsrc);
+#line 129 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       lines = (_vala_array_free (lines, lines_length1, (GDestroyNotify) g_free), NULL);
+#line 944 "DocComment.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 181 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       return self ? g_object_ref (self) : NULL;
+#line 951 "DocComment.c"
+}
+
+
+GeeArrayList* jsdoc_doc_comment_getTag (JSDOCDocComment* self, JSDOCDocTagTitle tagTitle) {
+       GeeArrayList* result = NULL;
+       GeeArrayList* ret = NULL;
+       GeeArrayList* _tmp0_;
+#line 179 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 180 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _tmp0_ = gee_array_list_new (JSDOC_TYPE_DOC_TAG, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL);
+#line 180 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       ret = _tmp0_;
+#line 965 "DocComment.c"
+       {
+               GeeArrayList* _tag_list = NULL;
+               GeeArrayList* _tmp1_;
+               GeeArrayList* _tmp2_;
+               gint _tag_size = 0;
+               GeeArrayList* _tmp3_;
+               gint _tmp4_;
+               gint _tmp5_;
+               gint _tag_index = 0;
+#line 181 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+               _tmp1_ = self->tags;
+#line 181 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+               _tmp2_ = _g_object_ref0 (_tmp1_);
+#line 181 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+               _tag_list = _tmp2_;
+#line 181 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+               _tmp3_ = _tag_list;
+#line 181 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+               _tmp4_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp3_);
+#line 181 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+               _tmp5_ = _tmp4_;
+#line 181 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+               _tag_size = _tmp5_;
+#line 181 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+               _tag_index = -1;
+#line 181 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+               while (TRUE) {
+#line 993 "DocComment.c"
+                       gint _tmp6_;
+                       gint _tmp7_;
+                       gint _tmp8_;
+                       JSDOCDocTag* tag = NULL;
+                       GeeArrayList* _tmp9_;
+                       gint _tmp10_;
+                       gpointer _tmp11_;
+                       JSDOCDocTag* _tmp12_;
+                       JSDOCDocTagTitle _tmp13_;
+                       JSDOCDocTagTitle _tmp14_;
+#line 181 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                       _tmp6_ = _tag_index;
+#line 181 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                       _tag_index = _tmp6_ + 1;
+#line 181 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                       _tmp7_ = _tag_index;
+#line 181 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                       _tmp8_ = _tag_size;
+#line 181 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                       if (!(_tmp7_ < _tmp8_)) {
+#line 181 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                               break;
+#line 1016 "DocComment.c"
+                       }
+#line 181 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                       _tmp9_ = _tag_list;
+#line 181 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                       _tmp10_ = _tag_index;
+#line 181 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                       _tmp11_ = gee_abstract_list_get ((GeeAbstractList*) _tmp9_, _tmp10_);
+#line 181 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                       tag = (JSDOCDocTag*) _tmp11_;
+#line 182 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                       _tmp12_ = tag;
+#line 182 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                       _tmp13_ = _tmp12_->title;
+#line 182 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                       _tmp14_ = tagTitle;
+#line 182 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                       if (_tmp13_ == _tmp14_) {
+#line 1034 "DocComment.c"
+                               GeeArrayList* _tmp15_;
+                               JSDOCDocTag* _tmp16_;
+#line 183 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                               _tmp15_ = ret;
+#line 183 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                               _tmp16_ = tag;
+#line 183 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                               gee_abstract_collection_add ((GeeAbstractCollection*) _tmp15_, _tmp16_);
+#line 1043 "DocComment.c"
+                       }
+#line 181 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                       _g_object_unref0 (tag);
+#line 1047 "DocComment.c"
+               }
+#line 181 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+               _g_object_unref0 (_tag_list);
+#line 1051 "DocComment.c"
+       }
+#line 186 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       result = ret;
+#line 186 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       return result;
+#line 1057 "DocComment.c"
+}
+
+
+static void _vala_array_add9 (gchar** * array, int* length, int* size, gchar* value) {
+#line 192 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       if ((*length) == (*size)) {
+#line 192 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+               *size = (*size) ? (2 * (*size)) : 4;
+#line 192 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+               *array = g_renew (gchar*, *array, (*size) + 1);
+#line 1068 "DocComment.c"
+       }
+#line 192 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       (*array)[(*length)++] = value;
+#line 192 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       (*array)[*length] = NULL;
+#line 1074 "DocComment.c"
+}
+
+
+static gchar* _vala_g_strjoinv (const gchar* separator, gchar** str_array, int str_array_length1) {
+       gchar* result = NULL;
+       const gchar* _tmp0_;
+       gboolean _tmp1_ = FALSE;
+       gboolean _tmp2_ = FALSE;
+       gchar** _tmp3_;
+       gint _tmp3__length1;
+#line 1078 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp0_ = separator;
+#line 1078 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if (_tmp0_ == NULL) {
+#line 1079 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               separator = "";
+#line 1091 "DocComment.c"
+       }
+#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp3_ = str_array;
+#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp3__length1 = str_array_length1;
+#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if (_tmp3_ != NULL) {
+#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp2_ = TRUE;
+#line 1101 "DocComment.c"
+       } else {
+               gchar** _tmp4_;
+               gint _tmp4__length1;
+#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp4_ = str_array;
+#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp4__length1 = str_array_length1;
+#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp2_ = _tmp4__length1 > 0;
+#line 1111 "DocComment.c"
+       }
+#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if (_tmp2_) {
+#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp1_ = TRUE;
+#line 1117 "DocComment.c"
+       } else {
+               gboolean _tmp5_ = FALSE;
+               gchar** _tmp6_;
+               gint _tmp6__length1;
+#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp6_ = str_array;
+#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp6__length1 = str_array_length1;
+#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               if (_tmp6__length1 == -1) {
+#line 1128 "DocComment.c"
+                       gchar** _tmp7_;
+                       gint _tmp7__length1;
+                       const gchar* _tmp8_;
+#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       _tmp7_ = str_array;
+#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       _tmp7__length1 = str_array_length1;
+#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       _tmp8_ = _tmp7_[0];
+#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       _tmp5_ = _tmp8_ != NULL;
+#line 1140 "DocComment.c"
+               } else {
+#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       _tmp5_ = FALSE;
+#line 1144 "DocComment.c"
+               }
+#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp1_ = _tmp5_;
+#line 1148 "DocComment.c"
+       }
+#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if (_tmp1_) {
+#line 1152 "DocComment.c"
+               gint i = 0;
+               gsize len = 0UL;
+               gint _tmp31_;
+               gint _tmp33_;
+               gint _tmp34_;
+               gsize _tmp35_;
+               const gchar* _tmp36_;
+               gint _tmp37_;
+               gint _tmp38_;
+               gint _tmp39_;
+               const gchar* res = NULL;
+               gsize _tmp40_;
+               void* _tmp41_;
+               void* ptr = NULL;
+               const gchar* _tmp42_;
+               gchar** _tmp43_;
+               gint _tmp43__length1;
+               const gchar* _tmp44_;
+               void* _tmp45_;
+               const gchar* _tmp62_;
+#line 1083 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               len = (gsize) 1;
+#line 1175 "DocComment.c"
+               {
+                       gboolean _tmp9_ = FALSE;
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       i = 0;
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       _tmp9_ = TRUE;
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       while (TRUE) {
+#line 1184 "DocComment.c"
+                               gboolean _tmp11_ = FALSE;
+                               gboolean _tmp12_ = FALSE;
+                               gchar** _tmp13_;
+                               gint _tmp13__length1;
+                               gint _tmp21_ = 0;
+                               gchar** _tmp22_;
+                               gint _tmp22__length1;
+                               gint _tmp23_;
+                               const gchar* _tmp24_;
+                               gsize _tmp30_;
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               if (!_tmp9_) {
+#line 1197 "DocComment.c"
+                                       gint _tmp10_;
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp10_ = i;
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       i = _tmp10_ + 1;
+#line 1203 "DocComment.c"
+                               }
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               _tmp9_ = FALSE;
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               _tmp13_ = str_array;
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               _tmp13__length1 = str_array_length1;
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               if (_tmp13__length1 != -1) {
+#line 1213 "DocComment.c"
+                                       gint _tmp14_;
+                                       gchar** _tmp15_;
+                                       gint _tmp15__length1;
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp14_ = i;
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp15_ = str_array;
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp15__length1 = str_array_length1;
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp12_ = _tmp14_ < _tmp15__length1;
+#line 1225 "DocComment.c"
+                               } else {
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp12_ = FALSE;
+#line 1229 "DocComment.c"
+                               }
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               if (_tmp12_) {
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp11_ = TRUE;
+#line 1235 "DocComment.c"
+                               } else {
+                                       gboolean _tmp16_ = FALSE;
+                                       gchar** _tmp17_;
+                                       gint _tmp17__length1;
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp17_ = str_array;
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp17__length1 = str_array_length1;
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       if (_tmp17__length1 == -1) {
+#line 1246 "DocComment.c"
+                                               gchar** _tmp18_;
+                                               gint _tmp18__length1;
+                                               gint _tmp19_;
+                                               const gchar* _tmp20_;
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                               _tmp18_ = str_array;
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                               _tmp18__length1 = str_array_length1;
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                               _tmp19_ = i;
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                               _tmp20_ = _tmp18_[_tmp19_];
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                               _tmp16_ = _tmp20_ != NULL;
+#line 1261 "DocComment.c"
+                                       } else {
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                               _tmp16_ = FALSE;
+#line 1265 "DocComment.c"
+                                       }
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp11_ = _tmp16_;
+#line 1269 "DocComment.c"
+                               }
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               if (!_tmp11_) {
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       break;
+#line 1275 "DocComment.c"
+                               }
+#line 1085 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               _tmp22_ = str_array;
+#line 1085 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               _tmp22__length1 = str_array_length1;
+#line 1085 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               _tmp23_ = i;
+#line 1085 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               _tmp24_ = _tmp22_[_tmp23_];
+#line 1085 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               if (_tmp24_ != NULL) {
+#line 1287 "DocComment.c"
+                                       gchar** _tmp25_;
+                                       gint _tmp25__length1;
+                                       gint _tmp26_;
+                                       const gchar* _tmp27_;
+                                       gint _tmp28_;
+                                       gint _tmp29_;
+#line 1085 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp25_ = str_array;
+#line 1085 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp25__length1 = str_array_length1;
+#line 1085 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp26_ = i;
+#line 1085 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp27_ = _tmp25_[_tmp26_];
+#line 1085 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp28_ = strlen ((const gchar*) _tmp27_);
+#line 1085 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp29_ = _tmp28_;
+#line 1085 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp21_ = _tmp29_;
+#line 1308 "DocComment.c"
+                               } else {
+#line 1085 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp21_ = 0;
+#line 1312 "DocComment.c"
+                               }
+#line 1085 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               _tmp30_ = len;
+#line 1085 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               len = _tmp30_ + _tmp21_;
+#line 1318 "DocComment.c"
+                       }
+               }
+#line 1087 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp31_ = i;
+#line 1087 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               if (_tmp31_ == 0) {
+#line 1325 "DocComment.c"
+                       gchar* _tmp32_;
+#line 1088 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       _tmp32_ = g_strdup ("");
+#line 1088 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       result = _tmp32_;
+#line 1088 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       return result;
+#line 1333 "DocComment.c"
+               }
+#line 1090 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp33_ = i;
+#line 1090 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               str_array_length1 = _tmp33_;
+#line 1090 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp34_ = str_array_length1;
+#line 1091 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp35_ = len;
+#line 1091 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp36_ = separator;
+#line 1091 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp37_ = strlen ((const gchar*) _tmp36_);
+#line 1091 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp38_ = _tmp37_;
+#line 1091 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp39_ = i;
+#line 1091 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               len = _tmp35_ + (_tmp38_ * (_tmp39_ - 1));
+#line 1093 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp40_ = len;
+#line 1093 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp41_ = g_malloc (_tmp40_);
+#line 1093 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               res = _tmp41_;
+#line 1094 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp42_ = res;
+#line 1094 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp43_ = str_array;
+#line 1094 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp43__length1 = str_array_length1;
+#line 1094 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp44_ = _tmp43_[0];
+#line 1094 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp45_ = g_stpcpy ((void*) _tmp42_, (const gchar*) _tmp44_);
+#line 1094 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               ptr = _tmp45_;
+#line 1371 "DocComment.c"
+               {
+                       gboolean _tmp46_ = FALSE;
+#line 1095 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       i = 1;
+#line 1095 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       _tmp46_ = TRUE;
+#line 1095 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       while (TRUE) {
+#line 1380 "DocComment.c"
+                               gint _tmp48_;
+                               gchar** _tmp49_;
+                               gint _tmp49__length1;
+                               void* _tmp50_;
+                               const gchar* _tmp51_;
+                               void* _tmp52_;
+                               const gchar* _tmp53_ = NULL;
+                               gchar** _tmp54_;
+                               gint _tmp54__length1;
+                               gint _tmp55_;
+                               const gchar* _tmp56_;
+                               void* _tmp60_;
+                               void* _tmp61_;
+#line 1095 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               if (!_tmp46_) {
+#line 1396 "DocComment.c"
+                                       gint _tmp47_;
+#line 1095 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp47_ = i;
+#line 1095 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       i = _tmp47_ + 1;
+#line 1402 "DocComment.c"
+                               }
+#line 1095 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               _tmp46_ = FALSE;
+#line 1095 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               _tmp48_ = i;
+#line 1095 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               _tmp49_ = str_array;
+#line 1095 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               _tmp49__length1 = str_array_length1;
+#line 1095 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               if (!(_tmp48_ < _tmp49__length1)) {
+#line 1095 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       break;
+#line 1416 "DocComment.c"
+                               }
+#line 1096 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               _tmp50_ = ptr;
+#line 1096 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               _tmp51_ = separator;
+#line 1096 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               _tmp52_ = g_stpcpy (_tmp50_, (const gchar*) _tmp51_);
+#line 1096 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               ptr = _tmp52_;
+#line 1097 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               _tmp54_ = str_array;
+#line 1097 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               _tmp54__length1 = str_array_length1;
+#line 1097 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               _tmp55_ = i;
+#line 1097 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               _tmp56_ = _tmp54_[_tmp55_];
+#line 1097 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               if (_tmp56_ != NULL) {
+#line 1436 "DocComment.c"
+                                       gchar** _tmp57_;
+                                       gint _tmp57__length1;
+                                       gint _tmp58_;
+                                       const gchar* _tmp59_;
+#line 1097 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp57_ = str_array;
+#line 1097 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp57__length1 = str_array_length1;
+#line 1097 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp58_ = i;
+#line 1097 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp59_ = _tmp57_[_tmp58_];
+#line 1097 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp53_ = (const gchar*) _tmp59_;
+#line 1451 "DocComment.c"
+                               } else {
+#line 1097 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp53_ = "";
+#line 1455 "DocComment.c"
+                               }
+#line 1097 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               _tmp60_ = ptr;
+#line 1097 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               _tmp61_ = g_stpcpy (_tmp60_, _tmp53_);
+#line 1097 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               ptr = _tmp61_;
+#line 1463 "DocComment.c"
+                       }
+               }
+#line 1100 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp62_ = res;
+#line 1100 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               res = NULL;
+#line 1100 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               result = (gchar*) _tmp62_;
+#line 1100 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               return result;
+#line 1474 "DocComment.c"
+       } else {
+               gchar* _tmp63_;
+#line 1102 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp63_ = g_strdup ("");
+#line 1102 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               result = _tmp63_;
+#line 1102 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               return result;
+#line 1483 "DocComment.c"
+       }
+}
+
+
+gchar* jsdoc_doc_comment_getTagAsString (JSDOCDocComment* self, JSDOCDocTagTitle tagTitle) {
+       gchar* result = NULL;
+       gchar** ret = NULL;
+       gchar** _tmp0_;
+       gint ret_length1;
+       gint _ret_size_;
+       gchar** _tmp19_;
+       gint _tmp19__length1;
+       gchar* _tmp20_;
+#line 188 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 189 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _tmp0_ = g_new0 (gchar*, 0 + 1);
+#line 189 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       ret = _tmp0_;
+#line 189 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       ret_length1 = 0;
+#line 189 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _ret_size_ = ret_length1;
+#line 1507 "DocComment.c"
+       {
+               GeeArrayList* _tag_list = NULL;
+               GeeArrayList* _tmp1_;
+               GeeArrayList* _tmp2_;
+               gint _tag_size = 0;
+               GeeArrayList* _tmp3_;
+               gint _tmp4_;
+               gint _tmp5_;
+               gint _tag_index = 0;
+#line 190 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+               _tmp1_ = self->tags;
+#line 190 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+               _tmp2_ = _g_object_ref0 (_tmp1_);
+#line 190 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+               _tag_list = _tmp2_;
+#line 190 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+               _tmp3_ = _tag_list;
+#line 190 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+               _tmp4_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp3_);
+#line 190 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+               _tmp5_ = _tmp4_;
+#line 190 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+               _tag_size = _tmp5_;
+#line 190 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+               _tag_index = -1;
+#line 190 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+               while (TRUE) {
+#line 1535 "DocComment.c"
+                       gint _tmp6_;
+                       gint _tmp7_;
+                       gint _tmp8_;
+                       JSDOCDocTag* tag = NULL;
+                       GeeArrayList* _tmp9_;
+                       gint _tmp10_;
+                       gpointer _tmp11_;
+                       JSDOCDocTag* _tmp12_;
+                       JSDOCDocTagTitle _tmp13_;
+                       JSDOCDocTagTitle _tmp14_;
+#line 190 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                       _tmp6_ = _tag_index;
+#line 190 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                       _tag_index = _tmp6_ + 1;
+#line 190 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                       _tmp7_ = _tag_index;
+#line 190 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                       _tmp8_ = _tag_size;
+#line 190 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                       if (!(_tmp7_ < _tmp8_)) {
+#line 190 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                               break;
+#line 1558 "DocComment.c"
+                       }
+#line 190 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                       _tmp9_ = _tag_list;
+#line 190 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                       _tmp10_ = _tag_index;
+#line 190 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                       _tmp11_ = gee_abstract_list_get ((GeeAbstractList*) _tmp9_, _tmp10_);
+#line 190 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                       tag = (JSDOCDocTag*) _tmp11_;
+#line 191 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                       _tmp12_ = tag;
+#line 191 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                       _tmp13_ = _tmp12_->title;
+#line 191 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                       _tmp14_ = tagTitle;
+#line 191 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                       if (_tmp13_ == _tmp14_) {
+#line 1576 "DocComment.c"
+                               gchar** _tmp15_;
+                               gint _tmp15__length1;
+                               JSDOCDocTag* _tmp16_;
+                               const gchar* _tmp17_;
+                               gchar* _tmp18_;
+#line 192 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                               _tmp15_ = ret;
+#line 192 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                               _tmp15__length1 = ret_length1;
+#line 192 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                               _tmp16_ = tag;
+#line 192 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                               _tmp17_ = _tmp16_->desc;
+#line 192 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                               _tmp18_ = g_strdup (_tmp17_);
+#line 192 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                               _vala_array_add9 (&ret, &ret_length1, &_ret_size_, _tmp18_);
+#line 1594 "DocComment.c"
+                       }
+#line 190 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+                       _g_object_unref0 (tag);
+#line 1598 "DocComment.c"
+               }
+#line 190 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+               _g_object_unref0 (_tag_list);
+#line 1602 "DocComment.c"
+       }
+#line 195 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _tmp19_ = ret;
+#line 195 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _tmp19__length1 = ret_length1;
+#line 195 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _tmp20_ = _vala_g_strjoinv ("\n", _tmp19_, _tmp19__length1);
+#line 195 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       result = _tmp20_;
+#line 195 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       ret = (_vala_array_free (ret, ret_length1, (GDestroyNotify) g_free), NULL);
+#line 195 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       return result;
+#line 1616 "DocComment.c"
+}
+
+
+static void jsdoc_doc_comment_class_init (JSDOCDocCommentClass * klass) {
+       gchar* _tmp0_;
+#line 11 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       jsdoc_doc_comment_parent_class = g_type_class_peek_parent (klass);
+#line 11 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       G_OBJECT_CLASS (klass)->finalize = jsdoc_doc_comment_finalize;
+#line 32 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _tmp0_ = g_strdup ("");
+#line 32 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       jsdoc_doc_comment_shared = _tmp0_;
+#line 1630 "DocComment.c"
+}
+
+
+static void jsdoc_doc_comment_instance_init (JSDOCDocComment * self) {
+       gchar* _tmp0_;
+#line 14 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       self->isUserComment = TRUE;
+#line 15 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       self->hasTags = FALSE;
+#line 16 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _tmp0_ = g_strdup ("");
+#line 16 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       self->src = _tmp0_;
+#line 1644 "DocComment.c"
+}
+
+
+static void jsdoc_doc_comment_finalize (GObject * obj) {
+       JSDOCDocComment * self;
+#line 11 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       self = G_TYPE_CHECK_INSTANCE_CAST (obj, JSDOC_TYPE_DOC_COMMENT, JSDOCDocComment);
+#line 16 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _g_free0 (self->src);
+#line 19 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       _g_object_unref0 (self->tags);
+#line 11 "/home/alan/gitlive/roojspacker/src/jsdoc/DocComment.vala"
+       G_OBJECT_CLASS (jsdoc_doc_comment_parent_class)->finalize (obj);
+#line 1658 "DocComment.c"
+}
+
+
+GType jsdoc_doc_comment_get_type (void) {
+       static volatile gsize jsdoc_doc_comment_type_id__volatile = 0;
+       if (g_once_init_enter (&jsdoc_doc_comment_type_id__volatile)) {
+               static const GTypeInfo g_define_type_info = { sizeof (JSDOCDocCommentClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) jsdoc_doc_comment_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (JSDOCDocComment), 0, (GInstanceInitFunc) jsdoc_doc_comment_instance_init, NULL };
+               GType jsdoc_doc_comment_type_id;
+               jsdoc_doc_comment_type_id = g_type_register_static (G_TYPE_OBJECT, "JSDOCDocComment", &g_define_type_info, 0);
+               g_once_init_leave (&jsdoc_doc_comment_type_id__volatile, jsdoc_doc_comment_type_id);
+       }
+       return jsdoc_doc_comment_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;
+}
+
+
+
diff --git a/jsdoc/DocComment.vala b/jsdoc/DocComment.vala
new file mode 100644 (file)
index 0000000..e89ae76
--- /dev/null
@@ -0,0 +1,199 @@
+/**
+ * Create a new DocComment. This takes a raw documentation comment,
+ * and wraps it in useful accessors.
+ * @class Represents a documentation comment object.
+ * 
+ */ 
+namespace JSDOC 
+{
+       public class DocComment : Object
+       {
+               public bool isUserComment  = true;
+               public bool hasTags             = false;
+               public string src          = "";
+               //string meta       =  "";
+               //Gee.ArrayList<string> tagTexts;
+               public Gee.ArrayList<DocTag>    tags;
+       
+               static GLib.Regex has_tag_regex;
+               static GLib.Regex tag_regex;
+               static GLib.Regex comment_line_start_regex;
+               static GLib.Regex comment_line_start_white_space_regex;
+               static GLib.Regex comment_needs_desc_regex;
+                /**
+                * Used to store the currently shared tag text.
+                * not sure where we use this yet..
+                * but i think it's related to merging multiple comments together...
+                */
+
+               public static string    shared = "";
+               
+               static bool done_init = false;
+       
+               static void initRegex()
+               {
+                       if (DocComment.done_init) {
+                               return;
+                       }
+                       DocComment.has_tag_regex = new GLib.Regex("^\\s*@\\s*\\S+"); // multiline?
+
+                       DocComment.tag_regex = new GLib.Regex("(^|[\\r\\n])\\s*@"); // empty line, then @ or starting with @?
+                       
+
+                       DocComment.comment_line_start_regex = new GLib.Regex("(^\\/\\*\\*|\\*\\/$)");
+                       DocComment.comment_line_start_white_space_regex = new GLib.Regex("\\s*\\* ?");
+                       DocComment.comment_needs_desc_regex = new GLib.Regex("\\s*@(class|event|property)");
+                       
+                       DocComment.done_init = true;
+               }
+        
+               public DocComment (string comment = "") 
+               {
+                   
+                   DocComment.initRegex();
+                    
+                   GLib.debug("parse comment : %s", comment);
+                   this.tags          = new Gee.ArrayList<DocTag>();
+
+                   
+                
+               if (comment.strip() == "") {
+                   comment = "/** @desc */";
+                   this.isUserComment = false;
+               }
+               
+               this.src = DocComment.unwrapComment(comment);
+               
+               //println(this.src);
+               
+               // looks like #+ support???
+               /*
+               this.meta = "";
+               if (this.src.indexOf("#") == 0) {
+                   this.src.match(/#(.+[+-])([\s\S]*)$/);
+                   if (RegExp.$1) this.meta = RegExp.$1;
+                   if (RegExp.$2) this.src = RegExp.$2;
+               }
+               */
+               this.hasTags = /^\s*@\s*\S+/.match(this.src);
+
+               this.fixDesc();
+               
+               //if (typeof JSDOC.PluginManager != "undefined") {
+               //    JSDOC.PluginManager.run("onDocCommentSrc", this);
+               //}
+               
+               this.src = DocComment.shared+"\n"+this.src;
+
+                       //var tagTexts      = new Gee.ArrayList<string>();
+               
+               var bits = /(^|[\r\n])\s*@/.split(this.src);
+                       for(int i=0; i<bits.length; i++) {
+                               var sa = bits[i];
+                               if (sa.strip().length >0) {
+                                       this.tags.add(new DocTag(sa));
+                                       // tagTexts.add(sa); // ?? strip again?
+                               }
+                       }
+                       
+                                       
+               
+           }
+               
+                  
+                   
+               /**
+                * Remove slash-star comment wrapper from a raw comment string.
+                *  @type String
+                */
+               public static string  unwrapComment( string comment) 
+               {
+                    if (comment.length < 1) {
+                                return "";
+                        }
+                        
+                        var ret = /^\/\*\*|\*\/$/.replace(
+                                       comment, comment.length, 0, "", 0 ); //GLib.RegexMatchFlags.NEWLINE_ANYCRLF );
+                        
+                        ret = /(^|[\r\n])\s*\* ?/.replace(ret, ret.length, 0, "\n"  ); //);
+                    
+                   return ret.strip();
+                }
+           /**
+               If no @desc tag is provided, this function will add it.
+            */
+           void fixDesc() 
+           {
+               //if (this.meta && this.meta != "@+") return;
+               
+               
+               
+               // does not have any @ lines..
+               // -- skip comments without @!!
+               if (!this.hasTags) {
+                   this.src = "@desc "+ this.src;
+                   // TAGS that are not \n prefixed!! ...
+                   // does not make sense....???
+                   //this.src = this.src.replace(/@\s*type/g, '\n@type'); 
+               
+                   return;
+               }
+               // kdludge for stuff...
+               //this.src = this.src.replace(/@\s*type/g, '\n@type'); 
+               
+               // only apply @desc fix to classes..
+               if (!DocComment.comment_needs_desc_regex.match(this.src,GLib.RegexMatchFlags.NEWLINE_ANYCRLF) ) {
+                   return;
+               }
+               // if no desc - add it on the first line that is not a @
+               var lines = this.src.split("\n");
+               var nsrc = "";
+               var gotf = false;
+               
+               for(var i =0; i < lines.length;i++) {
+                   var line = lines[i];
+                   if (gotf) {
+                       nsrc += line + "\n";
+                       continue;
+                   }
+                   if (DocComment.has_tag_regex.match(line)) { // line with @
+                       nsrc += line + "\n";
+                       continue;
+                   }
+                   gotf = true;
+                   nsrc += "@desc " + line + "\n";
+                   
+               }
+                
+               this.src = nsrc;
+               
+                
+               
+           }
+                 
+                
+           public Gee.ArrayList<DocTag> getTag ( DocTagTitle tagTitle) {
+                       var ret = new Gee.ArrayList<DocTag>();
+               foreach(var tag in this.tags) {
+                       if (tag.title == tagTitle) {
+                               ret.add(tag);
+                       }
+                       }
+                       return ret;
+           }
+            public string getTagAsString ( DocTagTitle tagTitle) {
+                       string[] ret =  {};
+               foreach(var tag in this.tags) {
+                       if (tag.title == tagTitle) {
+                               ret += tag.desc;
+                       }
+                       }
+                       return string.joinv("\n", ret);
+           }   
+       }
+}
+
diff --git a/jsdoc/DocParser.c b/jsdoc/DocParser.c
new file mode 100644 (file)
index 0000000..684b258
--- /dev/null
@@ -0,0 +1,1256 @@
+/* DocParser.c generated by valac 0.36.6, the Vala compiler
+ * generated from DocParser.vala, do not modify */
+
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gee.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gio/gio.h>
+
+
+#define JSDOC_TYPE_DOC_PARSER (jsdoc_doc_parser_get_type ())
+#define JSDOC_DOC_PARSER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_DOC_PARSER, JSDOCDocParser))
+#define JSDOC_DOC_PARSER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_DOC_PARSER, JSDOCDocParserClass))
+#define JSDOC_IS_DOC_PARSER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_DOC_PARSER))
+#define JSDOC_IS_DOC_PARSER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_DOC_PARSER))
+#define JSDOC_DOC_PARSER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_DOC_PARSER, JSDOCDocParserClass))
+
+typedef struct _JSDOCDocParser JSDOCDocParser;
+typedef struct _JSDOCDocParserClass JSDOCDocParserClass;
+typedef struct _JSDOCDocParserPrivate JSDOCDocParserPrivate;
+
+#define JSDOC_TYPE_WALKER (jsdoc_walker_get_type ())
+#define JSDOC_WALKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_WALKER, JSDOCWalker))
+#define JSDOC_WALKER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_WALKER, JSDOCWalkerClass))
+#define JSDOC_IS_WALKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_WALKER))
+#define JSDOC_IS_WALKER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_WALKER))
+#define JSDOC_WALKER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_WALKER, JSDOCWalkerClass))
+
+typedef struct _JSDOCWalker JSDOCWalker;
+typedef struct _JSDOCWalkerClass JSDOCWalkerClass;
+
+#define JSDOC_TYPE_SYMBOL_SET (jsdoc_symbol_set_get_type ())
+#define JSDOC_SYMBOL_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_SYMBOL_SET, JSDOCSymbolSet))
+#define JSDOC_SYMBOL_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_SYMBOL_SET, JSDOCSymbolSetClass))
+#define JSDOC_IS_SYMBOL_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_SYMBOL_SET))
+#define JSDOC_IS_SYMBOL_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_SYMBOL_SET))
+#define JSDOC_SYMBOL_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_SYMBOL_SET, JSDOCSymbolSetClass))
+
+typedef struct _JSDOCSymbolSet JSDOCSymbolSet;
+typedef struct _JSDOCSymbolSetClass JSDOCSymbolSetClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+#define JSDOC_TYPE_TOKEN_STREAM (jsdoc_token_stream_get_type ())
+#define JSDOC_TOKEN_STREAM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_TOKEN_STREAM, JSDOCTokenStream))
+#define JSDOC_TOKEN_STREAM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_TOKEN_STREAM, JSDOCTokenStreamClass))
+#define JSDOC_IS_TOKEN_STREAM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_TOKEN_STREAM))
+#define JSDOC_IS_TOKEN_STREAM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_TOKEN_STREAM))
+#define JSDOC_TOKEN_STREAM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_TOKEN_STREAM, JSDOCTokenStreamClass))
+
+typedef struct _JSDOCTokenStream JSDOCTokenStream;
+typedef struct _JSDOCTokenStreamClass JSDOCTokenStreamClass;
+#define _g_free0(var) (var = (g_free (var), NULL))
+
+#define JSDOC_TYPE_SYMBOL (jsdoc_symbol_get_type ())
+#define JSDOC_SYMBOL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_SYMBOL, JSDOCSymbol))
+#define JSDOC_SYMBOL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_SYMBOL, JSDOCSymbolClass))
+#define JSDOC_IS_SYMBOL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_SYMBOL))
+#define JSDOC_IS_SYMBOL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_SYMBOL))
+#define JSDOC_SYMBOL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_SYMBOL, JSDOCSymbolClass))
+
+typedef struct _JSDOCSymbol JSDOCSymbol;
+typedef struct _JSDOCSymbolClass JSDOCSymbolClass;
+typedef struct _JSDOCSymbolPrivate JSDOCSymbolPrivate;
+
+#define JSDOC_TYPE_DOC_TAG (jsdoc_doc_tag_get_type ())
+#define JSDOC_DOC_TAG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_DOC_TAG, JSDOCDocTag))
+#define JSDOC_DOC_TAG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_DOC_TAG, JSDOCDocTagClass))
+#define JSDOC_IS_DOC_TAG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_DOC_TAG))
+#define JSDOC_IS_DOC_TAG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_DOC_TAG))
+#define JSDOC_DOC_TAG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_DOC_TAG, JSDOCDocTagClass))
+
+typedef struct _JSDOCDocTag JSDOCDocTag;
+typedef struct _JSDOCDocTagClass JSDOCDocTagClass;
+
+#define JSDOC_TYPE_DOC_COMMENT (jsdoc_doc_comment_get_type ())
+#define JSDOC_DOC_COMMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_DOC_COMMENT, JSDOCDocComment))
+#define JSDOC_DOC_COMMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_DOC_COMMENT, JSDOCDocCommentClass))
+#define JSDOC_IS_DOC_COMMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_DOC_COMMENT))
+#define JSDOC_IS_DOC_COMMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_DOC_COMMENT))
+#define JSDOC_DOC_COMMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_DOC_COMMENT, JSDOCDocCommentClass))
+
+typedef struct _JSDOCDocComment JSDOCDocComment;
+typedef struct _JSDOCDocCommentClass JSDOCDocCommentClass;
+typedef struct _JSDOCDocCommentPrivate JSDOCDocCommentPrivate;
+
+#define JSDOC_TYPE_PACKER_RUN (jsdoc_packer_run_get_type ())
+#define JSDOC_PACKER_RUN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_PACKER_RUN, JSDOCPackerRun))
+#define JSDOC_PACKER_RUN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_PACKER_RUN, JSDOCPackerRunClass))
+#define JSDOC_IS_PACKER_RUN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_PACKER_RUN))
+#define JSDOC_IS_PACKER_RUN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_PACKER_RUN))
+#define JSDOC_PACKER_RUN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_PACKER_RUN, JSDOCPackerRunClass))
+
+typedef struct _JSDOCPackerRun JSDOCPackerRun;
+typedef struct _JSDOCPackerRunClass JSDOCPackerRunClass;
+typedef struct _JSDOCPackerRunPrivate JSDOCPackerRunPrivate;
+
+struct _JSDOCDocParser {
+       GObject parent_instance;
+       JSDOCDocParserPrivate * priv;
+};
+
+struct _JSDOCDocParserClass {
+       GObjectClass parent_class;
+};
+
+struct _JSDOCSymbol {
+       GObject parent_instance;
+       JSDOCSymbolPrivate * priv;
+       GeeArrayList* augments;
+       GeeArrayList* methods;
+       GeeArrayList* properties;
+       GeeArrayList* returns;
+       GeeArrayList* childClasses;
+       GeeArrayList* inheritsFrom;
+       GeeHashMap* cfgs;
+       JSDOCDocComment* comment;
+       gchar* alias;
+       gchar* desc;
+       gchar* isa;
+       gboolean isEvent;
+       gboolean isConstant;
+       gboolean isIgnored;
+       gboolean isInner;
+       gboolean isNamespace;
+       gboolean isPrivate;
+       gboolean isStatic;
+       gchar* memberOf;
+};
+
+struct _JSDOCSymbolClass {
+       GObjectClass parent_class;
+};
+
+struct _JSDOCDocComment {
+       GObject parent_instance;
+       JSDOCDocCommentPrivate * priv;
+       gboolean isUserComment;
+       gboolean hasTags;
+       gchar* src;
+       GeeArrayList* tags;
+};
+
+struct _JSDOCDocCommentClass {
+       GObjectClass parent_class;
+};
+
+struct _JSDOCPackerRun {
+       GApplication parent_instance;
+       JSDOCPackerRunPrivate * priv;
+       gchar* opt_target;
+       gchar* opt_debug_target;
+       gchar* opt_real_basedir;
+       gchar* opt_doc_target;
+       gchar* opt_doc_template_dir;
+       gboolean opt_doc_include_private;
+       gboolean opt_debug;
+       gboolean opt_skip_scope;
+       gboolean opt_keep_whitespace;
+       gboolean opt_dump_tokens;
+       gboolean opt_clean_cache;
+       gchar* opt_doc_ext;
+};
+
+struct _JSDOCPackerRunClass {
+       GApplicationClass parent_class;
+};
+
+
+static gpointer jsdoc_doc_parser_parent_class = NULL;
+static gboolean jsdoc_doc_parser_ignoreAnonymous;
+static gboolean jsdoc_doc_parser_ignoreAnonymous = TRUE;
+static gboolean jsdoc_doc_parser_treatUnderscoredAsPrivate;
+static gboolean jsdoc_doc_parser_treatUnderscoredAsPrivate = TRUE;
+static gboolean jsdoc_doc_parser_explain;
+static gboolean jsdoc_doc_parser_explain = FALSE;
+static gboolean jsdoc_doc_parser_has_init;
+static gboolean jsdoc_doc_parser_has_init = FALSE;
+static JSDOCWalker* jsdoc_doc_parser_walker;
+static JSDOCWalker* jsdoc_doc_parser_walker = NULL;
+static JSDOCSymbolSet* jsdoc_doc_parser__symbols;
+static JSDOCSymbolSet* jsdoc_doc_parser__symbols = NULL;
+static GeeHashMap* jsdoc_doc_parser__filesSymbols;
+static GeeHashMap* jsdoc_doc_parser__filesSymbols = NULL;
+extern gchar* jsdoc_doc_parser_currentSourceFile;
+gchar* jsdoc_doc_parser_currentSourceFile = NULL;
+extern gchar* jsdoc_doc_comment_shared;
+
+GType jsdoc_doc_parser_get_type (void) G_GNUC_CONST;
+enum  {
+       JSDOC_DOC_PARSER_DUMMY_PROPERTY
+};
+GType jsdoc_walker_get_type (void) G_GNUC_CONST;
+GType jsdoc_symbol_set_get_type (void) G_GNUC_CONST;
+JSDOCSymbolSet* jsdoc_doc_parser_symbols (void);
+JSDOCSymbolSet* jsdoc_symbol_set_new (void);
+JSDOCSymbolSet* jsdoc_symbol_set_construct (GType object_type);
+static GeeHashMap* jsdoc_doc_parser_filesSymbols (void);
+GType jsdoc_token_stream_get_type (void) G_GNUC_CONST;
+void jsdoc_doc_parser_parse (JSDOCTokenStream* ts, const gchar* srcFile);
+JSDOCWalker* jsdoc_walker_new (JSDOCTokenStream* ts);
+JSDOCWalker* jsdoc_walker_construct (GType object_type, JSDOCTokenStream* ts);
+void jsdoc_walker_buildSymbolTree (JSDOCWalker* self);
+GeeArrayList* jsdoc_symbol_set_keys (JSDOCSymbolSet* self);
+GType jsdoc_symbol_get_type (void) G_GNUC_CONST;
+JSDOCSymbol* jsdoc_symbol_set_getSymbol (JSDOCSymbolSet* self, const gchar* alias);
+GType jsdoc_doc_tag_get_type (void) G_GNUC_CONST;
+GType jsdoc_doc_comment_get_type (void) G_GNUC_CONST;
+void jsdoc_symbol_set_deleteSymbol (JSDOCSymbolSet* self, const gchar* alias);
+gboolean jsdoc_symbol_is (JSDOCSymbol* self, const gchar* what);
+void jsdoc_doc_parser_addSymbol (JSDOCSymbol* symbol);
+gboolean jsdoc_symbol_set_hasSymbol (JSDOCSymbolSet* self, const gchar* alias);
+const gchar* jsdoc_symbol_get_name (JSDOCSymbol* self);
+GType jsdoc_packer_run_get_type (void) G_GNUC_CONST;
+JSDOCPackerRun* jsdoc_packer_run_singleton (void);
+void jsdoc_symbol_set_addSymbol (JSDOCSymbolSet* self, JSDOCSymbol* symbol);
+JSDOCSymbol* jsdoc_doc_parser_addBuiltin (const gchar* name);
+JSDOCSymbol* jsdoc_symbol_new_new_builtin (const gchar* name);
+JSDOCSymbol* jsdoc_symbol_construct_new_builtin (GType object_type, const gchar* name);
+void jsdoc_doc_parser_finish (void);
+void jsdoc_symbol_set_relate (JSDOCSymbolSet* self);
+static JSDOCSymbolSet* jsdoc_doc_parser_symbolsToObject (JSDOCDocParser* self, const gchar* srcFile);
+JSDOCDocParser* jsdoc_doc_parser_new (void);
+JSDOCDocParser* jsdoc_doc_parser_construct (GType object_type);
+static void jsdoc_doc_parser_finalize (GObject * obj);
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 23 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       return self ? g_object_ref (self) : NULL;
+#line 233 "DocParser.c"
+}
+
+
+JSDOCSymbolSet* jsdoc_doc_parser_symbols (void) {
+       JSDOCSymbolSet* result = NULL;
+       JSDOCSymbolSet* _tmp0_;
+       JSDOCSymbolSet* _tmp2_;
+       JSDOCSymbolSet* _tmp3_;
+#line 18 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       _tmp0_ = jsdoc_doc_parser__symbols;
+#line 18 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       if (_tmp0_ == NULL) {
+#line 246 "DocParser.c"
+               JSDOCSymbolSet* _tmp1_;
+#line 19 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+               g_debug ("DocParser.vala:19: init symbols?");
+#line 20 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+               _tmp1_ = jsdoc_symbol_set_new ();
+#line 20 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+               _g_object_unref0 (jsdoc_doc_parser__symbols);
+#line 20 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+               jsdoc_doc_parser__symbols = _tmp1_;
+#line 256 "DocParser.c"
+       }
+#line 23 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       _tmp2_ = jsdoc_doc_parser__symbols;
+#line 23 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       _tmp3_ = _g_object_ref0 (_tmp2_);
+#line 23 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       result = _tmp3_;
+#line 23 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       return result;
+#line 266 "DocParser.c"
+}
+
+
+static GeeHashMap* jsdoc_doc_parser_filesSymbols (void) {
+       GeeHashMap* result = NULL;
+       GeeHashMap* _tmp0_;
+       GeeHashMap* _tmp2_;
+       GeeHashMap* _tmp3_;
+#line 29 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       _tmp0_ = jsdoc_doc_parser__filesSymbols;
+#line 29 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       if (_tmp0_ == NULL) {
+#line 279 "DocParser.c"
+               GeeHashMap* _tmp1_;
+#line 30 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+               g_debug ("DocParser.vala:30: init _filesSymbols?");
+#line 31 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+               _tmp1_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, JSDOC_TYPE_SYMBOL_SET, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 31 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+               _g_object_unref0 (jsdoc_doc_parser__filesSymbols);
+#line 31 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+               jsdoc_doc_parser__filesSymbols = _tmp1_;
+#line 289 "DocParser.c"
+       }
+#line 33 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       _tmp2_ = jsdoc_doc_parser__filesSymbols;
+#line 33 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       _tmp3_ = _g_object_ref0 (_tmp2_);
+#line 33 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       result = _tmp3_;
+#line 33 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       return result;
+#line 299 "DocParser.c"
+}
+
+
+static glong string_strnlen (gchar* str, glong maxlen) {
+       glong result = 0L;
+       gchar* end = NULL;
+       gchar* _tmp0_;
+       glong _tmp1_;
+       gchar* _tmp2_;
+       gchar* _tmp3_;
+#line 1322 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp0_ = str;
+#line 1322 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp1_ = maxlen;
+#line 1322 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp2_ = memchr (_tmp0_, 0, (gsize) _tmp1_);
+#line 1322 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       end = _tmp2_;
+#line 1323 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp3_ = end;
+#line 1323 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if (_tmp3_ == NULL) {
+#line 322 "DocParser.c"
+               glong _tmp4_;
+#line 1324 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp4_ = maxlen;
+#line 1324 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               result = _tmp4_;
+#line 1324 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               return result;
+#line 330 "DocParser.c"
+       } else {
+               gchar* _tmp5_;
+               gchar* _tmp6_;
+#line 1326 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp5_ = end;
+#line 1326 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp6_ = str;
+#line 1326 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               result = (glong) (_tmp5_ - _tmp6_);
+#line 1326 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               return result;
+#line 342 "DocParser.c"
+       }
+}
+
+
+static gchar* string_substring (const gchar* self, glong offset, glong len) {
+       gchar* result = NULL;
+       glong string_length = 0L;
+       gboolean _tmp0_ = FALSE;
+       glong _tmp1_;
+       glong _tmp8_;
+       glong _tmp14_;
+       glong _tmp17_;
+       glong _tmp18_;
+       glong _tmp19_;
+       glong _tmp20_;
+       glong _tmp21_;
+       gchar* _tmp22_;
+#line 1333 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 1335 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp1_ = offset;
+#line 1335 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if (_tmp1_ >= ((glong) 0)) {
+#line 366 "DocParser.c"
+               glong _tmp2_;
+#line 1335 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp2_ = len;
+#line 1335 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp0_ = _tmp2_ >= ((glong) 0);
+#line 372 "DocParser.c"
+       } else {
+#line 1335 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp0_ = FALSE;
+#line 376 "DocParser.c"
+       }
+#line 1335 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if (_tmp0_) {
+#line 380 "DocParser.c"
+               glong _tmp3_;
+               glong _tmp4_;
+               glong _tmp5_;
+#line 1337 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp3_ = offset;
+#line 1337 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp4_ = len;
+#line 1337 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp5_ = string_strnlen ((gchar*) self, _tmp3_ + _tmp4_);
+#line 1337 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               string_length = _tmp5_;
+#line 392 "DocParser.c"
+       } else {
+               gint _tmp6_;
+               gint _tmp7_;
+#line 1339 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp6_ = strlen (self);
+#line 1339 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp7_ = _tmp6_;
+#line 1339 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               string_length = (glong) _tmp7_;
+#line 402 "DocParser.c"
+       }
+#line 1342 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp8_ = offset;
+#line 1342 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if (_tmp8_ < ((glong) 0)) {
+#line 408 "DocParser.c"
+               glong _tmp9_;
+               glong _tmp10_;
+               glong _tmp11_;
+#line 1343 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp9_ = string_length;
+#line 1343 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp10_ = offset;
+#line 1343 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               offset = _tmp9_ + _tmp10_;
+#line 1344 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp11_ = offset;
+#line 1344 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               g_return_val_if_fail (_tmp11_ >= ((glong) 0), NULL);
+#line 422 "DocParser.c"
+       } else {
+               glong _tmp12_;
+               glong _tmp13_;
+#line 1346 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp12_ = offset;
+#line 1346 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp13_ = string_length;
+#line 1346 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               g_return_val_if_fail (_tmp12_ <= _tmp13_, NULL);
+#line 432 "DocParser.c"
+       }
+#line 1348 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp14_ = len;
+#line 1348 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if (_tmp14_ < ((glong) 0)) {
+#line 438 "DocParser.c"
+               glong _tmp15_;
+               glong _tmp16_;
+#line 1349 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp15_ = string_length;
+#line 1349 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp16_ = offset;
+#line 1349 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               len = _tmp15_ - _tmp16_;
+#line 447 "DocParser.c"
+       }
+#line 1351 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp17_ = offset;
+#line 1351 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp18_ = len;
+#line 1351 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp19_ = string_length;
+#line 1351 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       g_return_val_if_fail ((_tmp17_ + _tmp18_) <= _tmp19_, NULL);
+#line 1352 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp20_ = offset;
+#line 1352 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp21_ = len;
+#line 1352 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp22_ = g_strndup (((gchar*) self) + _tmp20_, (gsize) _tmp21_);
+#line 1352 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       result = _tmp22_;
+#line 1352 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       return result;
+#line 467 "DocParser.c"
+}
+
+
+void jsdoc_doc_parser_parse (JSDOCTokenStream* ts, const gchar* srcFile) {
+       const gchar* _tmp0_;
+       gchar* _tmp1_;
+       gchar* _tmp2_;
+       GeeHashMap* _tmp3_;
+       GeeHashMap* _tmp4_;
+       const gchar* _tmp5_;
+       JSDOCSymbolSet* _tmp6_;
+       JSDOCSymbolSet* _tmp7_;
+       JSDOCTokenStream* _tmp8_;
+       JSDOCWalker* _tmp9_;
+       JSDOCWalker* _tmp10_;
+#line 44 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       g_return_if_fail (ts != NULL);
+#line 44 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       g_return_if_fail (srcFile != NULL);
+#line 47 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       _tmp0_ = srcFile;
+#line 47 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       _tmp1_ = g_strdup (_tmp0_);
+#line 47 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       _g_free0 (jsdoc_doc_parser_currentSourceFile);
+#line 47 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       jsdoc_doc_parser_currentSourceFile = _tmp1_;
+#line 50 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       _tmp2_ = g_strdup ("");
+#line 50 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       _g_free0 (jsdoc_doc_comment_shared);
+#line 50 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       jsdoc_doc_comment_shared = _tmp2_;
+#line 52 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       _tmp3_ = jsdoc_doc_parser_filesSymbols ();
+#line 52 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       _tmp4_ = _tmp3_;
+#line 52 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       _tmp5_ = srcFile;
+#line 52 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       _tmp6_ = jsdoc_symbol_set_new ();
+#line 52 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       _tmp7_ = _tmp6_;
+#line 52 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       gee_abstract_map_set ((GeeAbstractMap*) _tmp4_, _tmp5_, _tmp7_);
+#line 52 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       _g_object_unref0 (_tmp7_);
+#line 52 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       _g_object_unref0 (_tmp4_);
+#line 55 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       _tmp8_ = ts;
+#line 55 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       _tmp9_ = jsdoc_walker_new (_tmp8_);
+#line 55 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       _g_object_unref0 (jsdoc_doc_parser_walker);
+#line 55 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       jsdoc_doc_parser_walker = _tmp9_;
+#line 56 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       _tmp10_ = jsdoc_doc_parser_walker;
+#line 56 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       jsdoc_walker_buildSymbolTree (_tmp10_);
+#line 529 "DocParser.c"
+       {
+               GeeArrayList* _p_list = NULL;
+               JSDOCSymbolSet* _tmp11_;
+               JSDOCSymbolSet* _tmp12_;
+               GeeArrayList* _tmp13_;
+               GeeArrayList* _tmp14_;
+               gint _p_size = 0;
+               GeeArrayList* _tmp15_;
+               gint _tmp16_;
+               gint _tmp17_;
+               gint _p_index = 0;
+#line 64 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+               _tmp11_ = jsdoc_doc_parser_symbols ();
+#line 64 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+               _tmp12_ = _tmp11_;
+#line 64 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+               _tmp13_ = jsdoc_symbol_set_keys (_tmp12_);
+#line 64 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+               _tmp14_ = _tmp13_;
+#line 64 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+               _g_object_unref0 (_tmp12_);
+#line 64 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+               _p_list = _tmp14_;
+#line 64 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+               _tmp15_ = _p_list;
+#line 64 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+               _tmp16_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp15_);
+#line 64 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+               _tmp17_ = _tmp16_;
+#line 64 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+               _p_size = _tmp17_;
+#line 64 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+               _p_index = -1;
+#line 64 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+               while (TRUE) {
+#line 565 "DocParser.c"
+                       gint _tmp18_;
+                       gint _tmp19_;
+                       gint _tmp20_;
+                       gchar* p = NULL;
+                       GeeArrayList* _tmp21_;
+                       gint _tmp22_;
+                       gpointer _tmp23_;
+                       JSDOCSymbol* symbol = NULL;
+                       JSDOCSymbolSet* _tmp24_;
+                       JSDOCSymbolSet* _tmp25_;
+                       const gchar* _tmp26_;
+                       JSDOCSymbol* _tmp27_;
+                       JSDOCSymbol* _tmp28_;
+                       JSDOCSymbol* _tmp29_;
+                       JSDOCSymbol* _tmp30_;
+                       gboolean _tmp31_;
+                       gboolean _tmp43_ = FALSE;
+                       JSDOCSymbol* _tmp44_;
+                       gboolean _tmp45_;
+                       JSDOCSymbol* _tmp48_;
+                       const gchar* _tmp49_;
+                       JSDOCSymbol* _tmp50_;
+                       const gchar* _tmp51_;
+                       gint _tmp52_;
+                       gint _tmp53_;
+                       gchar* _tmp54_;
+                       gchar* _tmp55_;
+                       gboolean _tmp56_;
+#line 64 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                       _tmp18_ = _p_index;
+#line 64 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                       _p_index = _tmp18_ + 1;
+#line 64 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                       _tmp19_ = _p_index;
+#line 64 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                       _tmp20_ = _p_size;
+#line 64 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                       if (!(_tmp19_ < _tmp20_)) {
+#line 64 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                               break;
+#line 606 "DocParser.c"
+                       }
+#line 64 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                       _tmp21_ = _p_list;
+#line 64 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                       _tmp22_ = _p_index;
+#line 64 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                       _tmp23_ = gee_abstract_list_get ((GeeAbstractList*) _tmp21_, _tmp22_);
+#line 64 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                       p = (gchar*) _tmp23_;
+#line 65 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                       _tmp24_ = jsdoc_doc_parser_symbols ();
+#line 65 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                       _tmp25_ = _tmp24_;
+#line 65 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                       _tmp26_ = p;
+#line 65 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                       _tmp27_ = jsdoc_symbol_set_getSymbol (_tmp25_, _tmp26_);
+#line 65 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                       _tmp28_ = _tmp27_;
+#line 65 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                       _g_object_unref0 (_tmp25_);
+#line 65 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                       symbol = _tmp28_;
+#line 69 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                       _tmp29_ = symbol;
+#line 69 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                       if (_tmp29_ == NULL) {
+#line 69 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                               _g_object_unref0 (symbol);
+#line 69 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                               _g_free0 (p);
+#line 69 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                               continue;
+#line 640 "DocParser.c"
+                       }
+#line 71 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                       _tmp30_ = symbol;
+#line 71 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                       _tmp31_ = _tmp30_->isPrivate;
+#line 71 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                       if (_tmp31_) {
+#line 648 "DocParser.c"
+                               JSDOCSymbolSet* _tmp32_;
+                               JSDOCSymbolSet* _tmp33_;
+                               JSDOCSymbol* _tmp34_;
+                               const gchar* _tmp35_;
+                               GeeHashMap* _tmp36_;
+                               GeeHashMap* _tmp37_;
+                               const gchar* _tmp38_;
+                               gpointer _tmp39_;
+                               JSDOCSymbolSet* _tmp40_;
+                               JSDOCSymbol* _tmp41_;
+                               const gchar* _tmp42_;
+#line 72 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                               _tmp32_ = jsdoc_doc_parser_symbols ();
+#line 72 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                               _tmp33_ = _tmp32_;
+#line 72 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                               _tmp34_ = symbol;
+#line 72 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                               _tmp35_ = _tmp34_->alias;
+#line 72 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                               jsdoc_symbol_set_deleteSymbol (_tmp33_, _tmp35_);
+#line 72 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                               _g_object_unref0 (_tmp33_);
+#line 73 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                               _tmp36_ = jsdoc_doc_parser_filesSymbols ();
+#line 73 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                               _tmp37_ = _tmp36_;
+#line 73 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                               _tmp38_ = srcFile;
+#line 73 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                               _tmp39_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp37_, _tmp38_);
+#line 73 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                               _tmp40_ = (JSDOCSymbolSet*) _tmp39_;
+#line 73 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                               _tmp41_ = symbol;
+#line 73 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                               _tmp42_ = _tmp41_->alias;
+#line 73 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                               jsdoc_symbol_set_deleteSymbol (_tmp40_, _tmp42_);
+#line 73 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                               _g_object_unref0 (_tmp40_);
+#line 73 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                               _g_object_unref0 (_tmp37_);
+#line 74 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                               _g_object_unref0 (symbol);
+#line 74 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                               _g_free0 (p);
+#line 74 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                               continue;
+#line 698 "DocParser.c"
+                       }
+#line 77 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                       _tmp44_ = symbol;
+#line 77 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                       _tmp45_ = jsdoc_symbol_is (_tmp44_, "FILE");
+#line 77 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                       if (_tmp45_) {
+#line 77 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                               _tmp43_ = TRUE;
+#line 708 "DocParser.c"
+                       } else {
+                               JSDOCSymbol* _tmp46_;
+                               gboolean _tmp47_;
+#line 77 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                               _tmp46_ = symbol;
+#line 77 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                               _tmp47_ = jsdoc_symbol_is (_tmp46_, "GLOBAL");
+#line 77 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                               _tmp43_ = _tmp47_;
+#line 718 "DocParser.c"
+                       }
+#line 77 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                       if (_tmp43_) {
+#line 78 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                               _g_object_unref0 (symbol);
+#line 78 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                               _g_free0 (p);
+#line 78 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                               continue;
+#line 728 "DocParser.c"
+                       }
+#line 82 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                       _tmp48_ = symbol;
+#line 82 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                       _tmp49_ = _tmp48_->alias;
+#line 82 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                       _tmp50_ = symbol;
+#line 82 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                       _tmp51_ = _tmp50_->alias;
+#line 82 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                       _tmp52_ = strlen (_tmp51_);
+#line 82 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                       _tmp53_ = _tmp52_;
+#line 82 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                       _tmp54_ = string_substring (_tmp49_, (glong) (_tmp53_ - 1), (glong) -1);
+#line 82 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                       _tmp55_ = _tmp54_;
+#line 82 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                       _tmp56_ = g_strcmp0 (_tmp55_, "#") == 0;
+#line 82 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                       _g_free0 (_tmp55_);
+#line 82 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                       if (_tmp56_) {
+#line 752 "DocParser.c"
+                               JSDOCSymbol* _tmp57_;
+                               const gchar* _tmp58_;
+                               gchar* _tmp59_;
+                               gchar* _tmp60_;
+                               JSDOCSymbolSet* _tmp61_;
+                               JSDOCSymbolSet* _tmp62_;
+                               JSDOCSymbol* _tmp63_;
+                               const gchar* _tmp64_;
+                               GeeHashMap* _tmp65_;
+                               GeeHashMap* _tmp66_;
+                               const gchar* _tmp67_;
+                               gpointer _tmp68_;
+                               JSDOCSymbolSet* _tmp69_;
+                               JSDOCSymbol* _tmp70_;
+                               const gchar* _tmp71_;
+#line 84 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                               _tmp57_ = symbol;
+#line 84 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                               _tmp58_ = _tmp57_->alias;
+#line 84 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                               _tmp59_ = g_strconcat ("Deleting Symbols (alias ends in #): ", _tmp58_, NULL);
+#line 84 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                               _tmp60_ = _tmp59_;
+#line 84 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                               g_print ("%s", _tmp60_);
+#line 84 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                               _g_free0 (_tmp60_);
+#line 86 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                               _tmp61_ = jsdoc_doc_parser_symbols ();
+#line 86 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                               _tmp62_ = _tmp61_;
+#line 86 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                               _tmp63_ = symbol;
+#line 86 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                               _tmp64_ = _tmp63_->alias;
+#line 86 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                               jsdoc_symbol_set_deleteSymbol (_tmp62_, _tmp64_);
+#line 86 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                               _g_object_unref0 (_tmp62_);
+#line 87 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                               _tmp65_ = jsdoc_doc_parser_filesSymbols ();
+#line 87 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                               _tmp66_ = _tmp65_;
+#line 87 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                               _tmp67_ = srcFile;
+#line 87 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                               _tmp68_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp66_, _tmp67_);
+#line 87 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                               _tmp69_ = (JSDOCSymbolSet*) _tmp68_;
+#line 87 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                               _tmp70_ = symbol;
+#line 87 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                               _tmp71_ = _tmp70_->alias;
+#line 87 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                               jsdoc_symbol_set_deleteSymbol (_tmp69_, _tmp71_);
+#line 87 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                               _g_object_unref0 (_tmp69_);
+#line 87 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                               _g_object_unref0 (_tmp66_);
+#line 812 "DocParser.c"
+                       }
+#line 64 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                       _g_object_unref0 (symbol);
+#line 64 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                       _g_free0 (p);
+#line 818 "DocParser.c"
+               }
+#line 64 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+               _g_object_unref0 (_p_list);
+#line 822 "DocParser.c"
+       }
+#line 93 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       return;
+#line 826 "DocParser.c"
+}
+
+
+static gint string_index_of (const gchar* self, const gchar* needle, gint start_index) {
+       gint result = 0;
+       gchar* _result_ = NULL;
+       gint _tmp0_;
+       const gchar* _tmp1_;
+       gchar* _tmp2_;
+       gchar* _tmp3_;
+#line 1011 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (self != NULL, 0);
+#line 1011 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (needle != NULL, 0);
+#line 1012 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp0_ = start_index;
+#line 1012 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp1_ = needle;
+#line 1012 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp2_ = strstr (((gchar*) self) + _tmp0_, (gchar*) _tmp1_);
+#line 1012 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _result_ = _tmp2_;
+#line 1014 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp3_ = _result_;
+#line 1014 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if (_tmp3_ != NULL) {
+#line 853 "DocParser.c"
+               gchar* _tmp4_;
+#line 1015 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp4_ = _result_;
+#line 1015 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               result = (gint) (_tmp4_ - ((gchar*) self));
+#line 1015 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               return result;
+#line 861 "DocParser.c"
+       } else {
+#line 1017 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               result = -1;
+#line 1017 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               return result;
+#line 867 "DocParser.c"
+       }
+}
+
+
+void jsdoc_doc_parser_addSymbol (JSDOCSymbol* symbol) {
+       JSDOCSymbolSet* _tmp0_;
+       JSDOCSymbolSet* _tmp1_;
+       JSDOCSymbol* _tmp2_;
+       const gchar* _tmp3_;
+       gboolean _tmp4_;
+       gboolean _tmp5_;
+       gboolean _tmp24_ = FALSE;
+       gboolean _tmp25_;
+       gboolean _tmp30_ = FALSE;
+       gboolean _tmp31_ = FALSE;
+       JSDOCSymbol* _tmp32_;
+       gboolean _tmp33_;
+       JSDOCSymbol* _tmp39_;
+       gboolean _tmp40_;
+       const gchar* _tmp41_;
+       JSDOCSymbolSet* _tmp48_;
+       JSDOCSymbolSet* _tmp49_;
+       JSDOCSymbol* _tmp50_;
+#line 97 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       g_return_if_fail (symbol != NULL);
+#line 102 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       _tmp0_ = jsdoc_doc_parser_symbols ();
+#line 102 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       _tmp1_ = _tmp0_;
+#line 102 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       _tmp2_ = symbol;
+#line 102 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       _tmp3_ = _tmp2_->alias;
+#line 102 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       _tmp4_ = jsdoc_symbol_set_hasSymbol (_tmp1_, _tmp3_);
+#line 102 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       _tmp5_ = _tmp4_;
+#line 102 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       _g_object_unref0 (_tmp1_);
+#line 102 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       if (_tmp5_) {
+#line 909 "DocParser.c"
+               JSDOCSymbol* oldSymbol = NULL;
+               JSDOCSymbolSet* _tmp6_;
+               JSDOCSymbolSet* _tmp7_;
+               JSDOCSymbol* _tmp8_;
+               const gchar* _tmp9_;
+               JSDOCSymbol* _tmp10_;
+               JSDOCSymbol* _tmp11_;
+               gboolean _tmp12_ = FALSE;
+               JSDOCSymbol* _tmp13_;
+               JSDOCDocComment* _tmp14_;
+               gboolean _tmp15_;
+#line 103 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+               _tmp6_ = jsdoc_doc_parser_symbols ();
+#line 103 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+               _tmp7_ = _tmp6_;
+#line 103 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+               _tmp8_ = symbol;
+#line 103 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+               _tmp9_ = _tmp8_->alias;
+#line 103 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+               _tmp10_ = jsdoc_symbol_set_getSymbol (_tmp7_, _tmp9_);
+#line 103 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+               _tmp11_ = _tmp10_;
+#line 103 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+               _g_object_unref0 (_tmp7_);
+#line 103 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+               oldSymbol = _tmp11_;
+#line 105 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+               _tmp13_ = oldSymbol;
+#line 105 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+               _tmp14_ = _tmp13_->comment;
+#line 105 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+               _tmp15_ = _tmp14_->isUserComment;
+#line 105 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+               if (_tmp15_) {
+#line 945 "DocParser.c"
+                       JSDOCSymbol* _tmp16_;
+                       JSDOCDocComment* _tmp17_;
+                       gboolean _tmp18_;
+#line 105 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                       _tmp16_ = oldSymbol;
+#line 105 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                       _tmp17_ = _tmp16_->comment;
+#line 105 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                       _tmp18_ = _tmp17_->hasTags;
+#line 105 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                       _tmp12_ = !_tmp18_;
+#line 957 "DocParser.c"
+               } else {
+#line 105 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                       _tmp12_ = FALSE;
+#line 961 "DocParser.c"
+               }
+#line 105 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+               if (_tmp12_) {
+#line 965 "DocParser.c"
+                       JSDOCSymbol* _tmp19_;
+                       JSDOCDocComment* _tmp20_;
+                       gboolean _tmp21_;
+#line 106 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                       _tmp19_ = symbol;
+#line 106 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                       _tmp20_ = _tmp19_->comment;
+#line 106 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                       _tmp21_ = _tmp20_->isUserComment;
+#line 106 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                       if (_tmp21_) {
+#line 977 "DocParser.c"
+                               JSDOCSymbol* _tmp22_;
+                               const gchar* _tmp23_;
+#line 107 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                               _tmp22_ = symbol;
+#line 107 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                               _tmp23_ = _tmp22_->alias;
+#line 107 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                               g_debug ("DocParser.vala:107: The symbol '%s' is documented more than once.", _tmp23_);
+#line 986 "DocParser.c"
+                       } else {
+#line 110 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                               _g_object_unref0 (oldSymbol);
+#line 110 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+                               return;
+#line 992 "DocParser.c"
+                       }
+               }
+#line 102 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+               _g_object_unref0 (oldSymbol);
+#line 997 "DocParser.c"
+       }
+#line 116 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       _tmp25_ = jsdoc_doc_parser_ignoreAnonymous;
+#line 116 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       if (_tmp25_) {
+#line 1003 "DocParser.c"
+               JSDOCSymbol* _tmp26_;
+               const gchar* _tmp27_;
+               const gchar* _tmp28_;
+               gint _tmp29_;
+#line 116 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+               _tmp26_ = symbol;
+#line 116 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+               _tmp27_ = jsdoc_symbol_get_name (_tmp26_);
+#line 116 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+               _tmp28_ = _tmp27_;
+#line 116 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+               _tmp29_ = string_index_of (_tmp28_, "$anonymous\b", 0);
+#line 116 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+               _tmp24_ = _tmp29_ > -1;
+#line 1018 "DocParser.c"
+       } else {
+#line 116 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+               _tmp24_ = FALSE;
+#line 1022 "DocParser.c"
+       }
+#line 116 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       if (_tmp24_) {
+#line 117 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+               return;
+#line 1028 "DocParser.c"
+       }
+#line 126 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       _tmp32_ = symbol;
+#line 126 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       _tmp33_ = _tmp32_->isInner;
+#line 126 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       if (_tmp33_) {
+#line 126 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+               _tmp31_ = TRUE;
+#line 1038 "DocParser.c"
+       } else {
+               JSDOCSymbol* _tmp34_;
+               gboolean _tmp35_;
+#line 126 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+               _tmp34_ = symbol;
+#line 126 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+               _tmp35_ = _tmp34_->isPrivate;
+#line 126 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+               _tmp31_ = _tmp35_;
+#line 1048 "DocParser.c"
+       }
+#line 126 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       if (_tmp31_) {
+#line 1052 "DocParser.c"
+               JSDOCPackerRun* _tmp36_;
+               JSDOCPackerRun* _tmp37_;
+               gboolean _tmp38_;
+#line 126 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+               _tmp36_ = jsdoc_packer_run_singleton ();
+#line 126 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+               _tmp37_ = _tmp36_;
+#line 126 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+               _tmp38_ = _tmp37_->opt_doc_include_private;
+#line 126 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+               _tmp30_ = !_tmp38_;
+#line 126 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+               _g_object_unref0 (_tmp37_);
+#line 1066 "DocParser.c"
+       } else {
+#line 126 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+               _tmp30_ = FALSE;
+#line 1070 "DocParser.c"
+       }
+#line 126 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       if (_tmp30_) {
+#line 127 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+               return;
+#line 1076 "DocParser.c"
+       }
+#line 131 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       _tmp39_ = symbol;
+#line 131 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       _tmp40_ = _tmp39_->isIgnored;
+#line 131 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       if (_tmp40_) {
+#line 132 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+               return;
+#line 1086 "DocParser.c"
+       }
+#line 135 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       _tmp41_ = jsdoc_doc_parser_currentSourceFile;
+#line 135 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       if (_tmp41_ != NULL) {
+#line 1092 "DocParser.c"
+               GeeHashMap* _tmp42_;
+               GeeHashMap* _tmp43_;
+               const gchar* _tmp44_;
+               gpointer _tmp45_;
+               JSDOCSymbolSet* _tmp46_;
+               JSDOCSymbol* _tmp47_;
+#line 136 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+               _tmp42_ = jsdoc_doc_parser_filesSymbols ();
+#line 136 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+               _tmp43_ = _tmp42_;
+#line 136 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+               _tmp44_ = jsdoc_doc_parser_currentSourceFile;
+#line 136 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+               _tmp45_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp43_, _tmp44_);
+#line 136 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+               _tmp46_ = (JSDOCSymbolSet*) _tmp45_;
+#line 136 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+               _tmp47_ = symbol;
+#line 136 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+               jsdoc_symbol_set_addSymbol (_tmp46_, _tmp47_);
+#line 136 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+               _g_object_unref0 (_tmp46_);
+#line 136 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+               _g_object_unref0 (_tmp43_);
+#line 1117 "DocParser.c"
+       }
+#line 139 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       _tmp48_ = jsdoc_doc_parser_symbols ();
+#line 139 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       _tmp49_ = _tmp48_;
+#line 139 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       _tmp50_ = symbol;
+#line 139 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       jsdoc_symbol_set_addSymbol (_tmp49_, _tmp50_);
+#line 139 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       _g_object_unref0 (_tmp49_);
+#line 1129 "DocParser.c"
+}
+
+
+JSDOCSymbol* jsdoc_doc_parser_addBuiltin (const gchar* name) {
+       JSDOCSymbol* result = NULL;
+       JSDOCSymbol* builtin = NULL;
+       const gchar* _tmp0_;
+       JSDOCSymbol* _tmp1_;
+#line 142 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       g_return_val_if_fail (name != NULL, NULL);
+#line 144 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       _tmp0_ = name;
+#line 144 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       _tmp1_ = jsdoc_symbol_new_new_builtin (_tmp0_);
+#line 144 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       builtin = _tmp1_;
+#line 145 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       jsdoc_doc_parser_addSymbol (builtin);
+#line 146 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       result = builtin;
+#line 146 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       return result;
+#line 1152 "DocParser.c"
+}
+
+
+void jsdoc_doc_parser_finish (void) {
+       JSDOCSymbolSet* _tmp0_;
+       JSDOCSymbolSet* _tmp1_;
+#line 153 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       _tmp0_ = jsdoc_doc_parser_symbols ();
+#line 153 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       _tmp1_ = _tmp0_;
+#line 153 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       jsdoc_symbol_set_relate (_tmp1_);
+#line 153 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       _g_object_unref0 (_tmp1_);
+#line 1167 "DocParser.c"
+}
+
+
+/**
+ * return symbols so they can be serialized.
+ */
+static JSDOCSymbolSet* jsdoc_doc_parser_symbolsToObject (JSDOCDocParser* self, const gchar* srcFile) {
+       JSDOCSymbolSet* result = NULL;
+       GeeHashMap* _tmp0_;
+       GeeHashMap* _tmp1_;
+       const gchar* _tmp2_;
+       gpointer _tmp3_;
+       JSDOCSymbolSet* _tmp4_;
+#line 175 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 175 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       g_return_val_if_fail (srcFile != NULL, NULL);
+#line 178 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       _tmp0_ = jsdoc_doc_parser_filesSymbols ();
+#line 178 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       _tmp1_ = _tmp0_;
+#line 178 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       _tmp2_ = srcFile;
+#line 178 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       _tmp3_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp1_, _tmp2_);
+#line 178 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       _tmp4_ = (JSDOCSymbolSet*) _tmp3_;
+#line 178 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       _g_object_unref0 (_tmp1_);
+#line 178 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       result = _tmp4_;
+#line 178 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       return result;
+#line 1201 "DocParser.c"
+}
+
+
+JSDOCDocParser* jsdoc_doc_parser_construct (GType object_type) {
+       JSDOCDocParser * self = NULL;
+#line 5 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       self = (JSDOCDocParser*) g_object_new (object_type, NULL);
+#line 5 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       return self;
+#line 1211 "DocParser.c"
+}
+
+
+JSDOCDocParser* jsdoc_doc_parser_new (void) {
+#line 5 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       return jsdoc_doc_parser_construct (JSDOC_TYPE_DOC_PARSER);
+#line 1218 "DocParser.c"
+}
+
+
+static void jsdoc_doc_parser_class_init (JSDOCDocParserClass * klass) {
+#line 5 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       jsdoc_doc_parser_parent_class = g_type_class_peek_parent (klass);
+#line 5 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       G_OBJECT_CLASS (klass)->finalize = jsdoc_doc_parser_finalize;
+#line 1227 "DocParser.c"
+}
+
+
+static void jsdoc_doc_parser_instance_init (JSDOCDocParser * self) {
+}
+
+
+static void jsdoc_doc_parser_finalize (GObject * obj) {
+       JSDOCDocParser * self;
+#line 5 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       self = G_TYPE_CHECK_INSTANCE_CAST (obj, JSDOC_TYPE_DOC_PARSER, JSDOCDocParser);
+#line 5 "/home/alan/gitlive/roojspacker/src/jsdoc/DocParser.vala"
+       G_OBJECT_CLASS (jsdoc_doc_parser_parent_class)->finalize (obj);
+#line 1241 "DocParser.c"
+}
+
+
+GType jsdoc_doc_parser_get_type (void) {
+       static volatile gsize jsdoc_doc_parser_type_id__volatile = 0;
+       if (g_once_init_enter (&jsdoc_doc_parser_type_id__volatile)) {
+               static const GTypeInfo g_define_type_info = { sizeof (JSDOCDocParserClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) jsdoc_doc_parser_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (JSDOCDocParser), 0, (GInstanceInitFunc) jsdoc_doc_parser_instance_init, NULL };
+               GType jsdoc_doc_parser_type_id;
+               jsdoc_doc_parser_type_id = g_type_register_static (G_TYPE_OBJECT, "JSDOCDocParser", &g_define_type_info, 0);
+               g_once_init_leave (&jsdoc_doc_parser_type_id__volatile, jsdoc_doc_parser_type_id);
+       }
+       return jsdoc_doc_parser_type_id__volatile;
+}
+
+
+
diff --git a/jsdoc/DocParser.vala b/jsdoc/DocParser.vala
new file mode 100644 (file)
index 0000000..ccfcc86
--- /dev/null
@@ -0,0 +1,183 @@
+
+namespace JSDOC
+{
+       public class DocParser : Object 
+       {
+               // options - should they bee in PackerRun?
+               static bool ignoreAnonymous =            true; 
+               static bool treatUnderscoredAsPrivate = true;
+               static bool explain=             false;
+               
+               static bool has_init = false;
+               static Walker walker ;
+           private static SymbolSet? _symbols = null;
+           
+           public static SymbolSet symbols() {
+               if (DocParser._symbols == null) {
+                               GLib.debug("init symbols?");
+                               DocParser._symbols = new  SymbolSet();
+                               //DocParser._symbols.ref(); // not sure why, by symbols keeps getting blanked.?
+                       }
+               return DocParser._symbols;
+           }
+           static Gee.HashMap<string,SymbolSet>? _filesSymbols = null;
+           
+           static Gee.HashMap<string,SymbolSet> filesSymbols() 
+           {
+               if (DocParser._filesSymbols == null) {
+                               GLib.debug("init _filesSymbols?");
+                               DocParser._filesSymbols = new     Gee.HashMap<string,SymbolSet>();
+                       }
+               return DocParser._filesSymbols;
+               
+           }
+                   
+           public static string currentSourceFile;
+    
+
+               
+                
+               
+               
+               public static void parse(TokenStream ts, string srcFile) 
+               {
+                   DocParser.currentSourceFile = srcFile;
+                   // not a nice way to set stuff...
+                  
+                   DocComment.shared = ""; // shared comments don't cross file boundaries
+                    
+                   DocParser.filesSymbols().set(srcFile, new SymbolSet());
+                   
+                   //Options.LOG.inform("Parser - run walker");
+                   walker = new  Walker(ts);
+                   walker.buildSymbolTree();
+                    
+                   
+                   
+                   //this.walker.walk(ts); // adds to our symbols
+                  // throw "done sym tree";
+                   //Options.LOG.inform("Parser - checking symbols");
+                   // filter symbols by option 
+                   foreach (var p in DocParser.symbols().keys()) {
+                       var symbol = DocParser.symbols().getSymbol(p);
+                       
+                      // print(JSON.stringify(symbol, null,4));
+                       
+                       if (symbol == null) continue;
+                       
+                       if (symbol.isPrivate) {
+                           DocParser.symbols().deleteSymbol(symbol.alias);
+                           DocParser.filesSymbols().get(srcFile).deleteSymbol(symbol.alias);
+                           continue;
+                       }
+                        
+                       if (symbol.is("FILE") || symbol.is("GLOBAL")) {
+                           continue;
+                       }
+                      
+                       
+                       if (symbol.alias.substring(symbol.alias.length-1) == "#") { // we don't document prototypes - this should not happen..
+                           
+                           print("Deleting Symbols (alias ends in #): " + symbol.alias);
+                           
+                           DocParser.symbols().deleteSymbol(symbol.alias);
+                           DocParser.filesSymbols().get(srcFile).deleteSymbol(symbol.alias);
+                       
+                       }
+                   }
+                   //print(prettyDump(toQDump(this.filesSymbols[Symbol.srcFile]._index,'{','}')));
+                   //print("AfterParse: " + this.symbols.keys().toSource().split(",").join(",\n   "));
+                   return; //this.symbols.toArray();
+               }
+
+       
+               public static void addSymbol(Symbol symbol) 
+               {
+                   //print("PARSER addSYMBOL : " + symbol.alias);
+                   
+                       // if a symbol alias is documented more than once the last one with the user docs wins
+                       if (DocParser.symbols().hasSymbol(symbol.alias)) {
+                               var oldSymbol = DocParser.symbols().getSymbol(symbol.alias);
+                        
+                               if (oldSymbol.comment.isUserComment && !oldSymbol.comment.hasTags) {
+                                       if (symbol.comment.isUserComment) { // old and new are both documented
+                                               GLib.debug("The symbol '%s' is documented more than once.",symbol.alias);
+                                               // we use the new one???
+                                       } else { // old is documented but new isn't
+                                               return;
+                                       }
+                               }
+                       }
+               
+                       // we don't document anonymous things
+                       if (DocParser.ignoreAnonymous && symbol.name.index_of("$anonymous\b") > -1) {
+                                return;
+                       }
+
+                       // uderscored things may be treated as if they were marked private, this cascades
+                       //if (DocParser.treatUnderscoredAsPrivate && symbol.name.match(/[.#-]_[^.#-]+$/)) {
+                       //      symbol.isPrivate = true;
+                       //}
+                
+                       // -p flag is required to document private things
+                       if ((symbol.isInner || symbol.isPrivate) && !PackerRun.singleton().opt_doc_include_private) {
+                                return;
+                       }
+               
+                       // ignored things are not documented, this doesn't cascade
+                       if (symbol.isIgnored) {
+                               return;
+                       } 
+                   // add it to the file's list... (for dumping later..)
+                   if (DocParser.currentSourceFile != null) {
+                       DocParser.filesSymbols().get(DocParser.currentSourceFile).addSymbol(symbol);
+                   }
+                 
+                       DocParser.symbols().addSymbol(symbol);
+               }
+       
+               public static Symbol addBuiltin(string name) 
+               {
+                       var builtin = new Symbol.new_builtin(name);
+                   DocParser.addSymbol(builtin);
+                       return builtin;
+               }
+       
+               
+               public static  void finish() {
+                       
+
+                       DocParser.symbols().relate();           
+               
+                       // make a litle report about what was found
+                       /*
+                       if (this.conf.explain) {
+                               var symbols = this.symbols.toArray();
+                               var srcFile = "";
+                               for (var i = 0, l = symbols.length; i < l; i++) {
+                                       var symbol = symbols[i];
+                                       if (srcFile != symbol.srcFile) {
+                                               srcFile = symbol.srcFile;
+                                               print("\n"+srcFile+"\n-------------------");
+                                       }
+                                       print(i+":\n  alias => "+symbol.alias + "\n  name => "+symbol.name+ "\n  isa => "+symbol.isa + "\n  memberOf => " + symbol.memberOf + "\n  isStatic => " + symbol.isStatic + ",  isInner => " + symbol.isInner);
+                               }
+                               print("-------------------\n");
+                       }
+                       */
+               }
+               /**
+                * return symbols so they can be serialized.
+                */
+               SymbolSet symbolsToObject(string srcFile)
+               {
+
+                   return DocParser.filesSymbols().get(srcFile);
+
+               }
+
+       }
+}
\ No newline at end of file
diff --git a/jsdoc/DocTag.c b/jsdoc/DocTag.c
new file mode 100644 (file)
index 0000000..ba03625
--- /dev/null
@@ -0,0 +1,2206 @@
+/* DocTag.c generated by valac 0.36.6, the Vala compiler
+ * generated from DocTag.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 JSDOC_TYPE_DOC_TAG_TITLE (jsdoc_doc_tag_title_get_type ())
+
+#define JSDOC_TYPE_DOC_TAG (jsdoc_doc_tag_get_type ())
+#define JSDOC_DOC_TAG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_DOC_TAG, JSDOCDocTag))
+#define JSDOC_DOC_TAG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_DOC_TAG, JSDOCDocTagClass))
+#define JSDOC_IS_DOC_TAG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_DOC_TAG))
+#define JSDOC_IS_DOC_TAG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_DOC_TAG))
+#define JSDOC_DOC_TAG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_DOC_TAG, JSDOCDocTagClass))
+
+typedef struct _JSDOCDocTag JSDOCDocTag;
+typedef struct _JSDOCDocTagClass JSDOCDocTagClass;
+typedef struct _JSDOCDocTagPrivate JSDOCDocTagPrivate;
+#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_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+#define _g_match_info_unref0(var) ((var == NULL) ? NULL : (var = (g_match_info_unref (var), NULL)))
+#define _g_type_class_unref0(var) ((var == NULL) ? NULL : (var = (g_type_class_unref (var), NULL)))
+#define _g_regex_unref0(var) ((var == NULL) ? NULL : (var = (g_regex_unref (var), NULL)))
+#define _json_array_unref0(var) ((var == NULL) ? NULL : (var = (json_array_unref (var), NULL)))
+
+typedef enum  {
+       JSDOC_DOC_TAG_TITLE_NO_VALUE,
+       JSDOC_DOC_TAG_TITLE_PARAM,
+       JSDOC_DOC_TAG_TITLE_PROPERTY,
+       JSDOC_DOC_TAG_TITLE_CFG,
+       JSDOC_DOC_TAG_TITLE_EXAMPLE,
+       JSDOC_DOC_TAG_TITLE_SINGLETON,
+       JSDOC_DOC_TAG_TITLE_AUTHOR,
+       JSDOC_DOC_TAG_TITLE_METHOD,
+       JSDOC_DOC_TAG_TITLE_DESC,
+       JSDOC_DOC_TAG_TITLE_OVERVIEW,
+       JSDOC_DOC_TAG_TITLE_SINCE,
+       JSDOC_DOC_TAG_TITLE_CONSTANT,
+       JSDOC_DOC_TAG_TITLE_VERSION,
+       JSDOC_DOC_TAG_TITLE_DEPRECATED,
+       JSDOC_DOC_TAG_TITLE_SEE,
+       JSDOC_DOC_TAG_TITLE_CLASS,
+       JSDOC_DOC_TAG_TITLE_NAMESPACE,
+       JSDOC_DOC_TAG_TITLE_CONSTRUCTOR,
+       JSDOC_DOC_TAG_TITLE_STATIC,
+       JSDOC_DOC_TAG_TITLE_INNER,
+       JSDOC_DOC_TAG_TITLE_FIELD,
+       JSDOC_DOC_TAG_TITLE_FUNCTION,
+       JSDOC_DOC_TAG_TITLE_EVENT,
+       JSDOC_DOC_TAG_TITLE_NAME,
+       JSDOC_DOC_TAG_TITLE_RETURN,
+       JSDOC_DOC_TAG_TITLE_THROWS,
+       JSDOC_DOC_TAG_TITLE_REQUIRES,
+       JSDOC_DOC_TAG_TITLE_TYPE,
+       JSDOC_DOC_TAG_TITLE_PRIVATE,
+       JSDOC_DOC_TAG_TITLE_IGNORE,
+       JSDOC_DOC_TAG_TITLE_ARGUMENTS,
+       JSDOC_DOC_TAG_TITLE_EXTENDS,
+       JSDOC_DOC_TAG_TITLE_DEFAULT,
+       JSDOC_DOC_TAG_TITLE_MEMBEROF,
+       JSDOC_DOC_TAG_TITLE_PUBLIC,
+       JSDOC_DOC_TAG_TITLE_SCOPE,
+       JSDOC_DOC_TAG_TITLE_SCOPEALIAS
+} JSDOCDocTagTitle;
+
+typedef enum  {
+       JSDOC_DOC_TAG_EXCEPTION_NO_TITLE,
+       JSDOC_DOC_TAG_EXCEPTION_INVALID_TITLE,
+       JSDOC_DOC_TAG_EXCEPTION_INVALID_NAME,
+       JSDOC_DOC_TAG_EXCEPTION_INVALID_TYPE
+} JSDOCDocTagException;
+#define JSDOC_DOC_TAG_EXCEPTION jsdoc_doc_tag_exception_quark ()
+struct _JSDOCDocTag {
+       GObject parent_instance;
+       JSDOCDocTagPrivate * priv;
+       JSDOCDocTagTitle title;
+       gchar* type;
+       gchar* name;
+       gboolean isOptional;
+       gchar* defaultValue;
+       gchar* desc;
+       GeeArrayList* optvalues;
+       gchar* memberOf;
+};
+
+struct _JSDOCDocTagClass {
+       GObjectClass parent_class;
+};
+
+
+static gpointer jsdoc_doc_tag_parent_class = NULL;
+
+GType jsdoc_doc_tag_title_get_type (void) G_GNUC_CONST;
+GQuark jsdoc_doc_tag_exception_quark (void);
+GType jsdoc_doc_tag_get_type (void) G_GNUC_CONST;
+enum  {
+       JSDOC_DOC_TAG_DUMMY_PROPERTY
+};
+gchar* jsdoc_doc_tag_asString (JSDOCDocTag* self);
+const gchar* jsdoc_doc_tag_title_to_string (JSDOCDocTagTitle self);
+JSDOCDocTag* jsdoc_doc_tag_new (const gchar* in_src);
+JSDOCDocTag* jsdoc_doc_tag_construct (GType object_type, const gchar* in_src);
+static gchar* jsdoc_doc_tag_nibbleTitle (JSDOCDocTag* self, const gchar* src, GError** error);
+static gchar* jsdoc_doc_tag_nibbleType (JSDOCDocTag* self, const gchar* src);
+static gchar* jsdoc_doc_tag_nibbleName (JSDOCDocTag* self, const gchar* in_src, GError** error);
+static void jsdoc_doc_tag_balance (JSDOCDocTag* self, const gchar* str, gchar open, gchar close, gint* start, gint* stop);
+JsonArray* jsdoc_doc_tag_optvalue_as_json_array (JSDOCDocTag* self);
+static void jsdoc_doc_tag_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 GRegex* _tmp_regex_0 = NULL;
+static GRegex* _tmp_regex_1 = NULL;
+static GRegex* _tmp_regex_2 = NULL;
+static GRegex* _tmp_regex_3 = NULL;
+
+GType jsdoc_doc_tag_title_get_type (void) {
+       static volatile gsize jsdoc_doc_tag_title_type_id__volatile = 0;
+       if (g_once_init_enter (&jsdoc_doc_tag_title_type_id__volatile)) {
+               static const GEnumValue values[] = {{JSDOC_DOC_TAG_TITLE_NO_VALUE, "JSDOC_DOC_TAG_TITLE_NO_VALUE", "no-value"}, {JSDOC_DOC_TAG_TITLE_PARAM, "JSDOC_DOC_TAG_TITLE_PARAM", "param"}, {JSDOC_DOC_TAG_TITLE_PROPERTY, "JSDOC_DOC_TAG_TITLE_PROPERTY", "property"}, {JSDOC_DOC_TAG_TITLE_CFG, "JSDOC_DOC_TAG_TITLE_CFG", "cfg"}, {JSDOC_DOC_TAG_TITLE_EXAMPLE, "JSDOC_DOC_TAG_TITLE_EXAMPLE", "example"}, {JSDOC_DOC_TAG_TITLE_SINGLETON, "JSDOC_DOC_TAG_TITLE_SINGLETON", "singleton"}, {JSDOC_DOC_TAG_TITLE_AUTHOR, "JSDOC_DOC_TAG_TITLE_AUTHOR", "author"}, {JSDOC_DOC_TAG_TITLE_METHOD, "JSDOC_DOC_TAG_TITLE_METHOD", "method"}, {JSDOC_DOC_TAG_TITLE_DESC, "JSDOC_DOC_TAG_TITLE_DESC", "desc"}, {JSDOC_DOC_TAG_TITLE_OVERVIEW, "JSDOC_DOC_TAG_TITLE_OVERVIEW", "overview"}, {JSDOC_DOC_TAG_TITLE_SINCE, "JSDOC_DOC_TAG_TITLE_SINCE", "since"}, {JSDOC_DOC_TAG_TITLE_CONSTANT, "JSDOC_DOC_TAG_TITLE_CONSTANT", "constant"}, {JSDOC_DOC_TAG_TITLE_VERSION, "JSDOC_DOC_TAG_TITLE_VERSION", "version"}, {JSDOC_DOC_TAG_TITLE_DEPRECATED, "JSDOC_DOC_TAG_TITLE_DEPRECATED", "deprecated"}, {JSDOC_DOC_TAG_TITLE_SEE, "JSDOC_DOC_TAG_TITLE_SEE", "see"}, {JSDOC_DOC_TAG_TITLE_CLASS, "JSDOC_DOC_TAG_TITLE_CLASS", "class"}, {JSDOC_DOC_TAG_TITLE_NAMESPACE, "JSDOC_DOC_TAG_TITLE_NAMESPACE", "namespace"}, {JSDOC_DOC_TAG_TITLE_CONSTRUCTOR, "JSDOC_DOC_TAG_TITLE_CONSTRUCTOR", "constructor"}, {JSDOC_DOC_TAG_TITLE_STATIC, "JSDOC_DOC_TAG_TITLE_STATIC", "static"}, {JSDOC_DOC_TAG_TITLE_INNER, "JSDOC_DOC_TAG_TITLE_INNER", "inner"}, {JSDOC_DOC_TAG_TITLE_FIELD, "JSDOC_DOC_TAG_TITLE_FIELD", "field"}, {JSDOC_DOC_TAG_TITLE_FUNCTION, "JSDOC_DOC_TAG_TITLE_FUNCTION", "function"}, {JSDOC_DOC_TAG_TITLE_EVENT, "JSDOC_DOC_TAG_TITLE_EVENT", "event"}, {JSDOC_DOC_TAG_TITLE_NAME, "JSDOC_DOC_TAG_TITLE_NAME", "name"}, {JSDOC_DOC_TAG_TITLE_RETURN, "JSDOC_DOC_TAG_TITLE_RETURN", "return"}, {JSDOC_DOC_TAG_TITLE_THROWS, "JSDOC_DOC_TAG_TITLE_THROWS", "throws"}, {JSDOC_DOC_TAG_TITLE_REQUIRES, "JSDOC_DOC_TAG_TITLE_REQUIRES", "requires"}, {JSDOC_DOC_TAG_TITLE_TYPE, "JSDOC_DOC_TAG_TITLE_TYPE", "type"}, {JSDOC_DOC_TAG_TITLE_PRIVATE, "JSDOC_DOC_TAG_TITLE_PRIVATE", "private"}, {JSDOC_DOC_TAG_TITLE_IGNORE, "JSDOC_DOC_TAG_TITLE_IGNORE", "ignore"}, {JSDOC_DOC_TAG_TITLE_ARGUMENTS, "JSDOC_DOC_TAG_TITLE_ARGUMENTS", "arguments"}, {JSDOC_DOC_TAG_TITLE_EXTENDS, "JSDOC_DOC_TAG_TITLE_EXTENDS", "extends"}, {JSDOC_DOC_TAG_TITLE_DEFAULT, "JSDOC_DOC_TAG_TITLE_DEFAULT", "default"}, {JSDOC_DOC_TAG_TITLE_MEMBEROF, "JSDOC_DOC_TAG_TITLE_MEMBEROF", "memberof"}, {JSDOC_DOC_TAG_TITLE_PUBLIC, "JSDOC_DOC_TAG_TITLE_PUBLIC", "public"}, {JSDOC_DOC_TAG_TITLE_SCOPE, "JSDOC_DOC_TAG_TITLE_SCOPE", "scope"}, {JSDOC_DOC_TAG_TITLE_SCOPEALIAS, "JSDOC_DOC_TAG_TITLE_SCOPEALIAS", "scopealias"}, {0, NULL, NULL}};
+               GType jsdoc_doc_tag_title_type_id;
+               jsdoc_doc_tag_title_type_id = g_enum_register_static ("JSDOCDocTagTitle", values);
+               g_once_init_leave (&jsdoc_doc_tag_title_type_id__volatile, jsdoc_doc_tag_title_type_id);
+       }
+       return jsdoc_doc_tag_title_type_id__volatile;
+}
+
+
+GQuark jsdoc_doc_tag_exception_quark (void) {
+       return g_quark_from_static_string ("jsdoc_doc_tag_exception-quark");
+}
+
+
+gchar* jsdoc_doc_tag_asString (JSDOCDocTag* self) {
+       gchar* result = NULL;
+       JSDOCDocTagTitle _tmp0_;
+       GEnumValue* _tmp1_;
+       const gchar* _tmp2_;
+       const gchar* _tmp3_;
+       const gchar* _tmp4_;
+       gchar* _tmp5_;
+#line 70 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 72 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _tmp0_ = self->title;
+#line 73 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _tmp1_ = g_enum_get_value (g_type_class_ref (JSDOC_TYPE_DOC_TAG_TITLE), _tmp0_);
+#line 72 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _tmp2_ = self->name;
+#line 72 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _tmp3_ = self->type;
+#line 72 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _tmp4_ = self->desc;
+#line 72 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _tmp5_ = g_strdup_printf ("DocTag: title=%s name=%s type=%s  desc=%s", (_tmp1_ != NULL) ? _tmp1_->value_name : NULL, _tmp2_, _tmp3_, _tmp4_);
+#line 72 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       result = _tmp5_;
+#line 72 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       return result;
+#line 169 "DocTag.c"
+}
+
+
+static gchar* string_strip (const gchar* self) {
+       gchar* result = NULL;
+       gchar* _result_ = NULL;
+       gchar* _tmp0_;
+       const gchar* _tmp1_;
+#line 1234 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 1235 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp0_ = g_strdup (self);
+#line 1235 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _result_ = _tmp0_;
+#line 1236 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp1_ = _result_;
+#line 1236 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       g_strstrip (_tmp1_);
+#line 1237 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       result = _result_;
+#line 1237 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       return result;
+#line 192 "DocTag.c"
+}
+
+
+static inline GRegex* _thread_safe_regex_init (GRegex** re, const gchar * pattern, GRegexMatchFlags match_options) {
+#line 123 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       if (g_once_init_enter ((volatile gsize*) re)) {
+#line 123 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               GRegex* val = g_regex_new (pattern, match_options, 0, NULL);
+#line 123 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               g_once_init_leave ((volatile gsize*) re, (gsize) val);
+#line 203 "DocTag.c"
+       }
+#line 123 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       return *re;
+#line 207 "DocTag.c"
+}
+
+
+static gboolean string_contains (const gchar* self, const gchar* needle) {
+       gboolean result = FALSE;
+       const gchar* _tmp0_;
+       gchar* _tmp1_;
+#line 1403 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (self != NULL, FALSE);
+#line 1403 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (needle != NULL, FALSE);
+#line 1404 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp0_ = needle;
+#line 1404 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp1_ = strstr ((gchar*) self, (gchar*) _tmp0_);
+#line 1404 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       result = _tmp1_ != NULL;
+#line 1404 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       return result;
+#line 227 "DocTag.c"
+}
+
+
+static glong string_strnlen (gchar* str, glong maxlen) {
+       glong result = 0L;
+       gchar* end = NULL;
+       gchar* _tmp0_;
+       glong _tmp1_;
+       gchar* _tmp2_;
+       gchar* _tmp3_;
+#line 1322 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp0_ = str;
+#line 1322 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp1_ = maxlen;
+#line 1322 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp2_ = memchr (_tmp0_, 0, (gsize) _tmp1_);
+#line 1322 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       end = _tmp2_;
+#line 1323 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp3_ = end;
+#line 1323 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if (_tmp3_ == NULL) {
+#line 250 "DocTag.c"
+               glong _tmp4_;
+#line 1324 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp4_ = maxlen;
+#line 1324 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               result = _tmp4_;
+#line 1324 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               return result;
+#line 258 "DocTag.c"
+       } else {
+               gchar* _tmp5_;
+               gchar* _tmp6_;
+#line 1326 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp5_ = end;
+#line 1326 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp6_ = str;
+#line 1326 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               result = (glong) (_tmp5_ - _tmp6_);
+#line 1326 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               return result;
+#line 270 "DocTag.c"
+       }
+}
+
+
+static gchar* string_substring (const gchar* self, glong offset, glong len) {
+       gchar* result = NULL;
+       glong string_length = 0L;
+       gboolean _tmp0_ = FALSE;
+       glong _tmp1_;
+       glong _tmp8_;
+       glong _tmp14_;
+       glong _tmp17_;
+       glong _tmp18_;
+       glong _tmp19_;
+       glong _tmp20_;
+       glong _tmp21_;
+       gchar* _tmp22_;
+#line 1333 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 1335 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp1_ = offset;
+#line 1335 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if (_tmp1_ >= ((glong) 0)) {
+#line 294 "DocTag.c"
+               glong _tmp2_;
+#line 1335 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp2_ = len;
+#line 1335 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp0_ = _tmp2_ >= ((glong) 0);
+#line 300 "DocTag.c"
+       } else {
+#line 1335 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp0_ = FALSE;
+#line 304 "DocTag.c"
+       }
+#line 1335 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if (_tmp0_) {
+#line 308 "DocTag.c"
+               glong _tmp3_;
+               glong _tmp4_;
+               glong _tmp5_;
+#line 1337 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp3_ = offset;
+#line 1337 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp4_ = len;
+#line 1337 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp5_ = string_strnlen ((gchar*) self, _tmp3_ + _tmp4_);
+#line 1337 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               string_length = _tmp5_;
+#line 320 "DocTag.c"
+       } else {
+               gint _tmp6_;
+               gint _tmp7_;
+#line 1339 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp6_ = strlen (self);
+#line 1339 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp7_ = _tmp6_;
+#line 1339 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               string_length = (glong) _tmp7_;
+#line 330 "DocTag.c"
+       }
+#line 1342 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp8_ = offset;
+#line 1342 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if (_tmp8_ < ((glong) 0)) {
+#line 336 "DocTag.c"
+               glong _tmp9_;
+               glong _tmp10_;
+               glong _tmp11_;
+#line 1343 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp9_ = string_length;
+#line 1343 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp10_ = offset;
+#line 1343 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               offset = _tmp9_ + _tmp10_;
+#line 1344 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp11_ = offset;
+#line 1344 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               g_return_val_if_fail (_tmp11_ >= ((glong) 0), NULL);
+#line 350 "DocTag.c"
+       } else {
+               glong _tmp12_;
+               glong _tmp13_;
+#line 1346 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp12_ = offset;
+#line 1346 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp13_ = string_length;
+#line 1346 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               g_return_val_if_fail (_tmp12_ <= _tmp13_, NULL);
+#line 360 "DocTag.c"
+       }
+#line 1348 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp14_ = len;
+#line 1348 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if (_tmp14_ < ((glong) 0)) {
+#line 366 "DocTag.c"
+               glong _tmp15_;
+               glong _tmp16_;
+#line 1349 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp15_ = string_length;
+#line 1349 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp16_ = offset;
+#line 1349 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               len = _tmp15_ - _tmp16_;
+#line 375 "DocTag.c"
+       }
+#line 1351 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp17_ = offset;
+#line 1351 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp18_ = len;
+#line 1351 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp19_ = string_length;
+#line 1351 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       g_return_val_if_fail ((_tmp17_ + _tmp18_) <= _tmp19_, NULL);
+#line 1352 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp20_ = offset;
+#line 1352 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp21_ = len;
+#line 1352 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp22_ = g_strndup (((gchar*) self) + _tmp20_, (gsize) _tmp21_);
+#line 1352 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       result = _tmp22_;
+#line 1352 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       return result;
+#line 395 "DocTag.c"
+}
+
+
+JSDOCDocTag* jsdoc_doc_tag_construct (GType object_type, const gchar* in_src) {
+       JSDOCDocTag * self = NULL;
+       const gchar* _tmp0_;
+       GeeArrayList* _tmp1_;
+       gchar* src = NULL;
+       const gchar* _tmp2_;
+       gchar* _tmp3_;
+       const gchar* _tmp22_;
+       gchar* _tmp23_;
+       GMatchInfo* mi = NULL;
+       gboolean _tmp24_ = FALSE;
+       JSDOCDocTagTitle _tmp25_;
+       const gchar* _tmp57_;
+       gchar* _tmp58_;
+       JSDOCDocTagTitle _tmp59_;
+       GError * _inner_error_ = NULL;
+#line 84 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       g_return_val_if_fail (in_src != NULL, NULL);
+#line 84 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       self = (JSDOCDocTag*) g_object_new (object_type, NULL);
+#line 87 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _tmp0_ = in_src;
+#line 87 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       g_debug ("DocTag.vala:87: Parsing Tag: %s", _tmp0_);
+#line 92 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _tmp1_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL);
+#line 92 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _g_object_unref0 (self->optvalues);
+#line 92 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       self->optvalues = _tmp1_;
+#line 94 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _tmp2_ = in_src;
+#line 94 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _tmp3_ = g_strdup (_tmp2_);
+#line 94 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       src = _tmp3_;
+#line 435 "DocTag.c"
+       {
+               gchar* _tmp4_ = NULL;
+               const gchar* _tmp5_;
+               gchar* _tmp6_;
+               gchar* _tmp7_;
+               const gchar* _tmp8_;
+               gchar* _tmp9_;
+               gboolean _tmp10_ = FALSE;
+               gboolean _tmp11_ = FALSE;
+               JSDOCDocTagTitle _tmp12_;
+#line 97 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp5_ = src;
+#line 97 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp6_ = jsdoc_doc_tag_nibbleTitle (self, _tmp5_, &_inner_error_);
+#line 97 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp4_ = _tmp6_;
+#line 97 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 97 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       if (_inner_error_->domain == JSDOC_DOC_TAG_EXCEPTION) {
+#line 456 "DocTag.c"
+                               goto __catch6_jsdoc_doc_tag_exception;
+                       }
+#line 97 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _g_free0 (src);
+#line 97 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       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);
+#line 97 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       g_clear_error (&_inner_error_);
+#line 97 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       return NULL;
+#line 467 "DocTag.c"
+               }
+#line 97 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp7_ = _tmp4_;
+#line 97 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp4_ = NULL;
+#line 97 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _g_free0 (src);
+#line 97 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               src = _tmp7_;
+#line 99 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp8_ = src;
+#line 99 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp9_ = jsdoc_doc_tag_nibbleType (self, _tmp8_);
+#line 99 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _g_free0 (src);
+#line 99 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               src = _tmp9_;
+#line 104 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp12_ = self->title;
+#line 104 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               if (_tmp12_ == JSDOC_DOC_TAG_TITLE_PARAM) {
+#line 104 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _tmp11_ = TRUE;
+#line 491 "DocTag.c"
+               } else {
+                       JSDOCDocTagTitle _tmp13_;
+#line 105 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _tmp13_ = self->title;
+#line 105 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _tmp11_ = _tmp13_ == JSDOC_DOC_TAG_TITLE_PROPERTY;
+#line 498 "DocTag.c"
+               }
+#line 104 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               if (_tmp11_) {
+#line 104 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _tmp10_ = TRUE;
+#line 504 "DocTag.c"
+               } else {
+                       JSDOCDocTagTitle _tmp14_;
+#line 106 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _tmp14_ = self->title;
+#line 106 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _tmp10_ = _tmp14_ == JSDOC_DOC_TAG_TITLE_CFG;
+#line 511 "DocTag.c"
+               }
+#line 103 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               if (_tmp10_) {
+#line 515 "DocTag.c"
+                       gchar* _tmp15_ = NULL;
+                       const gchar* _tmp16_;
+                       gchar* _tmp17_;
+                       gchar* _tmp18_;
+#line 107 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _tmp16_ = src;
+#line 107 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _tmp17_ = jsdoc_doc_tag_nibbleName (self, _tmp16_, &_inner_error_);
+#line 107 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _tmp15_ = _tmp17_;
+#line 107 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 107 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                               _g_free0 (_tmp4_);
+#line 107 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                               if (_inner_error_->domain == JSDOC_DOC_TAG_EXCEPTION) {
+#line 532 "DocTag.c"
+                                       goto __catch6_jsdoc_doc_tag_exception;
+                               }
+#line 107 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                               _g_free0 (_tmp4_);
+#line 107 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                               _g_free0 (src);
+#line 107 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                               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);
+#line 107 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                               g_clear_error (&_inner_error_);
+#line 107 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                               return NULL;
+#line 545 "DocTag.c"
+                       }
+#line 107 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _tmp18_ = _tmp15_;
+#line 107 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _tmp15_ = NULL;
+#line 107 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _g_free0 (src);
+#line 107 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       src = _tmp18_;
+#line 103 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _g_free0 (_tmp15_);
+#line 557 "DocTag.c"
+               }
+#line 96 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _g_free0 (_tmp4_);
+#line 561 "DocTag.c"
+       }
+       goto __finally6;
+       __catch6_jsdoc_doc_tag_exception:
+       {
+               GError* e = NULL;
+               const gchar* _tmp19_;
+               GError* _tmp20_;
+               const gchar* _tmp21_;
+#line 96 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               e = _inner_error_;
+#line 96 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _inner_error_ = NULL;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp19_ = in_src;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp20_ = e;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp21_ = _tmp20_->message;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               g_debug ("DocTag.vala:111: Failed to parse tag: '%s' = error = %s", _tmp19_, _tmp21_);
+#line 114 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _g_error_free0 (e);
+#line 114 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _g_free0 (src);
+#line 114 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               return self;
+#line 588 "DocTag.c"
+       }
+       __finally6:
+#line 96 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 96 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _g_free0 (src);
+#line 96 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               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);
+#line 96 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               g_clear_error (&_inner_error_);
+#line 96 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               return NULL;
+#line 601 "DocTag.c"
+       }
+#line 119 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _tmp22_ = src;
+#line 119 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _tmp23_ = string_strip (_tmp22_);
+#line 119 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _g_free0 (src);
+#line 119 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       src = _tmp23_;
+#line 121 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       mi = NULL;
+#line 123 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _tmp25_ = self->title;
+#line 123 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       if (_tmp25_ == JSDOC_DOC_TAG_TITLE_CFG) {
+#line 617 "DocTag.c"
+               const gchar* _tmp26_;
+               GMatchInfo* _tmp27_ = NULL;
+               gboolean _tmp28_;
+#line 123 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp26_ = src;
+#line 123 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp28_ = g_regex_match_all (_thread_safe_regex_init (&_tmp_regex_0, "^\\([^)]+\\)", 0), _tmp26_, 0, &_tmp27_);
+#line 123 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _g_match_info_unref0 (mi);
+#line 123 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               mi = _tmp27_;
+#line 123 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp24_ = _tmp28_;
+#line 631 "DocTag.c"
+       } else {
+#line 123 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp24_ = FALSE;
+#line 635 "DocTag.c"
+       }
+#line 123 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       if (_tmp24_) {
+#line 639 "DocTag.c"
+               gchar* ms = NULL;
+               GMatchInfo* _tmp29_;
+               gchar* _tmp30_;
+               const gchar* _tmp31_;
+               gboolean _tmp32_;
+#line 124 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp29_ = mi;
+#line 124 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp30_ = g_match_info_fetch (_tmp29_, 0);
+#line 124 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               ms = _tmp30_;
+#line 125 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp31_ = ms;
+#line 125 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp32_ = string_contains (_tmp31_, "|");
+#line 125 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               if (_tmp32_) {
+#line 657 "DocTag.c"
+                       gchar** ar = NULL;
+                       const gchar* _tmp33_;
+                       gchar** _tmp34_;
+                       gchar** _tmp35_;
+                       gint ar_length1;
+                       gint _ar_size_;
+                       const gchar* _tmp46_;
+                       const gchar* _tmp47_;
+                       gint _tmp48_;
+                       gint _tmp49_;
+                       const gchar* _tmp50_;
+                       gint _tmp51_;
+                       gint _tmp52_;
+                       const gchar* _tmp53_;
+                       gint _tmp54_;
+                       gint _tmp55_;
+                       gchar* _tmp56_;
+#line 126 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _tmp33_ = ms;
+#line 126 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _tmp35_ = _tmp34_ = g_strsplit (_tmp33_, "|", 0);
+#line 126 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       ar = _tmp35_;
+#line 126 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       ar_length1 = _vala_array_length (_tmp34_);
+#line 126 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _ar_size_ = ar_length1;
+#line 685 "DocTag.c"
+                       {
+                               gint i = 0;
+#line 127 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                               i = 0;
+#line 690 "DocTag.c"
+                               {
+                                       gboolean _tmp36_ = FALSE;
+#line 127 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                                       _tmp36_ = TRUE;
+#line 127 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                                       while (TRUE) {
+#line 697 "DocTag.c"
+                                               gint _tmp38_;
+                                               gchar** _tmp39_;
+                                               gint _tmp39__length1;
+                                               GeeArrayList* _tmp40_;
+                                               gchar** _tmp41_;
+                                               gint _tmp41__length1;
+                                               gint _tmp42_;
+                                               const gchar* _tmp43_;
+                                               gchar* _tmp44_;
+                                               gchar* _tmp45_;
+#line 127 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                                               if (!_tmp36_) {
+#line 710 "DocTag.c"
+                                                       gint _tmp37_;
+#line 127 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                                                       _tmp37_ = i;
+#line 127 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                                                       i = _tmp37_ + 1;
+#line 716 "DocTag.c"
+                                               }
+#line 127 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                                               _tmp36_ = FALSE;
+#line 127 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                                               _tmp38_ = i;
+#line 127 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                                               _tmp39_ = ar;
+#line 127 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                                               _tmp39__length1 = ar_length1;
+#line 127 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                                               if (!(_tmp38_ < _tmp39__length1)) {
+#line 127 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                                                       break;
+#line 730 "DocTag.c"
+                                               }
+#line 128 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                                               _tmp40_ = self->optvalues;
+#line 128 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                                               _tmp41_ = ar;
+#line 128 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                                               _tmp41__length1 = ar_length1;
+#line 128 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                                               _tmp42_ = i;
+#line 128 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                                               _tmp43_ = _tmp41_[_tmp42_];
+#line 128 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                                               _tmp44_ = string_strip (_tmp43_);
+#line 128 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                                               _tmp45_ = _tmp44_;
+#line 128 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                                               gee_abstract_collection_add ((GeeAbstractCollection*) _tmp40_, _tmp45_);
+#line 128 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                                               _g_free0 (_tmp45_);
+#line 750 "DocTag.c"
+                                       }
+                               }
+                       }
+#line 130 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _tmp46_ = src;
+#line 130 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _tmp47_ = ms;
+#line 130 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _tmp48_ = strlen (_tmp47_);
+#line 130 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _tmp49_ = _tmp48_;
+#line 130 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _tmp50_ = src;
+#line 130 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _tmp51_ = strlen (_tmp50_);
+#line 130 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _tmp52_ = _tmp51_;
+#line 130 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _tmp53_ = ms;
+#line 130 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _tmp54_ = strlen (_tmp53_);
+#line 130 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _tmp55_ = _tmp54_;
+#line 130 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _tmp56_ = string_substring (_tmp46_, (glong) _tmp49_, (glong) (_tmp52_ - _tmp55_));
+#line 130 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _g_free0 (src);
+#line 130 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       src = _tmp56_;
+#line 125 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       ar = (_vala_array_free (ar, ar_length1, (GDestroyNotify) g_free), NULL);
+#line 782 "DocTag.c"
+               }
+#line 123 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _g_free0 (ms);
+#line 786 "DocTag.c"
+       }
+#line 137 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _tmp57_ = src;
+#line 137 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _tmp58_ = g_strdup (_tmp57_);
+#line 137 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _g_free0 (self->desc);
+#line 137 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       self->desc = _tmp58_;
+#line 140 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _tmp59_ = self->title;
+#line 140 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       if (_tmp59_ != JSDOC_DOC_TAG_TITLE_EXAMPLE) {
+#line 800 "DocTag.c"
+               const gchar* _tmp60_;
+               gchar* _tmp61_;
+#line 141 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp60_ = self->desc;
+#line 141 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp61_ = string_strip (_tmp60_);
+#line 141 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _g_free0 (self->desc);
+#line 141 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               self->desc = _tmp61_;
+#line 811 "DocTag.c"
+       }
+#line 84 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _g_match_info_unref0 (mi);
+#line 84 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _g_free0 (src);
+#line 84 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       return self;
+#line 819 "DocTag.c"
+}
+
+
+JSDOCDocTag* jsdoc_doc_tag_new (const gchar* in_src) {
+#line 84 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       return jsdoc_doc_tag_construct (JSDOC_TYPE_DOC_TAG, in_src);
+#line 826 "DocTag.c"
+}
+
+
+/**
+    Find and shift off the title of a tag.
+    @param {string} src
+    @return src
+ */
+static gchar* jsdoc_doc_tag_nibbleTitle (JSDOCDocTag* self, const gchar* src, GError** error) {
+       gchar* result = NULL;
+       GMatchInfo* mi = NULL;
+       gboolean _tmp0_ = FALSE;
+       gboolean _tmp1_ = FALSE;
+       const gchar* _tmp2_;
+       const gchar* _tmp3_;
+       gint _tmp4_;
+       gint _tmp5_;
+       GMatchInfo* _tmp6_ = NULL;
+       gboolean _tmp7_;
+       GEnumClass* enumc = NULL;
+       GTypeClass* _tmp13_;
+       GEnumValue* eval = NULL;
+       GEnumClass* _tmp14_;
+       GMatchInfo* _tmp15_;
+       gchar* _tmp16_;
+       gchar* _tmp17_;
+       gchar* _tmp18_;
+       gchar* _tmp19_;
+       gchar* _tmp20_;
+       gchar* _tmp21_;
+       GEnumValue* _tmp22_;
+       GEnumValue* _tmp23_;
+       GEnumValue* _tmp24_;
+       GEnumValue* _tmp28_;
+       gint _tmp29_;
+       gchar* _tmp30_ = NULL;
+       GMatchInfo* _tmp31_;
+       gint _tmp32_;
+       GError * _inner_error_ = NULL;
+#line 156 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 156 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       g_return_val_if_fail (src != NULL, NULL);
+#line 161 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _tmp2_ = src;
+#line 161 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _tmp3_ = src;
+#line 161 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _tmp4_ = strlen (_tmp3_);
+#line 161 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _tmp5_ = _tmp4_;
+#line 161 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _tmp7_ = g_regex_match_full (_thread_safe_regex_init (&_tmp_regex_1, "^\\s*(\\S+)\\s*(?:\\s([\\s\\S]*))?$", 0), _tmp2_, (gssize) _tmp5_, 0, 0, &_tmp6_, &_inner_error_);
+#line 161 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _g_match_info_unref0 (mi);
+#line 161 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       mi = _tmp6_;
+#line 161 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _tmp1_ = _tmp7_;
+#line 161 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 161 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               if (_inner_error_->domain == JSDOC_DOC_TAG_EXCEPTION) {
+#line 161 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       g_propagate_error (error, _inner_error_);
+#line 161 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _g_match_info_unref0 (mi);
+#line 161 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       return NULL;
+#line 896 "DocTag.c"
+               } else {
+#line 161 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _g_match_info_unref0 (mi);
+#line 161 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       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);
+#line 161 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       g_clear_error (&_inner_error_);
+#line 161 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       return NULL;
+#line 906 "DocTag.c"
+               }
+       }
+#line 161 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       if (!_tmp1_) {
+#line 161 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp0_ = TRUE;
+#line 913 "DocTag.c"
+       } else {
+               GMatchInfo* _tmp8_;
+               gint _tmp9_;
+#line 162 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp8_ = mi;
+#line 162 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp9_ = g_match_info_get_match_count (_tmp8_);
+#line 162 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp0_ = _tmp9_ < 2;
+#line 923 "DocTag.c"
+       }
+#line 161 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       if (_tmp0_) {
+#line 927 "DocTag.c"
+               GError* _tmp10_;
+               const gchar* _tmp11_;
+               gchar* _tmp12_;
+#line 163 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp10_ = g_error_new_literal (JSDOC_DOC_TAG_EXCEPTION, JSDOC_DOC_TAG_EXCEPTION_NO_TITLE, "missing title");
+#line 163 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _inner_error_ = _tmp10_;
+#line 163 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               if (_inner_error_->domain == JSDOC_DOC_TAG_EXCEPTION) {
+#line 163 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       g_propagate_error (error, _inner_error_);
+#line 163 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _g_match_info_unref0 (mi);
+#line 163 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       return NULL;
+#line 943 "DocTag.c"
+               } else {
+#line 163 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _g_match_info_unref0 (mi);
+#line 163 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       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);
+#line 163 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       g_clear_error (&_inner_error_);
+#line 163 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       return NULL;
+#line 953 "DocTag.c"
+               }
+#line 164 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp11_ = src;
+#line 164 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp12_ = g_strdup (_tmp11_);
+#line 164 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               result = _tmp12_;
+#line 164 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _g_match_info_unref0 (mi);
+#line 164 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               return result;
+#line 965 "DocTag.c"
+       }
+#line 171 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _tmp13_ = g_type_class_ref (JSDOC_TYPE_DOC_TAG_TITLE);
+#line 171 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       enumc = (GEnumClass*) _tmp13_;
+#line 173 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _tmp14_ = enumc;
+#line 173 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _tmp15_ = mi;
+#line 173 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _tmp16_ = g_match_info_fetch (_tmp15_, 1);
+#line 173 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _tmp17_ = _tmp16_;
+#line 173 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _tmp18_ = g_utf8_strup (_tmp17_, (gssize) -1);
+#line 173 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _tmp19_ = _tmp18_;
+#line 173 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _tmp20_ = g_strconcat ("JSDOC_DOC_TAG_TITLE_", _tmp19_, NULL);
+#line 173 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _tmp21_ = _tmp20_;
+#line 173 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _tmp22_ = g_enum_get_value_by_name (_tmp14_, _tmp21_);
+#line 173 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _tmp23_ = _tmp22_;
+#line 173 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _g_free0 (_tmp21_);
+#line 173 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _g_free0 (_tmp19_);
+#line 173 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _g_free0 (_tmp17_);
+#line 173 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       eval = _tmp23_;
+#line 174 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _tmp24_ = eval;
+#line 174 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       if (_tmp24_ == NULL) {
+#line 1003 "DocTag.c"
+               GError* _tmp25_;
+               const gchar* _tmp26_;
+               gchar* _tmp27_;
+#line 175 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp25_ = g_error_new_literal (JSDOC_DOC_TAG_EXCEPTION, JSDOC_DOC_TAG_EXCEPTION_INVALID_TITLE, "title not supported ??");
+#line 175 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _inner_error_ = _tmp25_;
+#line 175 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               if (_inner_error_->domain == JSDOC_DOC_TAG_EXCEPTION) {
+#line 175 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       g_propagate_error (error, _inner_error_);
+#line 175 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _g_type_class_unref0 (enumc);
+#line 175 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _g_match_info_unref0 (mi);
+#line 175 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       return NULL;
+#line 1021 "DocTag.c"
+               } else {
+#line 175 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _g_type_class_unref0 (enumc);
+#line 175 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _g_match_info_unref0 (mi);
+#line 175 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       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);
+#line 175 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       g_clear_error (&_inner_error_);
+#line 175 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       return NULL;
+#line 1033 "DocTag.c"
+               }
+#line 176 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp26_ = src;
+#line 176 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp27_ = g_strdup (_tmp26_);
+#line 176 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               result = _tmp27_;
+#line 176 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _g_type_class_unref0 (enumc);
+#line 176 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _g_match_info_unref0 (mi);
+#line 176 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               return result;
+#line 1047 "DocTag.c"
+       }
+#line 178 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _tmp28_ = eval;
+#line 178 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _tmp29_ = (*_tmp28_).value;
+#line 178 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       self->title = (JSDOCDocTagTitle) _tmp29_;
+#line 179 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _tmp31_ = mi;
+#line 179 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _tmp32_ = g_match_info_get_match_count (_tmp31_);
+#line 179 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       if (_tmp32_ > 2) {
+#line 1061 "DocTag.c"
+               GMatchInfo* _tmp33_;
+               gchar* _tmp34_;
+#line 179 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp33_ = mi;
+#line 179 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp34_ = g_match_info_fetch (_tmp33_, 2);
+#line 179 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _g_free0 (_tmp30_);
+#line 179 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp30_ = _tmp34_;
+#line 1072 "DocTag.c"
+       } else {
+               gchar* _tmp35_;
+#line 179 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp35_ = g_strdup ("");
+#line 179 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _g_free0 (_tmp30_);
+#line 179 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp30_ = _tmp35_;
+#line 1081 "DocTag.c"
+       }
+#line 179 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       result = _tmp30_;
+#line 179 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _g_type_class_unref0 (enumc);
+#line 179 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _g_match_info_unref0 (mi);
+#line 179 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       return result;
+#line 1091 "DocTag.c"
+}
+
+
+/**
+            Find and shift off the type of a tag.
+            @requires frame/String.js
+            @param {string} src
+            @return src
+         */
+static gchar* string_replace (const gchar* self, const gchar* old, const gchar* replacement) {
+       gchar* result = NULL;
+       gboolean _tmp0_ = FALSE;
+       gboolean _tmp1_ = FALSE;
+       GError * _inner_error_ = NULL;
+#line 1407 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 1407 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (old != NULL, NULL);
+#line 1407 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (replacement != NULL, NULL);
+#line 1408 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if ((*((gchar*) self)) == '\0') {
+#line 1408 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp1_ = TRUE;
+#line 1116 "DocTag.c"
+       } else {
+               const gchar* _tmp2_;
+#line 1408 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp2_ = old;
+#line 1408 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp1_ = (*((gchar*) _tmp2_)) == '\0';
+#line 1123 "DocTag.c"
+       }
+#line 1408 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if (_tmp1_) {
+#line 1408 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp0_ = TRUE;
+#line 1129 "DocTag.c"
+       } else {
+               const gchar* _tmp3_;
+               const gchar* _tmp4_;
+#line 1408 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp3_ = old;
+#line 1408 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp4_ = replacement;
+#line 1408 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp0_ = g_strcmp0 (_tmp3_, _tmp4_) == 0;
+#line 1139 "DocTag.c"
+       }
+#line 1408 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if (_tmp0_) {
+#line 1143 "DocTag.c"
+               gchar* _tmp5_;
+#line 1409 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp5_ = g_strdup (self);
+#line 1409 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               result = _tmp5_;
+#line 1409 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               return result;
+#line 1151 "DocTag.c"
+       }
+       {
+               GRegex* regex = NULL;
+               const gchar* _tmp6_;
+               gchar* _tmp7_;
+               gchar* _tmp8_;
+               GRegex* _tmp9_;
+               GRegex* _tmp10_;
+               gchar* _tmp11_ = NULL;
+               GRegex* _tmp12_;
+               const gchar* _tmp13_;
+               gchar* _tmp14_;
+               gchar* _tmp15_;
+#line 1412 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp6_ = old;
+#line 1412 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp7_ = g_regex_escape_string (_tmp6_, -1);
+#line 1412 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp8_ = _tmp7_;
+#line 1412 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp9_ = g_regex_new (_tmp8_, 0, 0, &_inner_error_);
+#line 1412 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp10_ = _tmp9_;
+#line 1412 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _g_free0 (_tmp8_);
+#line 1412 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               regex = _tmp10_;
+#line 1412 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1412 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       if (_inner_error_->domain == G_REGEX_ERROR) {
+#line 1183 "DocTag.c"
+                               goto __catch7_g_regex_error;
+                       }
+#line 1412 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       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);
+#line 1412 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       g_clear_error (&_inner_error_);
+#line 1412 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       return NULL;
+#line 1192 "DocTag.c"
+               }
+#line 1413 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp12_ = regex;
+#line 1413 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp13_ = replacement;
+#line 1413 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp14_ = g_regex_replace_literal (_tmp12_, self, (gssize) -1, 0, _tmp13_, 0, &_inner_error_);
+#line 1413 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp11_ = _tmp14_;
+#line 1413 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1413 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       _g_regex_unref0 (regex);
+#line 1413 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       if (_inner_error_->domain == G_REGEX_ERROR) {
+#line 1208 "DocTag.c"
+                               goto __catch7_g_regex_error;
+                       }
+#line 1413 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       _g_regex_unref0 (regex);
+#line 1413 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       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);
+#line 1413 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       g_clear_error (&_inner_error_);
+#line 1413 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       return NULL;
+#line 1219 "DocTag.c"
+               }
+#line 1413 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp15_ = _tmp11_;
+#line 1413 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp11_ = NULL;
+#line 1413 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               result = _tmp15_;
+#line 1413 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _g_free0 (_tmp11_);
+#line 1413 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _g_regex_unref0 (regex);
+#line 1413 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               return result;
+#line 1233 "DocTag.c"
+       }
+       goto __finally7;
+       __catch7_g_regex_error:
+       {
+               GError* e = NULL;
+#line 1411 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               e = _inner_error_;
+#line 1411 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _inner_error_ = NULL;
+#line 1415 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               g_assert_not_reached ();
+#line 1411 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _g_error_free0 (e);
+#line 1247 "DocTag.c"
+       }
+       __finally7:
+#line 1411 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1411 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               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);
+#line 1411 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               g_clear_error (&_inner_error_);
+#line 1411 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               return NULL;
+#line 1258 "DocTag.c"
+       }
+}
+
+
+static gchar* jsdoc_doc_tag_nibbleType (JSDOCDocTag* self, const gchar* src) {
+       gchar* result = NULL;
+       GMatchInfo* mi = NULL;
+       const gchar* _tmp0_;
+       GMatchInfo* _tmp1_ = NULL;
+       gboolean _tmp2_;
+       gint start = 0;
+       gint stop = 0;
+       const gchar* _tmp5_;
+       gint _tmp6_ = 0;
+       gint _tmp7_ = 0;
+       gint _tmp8_;
+       const gchar* _tmp12_;
+       gint _tmp13_;
+       gint _tmp14_;
+       gchar* _tmp15_;
+       gchar* _tmp16_;
+       gchar* _tmp17_;
+       const gchar* _tmp18_;
+       gchar* _tmp19_;
+       const gchar* _tmp20_;
+       gint _tmp21_;
+       gchar* _tmp22_;
+       GError * _inner_error_ = NULL;
+#line 189 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 189 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       g_return_val_if_fail (src != NULL, NULL);
+#line 192 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _tmp0_ = src;
+#line 192 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _tmp2_ = g_regex_match_all (_thread_safe_regex_init (&_tmp_regex_2, "^\\s*\\{", 0), _tmp0_, 0, &_tmp1_);
+#line 192 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _g_match_info_unref0 (mi);
+#line 192 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       mi = _tmp1_;
+#line 192 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       if (!_tmp2_) {
+#line 1301 "DocTag.c"
+               const gchar* _tmp3_;
+               gchar* _tmp4_;
+#line 193 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp3_ = src;
+#line 193 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp4_ = g_strdup (_tmp3_);
+#line 193 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               result = _tmp4_;
+#line 193 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _g_match_info_unref0 (mi);
+#line 193 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               return result;
+#line 1314 "DocTag.c"
+       }
+#line 198 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _tmp5_ = src;
+#line 198 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       jsdoc_doc_tag_balance (self, _tmp5_, '{', '}', &_tmp6_, &_tmp7_);
+#line 198 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       start = _tmp6_;
+#line 198 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       stop = _tmp7_;
+#line 200 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _tmp8_ = stop;
+#line 200 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       if (_tmp8_ == -1) {
+#line 1328 "DocTag.c"
+               GError* _tmp9_;
+               const gchar* _tmp10_;
+               gchar* _tmp11_;
+#line 201 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp9_ = g_error_new_literal (JSDOC_DOC_TAG_EXCEPTION, JSDOC_DOC_TAG_EXCEPTION_INVALID_TYPE, "Malformed comment tag ignored. Tag type requires an opening { and a cl" \
+"osing }: ");
+#line 201 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _inner_error_ = _tmp9_;
+#line 201 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _g_match_info_unref0 (mi);
+#line 201 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               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);
+#line 201 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               g_clear_error (&_inner_error_);
+#line 201 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               return NULL;
+#line 202 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp10_ = src;
+#line 202 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp11_ = g_strdup (_tmp10_);
+#line 202 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               result = _tmp11_;
+#line 202 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _g_match_info_unref0 (mi);
+#line 202 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               return result;
+#line 1354 "DocTag.c"
+       }
+#line 204 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _tmp12_ = src;
+#line 204 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _tmp13_ = start;
+#line 204 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _tmp14_ = stop;
+#line 204 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _tmp15_ = string_substring (_tmp12_, (glong) (_tmp13_ + 1), (glong) (_tmp14_ - 1));
+#line 204 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _tmp16_ = _tmp15_;
+#line 204 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _tmp17_ = string_strip (_tmp16_);
+#line 204 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _g_free0 (self->type);
+#line 204 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       self->type = _tmp17_;
+#line 204 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _g_free0 (_tmp16_);
+#line 205 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _tmp18_ = self->type;
+#line 205 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _tmp19_ = string_replace (_tmp18_, ",", "|");
+#line 205 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _g_free0 (self->type);
+#line 205 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       self->type = _tmp19_;
+#line 206 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _tmp20_ = src;
+#line 206 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _tmp21_ = stop;
+#line 206 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _tmp22_ = string_substring (_tmp20_, (glong) (_tmp21_ + 1), (glong) -1);
+#line 206 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       result = _tmp22_;
+#line 206 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _g_match_info_unref0 (mi);
+#line 206 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       return result;
+#line 1394 "DocTag.c"
+}
+
+
+/**
+            Find and shift off the name of a tag.
+            @requires frame/String.js
+            @param {string} src
+            @return src
+         */
+static gchar string_get (const gchar* self, glong index) {
+       gchar result = '\0';
+       glong _tmp0_;
+       gchar _tmp1_;
+#line 1110 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (self != NULL, '\0');
+#line 1111 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp0_ = index;
+#line 1111 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp1_ = ((gchar*) self)[_tmp0_];
+#line 1111 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       result = _tmp1_;
+#line 1111 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       return result;
+#line 1418 "DocTag.c"
+}
+
+
+static gchar* jsdoc_doc_tag_nibbleName (JSDOCDocTag* self, const gchar* in_src, GError** error) {
+       gchar* result = NULL;
+       gchar* src = NULL;
+       const gchar* _tmp0_;
+       gchar* _tmp1_;
+       const gchar* _tmp2_;
+       gchar _tmp3_;
+       GMatchInfo* mi = NULL;
+       gboolean _tmp48_ = FALSE;
+       const gchar* _tmp49_;
+       const gchar* _tmp50_;
+       gint _tmp51_;
+       gint _tmp52_;
+       GMatchInfo* _tmp53_ = NULL;
+       gboolean _tmp54_;
+       GError * _inner_error_ = NULL;
+#line 218 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 218 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       g_return_val_if_fail (in_src != NULL, NULL);
+#line 222 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _tmp0_ = in_src;
+#line 222 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _tmp1_ = string_strip (_tmp0_);
+#line 222 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       src = _tmp1_;
+#line 226 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _tmp2_ = src;
+#line 226 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _tmp3_ = string_get (_tmp2_, (glong) 0);
+#line 226 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       if (_tmp3_ == '[') {
+#line 1454 "DocTag.c"
+               gint start = 0;
+               gint stop = 0;
+               const gchar* _tmp4_;
+               gint _tmp5_ = 0;
+               gint _tmp6_ = 0;
+               gint _tmp7_;
+               const gchar* _tmp9_;
+               gint _tmp10_;
+               gint _tmp11_;
+               gchar* _tmp12_;
+               gchar* _tmp13_;
+               gchar* _tmp14_;
+               const gchar* _tmp15_;
+               gint _tmp16_;
+               gchar* _tmp17_;
+               gchar** nameAndValue = NULL;
+               const gchar* _tmp18_;
+               gchar** _tmp19_;
+               gchar** _tmp20_;
+               gint nameAndValue_length1;
+               gint _nameAndValue_size_;
+               gchar** _tmp21_;
+               gint _tmp21__length1;
+               const gchar* _tmp40_;
+               const gchar* _tmp41_;
+               gint _tmp42_;
+               gint _tmp43_;
+               const gchar* _tmp44_;
+               gint _tmp45_;
+               gint _tmp46_;
+               gchar* _tmp47_;
+#line 228 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp4_ = src;
+#line 228 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               jsdoc_doc_tag_balance (self, _tmp4_, '[', ']', &_tmp5_, &_tmp6_);
+#line 228 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               start = _tmp5_;
+#line 228 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               stop = _tmp6_;
+#line 229 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp7_ = stop;
+#line 229 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               if (_tmp7_ == -1) {
+#line 1498 "DocTag.c"
+                       GError* _tmp8_;
+#line 230 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _tmp8_ = g_error_new_literal (JSDOC_DOC_TAG_EXCEPTION, JSDOC_DOC_TAG_EXCEPTION_INVALID_NAME, "Malformed comment tag ignored. Tag optional name requires an opening [" \
+" and a closing ]: ");
+#line 230 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _inner_error_ = _tmp8_;
+#line 230 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       if (_inner_error_->domain == JSDOC_DOC_TAG_EXCEPTION) {
+#line 230 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                               g_propagate_error (error, _inner_error_);
+#line 230 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                               _g_free0 (src);
+#line 230 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                               return NULL;
+#line 1512 "DocTag.c"
+                       } else {
+#line 230 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                               _g_free0 (src);
+#line 230 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                               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);
+#line 230 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                               g_clear_error (&_inner_error_);
+#line 230 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                               return NULL;
+#line 1522 "DocTag.c"
+                       }
+#line 231 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       result = src;
+#line 231 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       return result;
+#line 1528 "DocTag.c"
+               }
+#line 233 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp9_ = src;
+#line 233 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp10_ = start;
+#line 233 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp11_ = stop;
+#line 233 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp12_ = string_substring (_tmp9_, (glong) (_tmp10_ + 1), (glong) _tmp11_);
+#line 233 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp13_ = _tmp12_;
+#line 233 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp14_ = string_strip (_tmp13_);
+#line 233 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _g_free0 (self->name);
+#line 233 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               self->name = _tmp14_;
+#line 233 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _g_free0 (_tmp13_);
+#line 234 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               self->isOptional = TRUE;
+#line 236 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp15_ = src;
+#line 236 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp16_ = stop;
+#line 236 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp17_ = string_substring (_tmp15_, (glong) (_tmp16_ + 1), (glong) -1);
+#line 236 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _g_free0 (src);
+#line 236 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               src = _tmp17_;
+#line 239 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp18_ = self->name;
+#line 239 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp20_ = _tmp19_ = g_strsplit (_tmp18_, "=", 0);
+#line 239 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               nameAndValue = _tmp20_;
+#line 239 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               nameAndValue_length1 = _vala_array_length (_tmp19_);
+#line 239 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _nameAndValue_size_ = nameAndValue_length1;
+#line 240 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp21_ = nameAndValue;
+#line 240 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp21__length1 = nameAndValue_length1;
+#line 240 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               if (_tmp21__length1 > 1) {
+#line 1576 "DocTag.c"
+                       gchar* oname = NULL;
+                       const gchar* _tmp22_;
+                       gchar* _tmp23_;
+                       gchar** _tmp24_;
+                       gint _tmp24__length1;
+                       const gchar* _tmp25_;
+                       gchar* _tmp26_;
+                       const gchar* _tmp27_;
+                       gchar** _tmp28_;
+                       gint _tmp28__length1;
+                       const gchar* _tmp29_;
+                       gint _tmp30_;
+                       gint _tmp31_;
+                       gchar** _tmp32_;
+                       gint _tmp32__length1;
+                       const gchar* _tmp33_;
+                       gint _tmp34_;
+                       gint _tmp35_;
+                       const gchar* _tmp36_;
+                       gint _tmp37_;
+                       gint _tmp38_;
+                       gchar* _tmp39_;
+#line 241 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _tmp22_ = self->name;
+#line 241 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _tmp23_ = g_strdup (_tmp22_);
+#line 241 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       oname = _tmp23_;
+#line 242 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _tmp24_ = nameAndValue;
+#line 242 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _tmp24__length1 = nameAndValue_length1;
+#line 242 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _tmp25_ = _tmp24_[0];
+#line 242 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _tmp26_ = string_strip (_tmp25_);
+#line 242 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _g_free0 (self->name);
+#line 242 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       self->name = _tmp26_;
+#line 244 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _tmp27_ = oname;
+#line 244 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _tmp28_ = nameAndValue;
+#line 244 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _tmp28__length1 = nameAndValue_length1;
+#line 244 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _tmp29_ = _tmp28_[0];
+#line 244 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _tmp30_ = strlen (_tmp29_);
+#line 244 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _tmp31_ = _tmp30_;
+#line 244 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _tmp32_ = nameAndValue;
+#line 244 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _tmp32__length1 = nameAndValue_length1;
+#line 244 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _tmp33_ = _tmp32_[0];
+#line 244 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _tmp34_ = strlen (_tmp33_);
+#line 244 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _tmp35_ = _tmp34_;
+#line 244 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _tmp36_ = oname;
+#line 244 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _tmp37_ = strlen (_tmp36_);
+#line 244 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _tmp38_ = _tmp37_;
+#line 244 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _tmp39_ = string_substring (_tmp27_, (glong) (_tmp31_ + 1), (glong) ((_tmp35_ + 1) - _tmp38_));
+#line 244 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _g_free0 (self->defaultValue);
+#line 244 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       self->defaultValue = _tmp39_;
+#line 240 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _g_free0 (oname);
+#line 1653 "DocTag.c"
+               }
+#line 246 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp40_ = self->name;
+#line 246 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               g_debug ("DocTag.vala:246: got name %s", _tmp40_);
+#line 247 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp41_ = src;
+#line 247 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp42_ = stop;
+#line 247 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp43_ = stop;
+#line 247 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp44_ = src;
+#line 247 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp45_ = strlen (_tmp44_);
+#line 247 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp46_ = _tmp45_;
+#line 247 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp47_ = string_substring (_tmp41_, (glong) (_tmp42_ + 1), (glong) ((_tmp43_ + 1) - _tmp46_));
+#line 247 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               result = _tmp47_;
+#line 247 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               nameAndValue = (_vala_array_free (nameAndValue, nameAndValue_length1, (GDestroyNotify) g_free), NULL);
+#line 247 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _g_free0 (src);
+#line 247 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               return result;
+#line 1681 "DocTag.c"
+       }
+#line 253 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _tmp49_ = src;
+#line 253 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _tmp50_ = src;
+#line 253 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _tmp51_ = strlen (_tmp50_);
+#line 253 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _tmp52_ = _tmp51_;
+#line 253 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _tmp54_ = g_regex_match_full (_thread_safe_regex_init (&_tmp_regex_3, "^(\\S+)(?:\\s([\\s\\S]*))?$", 0), _tmp49_, (gssize) _tmp52_, 0, 0, &_tmp53_, &_inner_error_);
+#line 253 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _g_match_info_unref0 (mi);
+#line 253 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       mi = _tmp53_;
+#line 253 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _tmp48_ = _tmp54_;
+#line 253 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 253 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               if (_inner_error_->domain == JSDOC_DOC_TAG_EXCEPTION) {
+#line 253 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       g_propagate_error (error, _inner_error_);
+#line 253 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _g_match_info_unref0 (mi);
+#line 253 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _g_free0 (src);
+#line 253 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       return NULL;
+#line 1711 "DocTag.c"
+               } else {
+#line 253 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _g_match_info_unref0 (mi);
+#line 253 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _g_free0 (src);
+#line 253 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       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);
+#line 253 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       g_clear_error (&_inner_error_);
+#line 253 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       return NULL;
+#line 1723 "DocTag.c"
+               }
+       }
+#line 253 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       if (_tmp48_) {
+#line 1728 "DocTag.c"
+               GMatchInfo* _tmp55_;
+               gchar* _tmp56_;
+               const gchar* _tmp57_;
+               gchar* _tmp58_ = NULL;
+               GMatchInfo* _tmp59_;
+               gint _tmp60_;
+#line 254 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp55_ = mi;
+#line 254 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp56_ = g_match_info_fetch (_tmp55_, 1);
+#line 254 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _g_free0 (self->name);
+#line 254 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               self->name = _tmp56_;
+#line 255 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp57_ = self->name;
+#line 255 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               g_debug ("DocTag.vala:255: got name %s", _tmp57_);
+#line 256 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp59_ = mi;
+#line 256 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp60_ = g_match_info_get_match_count (_tmp59_);
+#line 256 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               if (_tmp60_ > 2) {
+#line 1753 "DocTag.c"
+                       GMatchInfo* _tmp61_;
+                       gchar* _tmp62_;
+#line 256 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _tmp61_ = mi;
+#line 256 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _tmp62_ = g_match_info_fetch (_tmp61_, 2);
+#line 256 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _g_free0 (_tmp58_);
+#line 256 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _tmp58_ = _tmp62_;
+#line 1764 "DocTag.c"
+               } else {
+                       gchar* _tmp63_;
+#line 256 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _tmp63_ = g_strdup ("");
+#line 256 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _g_free0 (_tmp58_);
+#line 256 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _tmp58_ = _tmp63_;
+#line 1773 "DocTag.c"
+               }
+#line 256 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               result = _tmp58_;
+#line 256 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _g_match_info_unref0 (mi);
+#line 256 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _g_free0 (src);
+#line 256 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               return result;
+#line 1783 "DocTag.c"
+       }
+#line 260 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       result = src;
+#line 260 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _g_match_info_unref0 (mi);
+#line 260 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       return result;
+#line 1791 "DocTag.c"
+}
+
+
+static void jsdoc_doc_tag_balance (JSDOCDocTag* self, const gchar* str, gchar open, gchar close, gint* start, gint* stop) {
+       gint _vala_start = 0;
+       gint _vala_stop = 0;
+       gint _tmp9_;
+       gint balance = 0;
+#line 264 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       g_return_if_fail (self != NULL);
+#line 264 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       g_return_if_fail (str != NULL);
+#line 265 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _vala_start = 0;
+#line 266 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _vala_stop = -1;
+#line 267 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       while (TRUE) {
+#line 1810 "DocTag.c"
+               const gchar* _tmp0_;
+               gint _tmp1_;
+               gchar _tmp2_;
+               gchar _tmp3_;
+               gint _tmp4_;
+               const gchar* _tmp5_;
+               gint _tmp6_;
+               gint _tmp7_;
+               gint _tmp8_;
+#line 267 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp0_ = str;
+#line 267 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp1_ = _vala_start;
+#line 267 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp2_ = string_get (_tmp0_, (glong) _tmp1_);
+#line 267 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp3_ = open;
+#line 267 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               if (!(_tmp2_ != _tmp3_)) {
+#line 267 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       break;
+#line 1832 "DocTag.c"
+               }
+#line 268 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp4_ = _vala_start;
+#line 268 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp5_ = str;
+#line 268 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp6_ = strlen (_tmp5_);
+#line 268 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp7_ = _tmp6_;
+#line 268 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               if (_tmp4_ == _tmp7_) {
+#line 269 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       if (start) {
+#line 269 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                               *start = _vala_start;
+#line 1848 "DocTag.c"
+                       }
+#line 269 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       if (stop) {
+#line 269 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                               *stop = _vala_stop;
+#line 1854 "DocTag.c"
+                       }
+#line 269 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       return;
+#line 1858 "DocTag.c"
+               }
+#line 271 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp8_ = _vala_start;
+#line 271 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _vala_start = _tmp8_ + 1;
+#line 1864 "DocTag.c"
+       }
+#line 274 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _tmp9_ = _vala_start;
+#line 274 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _vala_stop = _tmp9_ + 1;
+#line 275 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       balance = 1;
+#line 276 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       while (TRUE) {
+#line 1874 "DocTag.c"
+               gint _tmp10_;
+               const gchar* _tmp11_;
+               gint _tmp12_;
+               gint _tmp13_;
+               const gchar* _tmp14_;
+               gint _tmp15_;
+               gchar _tmp16_;
+               gchar _tmp17_;
+               const gchar* _tmp19_;
+               gint _tmp20_;
+               gchar _tmp21_;
+               gchar _tmp22_;
+               gint _tmp24_;
+               gint _tmp25_;
+               gint _tmp26_;
+               const gchar* _tmp27_;
+               gint _tmp28_;
+               gint _tmp29_;
+#line 276 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp10_ = _vala_stop;
+#line 276 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp11_ = str;
+#line 276 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp12_ = strlen (_tmp11_);
+#line 276 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp13_ = _tmp12_;
+#line 276 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               if (!(_tmp10_ < _tmp13_)) {
+#line 276 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       break;
+#line 1905 "DocTag.c"
+               }
+#line 277 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp14_ = str;
+#line 277 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp15_ = _vala_stop;
+#line 277 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp16_ = string_get (_tmp14_, (glong) _tmp15_);
+#line 277 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp17_ = open;
+#line 277 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               if (_tmp16_ == _tmp17_) {
+#line 1917 "DocTag.c"
+                       gint _tmp18_;
+#line 277 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _tmp18_ = balance;
+#line 277 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       balance = _tmp18_ + 1;
+#line 1923 "DocTag.c"
+               }
+#line 278 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp19_ = str;
+#line 278 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp20_ = _vala_stop;
+#line 278 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp21_ = string_get (_tmp19_, (glong) _tmp20_);
+#line 278 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp22_ = close;
+#line 278 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               if (_tmp21_ == _tmp22_) {
+#line 1935 "DocTag.c"
+                       gint _tmp23_;
+#line 278 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _tmp23_ = balance;
+#line 278 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       balance = _tmp23_ - 1;
+#line 1941 "DocTag.c"
+               }
+#line 279 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp24_ = balance;
+#line 279 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               if (_tmp24_ == 0) {
+#line 279 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       break;
+#line 1949 "DocTag.c"
+               }
+#line 280 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp25_ = _vala_stop;
+#line 280 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _vala_stop = _tmp25_ + 1;
+#line 281 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp26_ = _vala_stop;
+#line 281 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp27_ = str;
+#line 281 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp28_ = strlen (_tmp27_);
+#line 281 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp29_ = _tmp28_;
+#line 281 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               if (_tmp26_ == _tmp29_) {
+#line 282 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _vala_stop = -1;
+#line 283 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       if (start) {
+#line 283 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                               *start = _vala_start;
+#line 1971 "DocTag.c"
+                       }
+#line 283 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       if (stop) {
+#line 283 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                               *stop = _vala_stop;
+#line 1977 "DocTag.c"
+                       }
+#line 283 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       return;
+#line 1981 "DocTag.c"
+               }
+       }
+#line 264 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       if (start) {
+#line 264 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               *start = _vala_start;
+#line 1988 "DocTag.c"
+       }
+#line 264 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       if (stop) {
+#line 264 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               *stop = _vala_stop;
+#line 1994 "DocTag.c"
+       }
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 293 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       return self ? g_object_ref (self) : NULL;
+#line 2002 "DocTag.c"
+}
+
+
+JsonArray* jsdoc_doc_tag_optvalue_as_json_array (JSDOCDocTag* self) {
+       JsonArray* result = NULL;
+       JsonArray* ret = NULL;
+       JsonArray* _tmp0_;
+#line 290 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 292 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _tmp0_ = json_array_new ();
+#line 292 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       ret = _tmp0_;
+#line 2016 "DocTag.c"
+       {
+               GeeArrayList* _str_list = NULL;
+               GeeArrayList* _tmp1_;
+               GeeArrayList* _tmp2_;
+               gint _str_size = 0;
+               GeeArrayList* _tmp3_;
+               gint _tmp4_;
+               gint _tmp5_;
+               gint _str_index = 0;
+#line 293 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp1_ = self->optvalues;
+#line 293 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp2_ = _g_object_ref0 (_tmp1_);
+#line 293 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _str_list = _tmp2_;
+#line 293 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp3_ = _str_list;
+#line 293 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp4_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp3_);
+#line 293 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _tmp5_ = _tmp4_;
+#line 293 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _str_size = _tmp5_;
+#line 293 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _str_index = -1;
+#line 293 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               while (TRUE) {
+#line 2044 "DocTag.c"
+                       gint _tmp6_;
+                       gint _tmp7_;
+                       gint _tmp8_;
+                       gchar* str = NULL;
+                       GeeArrayList* _tmp9_;
+                       gint _tmp10_;
+                       gpointer _tmp11_;
+                       JsonArray* _tmp12_;
+                       const gchar* _tmp13_;
+#line 293 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _tmp6_ = _str_index;
+#line 293 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _str_index = _tmp6_ + 1;
+#line 293 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _tmp7_ = _str_index;
+#line 293 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _tmp8_ = _str_size;
+#line 293 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       if (!(_tmp7_ < _tmp8_)) {
+#line 293 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                               break;
+#line 2066 "DocTag.c"
+                       }
+#line 293 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _tmp9_ = _str_list;
+#line 293 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _tmp10_ = _str_index;
+#line 293 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _tmp11_ = gee_abstract_list_get ((GeeAbstractList*) _tmp9_, _tmp10_);
+#line 293 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       str = (gchar*) _tmp11_;
+#line 294 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _tmp12_ = ret;
+#line 294 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _tmp13_ = str;
+#line 294 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       json_array_add_string_element (_tmp12_, _tmp13_);
+#line 293 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+                       _g_free0 (str);
+#line 2084 "DocTag.c"
+               }
+#line 293 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+               _g_object_unref0 (_str_list);
+#line 2088 "DocTag.c"
+       }
+#line 296 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       result = ret;
+#line 296 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       return result;
+#line 2094 "DocTag.c"
+}
+
+
+static void jsdoc_doc_tag_class_init (JSDOCDocTagClass * klass) {
+#line 58 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       jsdoc_doc_tag_parent_class = g_type_class_peek_parent (klass);
+#line 58 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       G_OBJECT_CLASS (klass)->finalize = jsdoc_doc_tag_finalize;
+#line 2103 "DocTag.c"
+}
+
+
+static void jsdoc_doc_tag_instance_init (JSDOCDocTag * self) {
+       gchar* _tmp0_;
+       gchar* _tmp1_;
+       gchar* _tmp2_;
+       gchar* _tmp3_;
+       gchar* _tmp4_;
+#line 61 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       self->title = JSDOC_DOC_TAG_TITLE_NO_VALUE;
+#line 62 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _tmp0_ = g_strdup ("");
+#line 62 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       self->type = _tmp0_;
+#line 63 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _tmp1_ = g_strdup ("");
+#line 63 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       self->name = _tmp1_;
+#line 64 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       self->isOptional = FALSE;
+#line 65 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _tmp2_ = g_strdup ("");
+#line 65 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       self->defaultValue = _tmp2_;
+#line 66 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _tmp3_ = g_strdup ("");
+#line 66 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       self->desc = _tmp3_;
+#line 68 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _tmp4_ = g_strdup ("");
+#line 68 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       self->memberOf = _tmp4_;
+#line 2137 "DocTag.c"
+}
+
+
+static void jsdoc_doc_tag_finalize (GObject * obj) {
+       JSDOCDocTag * self;
+#line 58 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       self = G_TYPE_CHECK_INSTANCE_CAST (obj, JSDOC_TYPE_DOC_TAG, JSDOCDocTag);
+#line 62 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _g_free0 (self->type);
+#line 63 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _g_free0 (self->name);
+#line 65 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _g_free0 (self->defaultValue);
+#line 66 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _g_free0 (self->desc);
+#line 67 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _g_object_unref0 (self->optvalues);
+#line 68 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       _g_free0 (self->memberOf);
+#line 58 "/home/alan/gitlive/roojspacker/src/jsdoc/DocTag.vala"
+       G_OBJECT_CLASS (jsdoc_doc_tag_parent_class)->finalize (obj);
+#line 2159 "DocTag.c"
+}
+
+
+GType jsdoc_doc_tag_get_type (void) {
+       static volatile gsize jsdoc_doc_tag_type_id__volatile = 0;
+       if (g_once_init_enter (&jsdoc_doc_tag_type_id__volatile)) {
+               static const GTypeInfo g_define_type_info = { sizeof (JSDOCDocTagClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) jsdoc_doc_tag_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (JSDOCDocTag), 0, (GInstanceInitFunc) jsdoc_doc_tag_instance_init, NULL };
+               GType jsdoc_doc_tag_type_id;
+               jsdoc_doc_tag_type_id = g_type_register_static (G_TYPE_OBJECT, "JSDOCDocTag", &g_define_type_info, 0);
+               g_once_init_leave (&jsdoc_doc_tag_type_id__volatile, jsdoc_doc_tag_type_id);
+       }
+       return jsdoc_doc_tag_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;
+}
+
+
+
diff --git a/jsdoc/DocTag.vala b/jsdoc/DocTag.vala
new file mode 100644 (file)
index 0000000..49545a6
--- /dev/null
@@ -0,0 +1,304 @@
+
+
+namespace JSDOC 
+{
+       public enum DocTagTitle
+       {
+               NO_VALUE,
+               PARAM,
+               PROPERTY,
+               CFG,
+               EXAMPLE,
+               SINGLETON,
+               AUTHOR,
+               METHOD,
+               DESC,
+               OVERVIEW,
+               SINCE,
+               CONSTANT,
+               VERSION,
+               DEPRECATED,
+               SEE,
+               CLASS,
+               NAMESPACE,
+               CONSTRUCTOR,
+               STATIC,
+               
+               INNER,
+               FIELD,
+               FUNCTION,
+               EVENT,
+               NAME,
+               RETURN,
+               THROWS,
+               REQUIRES,
+               TYPE,
+               PRIVATE,
+               IGNORE,
+               ARGUMENTS,
+               EXTENDS,
+               DEFAULT,
+               MEMBEROF,
+               PUBLIC,
+               SCOPE,
+               SCOPEALIAS
+  
+       }
+       
+       errordomain DocTagException {
+               NO_TITLE,
+               INVALID_TITLE,
+               INVALID_NAME,
+               INVALID_TYPE
+       }
+
+
+       public class DocTag : Object 
+       {
+
+               public DocTagTitle title = DocTagTitle.NO_VALUE;
+               public string type = "";  // eg.. boolean / string etc..., may be xxxx|bbbb - eg. optional types
+               public string name = ""; // eg. "title" << a property name etc...
+               public bool isOptional = false;
+               public string defaultValue = "";
+               public string desc = "";
+               public Gee.ArrayList<string> optvalues;
+               public string memberOf = ""; // set by add addMember..
+
+               public string asString()
+               {
+                       return "DocTag: title=%s name=%s type=%s  desc=%s".printf(
+                               this.title.to_string(),
+                               this.name,
+                               this.type,
+                               this.desc
+                       );
+               }
+       
+                        
+       
+       
+               public DocTag (string in_src)
+               {
+                   
+                   GLib.debug("Parsing Tag: %s", in_src);
+                   
+                    
+                   
+                   
+                   this.optvalues = new Gee.ArrayList<string>();
+                   
+                   var src = in_src;
+                       
+            try {
+                src = this.nibbleTitle(src);
+                
+                src = this.nibbleType(src);
+                
+
+                // only some tags are allowed to have names.
+                if (
+                       this.title == DocTagTitle.PARAM ||
+                       this.title == DocTagTitle.PROPERTY || 
+                       this.title == DocTagTitle.CFG) { // @config is deprecated
+                    src = this.nibbleName(src);
+                }
+            }
+            catch(DocTagException e) {
+                GLib.debug("Failed to parse tag: '%s' = error = %s", in_src, e.message);
+                // only throw if in 'strict'??
+                //throw e;
+                return;
+            }
+            
+            // if type == @cfg, and matches (|....|...)
+            
+            src = src.strip();
+            MatchInfo mi = null;
+            
+            if (this.title ==  DocTagTitle.CFG && /^\([^)]+\)/.match_all(src, 0, out mi )) {
+                               var ms = mi.fetch(0);
+                               if (ms.contains("|")) {
+                                       var ar = ms.split("|");
+                                       for (var i =0 ; i < ar.length;i++) {
+                                               optvalues.add(ar[i].strip());
+                                       }
+                                       src = src.substring(ms.length, src.length - ms.length);                   
+                    
+                } 
+                
+            }
+            
+            
+            this.desc = src; // whatever is left
+            
+            // example tags need to have whitespace preserved
+            if (this.title != DocTagTitle.EXAMPLE) {
+                       this.desc = this.desc.strip();
+               }
+            
+
+               
+       
+
+               }
+       
+       
+               /**
+                   Find and shift off the title of a tag.
+                   @param {string} src
+                   @return src
+                */
+               private string nibbleTitle (string src) throws DocTagException
+               {
+                   //GLib.debug("nibbleTitle: %s", src);
+                   MatchInfo mi;
+                    
+                   if(! /^\s*(\S+)\s*(?:\s([\s\S]*))?$/.match_full(src, src.length, 0, 0, out mi) || 
+                           mi.get_match_count() < 2)  {
+                               throw new DocTagException.NO_TITLE("missing title");
+                               return src;
+                   }
+                   
+                   //GLib.debug("nibbleTitle: regexmatches %d : %s",
+                   //           mi.get_match_count(), 
+                   //           mi.fetch(1).up());
+                   
+                   EnumClass enumc = (EnumClass) typeof (DocTagTitle).class_ref ();
+
+                   unowned EnumValue? eval = enumc.get_value_by_name ( "JSDOC_DOC_TAG_TITLE_"+  mi.fetch(1).up());
+                   if (eval == null) {
+                               throw new DocTagException.INVALID_TITLE("title not supported ??");
+                               return src;
+                   }
+                   this.title = (DocTagTitle) eval.value;
+                   return mi.get_match_count() > 2 ? mi.fetch(2) : "";
+
+               }
+                
+                 /**
+            Find and shift off the type of a tag.
+            @requires frame/String.js
+            @param {string} src
+            @return src
+         */
+       private string nibbleType(string src) 
+        {
+                   MatchInfo mi;
+            if(! /^\s*\{/.match_all(src, 0, out mi)) {
+                  return src;
+           }
+            int start;
+            int stop;
+              
+                       this.balance(src,'{', '}', out start, out stop);
+                       //GLib.debug("nibble type: %s %d, %d", src, start,stop);
+            if (stop == -1) {
+                throw new DocTagException.INVALID_TYPE("Malformed comment tag ignored. Tag type requires an opening { and a closing }: ") ;
+                return src;
+            }
+            this.type = src.substring(start+1,stop-1).strip();
+            this.type = this.type.replace(",", "|"); // multiples can be separated by , or |
+            return src.substring(stop+1, -1);
+            
+        }
+         
+         
+         
+        /**
+            Find and shift off the name of a tag.
+            @requires frame/String.js
+            @param {string} src
+            @return src
+         */
+               private string nibbleName( string in_src) throws DocTagException
+        {
+
+           
+            var src = in_src.strip();
+            //GLib.debug("nibbleName: %s", in_src);
+            
+            // is optional?
+            if (src.get(0) == '[') {
+                       int start, stop;
+                 this.balance(src,'[', ']', out start, out stop);
+                if (stop == -1) {
+                    throw new  DocTagException.INVALID_NAME("Malformed comment tag ignored. Tag optional name requires an opening [ and a closing ]: ");
+                    return src;
+                }
+                this.name = src.substring(start+1, stop).strip();
+                this.isOptional = true;
+                
+                src = src.substring(stop+1);
+                
+                // has default value?
+                var nameAndValue = this.name.split("=");
+                if (nameAndValue.length > 1) {
+                       var oname = this.name;
+                    this.name = nameAndValue[0].strip();
+
+                    this.defaultValue = oname.substring( nameAndValue[0].length + 1 , nameAndValue[0].length + 1 - oname.length); /// what about
+                }
+                GLib.debug("got name %s", this.name);                
+                return src.substring(stop+1, stop+1-src.length);
+            }
+                       // not encased with [ ]
+
+                   MatchInfo mi;
+
+            if (/^(\S+)(?:\s([\s\S]*))?$/.match_full(src, src.length, 0, 0,  out mi)) {
+                       this.name = mi.fetch(1);
+                       GLib.debug("got name %s", this.name);
+                               return mi.get_match_count() > 2 ? mi.fetch(2) : "";
+            }
+               
+
+            return src;
+        }
+         
+         
+        private void balance(string str, char open, char close, out int start, out int stop) {
+            start = 0;
+            stop  =-1;
+            while (str.get(start) != open) {
+                if (start == str.length) {
+                       return;
+                       }
+                start++;
+            }
+            
+            stop = start +1;
+            var balance = 1;
+            while (stop < str.length) {
+                if (str.get(stop) == open) balance++;
+                if (str.get(stop) == close) balance--;
+                if (balance == 0) break;
+                stop++;
+                if (stop == str.length) {
+                       stop = -1;
+                       return;
+                       }
+            }
+            
+
+               }
+               
+               public Json.Array optvalue_as_json_array()
+               {
+                       var ret = new Json.Array();
+                       foreach (var str in this.optvalues ) {
+                               ret.add_string_element(str);
+                       }
+                       return ret;
+                       
+                       
+               }
+               
+       }
+}
+       
+       
\ No newline at end of file
diff --git a/jsdoc/Identifier.c b/jsdoc/Identifier.c
new file mode 100644 (file)
index 0000000..e91c7ff
--- /dev/null
@@ -0,0 +1,162 @@
+/* Identifier.c generated by valac 0.36.6, the Vala compiler
+ * generated from Identifier.vala, do not modify */
+
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+
+
+#define JSDOC_TYPE_IDENTIFIER (jsdoc_identifier_get_type ())
+#define JSDOC_IDENTIFIER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_IDENTIFIER, JSDOCIdentifier))
+#define JSDOC_IDENTIFIER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_IDENTIFIER, JSDOCIdentifierClass))
+#define JSDOC_IS_IDENTIFIER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_IDENTIFIER))
+#define JSDOC_IS_IDENTIFIER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_IDENTIFIER))
+#define JSDOC_IDENTIFIER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_IDENTIFIER, JSDOCIdentifierClass))
+
+typedef struct _JSDOCIdentifier JSDOCIdentifier;
+typedef struct _JSDOCIdentifierClass JSDOCIdentifierClass;
+typedef struct _JSDOCIdentifierPrivate JSDOCIdentifierPrivate;
+
+#define JSDOC_TYPE_SCOPE (jsdoc_scope_get_type ())
+#define JSDOC_SCOPE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_SCOPE, JSDOCScope))
+#define JSDOC_SCOPE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_SCOPE, JSDOCScopeClass))
+#define JSDOC_IS_SCOPE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_SCOPE))
+#define JSDOC_IS_SCOPE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_SCOPE))
+#define JSDOC_SCOPE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_SCOPE, JSDOCScopeClass))
+
+typedef struct _JSDOCScope JSDOCScope;
+typedef struct _JSDOCScopeClass JSDOCScopeClass;
+#define _g_free0(var) (var = (g_free (var), NULL))
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+struct _JSDOCIdentifier {
+       GObject parent_instance;
+       JSDOCIdentifierPrivate * priv;
+       gchar* name;
+       gint refcount;
+       gchar* mungedValue;
+       JSDOCScope* scope;
+       gboolean toMunge;
+};
+
+struct _JSDOCIdentifierClass {
+       GObjectClass parent_class;
+};
+
+
+static gpointer jsdoc_identifier_parent_class = NULL;
+
+GType jsdoc_identifier_get_type (void) G_GNUC_CONST;
+GType jsdoc_scope_get_type (void) G_GNUC_CONST;
+enum  {
+       JSDOC_IDENTIFIER_DUMMY_PROPERTY
+};
+JSDOCIdentifier* jsdoc_identifier_new (const gchar* name, JSDOCScope* scope);
+JSDOCIdentifier* jsdoc_identifier_construct (GType object_type, const gchar* name, JSDOCScope* scope);
+static void jsdoc_identifier_finalize (GObject * obj);
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 26 "/home/alan/gitlive/roojspacker/src/jsdoc/Identifier.vala"
+       return self ? g_object_ref (self) : NULL;
+#line 65 "Identifier.c"
+}
+
+
+JSDOCIdentifier* jsdoc_identifier_construct (GType object_type, const gchar* name, JSDOCScope* scope) {
+       JSDOCIdentifier * self = NULL;
+       const gchar* _tmp0_;
+       gchar* _tmp1_;
+       JSDOCScope* _tmp2_;
+       JSDOCScope* _tmp3_;
+       gchar* _tmp4_;
+#line 23 "/home/alan/gitlive/roojspacker/src/jsdoc/Identifier.vala"
+       g_return_val_if_fail (name != NULL, NULL);
+#line 23 "/home/alan/gitlive/roojspacker/src/jsdoc/Identifier.vala"
+       g_return_val_if_fail (scope != NULL, NULL);
+#line 23 "/home/alan/gitlive/roojspacker/src/jsdoc/Identifier.vala"
+       self = (JSDOCIdentifier*) g_object_new (object_type, NULL);
+#line 25 "/home/alan/gitlive/roojspacker/src/jsdoc/Identifier.vala"
+       _tmp0_ = name;
+#line 25 "/home/alan/gitlive/roojspacker/src/jsdoc/Identifier.vala"
+       _tmp1_ = g_strdup (_tmp0_);
+#line 25 "/home/alan/gitlive/roojspacker/src/jsdoc/Identifier.vala"
+       _g_free0 (self->name);
+#line 25 "/home/alan/gitlive/roojspacker/src/jsdoc/Identifier.vala"
+       self->name = _tmp1_;
+#line 26 "/home/alan/gitlive/roojspacker/src/jsdoc/Identifier.vala"
+       _tmp2_ = scope;
+#line 26 "/home/alan/gitlive/roojspacker/src/jsdoc/Identifier.vala"
+       _tmp3_ = _g_object_ref0 (_tmp2_);
+#line 26 "/home/alan/gitlive/roojspacker/src/jsdoc/Identifier.vala"
+       _g_object_unref0 (self->scope);
+#line 26 "/home/alan/gitlive/roojspacker/src/jsdoc/Identifier.vala"
+       self->scope = _tmp3_;
+#line 27 "/home/alan/gitlive/roojspacker/src/jsdoc/Identifier.vala"
+       _tmp4_ = g_strdup ("");
+#line 27 "/home/alan/gitlive/roojspacker/src/jsdoc/Identifier.vala"
+       _g_free0 (self->mungedValue);
+#line 27 "/home/alan/gitlive/roojspacker/src/jsdoc/Identifier.vala"
+       self->mungedValue = _tmp4_;
+#line 23 "/home/alan/gitlive/roojspacker/src/jsdoc/Identifier.vala"
+       return self;
+#line 106 "Identifier.c"
+}
+
+
+JSDOCIdentifier* jsdoc_identifier_new (const gchar* name, JSDOCScope* scope) {
+#line 23 "/home/alan/gitlive/roojspacker/src/jsdoc/Identifier.vala"
+       return jsdoc_identifier_construct (JSDOC_TYPE_IDENTIFIER, name, scope);
+#line 113 "Identifier.c"
+}
+
+
+static void jsdoc_identifier_class_init (JSDOCIdentifierClass * klass) {
+#line 12 "/home/alan/gitlive/roojspacker/src/jsdoc/Identifier.vala"
+       jsdoc_identifier_parent_class = g_type_class_peek_parent (klass);
+#line 12 "/home/alan/gitlive/roojspacker/src/jsdoc/Identifier.vala"
+       G_OBJECT_CLASS (klass)->finalize = jsdoc_identifier_finalize;
+#line 122 "Identifier.c"
+}
+
+
+static void jsdoc_identifier_instance_init (JSDOCIdentifier * self) {
+#line 16 "/home/alan/gitlive/roojspacker/src/jsdoc/Identifier.vala"
+       self->refcount = 1;
+#line 19 "/home/alan/gitlive/roojspacker/src/jsdoc/Identifier.vala"
+       self->toMunge = TRUE;
+#line 131 "Identifier.c"
+}
+
+
+static void jsdoc_identifier_finalize (GObject * obj) {
+       JSDOCIdentifier * self;
+#line 12 "/home/alan/gitlive/roojspacker/src/jsdoc/Identifier.vala"
+       self = G_TYPE_CHECK_INSTANCE_CAST (obj, JSDOC_TYPE_IDENTIFIER, JSDOCIdentifier);
+#line 15 "/home/alan/gitlive/roojspacker/src/jsdoc/Identifier.vala"
+       _g_free0 (self->name);
+#line 17 "/home/alan/gitlive/roojspacker/src/jsdoc/Identifier.vala"
+       _g_free0 (self->mungedValue);
+#line 18 "/home/alan/gitlive/roojspacker/src/jsdoc/Identifier.vala"
+       _g_object_unref0 (self->scope);
+#line 12 "/home/alan/gitlive/roojspacker/src/jsdoc/Identifier.vala"
+       G_OBJECT_CLASS (jsdoc_identifier_parent_class)->finalize (obj);
+#line 147 "Identifier.c"
+}
+
+
+GType jsdoc_identifier_get_type (void) {
+       static volatile gsize jsdoc_identifier_type_id__volatile = 0;
+       if (g_once_init_enter (&jsdoc_identifier_type_id__volatile)) {
+               static const GTypeInfo g_define_type_info = { sizeof (JSDOCIdentifierClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) jsdoc_identifier_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (JSDOCIdentifier), 0, (GInstanceInitFunc) jsdoc_identifier_instance_init, NULL };
+               GType jsdoc_identifier_type_id;
+               jsdoc_identifier_type_id = g_type_register_static (G_TYPE_OBJECT, "JSDOCIdentifier", &g_define_type_info, 0);
+               g_once_init_leave (&jsdoc_identifier_type_id__volatile, jsdoc_identifier_type_id);
+       }
+       return jsdoc_identifier_type_id__volatile;
+}
+
+
+
diff --git a/jsdoc/Identifier.vala b/jsdoc/Identifier.vala
new file mode 100644 (file)
index 0000000..b0584e2
--- /dev/null
@@ -0,0 +1,35 @@
+
+
+/**
+ * @class  Identifier
+ * holds details about identifiers and their replacement values
+ * used by the packer..
+ * 
+ */
+
+namespace JSDOC 
+{
+    public class  Identifier  : Object 
+    {
+               
+               public string name;
+               public int refcount = 1; // used?
+               public string mungedValue; // should be at least 1?!?!
+               public Scope scope ;  // script of fn scope..
+               public bool toMunge = true;
+       
+       
+
+               public  Identifier(string name, Scope scope) {
+                  // print("NEW IDENT: " + name);
+                       this.name = name;
+                       this.scope = scope;
+                       this.mungedValue = "";
+               //      this.identifiers = {}; <<< used where?
+       
+               }
+       }
+       
+}
+
diff --git a/jsdoc/Lang.c b/jsdoc/Lang.c
new file mode 100644 (file)
index 0000000..edb89b9
--- /dev/null
@@ -0,0 +1,2378 @@
+/* Lang.c generated by valac 0.36.6, 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 JSDOC_TYPE_LANGCLASS (jsdoc_langclass_get_type ())
+#define JSDOC_LANGCLASS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_LANGCLASS, JSDOCLang_Class))
+#define JSDOC_LANGCLASS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_LANGCLASS, JSDOCLang_ClassClass))
+#define JSDOC_IS_LANGCLASS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_LANGCLASS))
+#define JSDOC_IS_LANGCLASS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_LANGCLASS))
+#define JSDOC_LANGCLASS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_LANGCLASS, JSDOCLang_ClassClass))
+
+typedef struct _JSDOCLang_Class JSDOCLang_Class;
+typedef struct _JSDOCLang_ClassClass JSDOCLang_ClassClass;
+typedef struct _JSDOCLang_ClassPrivate JSDOCLang_ClassPrivate;
+#define __g_list_free__g_free0_0(var) ((var == NULL) ? NULL : (var = (_g_list_free__g_free0_ (var), NULL)))
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+#define JSDOC_TYPE_TOKEN_NAME (jsdoc_token_name_get_type ())
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+#define _g_free0(var) (var = (g_free (var), NULL))
+
+typedef enum  {
+       JSDOC_LANG_ERROR_ArgumentError
+} JSDOCLangError;
+#define JSDOC_LANG_ERROR jsdoc_lang_error_quark ()
+struct _JSDOCLang_Class {
+       GObject parent_instance;
+       JSDOCLang_ClassPrivate * priv;
+};
+
+struct _JSDOCLang_ClassClass {
+       GObjectClass parent_class;
+};
+
+struct _JSDOCLang_ClassPrivate {
+       GList* coreObjects;
+       GeeHashMap* whitespaceNames;
+       GeeHashMap* newlineNames;
+};
+
+typedef enum  {
+       JSDOC_TOKEN_NAME_UNKNOWN_TOKEN,
+       JSDOC_TOKEN_NAME_BREAK,
+       JSDOC_TOKEN_NAME_CASE,
+       JSDOC_TOKEN_NAME_CATCH,
+       JSDOC_TOKEN_NAME_CONST,
+       JSDOC_TOKEN_NAME_CONTINUE,
+       JSDOC_TOKEN_NAME_DEFAULT,
+       JSDOC_TOKEN_NAME_DELETE,
+       JSDOC_TOKEN_NAME_DO,
+       JSDOC_TOKEN_NAME_ELSE,
+       JSDOC_TOKEN_NAME_FALSE,
+       JSDOC_TOKEN_NAME_FINALLY,
+       JSDOC_TOKEN_NAME_FOR,
+       JSDOC_TOKEN_NAME_FUNCTION,
+       JSDOC_TOKEN_NAME_IF,
+       JSDOC_TOKEN_NAME_IN,
+       JSDOC_TOKEN_NAME_INSTANCEOF,
+       JSDOC_TOKEN_NAME_NEW,
+       JSDOC_TOKEN_NAME_NULL,
+       JSDOC_TOKEN_NAME_RETURN,
+       JSDOC_TOKEN_NAME_SWITCH,
+       JSDOC_TOKEN_NAME_THIS,
+       JSDOC_TOKEN_NAME_THROW,
+       JSDOC_TOKEN_NAME_TRUE,
+       JSDOC_TOKEN_NAME_TRY,
+       JSDOC_TOKEN_NAME_TYPEOF,
+       JSDOC_TOKEN_NAME_VOID,
+       JSDOC_TOKEN_NAME_WHILE,
+       JSDOC_TOKEN_NAME_WITH,
+       JSDOC_TOKEN_NAME_VAR,
+       JSDOC_TOKEN_NAME_EVAL,
+       JSDOC_TOKEN_NAME_NAME,
+       JSDOC_TOKEN_NAME_MULTI_LINE_COMM,
+       JSDOC_TOKEN_NAME_JSDOC,
+       JSDOC_TOKEN_NAME_SINGLE_LINE_COMM,
+       JSDOC_TOKEN_NAME_SEMICOLON,
+       JSDOC_TOKEN_NAME_COMMA,
+       JSDOC_TOKEN_NAME_HOOK,
+       JSDOC_TOKEN_NAME_COLON,
+       JSDOC_TOKEN_NAME_OR,
+       JSDOC_TOKEN_NAME_AND,
+       JSDOC_TOKEN_NAME_BITWISE_OR,
+       JSDOC_TOKEN_NAME_BITWISE_XOR,
+       JSDOC_TOKEN_NAME_BITWISE_AND,
+       JSDOC_TOKEN_NAME_STRICT_EQ,
+       JSDOC_TOKEN_NAME_EQ,
+       JSDOC_TOKEN_NAME_ASSIGN,
+       JSDOC_TOKEN_NAME_STRICT_NE,
+       JSDOC_TOKEN_NAME_NE,
+       JSDOC_TOKEN_NAME_LSH,
+       JSDOC_TOKEN_NAME_LE,
+       JSDOC_TOKEN_NAME_LT,
+       JSDOC_TOKEN_NAME_URSH,
+       JSDOC_TOKEN_NAME_RSH,
+       JSDOC_TOKEN_NAME_GE,
+       JSDOC_TOKEN_NAME_GT,
+       JSDOC_TOKEN_NAME_INCREMENT,
+       JSDOC_TOKEN_NAME_DECREMENT,
+       JSDOC_TOKEN_NAME_PLUS,
+       JSDOC_TOKEN_NAME_MINUS,
+       JSDOC_TOKEN_NAME_MUL,
+       JSDOC_TOKEN_NAME_DIV,
+       JSDOC_TOKEN_NAME_MOD,
+       JSDOC_TOKEN_NAME_NOT,
+       JSDOC_TOKEN_NAME_BITWISE_NOT,
+       JSDOC_TOKEN_NAME_DOT,
+       JSDOC_TOKEN_NAME_LEFT_BRACE,
+       JSDOC_TOKEN_NAME_RIGHT_BRACE,
+       JSDOC_TOKEN_NAME_LEFT_CURLY,
+       JSDOC_TOKEN_NAME_RIGHT_CURLY,
+       JSDOC_TOKEN_NAME_LEFT_PAREN,
+       JSDOC_TOKEN_NAME_RIGHT_PAREN,
+       JSDOC_TOKEN_NAME_SPACE,
+       JSDOC_TOKEN_NAME_NEWLINE,
+       JSDOC_TOKEN_NAME_DOUBLE_QUOTE,
+       JSDOC_TOKEN_NAME_SINGLE_QUOTE,
+       JSDOC_TOKEN_NAME_OCTAL,
+       JSDOC_TOKEN_NAME_DECIMAL,
+       JSDOC_TOKEN_NAME_HEX_DEC,
+       JSDOC_TOKEN_NAME_REGX,
+       JSDOC_TOKEN_NAME_START_OF_STREAM,
+       JSDOC_TOKEN_NAME_END_OF_STREAM,
+       JSDOC_TOKEN_NAME_UNKNOWN
+} JSDOCTokenName;
+
+
+extern JSDOCLang_Class* jsdoc_Lang;
+JSDOCLang_Class* jsdoc_Lang = NULL;
+static gpointer jsdoc_langclass_parent_class = NULL;
+
+GQuark jsdoc_lang_error_quark (void);
+GType jsdoc_langclass_get_type (void) G_GNUC_CONST;
+#define JSDOC_LANGCLASS_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), JSDOC_TYPE_LANGCLASS, JSDOCLang_ClassPrivate))
+enum  {
+       JSDOC_LANGCLASS_DUMMY_PROPERTY
+};
+static void _g_free0_ (gpointer var);
+static void _g_list_free__g_free0_ (GList* self);
+JSDOCLang_Class* jsdoc_langclass_new (void);
+JSDOCLang_Class* jsdoc_langclass_construct (GType object_type);
+static void jsdoc_langclass_init (JSDOCLang_Class* self);
+gboolean jsdoc_langclass_isBuiltin (JSDOCLang_Class* self, const gchar* name);
+gchar* jsdoc_langclass_whitespace (JSDOCLang_Class* self, const gchar* ch);
+gchar* jsdoc_langclass_newline (JSDOCLang_Class* self, const gchar* ch);
+GType jsdoc_token_name_get_type (void) G_GNUC_CONST;
+JSDOCTokenName jsdoc_langclass_keyword (JSDOCLang_Class* self, const gchar* word, GError** error);
+JSDOCTokenName* jsdoc_langclass_matching (JSDOCLang_Class* self, JSDOCTokenName name, GError** error);
+static JSDOCTokenName* _jsdoc_token_name_dup (JSDOCTokenName* self);
+const gchar* jsdoc_token_name_to_string (JSDOCTokenName self);
+gboolean jsdoc_langclass_isKeyword (JSDOCLang_Class* self, const gchar* word);
+JSDOCTokenName jsdoc_langclass_puncFirstString (JSDOCLang_Class* self, gchar ch);
+JSDOCTokenName jsdoc_langclass_puncString (JSDOCLang_Class* self, const gchar* ch);
+gboolean jsdoc_langclass_isNumber (JSDOCLang_Class* self, const gchar* str);
+gboolean jsdoc_langclass_isHexDec (JSDOCLang_Class* self, const gchar* str);
+gboolean jsdoc_langclass_isWordString (JSDOCLang_Class* self, const gchar* str);
+gboolean jsdoc_langclass_isWordChar (JSDOCLang_Class* self, gchar c);
+gboolean jsdoc_langclass_isSpace (JSDOCLang_Class* self, const gchar* str);
+gboolean jsdoc_langclass_isSpaceC (JSDOCLang_Class* self, gchar str);
+gboolean jsdoc_langclass_isNewline (JSDOCLang_Class* self, const gchar* str);
+gboolean jsdoc_langclass_isNewlineC (JSDOCLang_Class* self, gchar str);
+gboolean jsdoc_langclass_isBoolean (JSDOCLang_Class* self, const gchar* str);
+static void jsdoc_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);
+
+
+GQuark jsdoc_lang_error_quark (void) {
+       return g_quark_from_static_string ("jsdoc_lang_error-quark");
+}
+
+
+static void _g_free0_ (gpointer var) {
+#line 27 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       var = (g_free (var), NULL);
+#line 186 "Lang.c"
+}
+
+
+static void _g_list_free__g_free0_ (GList* self) {
+#line 27 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       g_list_foreach (self, (GFunc) _g_free0_, NULL);
+#line 27 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       g_list_free (self);
+#line 195 "Lang.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 42 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       return self ? g_object_ref (self) : NULL;
+#line 202 "Lang.c"
+}
+
+
+JSDOCLang_Class* jsdoc_langclass_construct (GType object_type) {
+       JSDOCLang_Class * self = NULL;
+       JSDOCLang_Class* _tmp0_;
+       JSDOCLang_Class* _tmp1_;
+       JSDOCLang_Class* _tmp2_;
+#line 33 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       self = (JSDOCLang_Class*) g_object_new (object_type, NULL);
+#line 35 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp0_ = jsdoc_Lang;
+#line 35 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       if (_tmp0_ != NULL) {
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               return self;
+#line 219 "Lang.c"
+       }
+#line 40 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       jsdoc_langclass_init (self);
+#line 42 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp1_ = _g_object_ref0 (self);
+#line 42 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _g_object_unref0 (jsdoc_Lang);
+#line 42 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       jsdoc_Lang = _tmp1_;
+#line 43 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp2_ = jsdoc_Lang;
+#line 43 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       g_object_ref ((GObject*) _tmp2_);
+#line 33 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       return self;
+#line 235 "Lang.c"
+}
+
+
+JSDOCLang_Class* jsdoc_langclass_new (void) {
+#line 33 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       return jsdoc_langclass_construct (JSDOC_TYPE_LANGCLASS);
+#line 242 "Lang.c"
+}
+
+
+gboolean jsdoc_langclass_isBuiltin (JSDOCLang_Class* self, const gchar* name) {
+       gboolean result = FALSE;
+       GList* _tmp0_;
+       const gchar* _tmp1_;
+       gint _tmp2_;
+#line 48 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       g_return_val_if_fail (self != NULL, FALSE);
+#line 48 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       g_return_val_if_fail (name != NULL, FALSE);
+#line 49 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp0_ = self->priv->coreObjects;
+#line 49 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp1_ = name;
+#line 49 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp2_ = g_list_index (_tmp0_, _tmp1_);
+#line 49 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       result = _tmp2_ > -1;
+#line 49 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       return result;
+#line 265 "Lang.c"
+}
+
+
+gchar* jsdoc_langclass_whitespace (JSDOCLang_Class* self, const gchar* ch) {
+       gchar* result = NULL;
+       GeeHashMap* _tmp0_;
+       const gchar* _tmp1_;
+       gpointer _tmp2_;
+#line 52 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 52 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       g_return_val_if_fail (ch != NULL, NULL);
+#line 53 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp0_ = self->priv->whitespaceNames;
+#line 53 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp1_ = ch;
+#line 53 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp2_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp0_, _tmp1_);
+#line 53 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       result = (gchar*) _tmp2_;
+#line 53 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       return result;
+#line 288 "Lang.c"
+}
+
+
+gchar* jsdoc_langclass_newline (JSDOCLang_Class* self, const gchar* ch) {
+       gchar* result = NULL;
+       GeeHashMap* _tmp0_;
+       const gchar* _tmp1_;
+       gpointer _tmp2_;
+#line 55 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 55 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       g_return_val_if_fail (ch != NULL, NULL);
+#line 56 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp0_ = self->priv->newlineNames;
+#line 56 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp1_ = ch;
+#line 56 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp2_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp0_, _tmp1_);
+#line 56 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       result = (gchar*) _tmp2_;
+#line 56 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       return result;
+#line 311 "Lang.c"
+}
+
+
+JSDOCTokenName jsdoc_langclass_keyword (JSDOCLang_Class* self, const gchar* word, GError** error) {
+       JSDOCTokenName result = 0;
+       const gchar* _tmp0_;
+       const gchar* _tmp1_;
+       GQuark _tmp3_ = 0U;
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       static GQuark _tmp2_label0 = 0;
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       static GQuark _tmp2_label1 = 0;
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       static GQuark _tmp2_label2 = 0;
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       static GQuark _tmp2_label3 = 0;
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       static GQuark _tmp2_label4 = 0;
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       static GQuark _tmp2_label5 = 0;
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       static GQuark _tmp2_label6 = 0;
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       static GQuark _tmp2_label7 = 0;
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       static GQuark _tmp2_label8 = 0;
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       static GQuark _tmp2_label9 = 0;
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       static GQuark _tmp2_label10 = 0;
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       static GQuark _tmp2_label11 = 0;
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       static GQuark _tmp2_label12 = 0;
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       static GQuark _tmp2_label13 = 0;
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       static GQuark _tmp2_label14 = 0;
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       static GQuark _tmp2_label15 = 0;
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       static GQuark _tmp2_label16 = 0;
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       static GQuark _tmp2_label17 = 0;
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       static GQuark _tmp2_label18 = 0;
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       static GQuark _tmp2_label19 = 0;
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       static GQuark _tmp2_label20 = 0;
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       static GQuark _tmp2_label21 = 0;
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       static GQuark _tmp2_label22 = 0;
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       static GQuark _tmp2_label23 = 0;
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       static GQuark _tmp2_label24 = 0;
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       static GQuark _tmp2_label25 = 0;
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       static GQuark _tmp2_label26 = 0;
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       static GQuark _tmp2_label27 = 0;
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       static GQuark _tmp2_label28 = 0;
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       static GQuark _tmp2_label29 = 0;
+#line 380 "Lang.c"
+       GError * _inner_error_ = NULL;
+#line 58 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       g_return_val_if_fail (self != NULL, 0);
+#line 58 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       g_return_val_if_fail (word != NULL, 0);
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp0_ = word;
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp1_ = _tmp0_;
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp3_ = (NULL == _tmp1_) ? 0 : g_quark_from_string (_tmp1_);
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       if (_tmp3_ == ((0 != _tmp2_label0) ? _tmp2_label0 : (_tmp2_label0 = g_quark_from_static_string ("break")))) {
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               switch (0) {
+#line 396 "Lang.c"
+                       default:
+                       {
+#line 61 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               result = JSDOC_TOKEN_NAME_BREAK;
+#line 61 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               return result;
+#line 403 "Lang.c"
+                       }
+               }
+       } else if (_tmp3_ == ((0 != _tmp2_label1) ? _tmp2_label1 : (_tmp2_label1 = g_quark_from_static_string ("case")))) {
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               switch (0) {
+#line 409 "Lang.c"
+                       default:
+                       {
+#line 62 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               result = JSDOC_TOKEN_NAME_CASE;
+#line 62 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               return result;
+#line 416 "Lang.c"
+                       }
+               }
+       } else if (_tmp3_ == ((0 != _tmp2_label2) ? _tmp2_label2 : (_tmp2_label2 = g_quark_from_static_string ("catch")))) {
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               switch (0) {
+#line 422 "Lang.c"
+                       default:
+                       {
+#line 63 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               result = JSDOC_TOKEN_NAME_CATCH;
+#line 63 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               return result;
+#line 429 "Lang.c"
+                       }
+               }
+       } else if (_tmp3_ == ((0 != _tmp2_label3) ? _tmp2_label3 : (_tmp2_label3 = g_quark_from_static_string ("const")))) {
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               switch (0) {
+#line 435 "Lang.c"
+                       default:
+                       {
+#line 64 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               result = JSDOC_TOKEN_NAME_VAR;
+#line 64 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               return result;
+#line 442 "Lang.c"
+                       }
+               }
+       } else if (_tmp3_ == ((0 != _tmp2_label4) ? _tmp2_label4 : (_tmp2_label4 = g_quark_from_static_string ("continue")))) {
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               switch (0) {
+#line 448 "Lang.c"
+                       default:
+                       {
+#line 65 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               result = JSDOC_TOKEN_NAME_CONTINUE;
+#line 65 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               return result;
+#line 455 "Lang.c"
+                       }
+               }
+       } else if (_tmp3_ == ((0 != _tmp2_label5) ? _tmp2_label5 : (_tmp2_label5 = g_quark_from_static_string ("default")))) {
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               switch (0) {
+#line 461 "Lang.c"
+                       default:
+                       {
+#line 66 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               result = JSDOC_TOKEN_NAME_DEFAULT;
+#line 66 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               return result;
+#line 468 "Lang.c"
+                       }
+               }
+       } else if (_tmp3_ == ((0 != _tmp2_label6) ? _tmp2_label6 : (_tmp2_label6 = g_quark_from_static_string ("delete")))) {
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               switch (0) {
+#line 474 "Lang.c"
+                       default:
+                       {
+#line 67 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               result = JSDOC_TOKEN_NAME_DELETE;
+#line 67 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               return result;
+#line 481 "Lang.c"
+                       }
+               }
+       } else if (_tmp3_ == ((0 != _tmp2_label7) ? _tmp2_label7 : (_tmp2_label7 = g_quark_from_static_string ("do")))) {
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               switch (0) {
+#line 487 "Lang.c"
+                       default:
+                       {
+#line 68 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               result = JSDOC_TOKEN_NAME_DO;
+#line 68 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               return result;
+#line 494 "Lang.c"
+                       }
+               }
+       } else if (_tmp3_ == ((0 != _tmp2_label8) ? _tmp2_label8 : (_tmp2_label8 = g_quark_from_static_string ("else")))) {
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               switch (0) {
+#line 500 "Lang.c"
+                       default:
+                       {
+#line 69 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               result = JSDOC_TOKEN_NAME_ELSE;
+#line 69 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               return result;
+#line 507 "Lang.c"
+                       }
+               }
+       } else if (_tmp3_ == ((0 != _tmp2_label9) ? _tmp2_label9 : (_tmp2_label9 = g_quark_from_static_string ("eval")))) {
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               switch (0) {
+#line 513 "Lang.c"
+                       default:
+                       {
+#line 70 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               result = JSDOC_TOKEN_NAME_EVAL;
+#line 70 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               return result;
+#line 520 "Lang.c"
+                       }
+               }
+       } else if (_tmp3_ == ((0 != _tmp2_label10) ? _tmp2_label10 : (_tmp2_label10 = g_quark_from_static_string ("false")))) {
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               switch (0) {
+#line 526 "Lang.c"
+                       default:
+                       {
+#line 71 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               result = JSDOC_TOKEN_NAME_FALSE;
+#line 71 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               return result;
+#line 533 "Lang.c"
+                       }
+               }
+       } else if (_tmp3_ == ((0 != _tmp2_label11) ? _tmp2_label11 : (_tmp2_label11 = g_quark_from_static_string ("finally")))) {
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               switch (0) {
+#line 539 "Lang.c"
+                       default:
+                       {
+#line 72 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               result = JSDOC_TOKEN_NAME_FINALLY;
+#line 72 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               return result;
+#line 546 "Lang.c"
+                       }
+               }
+       } else if (_tmp3_ == ((0 != _tmp2_label12) ? _tmp2_label12 : (_tmp2_label12 = g_quark_from_static_string ("for")))) {
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               switch (0) {
+#line 552 "Lang.c"
+                       default:
+                       {
+#line 73 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               result = JSDOC_TOKEN_NAME_FOR;
+#line 73 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               return result;
+#line 559 "Lang.c"
+                       }
+               }
+       } else if (_tmp3_ == ((0 != _tmp2_label13) ? _tmp2_label13 : (_tmp2_label13 = g_quark_from_static_string ("function")))) {
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               switch (0) {
+#line 565 "Lang.c"
+                       default:
+                       {
+#line 74 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               result = JSDOC_TOKEN_NAME_FUNCTION;
+#line 74 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               return result;
+#line 572 "Lang.c"
+                       }
+               }
+       } else if (_tmp3_ == ((0 != _tmp2_label14) ? _tmp2_label14 : (_tmp2_label14 = g_quark_from_static_string ("if")))) {
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               switch (0) {
+#line 578 "Lang.c"
+                       default:
+                       {
+#line 75 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               result = JSDOC_TOKEN_NAME_IF;
+#line 75 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               return result;
+#line 585 "Lang.c"
+                       }
+               }
+       } else if (_tmp3_ == ((0 != _tmp2_label15) ? _tmp2_label15 : (_tmp2_label15 = g_quark_from_static_string ("in")))) {
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               switch (0) {
+#line 591 "Lang.c"
+                       default:
+                       {
+#line 76 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               result = JSDOC_TOKEN_NAME_IN;
+#line 76 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               return result;
+#line 598 "Lang.c"
+                       }
+               }
+       } else if (_tmp3_ == ((0 != _tmp2_label16) ? _tmp2_label16 : (_tmp2_label16 = g_quark_from_static_string ("instanceof")))) {
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               switch (0) {
+#line 604 "Lang.c"
+                       default:
+                       {
+#line 77 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               result = JSDOC_TOKEN_NAME_INSTANCEOF;
+#line 77 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               return result;
+#line 611 "Lang.c"
+                       }
+               }
+       } else if (_tmp3_ == ((0 != _tmp2_label17) ? _tmp2_label17 : (_tmp2_label17 = g_quark_from_static_string ("new")))) {
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               switch (0) {
+#line 617 "Lang.c"
+                       default:
+                       {
+#line 78 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               result = JSDOC_TOKEN_NAME_NEW;
+#line 78 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               return result;
+#line 624 "Lang.c"
+                       }
+               }
+       } else if (_tmp3_ == ((0 != _tmp2_label18) ? _tmp2_label18 : (_tmp2_label18 = g_quark_from_static_string ("null")))) {
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               switch (0) {
+#line 630 "Lang.c"
+                       default:
+                       {
+#line 79 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               result = JSDOC_TOKEN_NAME_NULL;
+#line 79 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               return result;
+#line 637 "Lang.c"
+                       }
+               }
+       } else if (_tmp3_ == ((0 != _tmp2_label19) ? _tmp2_label19 : (_tmp2_label19 = g_quark_from_static_string ("return")))) {
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               switch (0) {
+#line 643 "Lang.c"
+                       default:
+                       {
+#line 80 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               result = JSDOC_TOKEN_NAME_RETURN;
+#line 80 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               return result;
+#line 650 "Lang.c"
+                       }
+               }
+       } else if (_tmp3_ == ((0 != _tmp2_label20) ? _tmp2_label20 : (_tmp2_label20 = g_quark_from_static_string ("switch")))) {
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               switch (0) {
+#line 656 "Lang.c"
+                       default:
+                       {
+#line 81 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               result = JSDOC_TOKEN_NAME_SWITCH;
+#line 81 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               return result;
+#line 663 "Lang.c"
+                       }
+               }
+       } else if (_tmp3_ == ((0 != _tmp2_label21) ? _tmp2_label21 : (_tmp2_label21 = g_quark_from_static_string ("this")))) {
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               switch (0) {
+#line 669 "Lang.c"
+                       default:
+                       {
+#line 82 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               result = JSDOC_TOKEN_NAME_THIS;
+#line 82 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               return result;
+#line 676 "Lang.c"
+                       }
+               }
+       } else if (_tmp3_ == ((0 != _tmp2_label22) ? _tmp2_label22 : (_tmp2_label22 = g_quark_from_static_string ("throw")))) {
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               switch (0) {
+#line 682 "Lang.c"
+                       default:
+                       {
+#line 83 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               result = JSDOC_TOKEN_NAME_THROW;
+#line 83 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               return result;
+#line 689 "Lang.c"
+                       }
+               }
+       } else if (_tmp3_ == ((0 != _tmp2_label23) ? _tmp2_label23 : (_tmp2_label23 = g_quark_from_static_string ("true")))) {
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               switch (0) {
+#line 695 "Lang.c"
+                       default:
+                       {
+#line 84 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               result = JSDOC_TOKEN_NAME_TRUE;
+#line 84 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               return result;
+#line 702 "Lang.c"
+                       }
+               }
+       } else if (_tmp3_ == ((0 != _tmp2_label24) ? _tmp2_label24 : (_tmp2_label24 = g_quark_from_static_string ("try")))) {
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               switch (0) {
+#line 708 "Lang.c"
+                       default:
+                       {
+#line 85 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               result = JSDOC_TOKEN_NAME_TRY;
+#line 85 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               return result;
+#line 715 "Lang.c"
+                       }
+               }
+       } else if (_tmp3_ == ((0 != _tmp2_label25) ? _tmp2_label25 : (_tmp2_label25 = g_quark_from_static_string ("typeof")))) {
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               switch (0) {
+#line 721 "Lang.c"
+                       default:
+                       {
+#line 86 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               result = JSDOC_TOKEN_NAME_TYPEOF;
+#line 86 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               return result;
+#line 728 "Lang.c"
+                       }
+               }
+       } else if (_tmp3_ == ((0 != _tmp2_label26) ? _tmp2_label26 : (_tmp2_label26 = g_quark_from_static_string ("void")))) {
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               switch (0) {
+#line 734 "Lang.c"
+                       default:
+                       {
+#line 87 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               result = JSDOC_TOKEN_NAME_VOID;
+#line 87 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               return result;
+#line 741 "Lang.c"
+                       }
+               }
+       } else if (_tmp3_ == ((0 != _tmp2_label27) ? _tmp2_label27 : (_tmp2_label27 = g_quark_from_static_string ("while")))) {
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               switch (0) {
+#line 747 "Lang.c"
+                       default:
+                       {
+#line 88 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               result = JSDOC_TOKEN_NAME_WHILE;
+#line 88 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               return result;
+#line 754 "Lang.c"
+                       }
+               }
+       } else if (_tmp3_ == ((0 != _tmp2_label28) ? _tmp2_label28 : (_tmp2_label28 = g_quark_from_static_string ("with")))) {
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               switch (0) {
+#line 760 "Lang.c"
+                       default:
+                       {
+#line 89 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               result = JSDOC_TOKEN_NAME_WITH;
+#line 89 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               return result;
+#line 767 "Lang.c"
+                       }
+               }
+       } else if (_tmp3_ == ((0 != _tmp2_label29) ? _tmp2_label29 : (_tmp2_label29 = g_quark_from_static_string ("var")))) {
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               switch (0) {
+#line 773 "Lang.c"
+                       default:
+                       {
+#line 90 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               result = JSDOC_TOKEN_NAME_VAR;
+#line 90 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               return result;
+#line 780 "Lang.c"
+                       }
+               }
+       } else {
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               switch (0) {
+#line 786 "Lang.c"
+                       default:
+                       {
+                               const gchar* _tmp4_;
+                               GError* _tmp5_;
+#line 94 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               _tmp4_ = word;
+#line 94 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               _tmp5_ = g_error_new (JSDOC_LANG_ERROR, JSDOC_LANG_ERROR_ArgumentError, "invalid keyword : %s", _tmp4_);
+#line 94 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               _inner_error_ = _tmp5_;
+#line 94 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               if (_inner_error_->domain == JSDOC_LANG_ERROR) {
+#line 94 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                                       g_propagate_error (error, _inner_error_);
+#line 94 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                                       return 0;
+#line 803 "Lang.c"
+                               } else {
+#line 94 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                                       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);
+#line 94 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                                       g_clear_error (&_inner_error_);
+#line 94 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                                       return 0;
+#line 811 "Lang.c"
+                               }
+                       }
+               }
+       }
+}
+
+
+static JSDOCTokenName* _jsdoc_token_name_dup (JSDOCTokenName* self) {
+       JSDOCTokenName* dup;
+#line 104 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       dup = g_new0 (JSDOCTokenName, 1);
+#line 104 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       memcpy (dup, self, sizeof (JSDOCTokenName));
+#line 104 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       return dup;
+#line 827 "Lang.c"
+}
+
+
+static gpointer __jsdoc_token_name_dup0 (gpointer self) {
+#line 104 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       return self ? _jsdoc_token_name_dup (self) : NULL;
+#line 834 "Lang.c"
+}
+
+
+JSDOCTokenName* jsdoc_langclass_matching (JSDOCLang_Class* self, JSDOCTokenName name, GError** error) {
+       JSDOCTokenName* result = NULL;
+       JSDOCTokenName _tmp0_;
+       GError * _inner_error_ = NULL;
+#line 99 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 103 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp0_ = name;
+#line 103 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       switch (_tmp0_) {
+#line 103 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               case JSDOC_TOKEN_NAME_LEFT_PAREN:
+#line 850 "Lang.c"
+               {
+                       JSDOCTokenName _tmp1_;
+                       JSDOCTokenName* _tmp2_;
+#line 104 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       _tmp1_ = JSDOC_TOKEN_NAME_RIGHT_PAREN;
+#line 104 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       _tmp2_ = __jsdoc_token_name_dup0 (&_tmp1_);
+#line 104 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       result = _tmp2_;
+#line 104 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       return result;
+#line 862 "Lang.c"
+               }
+#line 103 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               case JSDOC_TOKEN_NAME_RIGHT_PAREN:
+#line 866 "Lang.c"
+               {
+                       JSDOCTokenName _tmp3_;
+                       JSDOCTokenName* _tmp4_;
+#line 105 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       _tmp3_ = JSDOC_TOKEN_NAME_LEFT_PAREN;
+#line 105 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       _tmp4_ = __jsdoc_token_name_dup0 (&_tmp3_);
+#line 105 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       result = _tmp4_;
+#line 105 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       return result;
+#line 878 "Lang.c"
+               }
+#line 103 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               case JSDOC_TOKEN_NAME_LEFT_CURLY:
+#line 882 "Lang.c"
+               {
+                       JSDOCTokenName _tmp5_;
+                       JSDOCTokenName* _tmp6_;
+#line 106 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       _tmp5_ = JSDOC_TOKEN_NAME_RIGHT_CURLY;
+#line 106 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       _tmp6_ = __jsdoc_token_name_dup0 (&_tmp5_);
+#line 106 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       result = _tmp6_;
+#line 106 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       return result;
+#line 894 "Lang.c"
+               }
+#line 103 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               case JSDOC_TOKEN_NAME_RIGHT_CURLY:
+#line 898 "Lang.c"
+               {
+                       JSDOCTokenName _tmp7_;
+                       JSDOCTokenName* _tmp8_;
+#line 107 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       _tmp7_ = JSDOC_TOKEN_NAME_LEFT_CURLY;
+#line 107 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       _tmp8_ = __jsdoc_token_name_dup0 (&_tmp7_);
+#line 107 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       result = _tmp8_;
+#line 107 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       return result;
+#line 910 "Lang.c"
+               }
+#line 103 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               case JSDOC_TOKEN_NAME_LEFT_BRACE:
+#line 914 "Lang.c"
+               {
+                       JSDOCTokenName _tmp9_;
+                       JSDOCTokenName* _tmp10_;
+#line 108 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       _tmp9_ = JSDOC_TOKEN_NAME_RIGHT_BRACE;
+#line 108 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       _tmp10_ = __jsdoc_token_name_dup0 (&_tmp9_);
+#line 108 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       result = _tmp10_;
+#line 108 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       return result;
+#line 926 "Lang.c"
+               }
+#line 103 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               case JSDOC_TOKEN_NAME_RIGHT_BRACE:
+#line 930 "Lang.c"
+               {
+                       JSDOCTokenName _tmp11_;
+                       JSDOCTokenName* _tmp12_;
+#line 109 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       _tmp11_ = JSDOC_TOKEN_NAME_LEFT_BRACE;
+#line 109 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       _tmp12_ = __jsdoc_token_name_dup0 (&_tmp11_);
+#line 109 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       result = _tmp12_;
+#line 109 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       return result;
+#line 942 "Lang.c"
+               }
+               default:
+               {
+                       JSDOCTokenName _tmp13_;
+                       GEnumValue* _tmp14_;
+                       GError* _tmp15_;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       _tmp13_ = name;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       _tmp14_ = g_enum_get_value (g_type_class_ref (JSDOC_TYPE_TOKEN_NAME), _tmp13_);
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       _tmp15_ = g_error_new (JSDOC_LANG_ERROR, JSDOC_LANG_ERROR_ArgumentError, "invalid matching character : %s", (_tmp14_ != NULL) ? _tmp14_->value_name : NULL);
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       _inner_error_ = _tmp15_;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       if (_inner_error_->domain == JSDOC_LANG_ERROR) {
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               g_propagate_error (error, _inner_error_);
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               return NULL;
+#line 963 "Lang.c"
+                       } else {
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               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);
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               g_clear_error (&_inner_error_);
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               return NULL;
+#line 971 "Lang.c"
+                       }
+#line 113 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       result = NULL;
+#line 113 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       return result;
+#line 977 "Lang.c"
+               }
+       }
+}
+
+
+gboolean jsdoc_langclass_isKeyword (JSDOCLang_Class* self, const gchar* word) {
+       gboolean result = FALSE;
+       gboolean _tmp3_ = FALSE;
+       GError * _inner_error_ = NULL;
+#line 119 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       g_return_val_if_fail (self != NULL, FALSE);
+#line 119 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       g_return_val_if_fail (word != NULL, FALSE);
+#line 991 "Lang.c"
+       {
+               JSDOCTokenName x = 0;
+               const gchar* _tmp0_;
+               JSDOCTokenName _tmp1_;
+#line 121 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               _tmp0_ = word;
+#line 121 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               _tmp1_ = jsdoc_langclass_keyword (self, _tmp0_, &_inner_error_);
+#line 121 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               x = _tmp1_;
+#line 121 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1004 "Lang.c"
+                       gboolean _tmp2_ = FALSE;
+#line 121 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       if (_inner_error_->domain == JSDOC_LANG_ERROR) {
+#line 1008 "Lang.c"
+                               goto __catch0_jsdoc_lang_error;
+                       }
+#line 121 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       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);
+#line 121 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       g_clear_error (&_inner_error_);
+#line 121 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       return _tmp2_;
+#line 1017 "Lang.c"
+               }
+#line 122 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               result = TRUE;
+#line 122 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               return result;
+#line 1023 "Lang.c"
+       }
+       goto __finally0;
+       __catch0_jsdoc_lang_error:
+       {
+               GError* e = NULL;
+#line 120 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               e = _inner_error_;
+#line 120 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               _inner_error_ = NULL;
+#line 124 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               result = FALSE;
+#line 124 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               _g_error_free0 (e);
+#line 124 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               return result;
+#line 1039 "Lang.c"
+       }
+       __finally0:
+#line 120 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       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);
+#line 120 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       g_clear_error (&_inner_error_);
+#line 120 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       return _tmp3_;
+#line 1048 "Lang.c"
+}
+
+
+JSDOCTokenName jsdoc_langclass_puncFirstString (JSDOCLang_Class* self, gchar ch) {
+       JSDOCTokenName result = 0;
+       gchar _tmp0_;
+#line 141 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       g_return_val_if_fail (self != NULL, 0);
+#line 144 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp0_ = ch;
+#line 144 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       switch (_tmp0_) {
+#line 144 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               case ';':
+#line 1063 "Lang.c"
+               {
+#line 145 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       result = JSDOC_TOKEN_NAME_SEMICOLON;
+#line 145 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       return result;
+#line 1069 "Lang.c"
+               }
+#line 144 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               case ',':
+#line 1073 "Lang.c"
+               {
+#line 146 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       result = JSDOC_TOKEN_NAME_COMMA;
+#line 146 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       return result;
+#line 1079 "Lang.c"
+               }
+#line 144 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               case '?':
+#line 1083 "Lang.c"
+               {
+#line 147 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       result = JSDOC_TOKEN_NAME_HOOK;
+#line 147 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       return result;
+#line 1089 "Lang.c"
+               }
+#line 144 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               case ':':
+#line 1093 "Lang.c"
+               {
+#line 148 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       result = JSDOC_TOKEN_NAME_COLON;
+#line 148 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       return result;
+#line 1099 "Lang.c"
+               }
+#line 144 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               case '|':
+#line 1103 "Lang.c"
+               {
+#line 149 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       result = JSDOC_TOKEN_NAME_BITWISE_OR;
+#line 149 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       return result;
+#line 1109 "Lang.c"
+               }
+#line 144 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               case '^':
+#line 1113 "Lang.c"
+               {
+#line 150 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       result = JSDOC_TOKEN_NAME_BITWISE_XOR;
+#line 150 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       return result;
+#line 1119 "Lang.c"
+               }
+#line 144 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               case '&':
+#line 1123 "Lang.c"
+               {
+#line 151 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       result = JSDOC_TOKEN_NAME_BITWISE_AND;
+#line 151 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       return result;
+#line 1129 "Lang.c"
+               }
+#line 144 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               case '=':
+#line 1133 "Lang.c"
+               {
+#line 152 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       result = JSDOC_TOKEN_NAME_ASSIGN;
+#line 152 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       return result;
+#line 1139 "Lang.c"
+               }
+#line 144 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               case '<':
+#line 1143 "Lang.c"
+               {
+#line 153 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       result = JSDOC_TOKEN_NAME_LT;
+#line 153 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       return result;
+#line 1149 "Lang.c"
+               }
+#line 144 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               case '>':
+#line 1153 "Lang.c"
+               {
+#line 154 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       result = JSDOC_TOKEN_NAME_GT;
+#line 154 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       return result;
+#line 1159 "Lang.c"
+               }
+#line 144 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               case '+':
+#line 1163 "Lang.c"
+               {
+#line 155 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       result = JSDOC_TOKEN_NAME_PLUS;
+#line 155 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       return result;
+#line 1169 "Lang.c"
+               }
+#line 144 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               case '-':
+#line 1173 "Lang.c"
+               {
+#line 156 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       result = JSDOC_TOKEN_NAME_MINUS;
+#line 156 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       return result;
+#line 1179 "Lang.c"
+               }
+#line 144 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               case '*':
+#line 1183 "Lang.c"
+               {
+#line 157 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       result = JSDOC_TOKEN_NAME_MUL;
+#line 157 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       return result;
+#line 1189 "Lang.c"
+               }
+#line 144 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               case '/':
+#line 1193 "Lang.c"
+               {
+#line 158 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       result = JSDOC_TOKEN_NAME_DIV;
+#line 158 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       return result;
+#line 1199 "Lang.c"
+               }
+#line 144 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               case '%':
+#line 1203 "Lang.c"
+               {
+#line 159 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       result = JSDOC_TOKEN_NAME_MOD;
+#line 159 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       return result;
+#line 1209 "Lang.c"
+               }
+#line 144 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               case '!':
+#line 1213 "Lang.c"
+               {
+#line 160 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       result = JSDOC_TOKEN_NAME_NOT;
+#line 160 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       return result;
+#line 1219 "Lang.c"
+               }
+#line 144 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               case '~':
+#line 1223 "Lang.c"
+               {
+#line 161 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       result = JSDOC_TOKEN_NAME_BITWISE_NOT;
+#line 161 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       return result;
+#line 1229 "Lang.c"
+               }
+#line 144 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               case '0':
+#line 1233 "Lang.c"
+               {
+#line 162 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       result = JSDOC_TOKEN_NAME_DOT;
+#line 162 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       return result;
+#line 1239 "Lang.c"
+               }
+#line 144 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               case '[':
+#line 1243 "Lang.c"
+               {
+#line 163 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       result = JSDOC_TOKEN_NAME_LEFT_BRACE;
+#line 163 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       return result;
+#line 1249 "Lang.c"
+               }
+#line 144 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               case ']':
+#line 1253 "Lang.c"
+               {
+#line 164 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       result = JSDOC_TOKEN_NAME_RIGHT_BRACE;
+#line 164 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       return result;
+#line 1259 "Lang.c"
+               }
+#line 144 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               case '{':
+#line 1263 "Lang.c"
+               {
+#line 165 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       result = JSDOC_TOKEN_NAME_LEFT_CURLY;
+#line 165 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       return result;
+#line 1269 "Lang.c"
+               }
+#line 144 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               case '}':
+#line 1273 "Lang.c"
+               {
+#line 166 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       result = JSDOC_TOKEN_NAME_RIGHT_CURLY;
+#line 166 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       return result;
+#line 1279 "Lang.c"
+               }
+#line 144 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               case '(':
+#line 1283 "Lang.c"
+               {
+#line 167 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       result = JSDOC_TOKEN_NAME_LEFT_PAREN;
+#line 167 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       return result;
+#line 1289 "Lang.c"
+               }
+#line 144 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               case ')':
+#line 1293 "Lang.c"
+               {
+#line 168 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       result = JSDOC_TOKEN_NAME_RIGHT_PAREN;
+#line 168 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       return result;
+#line 1299 "Lang.c"
+               }
+               default:
+#line 144 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               break;
+#line 1304 "Lang.c"
+       }
+#line 170 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       result = JSDOC_TOKEN_NAME_UNKNOWN;
+#line 170 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       return result;
+#line 1310 "Lang.c"
+}
+
+
+JSDOCTokenName jsdoc_langclass_puncString (JSDOCLang_Class* self, const gchar* ch) {
+       JSDOCTokenName result = 0;
+       const gchar* _tmp0_;
+       const gchar* _tmp1_;
+       GQuark _tmp3_ = 0U;
+#line 175 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       static GQuark _tmp2_label0 = 0;
+#line 175 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       static GQuark _tmp2_label1 = 0;
+#line 175 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       static GQuark _tmp2_label2 = 0;
+#line 175 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       static GQuark _tmp2_label3 = 0;
+#line 175 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       static GQuark _tmp2_label4 = 0;
+#line 175 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       static GQuark _tmp2_label5 = 0;
+#line 175 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       static GQuark _tmp2_label6 = 0;
+#line 175 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       static GQuark _tmp2_label7 = 0;
+#line 175 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       static GQuark _tmp2_label8 = 0;
+#line 175 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       static GQuark _tmp2_label9 = 0;
+#line 175 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       static GQuark _tmp2_label10 = 0;
+#line 175 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       static GQuark _tmp2_label11 = 0;
+#line 175 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       static GQuark _tmp2_label12 = 0;
+#line 172 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       g_return_val_if_fail (self != NULL, 0);
+#line 172 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       g_return_val_if_fail (ch != NULL, 0);
+#line 175 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp0_ = ch;
+#line 175 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp1_ = _tmp0_;
+#line 175 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp3_ = (NULL == _tmp1_) ? 0 : g_quark_from_string (_tmp1_);
+#line 175 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       if (_tmp3_ == ((0 != _tmp2_label0) ? _tmp2_label0 : (_tmp2_label0 = g_quark_from_static_string ("||")))) {
+#line 175 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               switch (0) {
+#line 1359 "Lang.c"
+                       default:
+                       {
+#line 177 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               result = JSDOC_TOKEN_NAME_OR;
+#line 177 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               return result;
+#line 1366 "Lang.c"
+                       }
+               }
+       } else if (_tmp3_ == ((0 != _tmp2_label1) ? _tmp2_label1 : (_tmp2_label1 = g_quark_from_static_string ("&&")))) {
+#line 175 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               switch (0) {
+#line 1372 "Lang.c"
+                       default:
+                       {
+#line 178 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               result = JSDOC_TOKEN_NAME_AND;
+#line 178 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               return result;
+#line 1379 "Lang.c"
+                       }
+               }
+       } else if (_tmp3_ == ((0 != _tmp2_label2) ? _tmp2_label2 : (_tmp2_label2 = g_quark_from_static_string ("==")))) {
+#line 175 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               switch (0) {
+#line 1385 "Lang.c"
+                       default:
+                       {
+#line 179 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               result = JSDOC_TOKEN_NAME_EQ;
+#line 179 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               return result;
+#line 1392 "Lang.c"
+                       }
+               }
+       } else if (_tmp3_ == ((0 != _tmp2_label3) ? _tmp2_label3 : (_tmp2_label3 = g_quark_from_static_string ("!=")))) {
+#line 175 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               switch (0) {
+#line 1398 "Lang.c"
+                       default:
+                       {
+#line 180 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               result = JSDOC_TOKEN_NAME_NE;
+#line 180 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               return result;
+#line 1405 "Lang.c"
+                       }
+               }
+       } else if (_tmp3_ == ((0 != _tmp2_label4) ? _tmp2_label4 : (_tmp2_label4 = g_quark_from_static_string ("<<")))) {
+#line 175 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               switch (0) {
+#line 1411 "Lang.c"
+                       default:
+                       {
+#line 181 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               result = JSDOC_TOKEN_NAME_LSH;
+#line 181 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               return result;
+#line 1418 "Lang.c"
+                       }
+               }
+       } else if (_tmp3_ == ((0 != _tmp2_label5) ? _tmp2_label5 : (_tmp2_label5 = g_quark_from_static_string ("<=")))) {
+#line 175 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               switch (0) {
+#line 1424 "Lang.c"
+                       default:
+                       {
+#line 182 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               result = JSDOC_TOKEN_NAME_LE;
+#line 182 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               return result;
+#line 1431 "Lang.c"
+                       }
+               }
+       } else if (_tmp3_ == ((0 != _tmp2_label6) ? _tmp2_label6 : (_tmp2_label6 = g_quark_from_static_string (">>")))) {
+#line 175 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               switch (0) {
+#line 1437 "Lang.c"
+                       default:
+                       {
+#line 183 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               result = JSDOC_TOKEN_NAME_RSH;
+#line 183 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               return result;
+#line 1444 "Lang.c"
+                       }
+               }
+       } else if (_tmp3_ == ((0 != _tmp2_label7) ? _tmp2_label7 : (_tmp2_label7 = g_quark_from_static_string (">=")))) {
+#line 175 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               switch (0) {
+#line 1450 "Lang.c"
+                       default:
+                       {
+#line 184 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               result = JSDOC_TOKEN_NAME_GE;
+#line 184 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               return result;
+#line 1457 "Lang.c"
+                       }
+               }
+       } else if (_tmp3_ == ((0 != _tmp2_label8) ? _tmp2_label8 : (_tmp2_label8 = g_quark_from_static_string ("++")))) {
+#line 175 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               switch (0) {
+#line 1463 "Lang.c"
+                       default:
+                       {
+#line 185 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               result = JSDOC_TOKEN_NAME_INCREMENT;
+#line 185 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               return result;
+#line 1470 "Lang.c"
+                       }
+               }
+       } else if (_tmp3_ == ((0 != _tmp2_label9) ? _tmp2_label9 : (_tmp2_label9 = g_quark_from_static_string ("--")))) {
+#line 175 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               switch (0) {
+#line 1476 "Lang.c"
+                       default:
+                       {
+#line 186 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               result = JSDOC_TOKEN_NAME_DECREMENT;
+#line 186 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               return result;
+#line 1483 "Lang.c"
+                       }
+               }
+       } else if (_tmp3_ == ((0 != _tmp2_label10) ? _tmp2_label10 : (_tmp2_label10 = g_quark_from_static_string ("===")))) {
+#line 175 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               switch (0) {
+#line 1489 "Lang.c"
+                       default:
+                       {
+#line 189 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               result = JSDOC_TOKEN_NAME_STRICT_EQ;
+#line 189 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               return result;
+#line 1496 "Lang.c"
+                       }
+               }
+       } else if (_tmp3_ == ((0 != _tmp2_label11) ? _tmp2_label11 : (_tmp2_label11 = g_quark_from_static_string ("!==")))) {
+#line 175 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               switch (0) {
+#line 1502 "Lang.c"
+                       default:
+                       {
+#line 190 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               result = JSDOC_TOKEN_NAME_STRICT_NE;
+#line 190 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               return result;
+#line 1509 "Lang.c"
+                       }
+               }
+       } else if (_tmp3_ == ((0 != _tmp2_label12) ? _tmp2_label12 : (_tmp2_label12 = g_quark_from_static_string (">>>")))) {
+#line 175 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               switch (0) {
+#line 1515 "Lang.c"
+                       default:
+                       {
+#line 191 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               result = JSDOC_TOKEN_NAME_URSH;
+#line 191 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               return result;
+#line 1522 "Lang.c"
+                       }
+               }
+       } else {
+#line 175 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               switch (0) {
+#line 1528 "Lang.c"
+                       default:
+                       {
+#line 195 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               result = JSDOC_TOKEN_NAME_UNKNOWN;
+#line 195 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               return result;
+#line 1535 "Lang.c"
+                       }
+               }
+       }
+}
+
+
+gboolean jsdoc_langclass_isNumber (JSDOCLang_Class* self, const gchar* str) {
+       gboolean result = FALSE;
+       const gchar* _tmp0_;
+       gboolean _tmp1_;
+#line 204 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       g_return_val_if_fail (self != NULL, FALSE);
+#line 204 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       g_return_val_if_fail (str != NULL, FALSE);
+#line 205 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp0_ = str;
+#line 205 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp1_ = g_regex_match_simple ("^(\\.[0-9]|[0-9]+\\.|[0-9])[0-9]*([eE][+-]?[0-9]+)?$", _tmp0_, 0, 0);
+#line 205 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       result = _tmp1_;
+#line 205 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       return result;
+#line 1558 "Lang.c"
+}
+
+
+gboolean jsdoc_langclass_isHexDec (JSDOCLang_Class* self, const gchar* str) {
+       gboolean result = FALSE;
+       const gchar* _tmp0_;
+       gboolean _tmp1_;
+#line 208 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       g_return_val_if_fail (self != NULL, FALSE);
+#line 208 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       g_return_val_if_fail (str != NULL, FALSE);
+#line 209 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp0_ = str;
+#line 209 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp1_ = g_regex_match_simple ("^0x[0-9A-Fa-f]+$", _tmp0_, 0, 0);
+#line 209 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       result = _tmp1_;
+#line 209 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       return result;
+#line 1578 "Lang.c"
+}
+
+
+gboolean jsdoc_langclass_isWordString (JSDOCLang_Class* self, const gchar* str) {
+       gboolean result = FALSE;
+       const gchar* _tmp0_;
+       gboolean _tmp1_;
+#line 212 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       g_return_val_if_fail (self != NULL, FALSE);
+#line 212 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       g_return_val_if_fail (str != NULL, FALSE);
+#line 213 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp0_ = str;
+#line 213 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp1_ = g_regex_match_simple ("^[a-zA-Z0-9$_.]+$", _tmp0_, 0, 0);
+#line 213 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       result = _tmp1_;
+#line 213 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       return result;
+#line 1598 "Lang.c"
+}
+
+
+gboolean jsdoc_langclass_isWordChar (JSDOCLang_Class* self, gchar c) {
+       gboolean result = FALSE;
+       gboolean _tmp0_ = FALSE;
+       gboolean _tmp1_ = FALSE;
+       gboolean _tmp2_ = FALSE;
+       gboolean _tmp3_ = FALSE;
+       gboolean _tmp4_ = FALSE;
+       gboolean _tmp5_ = FALSE;
+       gchar _tmp6_;
+#line 215 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       g_return_val_if_fail (self != NULL, FALSE);
+#line 217 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp6_ = c;
+#line 217 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       if (_tmp6_ >= 'a') {
+#line 1617 "Lang.c"
+               gchar _tmp7_;
+#line 217 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               _tmp7_ = c;
+#line 217 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               _tmp5_ = _tmp7_ <= 'z';
+#line 1623 "Lang.c"
+       } else {
+#line 217 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               _tmp5_ = FALSE;
+#line 1627 "Lang.c"
+       }
+#line 217 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       if (_tmp5_) {
+#line 217 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               _tmp4_ = TRUE;
+#line 1633 "Lang.c"
+       } else {
+               gboolean _tmp8_ = FALSE;
+               gchar _tmp9_;
+#line 219 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               _tmp9_ = c;
+#line 219 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               if (_tmp9_ >= 'A') {
+#line 1641 "Lang.c"
+                       gchar _tmp10_;
+#line 219 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       _tmp10_ = c;
+#line 219 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       _tmp8_ = _tmp10_ <= 'Z';
+#line 1647 "Lang.c"
+               } else {
+#line 219 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       _tmp8_ = FALSE;
+#line 1651 "Lang.c"
+               }
+#line 219 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               _tmp4_ = _tmp8_;
+#line 1655 "Lang.c"
+       }
+#line 217 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       if (_tmp4_) {
+#line 217 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               _tmp3_ = TRUE;
+#line 1661 "Lang.c"
+       } else {
+               gboolean _tmp11_ = FALSE;
+               gchar _tmp12_;
+#line 221 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               _tmp12_ = c;
+#line 221 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               if (_tmp12_ >= '0') {
+#line 1669 "Lang.c"
+                       gchar _tmp13_;
+#line 221 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       _tmp13_ = c;
+#line 221 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       _tmp11_ = _tmp13_ <= '9';
+#line 1675 "Lang.c"
+               } else {
+#line 221 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       _tmp11_ = FALSE;
+#line 1679 "Lang.c"
+               }
+#line 221 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               _tmp3_ = _tmp11_;
+#line 1683 "Lang.c"
+       }
+#line 217 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       if (_tmp3_) {
+#line 217 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               _tmp2_ = TRUE;
+#line 1689 "Lang.c"
+       } else {
+               gchar _tmp14_;
+#line 223 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               _tmp14_ = c;
+#line 223 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               _tmp2_ = _tmp14_ == '$';
+#line 1696 "Lang.c"
+       }
+#line 217 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       if (_tmp2_) {
+#line 217 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               _tmp1_ = TRUE;
+#line 1702 "Lang.c"
+       } else {
+               gchar _tmp15_;
+#line 223 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               _tmp15_ = c;
+#line 223 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               _tmp1_ = _tmp15_ == '.';
+#line 1709 "Lang.c"
+       }
+#line 217 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       if (_tmp1_) {
+#line 217 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               _tmp0_ = TRUE;
+#line 1715 "Lang.c"
+       } else {
+               gchar _tmp16_;
+#line 223 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               _tmp16_ = c;
+#line 223 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               _tmp0_ = _tmp16_ == '_';
+#line 1722 "Lang.c"
+       }
+#line 216 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       result = _tmp0_;
+#line 216 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       return result;
+#line 1728 "Lang.c"
+}
+
+
+gboolean jsdoc_langclass_isSpace (JSDOCLang_Class* self, const gchar* str) {
+       gboolean result = FALSE;
+       GeeHashMap* _tmp0_;
+       const gchar* _tmp1_;
+       gpointer _tmp2_;
+       gchar* _tmp3_;
+       gboolean _tmp4_;
+#line 226 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       g_return_val_if_fail (self != NULL, FALSE);
+#line 226 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       g_return_val_if_fail (str != NULL, FALSE);
+#line 227 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp0_ = self->priv->whitespaceNames;
+#line 227 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp1_ = str;
+#line 227 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp2_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp0_, _tmp1_);
+#line 227 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp3_ = (gchar*) _tmp2_;
+#line 227 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp4_ = _tmp3_ != NULL;
+#line 227 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _g_free0 (_tmp3_);
+#line 227 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       result = _tmp4_;
+#line 227 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       return result;
+#line 1759 "Lang.c"
+}
+
+
+gboolean jsdoc_langclass_isSpaceC (JSDOCLang_Class* self, gchar str) {
+       gboolean result = FALSE;
+       gchar* s = NULL;
+       gchar _tmp0_;
+       gchar* _tmp1_;
+       GeeHashMap* _tmp2_;
+       gpointer _tmp3_;
+       gchar* _tmp4_;
+       gboolean _tmp5_;
+#line 229 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       g_return_val_if_fail (self != NULL, FALSE);
+#line 230 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp0_ = str;
+#line 230 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp1_ = g_strdup_printf ("%c", _tmp0_);
+#line 230 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       s = _tmp1_;
+#line 231 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp2_ = self->priv->whitespaceNames;
+#line 231 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp3_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp2_, s);
+#line 231 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp4_ = (gchar*) _tmp3_;
+#line 231 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp5_ = _tmp4_ != NULL;
+#line 231 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _g_free0 (_tmp4_);
+#line 231 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       result = _tmp5_;
+#line 231 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _g_free0 (s);
+#line 231 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       return result;
+#line 1796 "Lang.c"
+}
+
+
+gboolean jsdoc_langclass_isNewline (JSDOCLang_Class* self, const gchar* str) {
+       gboolean result = FALSE;
+       GeeHashMap* _tmp0_;
+       const gchar* _tmp1_;
+       gpointer _tmp2_;
+       gchar* _tmp3_;
+       gboolean _tmp4_;
+#line 234 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       g_return_val_if_fail (self != NULL, FALSE);
+#line 234 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       g_return_val_if_fail (str != NULL, FALSE);
+#line 235 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp0_ = self->priv->newlineNames;
+#line 235 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp1_ = str;
+#line 235 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp2_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp0_, _tmp1_);
+#line 235 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp3_ = (gchar*) _tmp2_;
+#line 235 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp4_ = _tmp3_ != NULL;
+#line 235 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _g_free0 (_tmp3_);
+#line 235 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       result = _tmp4_;
+#line 235 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       return result;
+#line 1827 "Lang.c"
+}
+
+
+gboolean jsdoc_langclass_isNewlineC (JSDOCLang_Class* self, gchar str) {
+       gboolean result = FALSE;
+       gchar* s = NULL;
+       gchar _tmp0_;
+       gchar* _tmp1_;
+       GeeHashMap* _tmp2_;
+       gpointer _tmp3_;
+       gchar* _tmp4_;
+       gboolean _tmp5_;
+#line 237 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       g_return_val_if_fail (self != NULL, FALSE);
+#line 238 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp0_ = str;
+#line 238 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp1_ = g_strdup_printf ("%c", _tmp0_);
+#line 238 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       s = _tmp1_;
+#line 239 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp2_ = self->priv->newlineNames;
+#line 239 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp3_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp2_, s);
+#line 239 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp4_ = (gchar*) _tmp3_;
+#line 239 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp5_ = _tmp4_ != NULL;
+#line 239 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _g_free0 (_tmp4_);
+#line 239 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       result = _tmp5_;
+#line 239 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _g_free0 (s);
+#line 239 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       return result;
+#line 1864 "Lang.c"
+}
+
+
+gboolean jsdoc_langclass_isBoolean (JSDOCLang_Class* self, const gchar* str) {
+       gboolean result = FALSE;
+       gchar* ss = NULL;
+       const gchar* _tmp0_;
+       gchar* _tmp1_;
+       gboolean _tmp2_ = FALSE;
+       const gchar* _tmp3_;
+#line 241 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       g_return_val_if_fail (self != NULL, FALSE);
+#line 241 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       g_return_val_if_fail (str != NULL, FALSE);
+#line 242 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp0_ = str;
+#line 242 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp1_ = g_utf8_strdown (_tmp0_, (gssize) -1);
+#line 242 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       ss = _tmp1_;
+#line 243 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp3_ = ss;
+#line 243 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       if (g_strcmp0 (_tmp3_, "false") == 0) {
+#line 243 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               _tmp2_ = TRUE;
+#line 1891 "Lang.c"
+       } else {
+               const gchar* _tmp4_;
+#line 243 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               _tmp4_ = ss;
+#line 243 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               _tmp2_ = g_strcmp0 (_tmp4_, "true") == 0;
+#line 1898 "Lang.c"
+       }
+#line 243 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       result = _tmp2_;
+#line 243 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _g_free0 (ss);
+#line 243 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       return result;
+#line 1906 "Lang.c"
+}
+
+
+static void jsdoc_langclass_init (JSDOCLang_Class* self) {
+       GeeHashMap* _tmp0_;
+       GeeHashMap* _tmp1_;
+       gchar** co = NULL;
+       gchar* _tmp2_;
+       gchar* _tmp3_;
+       gchar* _tmp4_;
+       gchar* _tmp5_;
+       gchar* _tmp6_;
+       gchar* _tmp7_;
+       gchar* _tmp8_;
+       gchar* _tmp9_;
+       gchar* _tmp10_;
+       gchar* _tmp11_;
+       gchar* _tmp12_;
+       gchar** _tmp13_;
+       gint co_length1;
+       gint _co_size_;
+       gchar** ws = NULL;
+       gchar* _tmp22_;
+       gchar* _tmp23_;
+       gchar* _tmp24_;
+       gchar** _tmp25_;
+       gint ws_length1;
+       gint _ws_size_;
+       gchar* _tmp40_;
+       gchar* _tmp41_;
+       gchar** _tmp42_;
+#line 248 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       g_return_if_fail (self != NULL);
+#line 250 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       __g_list_free__g_free0_0 (self->priv->coreObjects);
+#line 250 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       self->priv->coreObjects = NULL;
+#line 252 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp0_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 252 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _g_object_unref0 (self->priv->whitespaceNames);
+#line 252 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       self->priv->whitespaceNames = _tmp0_;
+#line 253 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp1_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 253 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _g_object_unref0 (self->priv->newlineNames);
+#line 253 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       self->priv->newlineNames = _tmp1_;
+#line 260 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp2_ = g_strdup ("_global_");
+#line 260 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp3_ = g_strdup ("Array");
+#line 260 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp4_ = g_strdup ("Boolean");
+#line 260 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp5_ = g_strdup ("Date");
+#line 260 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp6_ = g_strdup ("Error");
+#line 260 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp7_ = g_strdup ("Function");
+#line 260 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp8_ = g_strdup ("Math");
+#line 260 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp9_ = g_strdup ("Number");
+#line 260 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp10_ = g_strdup ("Object");
+#line 260 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp11_ = g_strdup ("RegExp");
+#line 260 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp12_ = g_strdup ("String");
+#line 260 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp13_ = g_new0 (gchar*, 11 + 1);
+#line 260 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp13_[0] = _tmp2_;
+#line 260 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp13_[1] = _tmp3_;
+#line 260 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp13_[2] = _tmp4_;
+#line 260 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp13_[3] = _tmp5_;
+#line 260 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp13_[4] = _tmp6_;
+#line 260 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp13_[5] = _tmp7_;
+#line 260 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp13_[6] = _tmp8_;
+#line 260 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp13_[7] = _tmp9_;
+#line 260 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp13_[8] = _tmp10_;
+#line 260 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp13_[9] = _tmp11_;
+#line 260 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp13_[10] = _tmp12_;
+#line 260 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       co = _tmp13_;
+#line 260 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       co_length1 = 11;
+#line 260 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _co_size_ = co_length1;
+#line 2008 "Lang.c"
+       {
+               gint i = 0;
+#line 262 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               i = 0;
+#line 2013 "Lang.c"
+               {
+                       gboolean _tmp14_ = FALSE;
+#line 262 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       _tmp14_ = TRUE;
+#line 262 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       while (TRUE) {
+#line 2020 "Lang.c"
+                               gint _tmp16_;
+                               gchar** _tmp17_;
+                               gint _tmp17__length1;
+                               gchar** _tmp18_;
+                               gint _tmp18__length1;
+                               gint _tmp19_;
+                               const gchar* _tmp20_;
+                               gchar* _tmp21_;
+#line 262 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               if (!_tmp14_) {
+#line 2031 "Lang.c"
+                                       gint _tmp15_;
+#line 262 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                                       _tmp15_ = i;
+#line 262 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                                       i = _tmp15_ + 1;
+#line 2037 "Lang.c"
+                               }
+#line 262 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               _tmp14_ = FALSE;
+#line 262 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               _tmp16_ = i;
+#line 262 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               _tmp17_ = co;
+#line 262 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               _tmp17__length1 = co_length1;
+#line 262 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               if (!(_tmp16_ < _tmp17__length1)) {
+#line 262 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                                       break;
+#line 2051 "Lang.c"
+                               }
+#line 263 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               _tmp18_ = co;
+#line 263 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               _tmp18__length1 = co_length1;
+#line 263 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               _tmp19_ = i;
+#line 263 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               _tmp20_ = _tmp18_[_tmp19_];
+#line 263 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               _tmp21_ = g_strdup (_tmp20_);
+#line 263 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               self->priv->coreObjects = g_list_append (self->priv->coreObjects, _tmp21_);
+#line 2065 "Lang.c"
+                       }
+               }
+       }
+#line 266 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp22_ = g_strdup (" :SPACE");
+#line 266 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp23_ = g_strdup ("\f:FORMFEED");
+#line 266 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp24_ = g_strdup ("\t:TAB");
+#line 266 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp25_ = g_new0 (gchar*, 3 + 1);
+#line 266 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp25_[0] = _tmp22_;
+#line 266 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp25_[1] = _tmp23_;
+#line 266 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp25_[2] = _tmp24_;
+#line 266 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       ws = _tmp25_;
+#line 266 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       ws_length1 = 3;
+#line 266 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _ws_size_ = ws_length1;
+#line 2089 "Lang.c"
+       {
+               gint i = 0;
+#line 274 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               i = 0;
+#line 2094 "Lang.c"
+               {
+                       gboolean _tmp26_ = FALSE;
+#line 274 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       _tmp26_ = TRUE;
+#line 274 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       while (TRUE) {
+#line 2101 "Lang.c"
+                               gint _tmp28_;
+                               gchar** _tmp29_;
+                               gint _tmp29__length1;
+                               gchar** x = NULL;
+                               gchar** _tmp30_;
+                               gint _tmp30__length1;
+                               gint _tmp31_;
+                               const gchar* _tmp32_;
+                               gchar** _tmp33_;
+                               gchar** _tmp34_;
+                               gint x_length1;
+                               gint _x_size_;
+                               GeeHashMap* _tmp35_;
+                               gchar** _tmp36_;
+                               gint _tmp36__length1;
+                               const gchar* _tmp37_;
+                               gchar** _tmp38_;
+                               gint _tmp38__length1;
+                               const gchar* _tmp39_;
+#line 274 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               if (!_tmp26_) {
+#line 2123 "Lang.c"
+                                       gint _tmp27_;
+#line 274 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                                       _tmp27_ = i;
+#line 274 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                                       i = _tmp27_ + 1;
+#line 2129 "Lang.c"
+                               }
+#line 274 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               _tmp26_ = FALSE;
+#line 274 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               _tmp28_ = i;
+#line 274 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               _tmp29_ = ws;
+#line 274 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               _tmp29__length1 = ws_length1;
+#line 274 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               if (!(_tmp28_ < _tmp29__length1)) {
+#line 274 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                                       break;
+#line 2143 "Lang.c"
+                               }
+#line 275 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               _tmp30_ = ws;
+#line 275 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               _tmp30__length1 = ws_length1;
+#line 275 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               _tmp31_ = i;
+#line 275 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               _tmp32_ = _tmp30_[_tmp31_];
+#line 275 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               _tmp34_ = _tmp33_ = g_strsplit (_tmp32_, ":", 0);
+#line 275 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               x = _tmp34_;
+#line 275 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               x_length1 = _vala_array_length (_tmp33_);
+#line 275 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               _x_size_ = x_length1;
+#line 276 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               _tmp35_ = self->priv->whitespaceNames;
+#line 276 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               _tmp36_ = x;
+#line 276 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               _tmp36__length1 = x_length1;
+#line 276 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               _tmp37_ = _tmp36_[0];
+#line 276 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               _tmp38_ = x;
+#line 276 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               _tmp38__length1 = x_length1;
+#line 276 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               _tmp39_ = _tmp38_[1];
+#line 276 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               gee_abstract_map_set ((GeeAbstractMap*) _tmp35_, _tmp37_, _tmp39_);
+#line 274 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               x = (_vala_array_free (x, x_length1, (GDestroyNotify) g_free), NULL);
+#line 2179 "Lang.c"
+                       }
+               }
+       }
+#line 279 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp40_ = g_strdup ("\n:NEWLINE");
+#line 279 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp41_ = g_strdup ("\r:RETURN");
+#line 279 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp42_ = g_new0 (gchar*, 2 + 1);
+#line 279 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp42_[0] = _tmp40_;
+#line 279 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _tmp42_[1] = _tmp41_;
+#line 279 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       ws = (_vala_array_free (ws, ws_length1, (GDestroyNotify) g_free), NULL);
+#line 279 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       ws = _tmp42_;
+#line 279 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       ws_length1 = 2;
+#line 279 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _ws_size_ = ws_length1;
+#line 2201 "Lang.c"
+       {
+               gint i = 0;
+#line 287 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+               i = 0;
+#line 2206 "Lang.c"
+               {
+                       gboolean _tmp43_ = FALSE;
+#line 287 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       _tmp43_ = TRUE;
+#line 287 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                       while (TRUE) {
+#line 2213 "Lang.c"
+                               gint _tmp45_;
+                               gchar** _tmp46_;
+                               gint _tmp46__length1;
+                               gchar** x = NULL;
+                               gchar** _tmp47_;
+                               gint _tmp47__length1;
+                               gint _tmp48_;
+                               const gchar* _tmp49_;
+                               gchar** _tmp50_;
+                               gchar** _tmp51_;
+                               gint x_length1;
+                               gint _x_size_;
+                               GeeHashMap* _tmp52_;
+                               gchar** _tmp53_;
+                               gint _tmp53__length1;
+                               const gchar* _tmp54_;
+                               gchar** _tmp55_;
+                               gint _tmp55__length1;
+                               const gchar* _tmp56_;
+#line 287 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               if (!_tmp43_) {
+#line 2235 "Lang.c"
+                                       gint _tmp44_;
+#line 287 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                                       _tmp44_ = i;
+#line 287 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                                       i = _tmp44_ + 1;
+#line 2241 "Lang.c"
+                               }
+#line 287 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               _tmp43_ = FALSE;
+#line 287 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               _tmp45_ = i;
+#line 287 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               _tmp46_ = ws;
+#line 287 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               _tmp46__length1 = ws_length1;
+#line 287 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               if (!(_tmp45_ < _tmp46__length1)) {
+#line 287 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                                       break;
+#line 2255 "Lang.c"
+                               }
+#line 288 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               _tmp47_ = ws;
+#line 288 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               _tmp47__length1 = ws_length1;
+#line 288 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               _tmp48_ = i;
+#line 288 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               _tmp49_ = _tmp47_[_tmp48_];
+#line 288 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               _tmp51_ = _tmp50_ = g_strsplit (_tmp49_, ":", 0);
+#line 288 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               x = _tmp51_;
+#line 288 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               x_length1 = _vala_array_length (_tmp50_);
+#line 288 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               _x_size_ = x_length1;
+#line 289 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               _tmp52_ = self->priv->newlineNames;
+#line 289 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               _tmp53_ = x;
+#line 289 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               _tmp53__length1 = x_length1;
+#line 289 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               _tmp54_ = _tmp53_[0];
+#line 289 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               _tmp55_ = x;
+#line 289 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               _tmp55__length1 = x_length1;
+#line 289 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               _tmp56_ = _tmp55_[1];
+#line 289 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               gee_abstract_map_set ((GeeAbstractMap*) _tmp52_, _tmp54_, _tmp56_);
+#line 287 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+                               x = (_vala_array_free (x, x_length1, (GDestroyNotify) g_free), NULL);
+#line 2291 "Lang.c"
+                       }
+               }
+       }
+#line 248 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       ws = (_vala_array_free (ws, ws_length1, (GDestroyNotify) g_free), NULL);
+#line 248 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       co = (_vala_array_free (co, co_length1, (GDestroyNotify) g_free), NULL);
+#line 2299 "Lang.c"
+}
+
+
+static void jsdoc_langclass_class_init (JSDOCLang_ClassClass * klass) {
+#line 25 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       jsdoc_langclass_parent_class = g_type_class_peek_parent (klass);
+#line 25 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       g_type_class_add_private (klass, sizeof (JSDOCLang_ClassPrivate));
+#line 25 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       G_OBJECT_CLASS (klass)->finalize = jsdoc_langclass_finalize;
+#line 2310 "Lang.c"
+}
+
+
+static void jsdoc_langclass_instance_init (JSDOCLang_Class * self) {
+#line 25 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       self->priv = JSDOC_LANGCLASS_GET_PRIVATE (self);
+#line 2317 "Lang.c"
+}
+
+
+static void jsdoc_langclass_finalize (GObject * obj) {
+       JSDOCLang_Class * self;
+#line 25 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       self = G_TYPE_CHECK_INSTANCE_CAST (obj, JSDOC_TYPE_LANGCLASS, JSDOCLang_Class);
+#line 27 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       __g_list_free__g_free0_0 (self->priv->coreObjects);
+#line 28 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _g_object_unref0 (self->priv->whitespaceNames);
+#line 29 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       _g_object_unref0 (self->priv->newlineNames);
+#line 25 "/home/alan/gitlive/roojspacker/src/jsdoc/Lang.vala"
+       G_OBJECT_CLASS (jsdoc_langclass_parent_class)->finalize (obj);
+#line 2333 "Lang.c"
+}
+
+
+GType jsdoc_langclass_get_type (void) {
+       static volatile gsize jsdoc_langclass_type_id__volatile = 0;
+       if (g_once_init_enter (&jsdoc_langclass_type_id__volatile)) {
+               static const GTypeInfo g_define_type_info = { sizeof (JSDOCLang_ClassClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) jsdoc_langclass_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (JSDOCLang_Class), 0, (GInstanceInitFunc) jsdoc_langclass_instance_init, NULL };
+               GType jsdoc_langclass_type_id;
+               jsdoc_langclass_type_id = g_type_register_static (G_TYPE_OBJECT, "JSDOCLang_Class", &g_define_type_info, 0);
+               g_once_init_leave (&jsdoc_langclass_type_id__volatile, jsdoc_langclass_type_id);
+       }
+       return jsdoc_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;
+}
+
+
+
diff --git a/jsdoc/Lang.vala b/jsdoc/Lang.vala
new file mode 100644 (file)
index 0000000..0161220
--- /dev/null
@@ -0,0 +1,308 @@
+//<script type="text/javscript">
+
+/**
+       @namespace
+*/
+// test
+// valac gitlive/app.Builder.js/JsRender/Lang.vala --pkg gee-1.0 -o /tmp/Lang ;/tmp/Lang
+
+/*
+void main () {
+    new JsRender.Lang_Class();
+    print(JsRender.Lang.keyword("delete") + "\n");
+}
+*/
+
+namespace JSDOC {
+
+       public errordomain LangError {
+            ArgumentError
+    }
+
+    public Lang_Class Lang = null;
+    
+    public class Lang_Class : Object {
+        
+        GLib.List<string> coreObjects;
+        Gee.HashMap<string,string> whitespaceNames;
+        Gee.HashMap<string,string> newlineNames;
+        
+       
+        
+        public Lang_Class ()
+        {
+            if (Lang != null) {
+                //print("lang not null\n");
+                return;
+            }
+            //print("init\n");
+            this.init();
+            //print("init Lang");
+            Lang = this;
+            Lang.ref();
+            
+        }
+        
+        
+        public bool isBuiltin(string  name) {
+            return (this.coreObjects.index(name) > -1);
+        }
+        
+        public string whitespace (string ch) {
+            return this.whitespaceNames.get(ch);
+        }
+        public string  newline (string ch) {
+            return this.newlineNames.get(ch);
+        }
+        public TokenName keyword(string word) throws LangError {
+        
+               switch(word) {
+                           case "break": return TokenName.BREAK;
+                               case "case": return TokenName.CASE;
+                               case "catch": return TokenName.CATCH;
+                               case "const": return TokenName.VAR;
+                               case "continue": return TokenName.CONTINUE;
+                               case "default": return TokenName.DEFAULT;
+                               case "delete": return TokenName.DELETE;
+                               case "do": return TokenName.DO;
+                               case "else": return TokenName.ELSE;
+                               case "eval": return TokenName.EVAL;
+                               case "false": return TokenName.FALSE;
+                               case "finally": return TokenName.FINALLY;
+                               case "for": return TokenName.FOR;
+                               case "function": return TokenName.FUNCTION;
+                               case "if": return TokenName.IF;
+                               case "in": return TokenName.IN;
+                               case "instanceof": return TokenName.INSTANCEOF;
+                               case "new": return TokenName.NEW;
+                               case "null": return TokenName.NULL;
+                               case "return": return TokenName.RETURN;
+                               case "switch": return TokenName.SWITCH;
+                               case "this": return TokenName.THIS;
+                               case "throw": return TokenName.THROW;
+                               case "true": return TokenName.TRUE;
+                               case "try": return TokenName.TRY;
+                               case "typeof": return TokenName.TYPEOF;
+                               case "void": return TokenName.VOID;
+                               case "while": return TokenName.WHILE;
+                               case "with": return TokenName.WITH;
+                               case "var": return TokenName.VAR;
+                       
+                               default: 
+                                       throw new LangError.ArgumentError("invalid keyword : %s", word);
+                       }
+          
+        }
+        
+        public TokenName? matching(TokenName name) throws LangError
+        {
+        
+            
+            switch(name) {
+                               case TokenName.LEFT_PAREN: return TokenName.RIGHT_PAREN;
+                               case TokenName.RIGHT_PAREN: return TokenName.LEFT_PAREN;
+                               case TokenName.LEFT_CURLY: return TokenName.RIGHT_CURLY;
+                               case TokenName.RIGHT_CURLY: return TokenName.LEFT_CURLY;
+                               case TokenName.LEFT_BRACE: return TokenName.RIGHT_BRACE;
+                               case TokenName.RIGHT_BRACE: return TokenName.LEFT_BRACE;
+               default:
+                      throw new LangError.ArgumentError("invalid matching character : %s", name.to_string());
+                               
+                               return null;
+           };
+        
+            //return this.matchingNames.get(name);
+        }
+        
+        public bool isKeyword(string word) {
+                       try {
+                               var x = this.keyword(word);
+                               return true;
+            } catch (LangError e) {
+                       return false;
+               }
+        }
+        /*
+               public TokenName punc (string ch) throws LangError 
+               {
+                       var x = this.puncNull(ch);
+                       if (x == null) {
+                               throw new LangError.ArgumentError("invalid punctuation character : %s",ch);
+                       }
+                       return x;
+               
+        }
+        public bool isPunc(string ch) {
+               return this.puncNull(ch) != null;
+        }
+        */
+        public TokenName puncFirstString (char ch)
+        {
+        
+               switch(ch) {
+                               case ';': return TokenName.SEMICOLON;
+                               case ',': return TokenName.COMMA;
+                               case '?': return TokenName.HOOK;
+                               case ':': return TokenName.COLON;
+                               case '|': return TokenName.BITWISE_OR;                          
+                               case '^': return TokenName.BITWISE_XOR;
+                               case '&': return TokenName.BITWISE_AND;
+                               case '=': return TokenName.ASSIGN;
+                               case '<': return TokenName.LT;
+                               case '>': return TokenName.GT;
+                               case '+': return TokenName.PLUS;
+                               case '-': return TokenName.MINUS;
+                               case '*': return TokenName.MUL;
+                               case '/': return TokenName.DIV;
+                               case '%': return TokenName.MOD;
+                               case '!': return TokenName.NOT;
+                               case '~': return TokenName.BITWISE_NOT;
+                               case '0': return TokenName.DOT;
+                               case '[': return TokenName.LEFT_BRACE;
+                               case ']': return TokenName.RIGHT_BRACE;
+                               case '{': return TokenName.LEFT_CURLY;
+                               case '}': return TokenName.RIGHT_CURLY;
+                               case '(': return TokenName.LEFT_PAREN;
+                               case ')': return TokenName.RIGHT_PAREN;
+                       }
+                       return TokenName.UNKNOWN;
+               }
+        public TokenName puncString (string ch)
+        {
+        
+               switch(ch) {
+                                                               
+                               case "||": return TokenName.OR;
+                               case "&&": return TokenName.AND;
+                               case "==": return TokenName.EQ;
+                               case "!=": return TokenName.NE;
+                               case "<<": return TokenName.LSH;
+                               case "<=": return TokenName.LE;
+                               case ">>": return TokenName.RSH;
+                               case ">=": return TokenName.GE;
+                               case "++": return TokenName.INCREMENT;
+                               case "--": return TokenName.DECREMENT;
+                               
+                               
+                               case "===": return TokenName.STRICT_EQ;
+                               case "!==": return TokenName.STRICT_NE;
+                               case ">>>": return TokenName.URSH;
+                               
+                               
+                       default:
+                               return TokenName.UNKNOWN;
+                                
+                               
+                       }        
+         
+        }
+         
+        
+        
+        public bool isNumber (string str) {
+            return Regex.match_simple("^(\\.[0-9]|[0-9]+\\.|[0-9])[0-9]*([eE][+-]?[0-9]+)?$",str);
+        }
+    
+        public bool  isHexDec (string str) {
+            return Regex.match_simple("^0x[0-9A-Fa-f]+$",str);
+        }
+    
+        public bool isWordString (string str) {
+            return Regex.match_simple("^[a-zA-Z0-9$_.]+$", str);
+        }
+        public bool isWordChar (char  c) {
+               return 
+                       (c >= 'a' && c <= 'z')
+                       ||
+                       (c >= 'A' && c <= 'Z')
+                       ||
+                       (c >= '0' && c <= '9')
+                       ||
+                       c == '$' || c == '.' || c == '_' ;
+        }
+    
+        public bool isSpace (string str) {
+            return this.whitespaceNames.get(str) != null;
+        }
+           public bool isSpaceC (char str) {
+                       var s = str.to_string();
+            return this.whitespaceNames.get(s) != null;
+        }
+        
+        public bool isNewline (string str) {
+            return this.newlineNames.get(str) != null;
+               }          
+        public bool isNewlineC (char str) {
+               var s =str.to_string();
+            return this.newlineNames.get(s) != null;
+        }
+           public bool isBoolean (string str) {
+                       var ss = str.down();
+            return ss == "false" || ss == "true";
+        }
+        
+         
+        
+        void init() {
+            
+            this.coreObjects = new GLib.List<string>();
+            
+            this.whitespaceNames = new Gee.HashMap<string,string>();
+            this.newlineNames = new Gee.HashMap<string,string>();
+            
+            
+            
+            
+            
+            string[] co = { "_global_", "Array", "Boolean", "Date", "Error", 
+                "Function", "Math", "Number", "Object", "RegExp", "String" };
+            for(var i =0; i< co.length;i++ ) {
+                this.coreObjects.append(co[i]);
+                //this.match_strings.add(co[i]);
+            }
+            string[] ws =  {
+                " :SPACE",
+                "\f:FORMFEED",
+                "\t:TAB" //,
+              //  "\u0009:UNICODE_TAB",
+              //  "\u000A:UNICODE_NBR",
+              //  "\u0008:VERTICAL_TAB"
+            };
+            for(var i =0; i< ws.length;i++ ) {
+                var x = ws[i].split(":");
+                this.whitespaceNames.set(x[0],x[1]);
+            }
+            
+            ws = {
+                "\n:NEWLINE",
+                "\r:RETURN" //,
+    //            "\u000A:UNICODE_LF",
+      //          "\u000D:UNICODE_CR",
+        //        "\u2029:UNICODE_PS",
+          //      "\u2028:UNICODE_LS"
+            };
+            for(var i =0; i< ws.length;i++ ) {
+                var x = ws[i].split(":");
+                this.newlineNames.set(x[0],x[1]);
+            }
+            
+
+                // << was keywords here...
+                //this.match_strings.add(x[0].substring(1));
+            
+        
+      
+  
+        
+           
+           
+           
+           
+        }
+        
+        
+    }
+}
\ No newline at end of file
diff --git a/jsdoc/Packer.c b/jsdoc/Packer.c
new file mode 100644 (file)
index 0000000..64aa635
--- /dev/null
@@ -0,0 +1,3870 @@
+/* Packer.c generated by valac 0.36.6, the Vala compiler
+ * generated from Packer.vala, do not modify */
+
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gee.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gio/gio.h>
+#include <json-glib/json-glib.h>
+#include <glib/gstdio.h>
+
+
+#define JSDOC_TYPE_PACKER (jsdoc_packer_get_type ())
+#define JSDOC_PACKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_PACKER, JSDOCPacker))
+#define JSDOC_PACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_PACKER, JSDOCPackerClass))
+#define JSDOC_IS_PACKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_PACKER))
+#define JSDOC_IS_PACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_PACKER))
+#define JSDOC_PACKER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_PACKER, JSDOCPackerClass))
+
+typedef struct _JSDOCPacker JSDOCPacker;
+typedef struct _JSDOCPackerClass JSDOCPackerClass;
+typedef struct _JSDOCPackerPrivate JSDOCPackerPrivate;
+
+#define JSDOC_TYPE_PACKER_RUN (jsdoc_packer_run_get_type ())
+#define JSDOC_PACKER_RUN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_PACKER_RUN, JSDOCPackerRun))
+#define JSDOC_PACKER_RUN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_PACKER_RUN, JSDOCPackerRunClass))
+#define JSDOC_IS_PACKER_RUN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_PACKER_RUN))
+#define JSDOC_IS_PACKER_RUN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_PACKER_RUN))
+#define JSDOC_PACKER_RUN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_PACKER_RUN, JSDOCPackerRunClass))
+
+typedef struct _JSDOCPackerRun JSDOCPackerRun;
+typedef struct _JSDOCPackerRunClass JSDOCPackerRunClass;
+
+#define JSDOC_PACKER_TYPE_RESULT_TYPE (jsdoc_packer_result_type_get_type ())
+#define _g_free0(var) (var = (g_free (var), NULL))
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _json_object_unref0(var) ((var == NULL) ? NULL : (var = (json_object_unref (var), NULL)))
+
+#define JSDOC_TYPE_LANGCLASS (jsdoc_langclass_get_type ())
+#define JSDOC_LANGCLASS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_LANGCLASS, JSDOCLang_Class))
+#define JSDOC_LANGCLASS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_LANGCLASS, JSDOCLang_ClassClass))
+#define JSDOC_IS_LANGCLASS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_LANGCLASS))
+#define JSDOC_IS_LANGCLASS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_LANGCLASS))
+#define JSDOC_LANGCLASS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_LANGCLASS, JSDOCLang_ClassClass))
+
+typedef struct _JSDOCLang_Class JSDOCLang_Class;
+typedef struct _JSDOCLang_ClassClass JSDOCLang_ClassClass;
+#define _json_array_unref0(var) ((var == NULL) ? NULL : (var = (json_array_unref (var), NULL)))
+typedef struct _Block1Data Block1Data;
+typedef struct _Block2Data Block2Data;
+typedef struct _Block3Data Block3Data;
+typedef struct _JSDOCPackerRunPrivate JSDOCPackerRunPrivate;
+#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 JSDOC_TYPE_TOKEN_READER (jsdoc_token_reader_get_type ())
+#define JSDOC_TOKEN_READER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_TOKEN_READER, JSDOCTokenReader))
+#define JSDOC_TOKEN_READER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_TOKEN_READER, JSDOCTokenReaderClass))
+#define JSDOC_IS_TOKEN_READER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_TOKEN_READER))
+#define JSDOC_IS_TOKEN_READER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_TOKEN_READER))
+#define JSDOC_TOKEN_READER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_TOKEN_READER, JSDOCTokenReaderClass))
+
+typedef struct _JSDOCTokenReader JSDOCTokenReader;
+typedef struct _JSDOCTokenReaderClass JSDOCTokenReaderClass;
+typedef struct _JSDOCTokenReaderPrivate JSDOCTokenReaderPrivate;
+
+#define JSDOC_TYPE_TOKEN_ARRAY (jsdoc_token_array_get_type ())
+#define JSDOC_TOKEN_ARRAY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_TOKEN_ARRAY, JSDOCTokenArray))
+#define JSDOC_TOKEN_ARRAY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_TOKEN_ARRAY, JSDOCTokenArrayClass))
+#define JSDOC_IS_TOKEN_ARRAY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_TOKEN_ARRAY))
+#define JSDOC_IS_TOKEN_ARRAY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_TOKEN_ARRAY))
+#define JSDOC_TOKEN_ARRAY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_TOKEN_ARRAY, JSDOCTokenArrayClass))
+
+typedef struct _JSDOCTokenArray JSDOCTokenArray;
+typedef struct _JSDOCTokenArrayClass JSDOCTokenArrayClass;
+
+#define JSDOC_TYPE_TEXT_STREAM (jsdoc_text_stream_get_type ())
+#define JSDOC_TEXT_STREAM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_TEXT_STREAM, JSDOCTextStream))
+#define JSDOC_TEXT_STREAM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_TEXT_STREAM, JSDOCTextStreamClass))
+#define JSDOC_IS_TEXT_STREAM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_TEXT_STREAM))
+#define JSDOC_IS_TEXT_STREAM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_TEXT_STREAM))
+#define JSDOC_TEXT_STREAM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_TEXT_STREAM, JSDOCTextStreamClass))
+
+typedef struct _JSDOCTextStream JSDOCTextStream;
+typedef struct _JSDOCTextStreamClass JSDOCTextStreamClass;
+
+#define JSDOC_TYPE_TOKEN_STREAM (jsdoc_token_stream_get_type ())
+#define JSDOC_TOKEN_STREAM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_TOKEN_STREAM, JSDOCTokenStream))
+#define JSDOC_TOKEN_STREAM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_TOKEN_STREAM, JSDOCTokenStreamClass))
+#define JSDOC_IS_TOKEN_STREAM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_TOKEN_STREAM))
+#define JSDOC_IS_TOKEN_STREAM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_TOKEN_STREAM))
+#define JSDOC_TOKEN_STREAM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_TOKEN_STREAM, JSDOCTokenStreamClass))
+
+typedef struct _JSDOCTokenStream JSDOCTokenStream;
+typedef struct _JSDOCTokenStreamClass JSDOCTokenStreamClass;
+
+#define JSDOC_TYPE_COLLAPSE (jsdoc_collapse_get_type ())
+#define JSDOC_COLLAPSE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_COLLAPSE, JSDOCCollapse))
+#define JSDOC_COLLAPSE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_COLLAPSE, JSDOCCollapseClass))
+#define JSDOC_IS_COLLAPSE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_COLLAPSE))
+#define JSDOC_IS_COLLAPSE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_COLLAPSE))
+#define JSDOC_COLLAPSE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_COLLAPSE, JSDOCCollapseClass))
+
+typedef struct _JSDOCCollapse JSDOCCollapse;
+typedef struct _JSDOCCollapseClass JSDOCCollapseClass;
+typedef struct _JSDOCTokenArrayPrivate JSDOCTokenArrayPrivate;
+
+#define JSDOC_TYPE_TOKEN (jsdoc_token_get_type ())
+#define JSDOC_TOKEN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_TOKEN, JSDOCToken))
+#define JSDOC_TOKEN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_TOKEN, JSDOCTokenClass))
+#define JSDOC_IS_TOKEN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_TOKEN))
+#define JSDOC_IS_TOKEN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_TOKEN))
+#define JSDOC_TOKEN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_TOKEN, JSDOCTokenClass))
+
+typedef struct _JSDOCToken JSDOCToken;
+typedef struct _JSDOCTokenClass JSDOCTokenClass;
+
+#define JSDOC_TYPE_SCOPE_PARSER (jsdoc_scope_parser_get_type ())
+#define JSDOC_SCOPE_PARSER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_SCOPE_PARSER, JSDOCScopeParser))
+#define JSDOC_SCOPE_PARSER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_SCOPE_PARSER, JSDOCScopeParserClass))
+#define JSDOC_IS_SCOPE_PARSER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_SCOPE_PARSER))
+#define JSDOC_IS_SCOPE_PARSER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_SCOPE_PARSER))
+#define JSDOC_SCOPE_PARSER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_SCOPE_PARSER, JSDOCScopeParserClass))
+
+typedef struct _JSDOCScopeParser JSDOCScopeParser;
+typedef struct _JSDOCScopeParserClass JSDOCScopeParserClass;
+
+typedef enum  {
+       JSDOC_PACKER_ERROR_ArgumentError
+} JSDOCPackerError;
+#define JSDOC_PACKER_ERROR jsdoc_packer_error_quark ()
+struct _JSDOCPacker {
+       GObject parent_instance;
+       JSDOCPackerPrivate * priv;
+       GeeArrayList* files;
+       gchar* activeFile;
+       gchar* outstr;
+       JSDOCPackerRun* config;
+       JsonObject* result;
+};
+
+struct _JSDOCPackerClass {
+       GObjectClass parent_class;
+};
+
+struct _JSDOCPackerPrivate {
+       gchar* target;
+       GFileOutputStream* targetStream;
+       gchar* targetDebug;
+       GFileOutputStream* targetDebugStream;
+};
+
+typedef enum  {
+       JSDOC_PACKER_RESULT_TYPE_err,
+       JSDOC_PACKER_RESULT_TYPE_warn
+} JSDOCPackerResultType;
+
+struct _Block1Data {
+       int _ref_count_;
+       JSDOCPacker* self;
+       JSDOCPackerResultType type;
+};
+
+struct _Block2Data {
+       int _ref_count_;
+       Block1Data * _data1_;
+       gchar* filename;
+};
+
+struct _Block3Data {
+       int _ref_count_;
+       Block2Data * _data2_;
+       gchar* linestr;
+};
+
+struct _JSDOCPackerRun {
+       GApplication parent_instance;
+       JSDOCPackerRunPrivate * priv;
+       gchar* opt_target;
+       gchar* opt_debug_target;
+       gchar* opt_real_basedir;
+       gchar* opt_doc_target;
+       gchar* opt_doc_template_dir;
+       gboolean opt_doc_include_private;
+       gboolean opt_debug;
+       gboolean opt_skip_scope;
+       gboolean opt_keep_whitespace;
+       gboolean opt_dump_tokens;
+       gboolean opt_clean_cache;
+       gchar* opt_doc_ext;
+};
+
+struct _JSDOCPackerRunClass {
+       GApplicationClass parent_class;
+};
+
+struct _JSDOCTokenReader {
+       GObject parent_instance;
+       JSDOCTokenReaderPrivate * priv;
+       gboolean collapseWhite;
+       gboolean keepDocs;
+       gboolean keepWhite;
+       gboolean keepComments;
+       gboolean sepIdents;
+       gchar* filename;
+       gboolean ignoreBadGrammer;
+};
+
+struct _JSDOCTokenReaderClass {
+       GObjectClass parent_class;
+};
+
+struct _JSDOCTokenArray {
+       GObject parent_instance;
+       JSDOCTokenArrayPrivate * priv;
+       GeeArrayList* tokens;
+};
+
+struct _JSDOCTokenArrayClass {
+       GObjectClass parent_class;
+};
+
+
+static gpointer jsdoc_packer_parent_class = NULL;
+
+GQuark jsdoc_packer_error_quark (void);
+GType jsdoc_packer_get_type (void) G_GNUC_CONST;
+GType jsdoc_packer_run_get_type (void) G_GNUC_CONST;
+#define JSDOC_PACKER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), JSDOC_TYPE_PACKER, JSDOCPackerPrivate))
+enum  {
+       JSDOC_PACKER_DUMMY_PROPERTY
+};
+GType jsdoc_packer_result_type_get_type (void) G_GNUC_CONST;
+gchar* jsdoc_packer_result_type_to_string (JSDOCPackerResultType self);
+JSDOCPacker* jsdoc_packer_new (JSDOCPackerRun* config);
+JSDOCPacker* jsdoc_packer_construct (GType object_type, JSDOCPackerRun* config);
+JSDOCLang_Class* jsdoc_langclass_new (void);
+JSDOCLang_Class* jsdoc_langclass_construct (GType object_type);
+GType jsdoc_langclass_get_type (void) G_GNUC_CONST;
+void jsdoc_packer_logError (JSDOCPacker* self, JSDOCPackerResultType type, const gchar* filename, gint line, const gchar* message);
+gboolean jsdoc_packer_hasErrors (JSDOCPacker* self, const gchar* fn);
+void jsdoc_packer_dumpErrors (JSDOCPacker* self, JSDOCPackerResultType type);
+static Block1Data* block1_data_ref (Block1Data* _data1_);
+static void block1_data_unref (void * _userdata_);
+static void __lambda5_ (Block1Data* _data1_, JsonObject* obj, const gchar* filename, JsonNode* node);
+static Block2Data* block2_data_ref (Block2Data* _data2_);
+static void block2_data_unref (void * _userdata_);
+static void __lambda6_ (Block2Data* _data2_, JsonObject* linelistobj, const gchar* linestr, JsonNode* nodear);
+static Block3Data* block3_data_ref (Block3Data* _data3_);
+static void block3_data_unref (void * _userdata_);
+static void __lambda7_ (Block3Data* _data3_, JsonArray* errorar, guint ignore, JsonNode* nodestr);
+static void ___lambda7__json_array_foreach (JsonArray* array, guint index_, JsonNode* element_node, gpointer self);
+static void ___lambda6__json_object_foreach (JsonObject* object, const gchar* member_name, JsonNode* member_node, gpointer self);
+static void ___lambda5__json_object_foreach (JsonObject* object, const gchar* member_name, JsonNode* member_node, gpointer self);
+void jsdoc_packer_loadSourceIndexes (JSDOCPacker* self, GeeArrayList* indexes);
+void jsdoc_packer_loadSourceIndex (JSDOCPacker* self, const gchar* in_srcfile);
+void jsdoc_packer_loadFiles (JSDOCPacker* self, gchar** fs, int fs_length1);
+void jsdoc_packer_loadFile (JSDOCPacker* self, const gchar* f);
+gchar* jsdoc_packer_pack (JSDOCPacker* self, const gchar* target, const gchar* targetDebug, GError** error);
+static gchar* jsdoc_packer_packAll (JSDOCPacker* self);
+gchar* jsdoc_packer_packFile (JSDOCPacker* self, const gchar* str, const gchar* fn, const gchar* minfile);
+GType jsdoc_token_reader_get_type (void) G_GNUC_CONST;
+JSDOCTokenReader* jsdoc_token_reader_new (JSDOCPacker* packer);
+JSDOCTokenReader* jsdoc_token_reader_construct (GType object_type, JSDOCPacker* packer);
+GType jsdoc_token_array_get_type (void) G_GNUC_CONST;
+GType jsdoc_text_stream_get_type (void) G_GNUC_CONST;
+JSDOCTokenArray* jsdoc_token_reader_tokenize (JSDOCTokenReader* self, JSDOCTextStream* stream);
+JSDOCTextStream* jsdoc_text_stream_new (const gchar* text);
+JSDOCTextStream* jsdoc_text_stream_construct (GType object_type, const gchar* text);
+void jsdoc_token_array_dump (JSDOCTokenArray* self);
+GType jsdoc_token_stream_get_type (void) G_GNUC_CONST;
+GType jsdoc_collapse_get_type (void) G_GNUC_CONST;
+GType jsdoc_token_get_type (void) G_GNUC_CONST;
+JSDOCCollapse* jsdoc_collapse_new (GeeArrayList* tokens, JSDOCPacker* pk, const gchar* filename);
+JSDOCCollapse* jsdoc_collapse_construct (GType object_type, GeeArrayList* tokens, JSDOCPacker* pk, const gchar* filename);
+GType jsdoc_scope_parser_get_type (void) G_GNUC_CONST;
+JSDOCScopeParser* jsdoc_scope_parser_new (JSDOCTokenStream* ts, JSDOCPacker* packer, const gchar* filename);
+JSDOCScopeParser* jsdoc_scope_parser_construct (GType object_type, JSDOCTokenStream* ts, JSDOCPacker* packer, const gchar* filename);
+void jsdoc_scope_parser_buildSymbolTree (JSDOCScopeParser* self);
+void jsdoc_scope_parser_mungeSymboltree (JSDOCScopeParser* self);
+void jsdoc_scope_parser_printWarnings (JSDOCScopeParser* self);
+gchar* jsdoc_CompressWhite (JSDOCTokenStream* ts, JSDOCPacker* packer, gboolean keepWhite);
+JSDOCTokenStream* jsdoc_token_stream_new (GeeArrayList* tokens);
+JSDOCTokenStream* jsdoc_token_stream_construct (GType object_type, GeeArrayList* tokens);
+gchar* jsdoc_packer_md5 (JSDOCPacker* self, const gchar* str);
+static void jsdoc_packer_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 jsdoc_packer_error_quark (void) {
+       return g_quark_from_static_string ("jsdoc_packer_error-quark");
+}
+
+
+gchar* jsdoc_packer_result_type_to_string (JSDOCPackerResultType self) {
+       gchar* result = NULL;
+#line 130 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       switch (self) {
+#line 130 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               case JSDOC_PACKER_RESULT_TYPE_err:
+#line 306 "Packer.c"
+               {
+                       gchar* _tmp0_;
+#line 131 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       _tmp0_ = g_strdup ("ERR");
+#line 131 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       result = _tmp0_;
+#line 131 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       return result;
+#line 315 "Packer.c"
+               }
+#line 130 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               case JSDOC_PACKER_RESULT_TYPE_warn:
+#line 319 "Packer.c"
+               {
+                       gchar* _tmp1_;
+#line 132 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       _tmp1_ = g_strdup ("WARN");
+#line 132 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       result = _tmp1_;
+#line 132 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       return result;
+#line 328 "Packer.c"
+               }
+               default:
+               {
+#line 133 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       g_assert_not_reached ();
+#line 334 "Packer.c"
+               }
+       }
+}
+
+
+GType jsdoc_packer_result_type_get_type (void) {
+       static volatile gsize jsdoc_packer_result_type_type_id__volatile = 0;
+       if (g_once_init_enter (&jsdoc_packer_result_type_type_id__volatile)) {
+               static const GEnumValue values[] = {{JSDOC_PACKER_RESULT_TYPE_err, "JSDOC_PACKER_RESULT_TYPE_err", "err"}, {JSDOC_PACKER_RESULT_TYPE_warn, "JSDOC_PACKER_RESULT_TYPE_warn", "warn"}, {0, NULL, NULL}};
+               GType jsdoc_packer_result_type_type_id;
+               jsdoc_packer_result_type_type_id = g_enum_register_static ("JSDOCPackerResultType", values);
+               g_once_init_leave (&jsdoc_packer_result_type_type_id__volatile, jsdoc_packer_result_type_type_id);
+       }
+       return jsdoc_packer_result_type_type_id__volatile;
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 103 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       return self ? g_object_ref (self) : NULL;
+#line 355 "Packer.c"
+}
+
+
+JSDOCPacker* jsdoc_packer_construct (GType object_type, JSDOCPackerRun* config) {
+       JSDOCPacker * self = NULL;
+       JSDOCPackerRun* _tmp0_;
+       JSDOCPackerRun* _tmp1_;
+       JsonObject* _tmp2_;
+       GeeArrayList* _tmp3_;
+       JSDOCLang_Class* _tmp4_;
+       JSDOCLang_Class* _tmp5_;
+#line 101 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       g_return_val_if_fail (config != NULL, NULL);
+#line 101 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       self = (JSDOCPacker*) g_object_new (object_type, NULL);
+#line 103 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp0_ = config;
+#line 103 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 103 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _g_object_unref0 (self->config);
+#line 103 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       self->config = _tmp1_;
+#line 105 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp2_ = json_object_new ();
+#line 105 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _json_object_unref0 (self->result);
+#line 105 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       self->result = _tmp2_;
+#line 114 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp3_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL);
+#line 114 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _g_object_unref0 (self->files);
+#line 114 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       self->files = _tmp3_;
+#line 116 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp4_ = jsdoc_langclass_new ();
+#line 116 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp5_ = _tmp4_;
+#line 116 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _g_object_unref0 (_tmp5_);
+#line 101 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       return self;
+#line 399 "Packer.c"
+}
+
+
+JSDOCPacker* jsdoc_packer_new (JSDOCPackerRun* config) {
+#line 101 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       return jsdoc_packer_construct (JSDOC_TYPE_PACKER, config);
+#line 406 "Packer.c"
+}
+
+
+static gpointer _json_object_ref0 (gpointer self) {
+#line 169 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       return self ? json_object_ref (self) : NULL;
+#line 413 "Packer.c"
+}
+
+
+static gpointer _json_array_ref0 (gpointer self) {
+#line 177 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       return self ? json_array_ref (self) : NULL;
+#line 420 "Packer.c"
+}
+
+
+void jsdoc_packer_logError (JSDOCPacker* self, JSDOCPackerResultType type, const gchar* filename, gint line, const gchar* message) {
+       JsonObject* _tmp0_;
+       JSDOCPackerResultType _tmp1_;
+       gchar* _tmp2_;
+       gchar* _tmp3_;
+       gchar* _tmp4_;
+       gchar* _tmp5_;
+       gboolean _tmp6_;
+       gboolean _tmp7_;
+       JsonObject* _tmp27_;
+       JSDOCPackerResultType _tmp28_;
+       gchar* _tmp29_;
+       gchar* _tmp30_;
+       gboolean _tmp31_;
+       gboolean _tmp32_;
+       JsonObject* t = NULL;
+       JsonObject* _tmp38_;
+       JSDOCPackerResultType _tmp39_;
+       gchar* _tmp40_;
+       gchar* _tmp41_;
+       JsonObject* _tmp42_;
+       JsonObject* _tmp43_;
+       JsonObject* _tmp44_;
+       JsonObject* _tmp45_;
+       const gchar* _tmp46_;
+       gboolean _tmp47_;
+       JsonObject* tt = NULL;
+       JsonObject* _tmp51_;
+       const gchar* _tmp52_;
+       JsonObject* _tmp53_;
+       JsonObject* _tmp54_;
+       JsonObject* _tmp55_;
+       gint _tmp56_;
+       gchar* _tmp57_;
+       gchar* _tmp58_;
+       gboolean _tmp59_;
+       gboolean _tmp60_;
+       JsonArray* tl = NULL;
+       JsonObject* _tmp66_;
+       gint _tmp67_;
+       gchar* _tmp68_;
+       gchar* _tmp69_;
+       JsonArray* _tmp70_;
+       JsonArray* _tmp71_;
+       JsonArray* _tmp72_;
+       const gchar* _tmp73_;
+#line 155 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       g_return_if_fail (self != NULL);
+#line 155 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       g_return_if_fail (filename != NULL);
+#line 155 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       g_return_if_fail (message != NULL);
+#line 157 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp0_ = self->result;
+#line 157 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp1_ = type;
+#line 157 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp2_ = jsdoc_packer_result_type_to_string (_tmp1_);
+#line 157 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp3_ = _tmp2_;
+#line 157 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp4_ = g_strconcat (_tmp3_, "-TOTAL", NULL);
+#line 157 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp5_ = _tmp4_;
+#line 157 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp6_ = json_object_has_member (_tmp0_, _tmp5_);
+#line 157 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp7_ = !_tmp6_;
+#line 157 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _g_free0 (_tmp5_);
+#line 157 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _g_free0 (_tmp3_);
+#line 157 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       if (_tmp7_) {
+#line 498 "Packer.c"
+               JsonObject* _tmp8_;
+               JSDOCPackerResultType _tmp9_;
+               gchar* _tmp10_;
+               gchar* _tmp11_;
+               gchar* _tmp12_;
+               gchar* _tmp13_;
+#line 158 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp8_ = self->result;
+#line 158 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp9_ = type;
+#line 158 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp10_ = jsdoc_packer_result_type_to_string (_tmp9_);
+#line 158 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp11_ = _tmp10_;
+#line 158 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp12_ = g_strconcat (_tmp11_, "-TOTAL", NULL);
+#line 158 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp13_ = _tmp12_;
+#line 158 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               json_object_set_int_member (_tmp8_, _tmp13_, (gint64) 1);
+#line 158 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _g_free0 (_tmp13_);
+#line 158 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _g_free0 (_tmp11_);
+#line 523 "Packer.c"
+       } else {
+               JsonObject* _tmp14_;
+               JSDOCPackerResultType _tmp15_;
+               gchar* _tmp16_;
+               gchar* _tmp17_;
+               gchar* _tmp18_;
+               gchar* _tmp19_;
+               JsonObject* _tmp20_;
+               JSDOCPackerResultType _tmp21_;
+               gchar* _tmp22_;
+               gchar* _tmp23_;
+               gchar* _tmp24_;
+               gchar* _tmp25_;
+               gint64 _tmp26_;
+#line 160 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp14_ = self->result;
+#line 160 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp15_ = type;
+#line 160 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp16_ = jsdoc_packer_result_type_to_string (_tmp15_);
+#line 160 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp17_ = _tmp16_;
+#line 160 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp18_ = g_strconcat (_tmp17_, "-TOTAL", NULL);
+#line 160 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp19_ = _tmp18_;
+#line 160 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp20_ = self->result;
+#line 160 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp21_ = type;
+#line 160 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp22_ = jsdoc_packer_result_type_to_string (_tmp21_);
+#line 160 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp23_ = _tmp22_;
+#line 160 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp24_ = g_strconcat (_tmp23_, "-TOTAL", NULL);
+#line 160 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp25_ = _tmp24_;
+#line 160 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp26_ = json_object_get_int_member (_tmp20_, _tmp25_);
+#line 160 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               json_object_set_int_member (_tmp14_, _tmp19_, _tmp26_ + 1);
+#line 160 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _g_free0 (_tmp25_);
+#line 160 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _g_free0 (_tmp23_);
+#line 160 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _g_free0 (_tmp19_);
+#line 160 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _g_free0 (_tmp17_);
+#line 574 "Packer.c"
+       }
+#line 166 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp27_ = self->result;
+#line 166 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp28_ = type;
+#line 166 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp29_ = jsdoc_packer_result_type_to_string (_tmp28_);
+#line 166 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp30_ = _tmp29_;
+#line 166 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp31_ = json_object_has_member (_tmp27_, _tmp30_);
+#line 166 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp32_ = !_tmp31_;
+#line 166 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _g_free0 (_tmp30_);
+#line 166 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       if (_tmp32_) {
+#line 592 "Packer.c"
+               JsonObject* _tmp33_;
+               JSDOCPackerResultType _tmp34_;
+               gchar* _tmp35_;
+               gchar* _tmp36_;
+               JsonObject* _tmp37_;
+#line 167 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp33_ = self->result;
+#line 167 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp34_ = type;
+#line 167 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp35_ = jsdoc_packer_result_type_to_string (_tmp34_);
+#line 167 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp36_ = _tmp35_;
+#line 167 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp37_ = json_object_new ();
+#line 167 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               json_object_set_object_member (_tmp33_, _tmp36_, _tmp37_);
+#line 167 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _g_free0 (_tmp36_);
+#line 612 "Packer.c"
+       }
+#line 169 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp38_ = self->result;
+#line 169 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp39_ = type;
+#line 169 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp40_ = jsdoc_packer_result_type_to_string (_tmp39_);
+#line 169 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp41_ = _tmp40_;
+#line 169 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp42_ = json_object_get_object_member (_tmp38_, _tmp41_);
+#line 169 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp43_ = _json_object_ref0 (_tmp42_);
+#line 169 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp44_ = _tmp43_;
+#line 169 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _g_free0 (_tmp41_);
+#line 169 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       t = _tmp44_;
+#line 170 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp45_ = t;
+#line 170 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp46_ = filename;
+#line 170 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp47_ = json_object_has_member (_tmp45_, _tmp46_);
+#line 170 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       if (!_tmp47_) {
+#line 640 "Packer.c"
+               JsonObject* _tmp48_;
+               const gchar* _tmp49_;
+               JsonObject* _tmp50_;
+#line 171 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp48_ = t;
+#line 171 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp49_ = filename;
+#line 171 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp50_ = json_object_new ();
+#line 171 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               json_object_set_object_member (_tmp48_, _tmp49_, _tmp50_);
+#line 652 "Packer.c"
+       }
+#line 173 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp51_ = t;
+#line 173 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp52_ = filename;
+#line 173 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp53_ = json_object_get_object_member (_tmp51_, _tmp52_);
+#line 173 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp54_ = _json_object_ref0 (_tmp53_);
+#line 173 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       tt = _tmp54_;
+#line 174 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp55_ = tt;
+#line 174 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp56_ = line;
+#line 174 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp57_ = g_strdup_printf ("%i", _tmp56_);
+#line 174 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp58_ = _tmp57_;
+#line 174 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp59_ = json_object_has_member (_tmp55_, _tmp58_);
+#line 174 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp60_ = !_tmp59_;
+#line 174 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _g_free0 (_tmp58_);
+#line 174 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       if (_tmp60_) {
+#line 680 "Packer.c"
+               JsonObject* _tmp61_;
+               gint _tmp62_;
+               gchar* _tmp63_;
+               gchar* _tmp64_;
+               JsonArray* _tmp65_;
+#line 175 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp61_ = tt;
+#line 175 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp62_ = line;
+#line 175 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp63_ = g_strdup_printf ("%i", _tmp62_);
+#line 175 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp64_ = _tmp63_;
+#line 175 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp65_ = json_array_new ();
+#line 175 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               json_object_set_array_member (_tmp61_, _tmp64_, _tmp65_);
+#line 175 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _g_free0 (_tmp64_);
+#line 700 "Packer.c"
+       }
+#line 177 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp66_ = tt;
+#line 177 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp67_ = line;
+#line 177 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp68_ = g_strdup_printf ("%i", _tmp67_);
+#line 177 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp69_ = _tmp68_;
+#line 177 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp70_ = json_object_get_array_member (_tmp66_, _tmp69_);
+#line 177 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp71_ = _json_array_ref0 (_tmp70_);
+#line 177 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp72_ = _tmp71_;
+#line 177 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _g_free0 (_tmp69_);
+#line 177 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       tl = _tmp72_;
+#line 178 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp73_ = message;
+#line 178 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       json_array_add_string_element (tl, _tmp73_);
+#line 155 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _json_array_unref0 (tl);
+#line 155 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _json_object_unref0 (tt);
+#line 155 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _json_object_unref0 (t);
+#line 730 "Packer.c"
+}
+
+
+gboolean jsdoc_packer_hasErrors (JSDOCPacker* self, const gchar* fn) {
+       gboolean result = FALSE;
+       JsonObject* _tmp0_;
+       gchar* _tmp1_;
+       gchar* _tmp2_;
+       gboolean _tmp3_;
+       gboolean _tmp4_;
+       const gchar* _tmp5_;
+       gint _tmp6_;
+       gint _tmp7_;
+       JsonObject* t = NULL;
+       JsonObject* _tmp8_;
+       gchar* _tmp9_;
+       gchar* _tmp10_;
+       JsonObject* _tmp11_;
+       JsonObject* _tmp12_;
+       JsonObject* _tmp13_;
+       JsonObject* _tmp14_;
+       const gchar* _tmp15_;
+       gboolean _tmp16_;
+#line 182 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       g_return_val_if_fail (self != NULL, FALSE);
+#line 182 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       g_return_val_if_fail (fn != NULL, FALSE);
+#line 184 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp0_ = self->result;
+#line 184 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp1_ = jsdoc_packer_result_type_to_string (JSDOC_PACKER_RESULT_TYPE_err);
+#line 184 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp2_ = _tmp1_;
+#line 184 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp3_ = json_object_has_member (_tmp0_, _tmp2_);
+#line 184 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp4_ = !_tmp3_;
+#line 184 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _g_free0 (_tmp2_);
+#line 184 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       if (_tmp4_) {
+#line 185 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               result = FALSE;
+#line 185 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               return result;
+#line 776 "Packer.c"
+       }
+#line 188 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp5_ = fn;
+#line 188 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp6_ = strlen (_tmp5_);
+#line 188 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp7_ = _tmp6_;
+#line 188 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       if (_tmp7_ < 1) {
+#line 189 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               result = TRUE;
+#line 189 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               return result;
+#line 790 "Packer.c"
+       }
+#line 191 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp8_ = self->result;
+#line 191 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp9_ = jsdoc_packer_result_type_to_string (JSDOC_PACKER_RESULT_TYPE_err);
+#line 191 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp10_ = _tmp9_;
+#line 191 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp11_ = json_object_get_object_member (_tmp8_, _tmp10_);
+#line 191 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp12_ = _json_object_ref0 (_tmp11_);
+#line 191 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp13_ = _tmp12_;
+#line 191 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _g_free0 (_tmp10_);
+#line 191 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       t = _tmp13_;
+#line 193 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp14_ = t;
+#line 193 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp15_ = fn;
+#line 193 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp16_ = json_object_has_member (_tmp14_, _tmp15_);
+#line 193 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       if (_tmp16_) {
+#line 194 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               result = TRUE;
+#line 194 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _json_object_unref0 (t);
+#line 194 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               return result;
+#line 822 "Packer.c"
+       }
+#line 196 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       result = FALSE;
+#line 196 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _json_object_unref0 (t);
+#line 196 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       return result;
+#line 830 "Packer.c"
+}
+
+
+static Block1Data* block1_data_ref (Block1Data* _data1_) {
+#line 198 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       g_atomic_int_inc (&_data1_->_ref_count_);
+#line 198 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       return _data1_;
+#line 839 "Packer.c"
+}
+
+
+static void block1_data_unref (void * _userdata_) {
+       Block1Data* _data1_;
+       _data1_ = (Block1Data*) _userdata_;
+#line 198 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       if (g_atomic_int_dec_and_test (&_data1_->_ref_count_)) {
+#line 848 "Packer.c"
+               JSDOCPacker* self;
+#line 198 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               self = _data1_->self;
+#line 198 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _g_object_unref0 (self);
+#line 198 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               g_slice_free (Block1Data, _data1_);
+#line 856 "Packer.c"
+       }
+}
+
+
+static Block2Data* block2_data_ref (Block2Data* _data2_) {
+#line 204 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       g_atomic_int_inc (&_data2_->_ref_count_);
+#line 204 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       return _data2_;
+#line 866 "Packer.c"
+}
+
+
+static void block2_data_unref (void * _userdata_) {
+       Block2Data* _data2_;
+       _data2_ = (Block2Data*) _userdata_;
+#line 204 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       if (g_atomic_int_dec_and_test (&_data2_->_ref_count_)) {
+#line 875 "Packer.c"
+               JSDOCPacker* self;
+#line 204 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               self = _data2_->_data1_->self;
+#line 204 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _g_free0 (_data2_->filename);
+#line 204 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               block1_data_unref (_data2_->_data1_);
+#line 204 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _data2_->_data1_ = NULL;
+#line 204 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               g_slice_free (Block2Data, _data2_);
+#line 887 "Packer.c"
+       }
+}
+
+
+static Block3Data* block3_data_ref (Block3Data* _data3_) {
+#line 206 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       g_atomic_int_inc (&_data3_->_ref_count_);
+#line 206 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       return _data3_;
+#line 897 "Packer.c"
+}
+
+
+static void block3_data_unref (void * _userdata_) {
+       Block3Data* _data3_;
+       _data3_ = (Block3Data*) _userdata_;
+#line 206 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       if (g_atomic_int_dec_and_test (&_data3_->_ref_count_)) {
+#line 906 "Packer.c"
+               JSDOCPacker* self;
+#line 206 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               self = _data3_->_data2_->_data1_->self;
+#line 206 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _g_free0 (_data3_->linestr);
+#line 206 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               block2_data_unref (_data3_->_data2_);
+#line 206 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _data3_->_data2_ = NULL;
+#line 206 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               g_slice_free (Block3Data, _data3_);
+#line 918 "Packer.c"
+       }
+}
+
+
+static void __lambda7_ (Block3Data* _data3_, JsonArray* errorar, guint ignore, JsonNode* nodestr) {
+       Block2Data* _data2_;
+       Block1Data* _data1_;
+       JSDOCPacker* self;
+       JSDOCPackerResultType _tmp0_;
+       gchar* _tmp1_;
+       gchar* _tmp2_;
+       const gchar* _tmp3_;
+       const gchar* _tmp4_;
+       JsonNode* _tmp5_;
+       const gchar* _tmp6_;
+#line 208 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _data2_ = _data3_->_data2_;
+#line 208 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _data1_ = _data2_->_data1_;
+#line 208 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       self = _data1_->self;
+#line 208 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       g_return_if_fail (errorar != NULL);
+#line 208 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       g_return_if_fail (nodestr != NULL);
+#line 209 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp0_ = _data1_->type;
+#line 209 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp1_ = jsdoc_packer_result_type_to_string (_tmp0_);
+#line 209 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp2_ = _tmp1_;
+#line 209 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp3_ = _data2_->filename;
+#line 209 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp4_ = _data3_->linestr;
+#line 209 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp5_ = nodestr;
+#line 209 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp6_ = json_node_get_string (_tmp5_);
+#line 209 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       g_print ("%s: %s:%s %s\n", _tmp2_, _tmp3_, _tmp4_, _tmp6_);
+#line 209 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _g_free0 (_tmp2_);
+#line 962 "Packer.c"
+}
+
+
+static void ___lambda7__json_array_foreach (JsonArray* array, guint index_, JsonNode* element_node, gpointer self) {
+#line 208 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       __lambda7_ (self, array, index_, element_node);
+#line 969 "Packer.c"
+}
+
+
+static void __lambda6_ (Block2Data* _data2_, JsonObject* linelistobj, const gchar* linestr, JsonNode* nodear) {
+       Block1Data* _data1_;
+       JSDOCPacker* self;
+       Block3Data* _data3_;
+       const gchar* _tmp0_;
+       gchar* _tmp1_;
+       JsonArray* errors = NULL;
+       JsonNode* _tmp2_;
+       JsonArray* _tmp3_;
+#line 206 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _data1_ = _data2_->_data1_;
+#line 206 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       self = _data1_->self;
+#line 206 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       g_return_if_fail (linelistobj != NULL);
+#line 206 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       g_return_if_fail (linestr != NULL);
+#line 206 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       g_return_if_fail (nodear != NULL);
+#line 206 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _data3_ = g_slice_new0 (Block3Data);
+#line 206 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _data3_->_ref_count_ = 1;
+#line 206 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _data3_->_data2_ = block2_data_ref (_data2_);
+#line 206 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp0_ = linestr;
+#line 206 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp1_ = g_strdup (_tmp0_);
+#line 206 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _g_free0 (_data3_->linestr);
+#line 206 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _data3_->linestr = _tmp1_;
+#line 207 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp2_ = nodear;
+#line 207 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp3_ = json_node_dup_array (_tmp2_);
+#line 207 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       errors = _tmp3_;
+#line 208 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       json_array_foreach_element (errors, ___lambda7__json_array_foreach, _data3_);
+#line 206 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _json_array_unref0 (errors);
+#line 206 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       block3_data_unref (_data3_);
+#line 206 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _data3_ = NULL;
+#line 1020 "Packer.c"
+}
+
+
+static void ___lambda6__json_object_foreach (JsonObject* object, const gchar* member_name, JsonNode* member_node, gpointer self) {
+#line 206 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       __lambda6_ (self, object, member_name, member_node);
+#line 1027 "Packer.c"
+}
+
+
+static void __lambda5_ (Block1Data* _data1_, JsonObject* obj, const gchar* filename, JsonNode* node) {
+       JSDOCPacker* self;
+       Block2Data* _data2_;
+       const gchar* _tmp0_;
+       gchar* _tmp1_;
+       JsonObject* linelist = NULL;
+       JsonNode* _tmp2_;
+       JsonObject* _tmp3_;
+#line 204 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       self = _data1_->self;
+#line 204 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       g_return_if_fail (obj != NULL);
+#line 204 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       g_return_if_fail (filename != NULL);
+#line 204 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       g_return_if_fail (node != NULL);
+#line 204 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _data2_ = g_slice_new0 (Block2Data);
+#line 204 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _data2_->_ref_count_ = 1;
+#line 204 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _data2_->_data1_ = block1_data_ref (_data1_);
+#line 204 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp0_ = filename;
+#line 204 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp1_ = g_strdup (_tmp0_);
+#line 204 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _g_free0 (_data2_->filename);
+#line 204 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _data2_->filename = _tmp1_;
+#line 205 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp2_ = node;
+#line 205 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp3_ = json_node_dup_object (_tmp2_);
+#line 205 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       linelist = _tmp3_;
+#line 206 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       json_object_foreach_member (linelist, ___lambda6__json_object_foreach, _data2_);
+#line 204 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _json_object_unref0 (linelist);
+#line 204 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       block2_data_unref (_data2_);
+#line 204 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _data2_ = NULL;
+#line 1075 "Packer.c"
+}
+
+
+static void ___lambda5__json_object_foreach (JsonObject* object, const gchar* member_name, JsonNode* member_node, gpointer self) {
+#line 204 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       __lambda5_ (self, object, member_name, member_node);
+#line 1082 "Packer.c"
+}
+
+
+void jsdoc_packer_dumpErrors (JSDOCPacker* self, JSDOCPackerResultType type) {
+       Block1Data* _data1_;
+       JSDOCPackerResultType _tmp0_;
+       JsonObject* _tmp1_;
+       JSDOCPackerResultType _tmp2_;
+       gchar* _tmp3_;
+       gchar* _tmp4_;
+       gboolean _tmp5_;
+       gboolean _tmp6_;
+       JsonObject* t = NULL;
+       JsonObject* _tmp7_;
+       JSDOCPackerResultType _tmp8_;
+       gchar* _tmp9_;
+       gchar* _tmp10_;
+       JsonObject* _tmp11_;
+       JsonObject* _tmp12_;
+       JsonObject* _tmp13_;
+       JsonObject* _tmp14_;
+#line 198 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       g_return_if_fail (self != NULL);
+#line 198 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _data1_ = g_slice_new0 (Block1Data);
+#line 198 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _data1_->_ref_count_ = 1;
+#line 198 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _data1_->self = g_object_ref (self);
+#line 198 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp0_ = type;
+#line 198 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _data1_->type = _tmp0_;
+#line 200 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp1_ = self->result;
+#line 200 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp2_ = _data1_->type;
+#line 200 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp3_ = jsdoc_packer_result_type_to_string (_tmp2_);
+#line 200 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp4_ = _tmp3_;
+#line 200 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp5_ = json_object_has_member (_tmp1_, _tmp4_);
+#line 200 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp6_ = !_tmp5_;
+#line 200 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _g_free0 (_tmp4_);
+#line 200 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       if (_tmp6_) {
+#line 201 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               block1_data_unref (_data1_);
+#line 201 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _data1_ = NULL;
+#line 201 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               return;
+#line 1138 "Packer.c"
+       }
+#line 203 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp7_ = self->result;
+#line 203 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp8_ = _data1_->type;
+#line 203 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp9_ = jsdoc_packer_result_type_to_string (_tmp8_);
+#line 203 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp10_ = _tmp9_;
+#line 203 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp11_ = json_object_get_object_member (_tmp7_, _tmp10_);
+#line 203 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp12_ = _json_object_ref0 (_tmp11_);
+#line 203 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp13_ = _tmp12_;
+#line 203 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _g_free0 (_tmp10_);
+#line 203 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       t = _tmp13_;
+#line 204 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp14_ = t;
+#line 204 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       json_object_foreach_member (_tmp14_, ___lambda5__json_object_foreach, _data1_);
+#line 198 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _json_object_unref0 (t);
+#line 198 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       block1_data_unref (_data1_);
+#line 198 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _data1_ = NULL;
+#line 1168 "Packer.c"
+}
+
+
+void jsdoc_packer_loadSourceIndexes (JSDOCPacker* self, GeeArrayList* indexes) {
+#line 292 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       g_return_if_fail (self != NULL);
+#line 292 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       g_return_if_fail (indexes != NULL);
+#line 1177 "Packer.c"
+       {
+               GeeArrayList* _f_list = NULL;
+               GeeArrayList* _tmp0_;
+               GeeArrayList* _tmp1_;
+               gint _f_size = 0;
+               GeeArrayList* _tmp2_;
+               gint _tmp3_;
+               gint _tmp4_;
+               gint _f_index = 0;
+#line 294 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp0_ = indexes;
+#line 294 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 294 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _f_list = _tmp1_;
+#line 294 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp2_ = _f_list;
+#line 294 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp3_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp2_);
+#line 294 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp4_ = _tmp3_;
+#line 294 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _f_size = _tmp4_;
+#line 294 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _f_index = -1;
+#line 294 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               while (TRUE) {
+#line 1205 "Packer.c"
+                       gint _tmp5_;
+                       gint _tmp6_;
+                       gint _tmp7_;
+                       gchar* f = NULL;
+                       GeeArrayList* _tmp8_;
+                       gint _tmp9_;
+                       gpointer _tmp10_;
+                       const gchar* _tmp11_;
+#line 294 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       _tmp5_ = _f_index;
+#line 294 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       _f_index = _tmp5_ + 1;
+#line 294 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       _tmp6_ = _f_index;
+#line 294 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       _tmp7_ = _f_size;
+#line 294 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       if (!(_tmp6_ < _tmp7_)) {
+#line 294 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               break;
+#line 1226 "Packer.c"
+                       }
+#line 294 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       _tmp8_ = _f_list;
+#line 294 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       _tmp9_ = _f_index;
+#line 294 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       _tmp10_ = gee_abstract_list_get ((GeeAbstractList*) _tmp8_, _tmp9_);
+#line 294 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       f = (gchar*) _tmp10_;
+#line 295 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       _tmp11_ = f;
+#line 295 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       jsdoc_packer_loadSourceIndex (self, _tmp11_);
+#line 294 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       _g_free0 (f);
+#line 1242 "Packer.c"
+               }
+#line 294 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _g_object_unref0 (_f_list);
+#line 1246 "Packer.c"
+       }
+}
+
+
+void jsdoc_packer_loadFiles (JSDOCPacker* self, gchar** fs, int fs_length1) {
+       gchar** _tmp0_;
+       gint _tmp0__length1;
+#line 299 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       g_return_if_fail (self != NULL);
+#line 302 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp0_ = fs;
+#line 302 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp0__length1 = fs_length1;
+#line 1260 "Packer.c"
+       {
+               gchar** f_collection = NULL;
+               gint f_collection_length1 = 0;
+               gint _f_collection_size_ = 0;
+               gint f_it = 0;
+#line 302 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               f_collection = _tmp0_;
+#line 302 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               f_collection_length1 = _tmp0__length1;
+#line 302 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               for (f_it = 0; f_it < _tmp0__length1; f_it = f_it + 1) {
+#line 1272 "Packer.c"
+                       gchar* _tmp1_;
+                       gchar* f = NULL;
+#line 302 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       _tmp1_ = g_strdup (f_collection[f_it]);
+#line 302 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       f = _tmp1_;
+#line 1279 "Packer.c"
+                       {
+                               const gchar* _tmp2_;
+                               GeeArrayList* _tmp3_;
+                               const gchar* _tmp4_;
+#line 303 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp2_ = f;
+#line 303 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               g_debug ("Packer.vala:303: add File: %s", _tmp2_);
+#line 304 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp3_ = self->files;
+#line 304 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp4_ = f;
+#line 304 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               gee_abstract_collection_add ((GeeAbstractCollection*) _tmp3_, _tmp4_);
+#line 302 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _g_free0 (f);
+#line 1296 "Packer.c"
+                       }
+               }
+       }
+}
+
+
+void jsdoc_packer_loadFile (JSDOCPacker* self, const gchar* f) {
+       const gchar* _tmp0_;
+       GeeArrayList* _tmp1_;
+       const gchar* _tmp2_;
+       GeeArrayList* _tmp3_;
+       gint _tmp4_;
+       gint _tmp5_;
+#line 307 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       g_return_if_fail (self != NULL);
+#line 307 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       g_return_if_fail (f != NULL);
+#line 310 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp0_ = f;
+#line 310 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       g_debug ("Packer.vala:310: add File: %s", _tmp0_);
+#line 311 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp1_ = self->files;
+#line 311 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp2_ = f;
+#line 311 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       gee_abstract_collection_add ((GeeAbstractCollection*) _tmp1_, _tmp2_);
+#line 312 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp3_ = self->files;
+#line 312 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp4_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp3_);
+#line 312 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp5_ = _tmp4_;
+#line 312 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       g_debug ("Packer.vala:312: FILE LEN: %d", _tmp5_);
+#line 1332 "Packer.c"
+}
+
+
+gchar* jsdoc_packer_pack (JSDOCPacker* self, const gchar* target, const gchar* targetDebug, GError** error) {
+       gchar* result = NULL;
+       const gchar* _tmp0_;
+       gchar* _tmp1_;
+       const gchar* _tmp2_;
+       gchar* _tmp3_;
+       GeeArrayList* _tmp4_;
+       gint _tmp5_;
+       gint _tmp6_;
+       const gchar* _tmp8_;
+       gint _tmp9_;
+       gint _tmp10_;
+       const gchar* _tmp18_;
+       gint _tmp19_;
+       gint _tmp20_;
+       gchar* _tmp28_;
+       GError * _inner_error_ = NULL;
+#line 316 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 316 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       g_return_val_if_fail (target != NULL, NULL);
+#line 316 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       g_return_val_if_fail (targetDebug != NULL, NULL);
+#line 318 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp0_ = target;
+#line 318 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp1_ = g_strdup (_tmp0_);
+#line 318 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _g_free0 (self->priv->target);
+#line 318 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       self->priv->target = _tmp1_;
+#line 319 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp2_ = targetDebug;
+#line 319 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp3_ = g_strdup (_tmp2_);
+#line 319 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _g_free0 (self->priv->targetDebug);
+#line 319 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       self->priv->targetDebug = _tmp3_;
+#line 321 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp4_ = self->files;
+#line 321 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp5_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp4_);
+#line 321 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp6_ = _tmp5_;
+#line 321 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       if (_tmp6_ < 1) {
+#line 1383 "Packer.c"
+               GError* _tmp7_;
+#line 322 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp7_ = g_error_new_literal (JSDOC_PACKER_ERROR, JSDOC_PACKER_ERROR_ArgumentError, "No Files loaded before pack() called");
+#line 322 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _inner_error_ = _tmp7_;
+#line 322 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               if (_inner_error_->domain == JSDOC_PACKER_ERROR) {
+#line 322 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       g_propagate_error (error, _inner_error_);
+#line 322 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       return NULL;
+#line 1395 "Packer.c"
+               } else {
+#line 322 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       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);
+#line 322 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       g_clear_error (&_inner_error_);
+#line 322 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       return NULL;
+#line 1403 "Packer.c"
+               }
+       }
+#line 324 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp8_ = self->priv->target;
+#line 324 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp9_ = strlen (_tmp8_);
+#line 324 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp10_ = _tmp9_;
+#line 324 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       if (_tmp10_ > 0) {
+#line 1414 "Packer.c"
+               GFileOutputStream* _tmp11_ = NULL;
+               const gchar* _tmp12_;
+               GFile* _tmp13_;
+               GFile* _tmp14_;
+               GFileOutputStream* _tmp15_;
+               GFileOutputStream* _tmp16_;
+               GFileOutputStream* _tmp17_;
+#line 325 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp12_ = self->priv->target;
+#line 325 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp13_ = g_file_new_for_path (_tmp12_);
+#line 325 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp14_ = _tmp13_;
+#line 325 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp15_ = g_file_replace (_tmp14_, NULL, FALSE, G_FILE_CREATE_NONE, NULL, &_inner_error_);
+#line 325 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp16_ = _tmp15_;
+#line 325 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _g_object_unref0 (_tmp14_);
+#line 325 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp11_ = _tmp16_;
+#line 325 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 325 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       if (_inner_error_->domain == JSDOC_PACKER_ERROR) {
+#line 325 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               g_propagate_error (error, _inner_error_);
+#line 325 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               return NULL;
+#line 1444 "Packer.c"
+                       } else {
+#line 325 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               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);
+#line 325 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               g_clear_error (&_inner_error_);
+#line 325 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               return NULL;
+#line 1452 "Packer.c"
+                       }
+               }
+#line 325 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp17_ = _tmp11_;
+#line 325 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp11_ = NULL;
+#line 325 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _g_object_unref0 (self->priv->targetStream);
+#line 325 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               self->priv->targetStream = _tmp17_;
+#line 324 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _g_object_unref0 (_tmp11_);
+#line 1465 "Packer.c"
+       }
+#line 327 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp18_ = self->priv->targetDebug;
+#line 327 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp19_ = strlen (_tmp18_);
+#line 327 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp20_ = _tmp19_;
+#line 327 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       if (_tmp20_ > 0) {
+#line 1475 "Packer.c"
+               GFileOutputStream* _tmp21_ = NULL;
+               const gchar* _tmp22_;
+               GFile* _tmp23_;
+               GFile* _tmp24_;
+               GFileOutputStream* _tmp25_;
+               GFileOutputStream* _tmp26_;
+               GFileOutputStream* _tmp27_;
+#line 328 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp22_ = self->priv->targetDebug;
+#line 328 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp23_ = g_file_new_for_path (_tmp22_);
+#line 328 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp24_ = _tmp23_;
+#line 328 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp25_ = g_file_replace (_tmp24_, NULL, FALSE, G_FILE_CREATE_NONE, NULL, &_inner_error_);
+#line 328 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp26_ = _tmp25_;
+#line 328 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _g_object_unref0 (_tmp24_);
+#line 328 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp21_ = _tmp26_;
+#line 328 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 328 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       if (_inner_error_->domain == JSDOC_PACKER_ERROR) {
+#line 328 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               g_propagate_error (error, _inner_error_);
+#line 328 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               return NULL;
+#line 1505 "Packer.c"
+                       } else {
+#line 328 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               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);
+#line 328 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               g_clear_error (&_inner_error_);
+#line 328 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               return NULL;
+#line 1513 "Packer.c"
+                       }
+               }
+#line 328 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp27_ = _tmp21_;
+#line 328 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp21_ = NULL;
+#line 328 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _g_object_unref0 (self->priv->targetDebugStream);
+#line 328 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               self->priv->targetDebugStream = _tmp27_;
+#line 327 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _g_object_unref0 (_tmp21_);
+#line 1526 "Packer.c"
+       }
+#line 330 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp28_ = jsdoc_packer_packAll (self);
+#line 330 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       result = _tmp28_;
+#line 330 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       return result;
+#line 1534 "Packer.c"
+}
+
+
+/**
+ * load a dependancy list -f option
+ * @param {String} srcfile sourcefile to parse
+ * 
+ */
+static gchar string_get (const gchar* self, glong index) {
+       gchar result = '\0';
+       glong _tmp0_;
+       gchar _tmp1_;
+#line 1110 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (self != NULL, '\0');
+#line 1111 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp0_ = index;
+#line 1111 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp1_ = ((gchar*) self)[_tmp0_];
+#line 1111 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       result = _tmp1_;
+#line 1111 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       return result;
+#line 1557 "Packer.c"
+}
+
+
+static gchar* string_strip (const gchar* self) {
+       gchar* result = NULL;
+       gchar* _result_ = NULL;
+       gchar* _tmp0_;
+       const gchar* _tmp1_;
+#line 1234 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 1235 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp0_ = g_strdup (self);
+#line 1235 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _result_ = _tmp0_;
+#line 1236 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp1_ = _result_;
+#line 1236 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       g_strstrip (_tmp1_);
+#line 1237 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       result = _result_;
+#line 1237 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       return result;
+#line 1580 "Packer.c"
+}
+
+
+static gchar* string_replace (const gchar* self, const gchar* old, const gchar* replacement) {
+       gchar* result = NULL;
+       gboolean _tmp0_ = FALSE;
+       gboolean _tmp1_ = FALSE;
+       GError * _inner_error_ = NULL;
+#line 1407 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 1407 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (old != NULL, NULL);
+#line 1407 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (replacement != NULL, NULL);
+#line 1408 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if ((*((gchar*) self)) == '\0') {
+#line 1408 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp1_ = TRUE;
+#line 1599 "Packer.c"
+       } else {
+               const gchar* _tmp2_;
+#line 1408 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp2_ = old;
+#line 1408 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp1_ = (*((gchar*) _tmp2_)) == '\0';
+#line 1606 "Packer.c"
+       }
+#line 1408 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if (_tmp1_) {
+#line 1408 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp0_ = TRUE;
+#line 1612 "Packer.c"
+       } else {
+               const gchar* _tmp3_;
+               const gchar* _tmp4_;
+#line 1408 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp3_ = old;
+#line 1408 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp4_ = replacement;
+#line 1408 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp0_ = g_strcmp0 (_tmp3_, _tmp4_) == 0;
+#line 1622 "Packer.c"
+       }
+#line 1408 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if (_tmp0_) {
+#line 1626 "Packer.c"
+               gchar* _tmp5_;
+#line 1409 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp5_ = g_strdup (self);
+#line 1409 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               result = _tmp5_;
+#line 1409 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               return result;
+#line 1634 "Packer.c"
+       }
+       {
+               GRegex* regex = NULL;
+               const gchar* _tmp6_;
+               gchar* _tmp7_;
+               gchar* _tmp8_;
+               GRegex* _tmp9_;
+               GRegex* _tmp10_;
+               gchar* _tmp11_ = NULL;
+               GRegex* _tmp12_;
+               const gchar* _tmp13_;
+               gchar* _tmp14_;
+               gchar* _tmp15_;
+#line 1412 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp6_ = old;
+#line 1412 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp7_ = g_regex_escape_string (_tmp6_, -1);
+#line 1412 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp8_ = _tmp7_;
+#line 1412 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp9_ = g_regex_new (_tmp8_, 0, 0, &_inner_error_);
+#line 1412 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp10_ = _tmp9_;
+#line 1412 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _g_free0 (_tmp8_);
+#line 1412 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               regex = _tmp10_;
+#line 1412 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1412 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       if (_inner_error_->domain == G_REGEX_ERROR) {
+#line 1666 "Packer.c"
+                               goto __catch1_g_regex_error;
+                       }
+#line 1412 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       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);
+#line 1412 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       g_clear_error (&_inner_error_);
+#line 1412 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       return NULL;
+#line 1675 "Packer.c"
+               }
+#line 1413 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp12_ = regex;
+#line 1413 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp13_ = replacement;
+#line 1413 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp14_ = g_regex_replace_literal (_tmp12_, self, (gssize) -1, 0, _tmp13_, 0, &_inner_error_);
+#line 1413 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp11_ = _tmp14_;
+#line 1413 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1413 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       _g_regex_unref0 (regex);
+#line 1413 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       if (_inner_error_->domain == G_REGEX_ERROR) {
+#line 1691 "Packer.c"
+                               goto __catch1_g_regex_error;
+                       }
+#line 1413 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       _g_regex_unref0 (regex);
+#line 1413 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       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);
+#line 1413 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       g_clear_error (&_inner_error_);
+#line 1413 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       return NULL;
+#line 1702 "Packer.c"
+               }
+#line 1413 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp15_ = _tmp11_;
+#line 1413 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp11_ = NULL;
+#line 1413 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               result = _tmp15_;
+#line 1413 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _g_free0 (_tmp11_);
+#line 1413 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _g_regex_unref0 (regex);
+#line 1413 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               return result;
+#line 1716 "Packer.c"
+       }
+       goto __finally1;
+       __catch1_g_regex_error:
+       {
+               GError* e = NULL;
+#line 1411 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               e = _inner_error_;
+#line 1411 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _inner_error_ = NULL;
+#line 1415 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               g_assert_not_reached ();
+#line 1411 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _g_error_free0 (e);
+#line 1730 "Packer.c"
+       }
+       __finally1:
+#line 1411 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1411 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               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);
+#line 1411 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               g_clear_error (&_inner_error_);
+#line 1411 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               return NULL;
+#line 1741 "Packer.c"
+       }
+}
+
+
+void jsdoc_packer_loadSourceIndex (JSDOCPacker* self, const gchar* in_srcfile) {
+       gchar* srcfile = NULL;
+       const gchar* _tmp0_;
+       gchar* _tmp1_;
+       const gchar* _tmp2_;
+       gchar _tmp3_;
+       gchar* str = NULL;
+       const gchar* _tmp8_;
+       gchar* _tmp9_ = NULL;
+       gchar** lines = NULL;
+       const gchar* _tmp10_;
+       gchar** _tmp11_;
+       gchar** _tmp12_;
+       gint lines_length1;
+       gint _lines_size_;
+       GError * _inner_error_ = NULL;
+#line 343 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       g_return_if_fail (self != NULL);
+#line 343 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       g_return_if_fail (in_srcfile != NULL);
+#line 346 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp0_ = in_srcfile;
+#line 346 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp1_ = g_strdup (_tmp0_);
+#line 346 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       srcfile = _tmp1_;
+#line 347 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp2_ = srcfile;
+#line 347 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp3_ = string_get (_tmp2_, (glong) 0);
+#line 347 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       if (_tmp3_ != '/') {
+#line 1778 "Packer.c"
+               JSDOCPackerRun* _tmp4_;
+               const gchar* _tmp5_;
+               const gchar* _tmp6_;
+               gchar* _tmp7_;
+#line 348 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp4_ = self->config;
+#line 348 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp5_ = _tmp4_->opt_real_basedir;
+#line 348 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp6_ = in_srcfile;
+#line 348 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp7_ = g_strconcat (_tmp5_, _tmp6_, NULL);
+#line 348 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _g_free0 (srcfile);
+#line 348 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               srcfile = _tmp7_;
+#line 1795 "Packer.c"
+       }
+#line 351 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp8_ = srcfile;
+#line 351 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       g_file_get_contents (_tmp8_, &_tmp9_, NULL, &_inner_error_);
+#line 351 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _g_free0 (str);
+#line 351 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       str = _tmp9_;
+#line 351 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 351 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _g_free0 (str);
+#line 351 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _g_free0 (srcfile);
+#line 351 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               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);
+#line 351 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               g_clear_error (&_inner_error_);
+#line 351 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               return;
+#line 1817 "Packer.c"
+       }
+#line 353 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp10_ = str;
+#line 353 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp12_ = _tmp11_ = g_strsplit (_tmp10_, "\n", 0);
+#line 353 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       lines = _tmp12_;
+#line 353 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       lines_length1 = _vala_array_length (_tmp11_);
+#line 353 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _lines_size_ = lines_length1;
+#line 1829 "Packer.c"
+       {
+               gint i = 0;
+#line 354 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               i = 0;
+#line 1834 "Packer.c"
+               {
+                       gboolean _tmp13_ = FALSE;
+#line 354 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       _tmp13_ = TRUE;
+#line 354 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       while (TRUE) {
+#line 1841 "Packer.c"
+                               gint _tmp15_;
+                               gchar** _tmp16_;
+                               gint _tmp16__length1;
+                               gchar* f = NULL;
+                               gchar** _tmp17_;
+                               gint _tmp17__length1;
+                               gint _tmp18_;
+                               const gchar* _tmp19_;
+                               gchar* _tmp20_;
+                               gboolean _tmp21_ = FALSE;
+                               gboolean _tmp22_ = FALSE;
+                               const gchar* _tmp23_;
+                               gint _tmp24_;
+                               gint _tmp25_;
+                               const gchar* _tmp30_;
+                               gboolean _tmp31_;
+                               gchar* add = NULL;
+                               const gchar* _tmp34_;
+                               gchar* _tmp35_;
+                               gchar* _tmp36_;
+                               gchar* _tmp37_;
+                               gchar* _tmp38_;
+                               const gchar* _tmp39_;
+                               gchar _tmp40_;
+                               GeeArrayList* _tmp45_;
+                               const gchar* _tmp46_;
+                               gboolean _tmp47_;
+                               GeeArrayList* _tmp48_;
+                               const gchar* _tmp49_;
+#line 354 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               if (!_tmp13_) {
+#line 1873 "Packer.c"
+                                       gint _tmp14_;
+#line 354 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       _tmp14_ = i;
+#line 354 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       i = _tmp14_ + 1;
+#line 1879 "Packer.c"
+                               }
+#line 354 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp13_ = FALSE;
+#line 354 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp15_ = i;
+#line 354 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp16_ = lines;
+#line 354 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp16__length1 = lines_length1;
+#line 354 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               if (!(_tmp15_ < _tmp16__length1)) {
+#line 354 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       break;
+#line 1893 "Packer.c"
+                               }
+#line 356 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp17_ = lines;
+#line 356 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp17__length1 = lines_length1;
+#line 356 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp18_ = i;
+#line 356 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp19_ = _tmp17_[_tmp18_];
+#line 356 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp20_ = string_strip (_tmp19_);
+#line 356 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               f = _tmp20_;
+#line 357 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp23_ = f;
+#line 357 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp24_ = strlen (_tmp23_);
+#line 357 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp25_ = _tmp24_;
+#line 357 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               if (_tmp25_ < 1) {
+#line 357 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       _tmp22_ = TRUE;
+#line 1917 "Packer.c"
+                               } else {
+                                       const gchar* _tmp26_;
+                                       gboolean _tmp27_;
+#line 358 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       _tmp26_ = f;
+#line 358 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       _tmp27_ = g_regex_match_simple ("^/", _tmp26_, 0, 0);
+#line 358 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       _tmp22_ = _tmp27_;
+#line 1927 "Packer.c"
+                               }
+#line 357 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               if (_tmp22_) {
+#line 357 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       _tmp21_ = TRUE;
+#line 1933 "Packer.c"
+                               } else {
+                                       const gchar* _tmp28_;
+                                       gboolean _tmp29_;
+#line 359 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       _tmp28_ = f;
+#line 359 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       _tmp29_ = g_regex_match_simple ("[a-zA-Z]+", _tmp28_, 0, 0);
+#line 359 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       _tmp21_ = !_tmp29_;
+#line 1943 "Packer.c"
+                               }
+#line 357 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               if (_tmp21_) {
+#line 361 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       _g_free0 (f);
+#line 361 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       continue;
+#line 1951 "Packer.c"
+                               }
+#line 364 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp30_ = f;
+#line 364 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp31_ = g_regex_match_simple ("\\.js$", _tmp30_, 0, 0);
+#line 364 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               if (_tmp31_) {
+#line 1959 "Packer.c"
+                                       GeeArrayList* _tmp32_;
+                                       const gchar* _tmp33_;
+#line 365 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       _tmp32_ = self->files;
+#line 365 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       _tmp33_ = f;
+#line 365 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       gee_abstract_collection_add ((GeeAbstractCollection*) _tmp32_, _tmp33_);
+#line 367 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       _g_free0 (f);
+#line 367 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       continue;
+#line 1972 "Packer.c"
+                               }
+#line 373 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp34_ = f;
+#line 373 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp35_ = string_replace (_tmp34_, ".", "/");
+#line 373 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp36_ = _tmp35_;
+#line 373 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp37_ = g_strconcat (_tmp36_, ".js", NULL);
+#line 373 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp38_ = _tmp37_;
+#line 373 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _g_free0 (_tmp36_);
+#line 373 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               add = _tmp38_;
+#line 375 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp39_ = add;
+#line 375 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp40_ = string_get (_tmp39_, (glong) 0);
+#line 375 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               if (_tmp40_ != '/') {
+#line 1994 "Packer.c"
+                                       JSDOCPackerRun* _tmp41_;
+                                       const gchar* _tmp42_;
+                                       const gchar* _tmp43_;
+                                       gchar* _tmp44_;
+#line 376 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       _tmp41_ = self->config;
+#line 376 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       _tmp42_ = _tmp41_->opt_real_basedir;
+#line 376 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       _tmp43_ = add;
+#line 376 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       _tmp44_ = g_strconcat (_tmp42_, _tmp43_, NULL);
+#line 376 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       _g_free0 (add);
+#line 376 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       add = _tmp44_;
+#line 2011 "Packer.c"
+                               }
+#line 379 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp45_ = self->files;
+#line 379 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp46_ = add;
+#line 379 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp47_ = gee_abstract_collection_contains ((GeeAbstractCollection*) _tmp45_, _tmp46_);
+#line 379 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               if (_tmp47_) {
+#line 380 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       _g_free0 (add);
+#line 380 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       _g_free0 (f);
+#line 380 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       continue;
+#line 2027 "Packer.c"
+                               }
+#line 385 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp48_ = self->files;
+#line 385 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp49_ = add;
+#line 385 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               gee_abstract_collection_add ((GeeAbstractCollection*) _tmp48_, _tmp49_);
+#line 354 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _g_free0 (add);
+#line 354 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _g_free0 (f);
+#line 2039 "Packer.c"
+                       }
+               }
+       }
+#line 343 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       lines = (_vala_array_free (lines, lines_length1, (GDestroyNotify) g_free), NULL);
+#line 343 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _g_free0 (str);
+#line 343 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _g_free0 (srcfile);
+#line 2049 "Packer.c"
+}
+
+
+static guint8* string_get_data (const gchar* self, int* result_length1) {
+       guint8* result;
+       guint8* res = NULL;
+       gint res_length1;
+       gint _res_size_;
+       gint _tmp0_;
+       gint _tmp1_;
+       gint _tmp2_;
+       guint8* _tmp3_;
+       gint _tmp3__length1;
+       guint8* _tmp4_;
+       gint _tmp4__length1;
+#line 1428 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 1429 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       res = (guint8*) self;
+#line 1429 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       res_length1 = -1;
+#line 1429 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _res_size_ = res_length1;
+#line 1430 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp0_ = strlen (self);
+#line 1430 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp1_ = _tmp0_;
+#line 1430 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       res_length1 = (gint) _tmp1_;
+#line 1430 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp2_ = res_length1;
+#line 1431 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp3_ = res;
+#line 1431 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp3__length1 = res_length1;
+#line 1431 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp4_ = _tmp3_;
+#line 1431 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp4__length1 = _tmp3__length1;
+#line 1431 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if (result_length1) {
+#line 1431 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               *result_length1 = _tmp4__length1;
+#line 2093 "Packer.c"
+       }
+#line 1431 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       result = _tmp4_;
+#line 1431 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       return result;
+#line 2099 "Packer.c"
+}
+
+
+static glong string_strnlen (gchar* str, glong maxlen) {
+       glong result = 0L;
+       gchar* end = NULL;
+       gchar* _tmp0_;
+       glong _tmp1_;
+       gchar* _tmp2_;
+       gchar* _tmp3_;
+#line 1322 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp0_ = str;
+#line 1322 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp1_ = maxlen;
+#line 1322 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp2_ = memchr (_tmp0_, 0, (gsize) _tmp1_);
+#line 1322 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       end = _tmp2_;
+#line 1323 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp3_ = end;
+#line 1323 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if (_tmp3_ == NULL) {
+#line 2122 "Packer.c"
+               glong _tmp4_;
+#line 1324 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp4_ = maxlen;
+#line 1324 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               result = _tmp4_;
+#line 1324 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               return result;
+#line 2130 "Packer.c"
+       } else {
+               gchar* _tmp5_;
+               gchar* _tmp6_;
+#line 1326 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp5_ = end;
+#line 1326 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp6_ = str;
+#line 1326 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               result = (glong) (_tmp5_ - _tmp6_);
+#line 1326 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               return result;
+#line 2142 "Packer.c"
+       }
+}
+
+
+static gchar* string_substring (const gchar* self, glong offset, glong len) {
+       gchar* result = NULL;
+       glong string_length = 0L;
+       gboolean _tmp0_ = FALSE;
+       glong _tmp1_;
+       glong _tmp8_;
+       glong _tmp14_;
+       glong _tmp17_;
+       glong _tmp18_;
+       glong _tmp19_;
+       glong _tmp20_;
+       glong _tmp21_;
+       gchar* _tmp22_;
+#line 1333 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 1335 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp1_ = offset;
+#line 1335 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if (_tmp1_ >= ((glong) 0)) {
+#line 2166 "Packer.c"
+               glong _tmp2_;
+#line 1335 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp2_ = len;
+#line 1335 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp0_ = _tmp2_ >= ((glong) 0);
+#line 2172 "Packer.c"
+       } else {
+#line 1335 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp0_ = FALSE;
+#line 2176 "Packer.c"
+       }
+#line 1335 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if (_tmp0_) {
+#line 2180 "Packer.c"
+               glong _tmp3_;
+               glong _tmp4_;
+               glong _tmp5_;
+#line 1337 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp3_ = offset;
+#line 1337 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp4_ = len;
+#line 1337 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp5_ = string_strnlen ((gchar*) self, _tmp3_ + _tmp4_);
+#line 1337 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               string_length = _tmp5_;
+#line 2192 "Packer.c"
+       } else {
+               gint _tmp6_;
+               gint _tmp7_;
+#line 1339 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp6_ = strlen (self);
+#line 1339 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp7_ = _tmp6_;
+#line 1339 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               string_length = (glong) _tmp7_;
+#line 2202 "Packer.c"
+       }
+#line 1342 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp8_ = offset;
+#line 1342 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if (_tmp8_ < ((glong) 0)) {
+#line 2208 "Packer.c"
+               glong _tmp9_;
+               glong _tmp10_;
+               glong _tmp11_;
+#line 1343 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp9_ = string_length;
+#line 1343 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp10_ = offset;
+#line 1343 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               offset = _tmp9_ + _tmp10_;
+#line 1344 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp11_ = offset;
+#line 1344 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               g_return_val_if_fail (_tmp11_ >= ((glong) 0), NULL);
+#line 2222 "Packer.c"
+       } else {
+               glong _tmp12_;
+               glong _tmp13_;
+#line 1346 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp12_ = offset;
+#line 1346 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp13_ = string_length;
+#line 1346 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               g_return_val_if_fail (_tmp12_ <= _tmp13_, NULL);
+#line 2232 "Packer.c"
+       }
+#line 1348 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp14_ = len;
+#line 1348 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if (_tmp14_ < ((glong) 0)) {
+#line 2238 "Packer.c"
+               glong _tmp15_;
+               glong _tmp16_;
+#line 1349 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp15_ = string_length;
+#line 1349 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp16_ = offset;
+#line 1349 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               len = _tmp15_ - _tmp16_;
+#line 2247 "Packer.c"
+       }
+#line 1351 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp17_ = offset;
+#line 1351 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp18_ = len;
+#line 1351 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp19_ = string_length;
+#line 1351 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       g_return_val_if_fail ((_tmp17_ + _tmp18_) <= _tmp19_, NULL);
+#line 1352 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp20_ = offset;
+#line 1352 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp21_ = len;
+#line 1352 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp22_ = g_strndup (((gchar*) self) + _tmp20_, (gsize) _tmp21_);
+#line 1352 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       result = _tmp22_;
+#line 1352 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       return result;
+#line 2267 "Packer.c"
+}
+
+
+static gchar* jsdoc_packer_packAll (JSDOCPacker* self) {
+       gchar* result = NULL;
+       const gchar* _tmp0_;
+       gint _tmp1_;
+       gint _tmp2_;
+       GFileOutputStream* _tmp6_;
+       gchar* tmpDir = NULL;
+       gchar* _tmp10_;
+       gboolean _tmp80_ = FALSE;
+       JSDOCPackerRun* _tmp81_;
+       gboolean _tmp82_;
+       JSDOCPackerRun* _tmp177_;
+       gboolean _tmp178_;
+       const gchar* _tmp180_;
+       gint _tmp181_;
+       gint _tmp182_;
+       const gchar* _tmp186_;
+       gint _tmp187_;
+       gint _tmp188_;
+       const gchar* _tmp190_;
+       gint _tmp191_;
+       gint _tmp192_;
+       gchar* _tmp195_;
+       GError * _inner_error_ = NULL;
+#line 391 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 396 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp0_ = self->priv->target;
+#line 396 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp1_ = strlen (_tmp0_);
+#line 396 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp2_ = _tmp1_;
+#line 396 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       if (_tmp2_ > 0) {
+#line 2305 "Packer.c"
+               GFileOutputStream* _tmp3_;
+               guint8* _tmp4_;
+               gint _tmp4__length1;
+               guint8* _tmp5_;
+               gint _tmp5__length1;
+#line 397 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp3_ = self->priv->targetStream;
+#line 397 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp4_ = string_get_data ("", &_tmp4__length1);
+#line 397 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp5_ = _tmp4_;
+#line 397 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp5__length1 = _tmp4__length1;
+#line 397 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               g_output_stream_write ((GOutputStream*) _tmp3_, _tmp5_, (gsize) _tmp5__length1, NULL, &_inner_error_);
+#line 397 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 397 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       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);
+#line 397 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       g_clear_error (&_inner_error_);
+#line 397 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       return NULL;
+#line 2329 "Packer.c"
+               }
+       }
+#line 400 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp6_ = self->priv->targetDebugStream;
+#line 400 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       if (_tmp6_ != NULL) {
+#line 2336 "Packer.c"
+               GFileOutputStream* _tmp7_;
+               guint8* _tmp8_;
+               gint _tmp8__length1;
+               guint8* _tmp9_;
+               gint _tmp9__length1;
+#line 401 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp7_ = self->priv->targetDebugStream;
+#line 401 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp8_ = string_get_data ("", &_tmp8__length1);
+#line 401 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp9_ = _tmp8_;
+#line 401 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp9__length1 = _tmp8__length1;
+#line 401 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               g_output_stream_write ((GOutputStream*) _tmp7_, _tmp9_, (gsize) _tmp9__length1, NULL, &_inner_error_);
+#line 401 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 401 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       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);
+#line 401 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       g_clear_error (&_inner_error_);
+#line 401 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       return NULL;
+#line 2360 "Packer.c"
+               }
+       }
+#line 405 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp10_ = g_dir_make_tmp ("roojspacker_XXXXXX", &_inner_error_);
+#line 405 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       tmpDir = _tmp10_;
+#line 405 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 405 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               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);
+#line 405 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               g_clear_error (&_inner_error_);
+#line 405 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               return NULL;
+#line 2375 "Packer.c"
+       }
+       {
+               GeeArrayList* _file_list = NULL;
+               GeeArrayList* _tmp11_;
+               GeeArrayList* _tmp12_;
+               gint _file_size = 0;
+               GeeArrayList* _tmp13_;
+               gint _tmp14_;
+               gint _tmp15_;
+               gint _file_index = 0;
+#line 407 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp11_ = self->files;
+#line 407 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp12_ = _g_object_ref0 (_tmp11_);
+#line 407 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _file_list = _tmp12_;
+#line 407 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp13_ = _file_list;
+#line 407 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp14_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp13_);
+#line 407 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp15_ = _tmp14_;
+#line 407 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _file_size = _tmp15_;
+#line 407 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _file_index = -1;
+#line 407 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               while (TRUE) {
+#line 2404 "Packer.c"
+                       gint _tmp16_;
+                       gint _tmp17_;
+                       gint _tmp18_;
+                       gchar* file = NULL;
+                       GeeArrayList* _tmp19_;
+                       gint _tmp20_;
+                       gpointer _tmp21_;
+                       const gchar* _tmp22_;
+                       gboolean _tmp23_ = FALSE;
+                       const gchar* _tmp24_;
+                       gboolean _tmp25_;
+                       gboolean loaded_string = FALSE;
+                       gchar* file_contents = NULL;
+                       gchar* _tmp29_;
+                       GFileOutputStream* _tmp30_;
+                       gchar* minfile = NULL;
+                       const gchar* _tmp37_;
+                       gchar* _tmp38_;
+                       gchar* _tmp39_;
+                       const gchar* _tmp40_;
+                       gchar* _tmp41_;
+                       gchar* _tmp42_;
+                       gchar* _tmp43_;
+                       gchar* _tmp44_;
+                       const gchar* _tmp45_;
+                       gboolean _tmp46_;
+                       const gchar* _tmp65_;
+                       gboolean _tmp66_ = FALSE;
+                       JSDOCPackerRun* _tmp67_;
+                       gboolean _tmp68_;
+                       gboolean _tmp72_;
+                       const gchar* _tmp75_;
+                       const gchar* _tmp76_;
+                       const gchar* _tmp77_;
+                       gchar* _tmp78_;
+                       gchar* _tmp79_;
+#line 407 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       _tmp16_ = _file_index;
+#line 407 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       _file_index = _tmp16_ + 1;
+#line 407 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       _tmp17_ = _file_index;
+#line 407 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       _tmp18_ = _file_size;
+#line 407 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       if (!(_tmp17_ < _tmp18_)) {
+#line 407 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               break;
+#line 2453 "Packer.c"
+                       }
+#line 407 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       _tmp19_ = _file_list;
+#line 407 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       _tmp20_ = _file_index;
+#line 407 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       _tmp21_ = gee_abstract_list_get ((GeeAbstractList*) _tmp19_, _tmp20_);
+#line 407 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       file = (gchar*) _tmp21_;
+#line 409 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       _tmp22_ = file;
+#line 409 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       g_print ("reading %s\n", _tmp22_);
+#line 411 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       _tmp24_ = file;
+#line 411 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       _tmp25_ = g_file_test (_tmp24_, G_FILE_TEST_EXISTS);
+#line 411 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       if (!_tmp25_) {
+#line 411 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp23_ = TRUE;
+#line 2475 "Packer.c"
+                       } else {
+                               const gchar* _tmp26_;
+                               gboolean _tmp27_;
+#line 411 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp26_ = file;
+#line 411 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp27_ = g_file_test (_tmp26_, G_FILE_TEST_IS_DIR);
+#line 411 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp23_ = _tmp27_;
+#line 2485 "Packer.c"
+                       }
+#line 411 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       if (_tmp23_) {
+#line 2489 "Packer.c"
+                               const gchar* _tmp28_;
+#line 412 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp28_ = file;
+#line 412 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               g_print ("SKIP (is not a file) %s\n ", _tmp28_);
+#line 413 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _g_free0 (file);
+#line 413 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               continue;
+#line 2499 "Packer.c"
+                       }
+#line 416 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       loaded_string = FALSE;
+#line 417 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       _tmp29_ = g_strdup ("");
+#line 417 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       file_contents = _tmp29_;
+#line 420 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       _tmp30_ = self->priv->targetDebugStream;
+#line 420 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       if (_tmp30_ != NULL) {
+#line 2511 "Packer.c"
+                               const gchar* _tmp31_;
+                               gchar* _tmp32_ = NULL;
+                               GFileOutputStream* _tmp33_;
+                               const gchar* _tmp34_;
+                               guint8* _tmp35_;
+                               gint _tmp35__length1;
+                               guint8* _tmp36_;
+                               gint _tmp36__length1;
+#line 422 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp31_ = file;
+#line 422 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               g_file_get_contents (_tmp31_, &_tmp32_, NULL, &_inner_error_);
+#line 422 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _g_free0 (file_contents);
+#line 422 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               file_contents = _tmp32_;
+#line 422 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 422 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       _g_free0 (file_contents);
+#line 422 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       _g_free0 (file);
+#line 422 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       _g_object_unref0 (_file_list);
+#line 422 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       _g_free0 (tmpDir);
+#line 422 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       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);
+#line 422 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       g_clear_error (&_inner_error_);
+#line 422 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       return NULL;
+#line 2544 "Packer.c"
+                               }
+#line 423 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp33_ = self->priv->targetDebugStream;
+#line 423 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp34_ = file_contents;
+#line 423 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp35_ = string_get_data (_tmp34_, &_tmp35__length1);
+#line 423 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp36_ = _tmp35_;
+#line 423 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp36__length1 = _tmp35__length1;
+#line 423 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               g_output_stream_write ((GOutputStream*) _tmp33_, _tmp36_, (gsize) _tmp36__length1, NULL, &_inner_error_);
+#line 423 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 423 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       _g_free0 (file_contents);
+#line 423 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       _g_free0 (file);
+#line 423 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       _g_object_unref0 (_file_list);
+#line 423 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       _g_free0 (tmpDir);
+#line 423 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       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);
+#line 423 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       g_clear_error (&_inner_error_);
+#line 423 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       return NULL;
+#line 2574 "Packer.c"
+                               }
+#line 424 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               loaded_string = FALSE;
+#line 2578 "Packer.c"
+                       }
+#line 433 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       _tmp37_ = tmpDir;
+#line 433 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       _tmp38_ = g_strconcat (_tmp37_, "/", NULL);
+#line 433 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       _tmp39_ = _tmp38_;
+#line 433 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       _tmp40_ = file;
+#line 433 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       _tmp41_ = string_replace (_tmp40_, "/", ".");
+#line 433 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       _tmp42_ = _tmp41_;
+#line 433 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       _tmp43_ = g_strconcat (_tmp39_, _tmp42_, NULL);
+#line 433 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       _tmp44_ = _tmp43_;
+#line 433 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       _g_free0 (_tmp42_);
+#line 433 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       _g_free0 (_tmp39_);
+#line 433 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       minfile = _tmp44_;
+#line 440 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       _tmp45_ = minfile;
+#line 440 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       _tmp46_ = g_file_test (_tmp45_, G_FILE_TEST_EXISTS);
+#line 440 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       if (_tmp46_) {
+#line 2608 "Packer.c"
+                               GFileInfo* _tmp47_ = NULL;
+                               const gchar* _tmp48_;
+                               GFile* _tmp49_;
+                               GFile* _tmp50_;
+                               GFileInfo* _tmp51_;
+                               GFileInfo* _tmp52_;
+                               GTimeVal otv = {0};
+                               GTimeVal _tmp53_ = {0};
+                               GFileInfo* _tmp54_ = NULL;
+                               const gchar* _tmp55_;
+                               GFile* _tmp56_;
+                               GFile* _tmp57_;
+                               GFileInfo* _tmp58_;
+                               GFileInfo* _tmp59_;
+                               GTimeVal mtv = {0};
+                               GTimeVal _tmp60_ = {0};
+                               GTimeVal _tmp61_;
+                               glong _tmp62_;
+                               GTimeVal _tmp63_;
+                               glong _tmp64_;
+#line 442 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp48_ = file;
+#line 442 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp49_ = g_file_new_for_path (_tmp48_);
+#line 442 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp50_ = _tmp49_;
+#line 442 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp51_ = g_file_query_info (_tmp50_, G_FILE_ATTRIBUTE_TIME_MODIFIED, 0, NULL, &_inner_error_);
+#line 442 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp52_ = _tmp51_;
+#line 442 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _g_object_unref0 (_tmp50_);
+#line 442 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp47_ = _tmp52_;
+#line 442 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 442 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       _g_free0 (minfile);
+#line 442 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       _g_free0 (file_contents);
+#line 442 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       _g_free0 (file);
+#line 442 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       _g_object_unref0 (_file_list);
+#line 442 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       _g_free0 (tmpDir);
+#line 442 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       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);
+#line 442 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       g_clear_error (&_inner_error_);
+#line 442 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       return NULL;
+#line 2661 "Packer.c"
+                               }
+#line 442 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               g_file_info_get_modification_time (_tmp47_, &_tmp53_);
+#line 442 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               otv = _tmp53_;
+#line 443 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp55_ = minfile;
+#line 443 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp56_ = g_file_new_for_path (_tmp55_);
+#line 443 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp57_ = _tmp56_;
+#line 443 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp58_ = g_file_query_info (_tmp57_, G_FILE_ATTRIBUTE_TIME_MODIFIED, 0, NULL, &_inner_error_);
+#line 443 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp59_ = _tmp58_;
+#line 443 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _g_object_unref0 (_tmp57_);
+#line 443 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp54_ = _tmp59_;
+#line 443 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 443 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       _g_object_unref0 (_tmp47_);
+#line 443 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       _g_free0 (minfile);
+#line 443 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       _g_free0 (file_contents);
+#line 443 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       _g_free0 (file);
+#line 443 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       _g_object_unref0 (_file_list);
+#line 443 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       _g_free0 (tmpDir);
+#line 443 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       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);
+#line 443 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       g_clear_error (&_inner_error_);
+#line 443 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       return NULL;
+#line 2701 "Packer.c"
+                               }
+#line 443 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               g_file_info_get_modification_time (_tmp54_, &_tmp60_);
+#line 443 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               mtv = _tmp60_;
+#line 447 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp61_ = mtv;
+#line 447 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp62_ = _tmp61_.tv_usec;
+#line 447 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp63_ = otv;
+#line 447 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp64_ = _tmp63_.tv_usec;
+#line 447 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               if (_tmp62_ > _tmp64_) {
+#line 448 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       _g_object_unref0 (_tmp54_);
+#line 448 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       _g_object_unref0 (_tmp47_);
+#line 448 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       _g_free0 (minfile);
+#line 448 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       _g_free0 (file_contents);
+#line 448 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       _g_free0 (file);
+#line 448 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       continue;
+#line 2729 "Packer.c"
+                               }
+#line 440 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _g_object_unref0 (_tmp54_);
+#line 440 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _g_object_unref0 (_tmp47_);
+#line 2735 "Packer.c"
+                       }
+#line 454 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       _tmp65_ = minfile;
+#line 454 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       g_print ("COMPRESSING to %s\n", _tmp65_);
+#line 456 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       _tmp67_ = self->config;
+#line 456 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       _tmp68_ = _tmp67_->opt_clean_cache;
+#line 456 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       if (_tmp68_) {
+#line 2747 "Packer.c"
+                               const gchar* _tmp69_;
+                               gboolean _tmp70_;
+#line 456 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp69_ = minfile;
+#line 456 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp70_ = g_file_test (_tmp69_, G_FILE_TEST_EXISTS);
+#line 456 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp66_ = _tmp70_;
+#line 2756 "Packer.c"
+                       } else {
+#line 456 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp66_ = FALSE;
+#line 2760 "Packer.c"
+                       }
+#line 456 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       if (_tmp66_) {
+#line 2764 "Packer.c"
+                               const gchar* _tmp71_;
+#line 457 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp71_ = minfile;
+#line 457 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               g_remove (_tmp71_);
+#line 2770 "Packer.c"
+                       }
+#line 459 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       _tmp72_ = loaded_string;
+#line 459 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       if (!_tmp72_) {
+#line 2776 "Packer.c"
+                               const gchar* _tmp73_;
+                               gchar* _tmp74_ = NULL;
+#line 460 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp73_ = file;
+#line 460 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               g_file_get_contents (_tmp73_, &_tmp74_, NULL, &_inner_error_);
+#line 460 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _g_free0 (file_contents);
+#line 460 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               file_contents = _tmp74_;
+#line 460 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 460 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       _g_free0 (minfile);
+#line 460 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       _g_free0 (file_contents);
+#line 460 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       _g_free0 (file);
+#line 460 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       _g_object_unref0 (_file_list);
+#line 460 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       _g_free0 (tmpDir);
+#line 460 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       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);
+#line 460 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       g_clear_error (&_inner_error_);
+#line 460 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       return NULL;
+#line 2805 "Packer.c"
+                               }
+                       }
+#line 463 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       _tmp75_ = file_contents;
+#line 463 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       _tmp76_ = file;
+#line 463 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       _tmp77_ = minfile;
+#line 463 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       _tmp78_ = jsdoc_packer_packFile (self, _tmp75_, _tmp76_, _tmp77_);
+#line 463 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       _tmp79_ = _tmp78_;
+#line 463 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       _g_free0 (_tmp79_);
+#line 407 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       _g_free0 (minfile);
+#line 407 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       _g_free0 (file_contents);
+#line 407 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       _g_free0 (file);
+#line 2826 "Packer.c"
+               }
+#line 407 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _g_object_unref0 (_file_list);
+#line 2830 "Packer.c"
+       }
+#line 471 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       jsdoc_packer_dumpErrors (self, JSDOC_PACKER_RESULT_TYPE_warn);
+#line 472 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       jsdoc_packer_dumpErrors (self, JSDOC_PACKER_RESULT_TYPE_err);
+#line 477 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp81_ = self->config;
+#line 477 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp82_ = _tmp81_->opt_dump_tokens;
+#line 477 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       if (_tmp82_) {
+#line 477 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp80_ = TRUE;
+#line 2844 "Packer.c"
+       } else {
+               gboolean _tmp83_;
+#line 477 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp83_ = jsdoc_packer_hasErrors (self, "");
+#line 477 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp80_ = _tmp83_;
+#line 2851 "Packer.c"
+       }
+#line 477 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       if (_tmp80_) {
+#line 479 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               exit (0);
+#line 2857 "Packer.c"
+       }
+#line 481 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       g_print ("MERGING SOURCE\n");
+#line 2861 "Packer.c"
+       {
+               gint i = 0;
+#line 483 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               i = 0;
+#line 2866 "Packer.c"
+               {
+                       gboolean _tmp84_ = FALSE;
+#line 483 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       _tmp84_ = TRUE;
+#line 483 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       while (TRUE) {
+#line 2873 "Packer.c"
+                               gint _tmp86_;
+                               GeeArrayList* _tmp87_;
+                               gint _tmp88_;
+                               gint _tmp89_;
+                               gchar* file = NULL;
+                               GeeArrayList* _tmp90_;
+                               gint _tmp91_;
+                               gpointer _tmp92_;
+                               gchar* minfile = NULL;
+                               const gchar* _tmp93_;
+                               gchar* _tmp94_;
+                               gchar* _tmp95_;
+                               const gchar* _tmp96_;
+                               gchar* _tmp97_;
+                               gchar* _tmp98_;
+                               gchar* _tmp99_;
+                               gchar* _tmp100_;
+                               const gchar* _tmp101_;
+                               gboolean _tmp102_;
+                               gchar* str = NULL;
+                               const gchar* _tmp104_;
+                               gchar* _tmp105_ = NULL;
+                               const gchar* _tmp106_;
+                               const gchar* _tmp107_;
+                               gint _tmp108_;
+                               gint _tmp109_;
+                               JSDOCPackerRun* _tmp174_;
+                               gboolean _tmp175_;
+#line 483 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               if (!_tmp84_) {
+#line 2904 "Packer.c"
+                                       gint _tmp85_;
+#line 483 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       _tmp85_ = i;
+#line 483 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       i = _tmp85_ + 1;
+#line 2910 "Packer.c"
+                               }
+#line 483 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp84_ = FALSE;
+#line 483 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp86_ = i;
+#line 483 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp87_ = self->files;
+#line 483 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp88_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp87_);
+#line 483 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp89_ = _tmp88_;
+#line 483 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               if (!(_tmp86_ < _tmp89_)) {
+#line 483 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       break;
+#line 2926 "Packer.c"
+                               }
+#line 484 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp90_ = self->files;
+#line 484 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp91_ = i;
+#line 484 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp92_ = gee_abstract_list_get ((GeeAbstractList*) _tmp90_, _tmp91_);
+#line 484 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               file = (gchar*) _tmp92_;
+#line 485 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp93_ = tmpDir;
+#line 485 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp94_ = g_strconcat (_tmp93_, "/", NULL);
+#line 485 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp95_ = _tmp94_;
+#line 485 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp96_ = file;
+#line 485 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp97_ = string_replace (_tmp96_, "/", ".");
+#line 485 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp98_ = _tmp97_;
+#line 485 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp99_ = g_strconcat (_tmp95_, _tmp98_, NULL);
+#line 485 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp100_ = _tmp99_;
+#line 485 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _g_free0 (_tmp98_);
+#line 485 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _g_free0 (_tmp95_);
+#line 485 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               minfile = _tmp100_;
+#line 488 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp101_ = minfile;
+#line 488 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp102_ = g_file_test (_tmp101_, G_FILE_TEST_EXISTS);
+#line 488 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               if (!_tmp102_) {
+#line 2964 "Packer.c"
+                                       const gchar* _tmp103_;
+#line 489 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       _tmp103_ = minfile;
+#line 489 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       g_print ("skipping source %s - does not exist\n", _tmp103_);
+#line 490 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       _g_free0 (minfile);
+#line 490 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       _g_free0 (file);
+#line 490 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       continue;
+#line 2976 "Packer.c"
+                               }
+#line 493 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp104_ = minfile;
+#line 493 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               g_file_get_contents (_tmp104_, &_tmp105_, NULL, &_inner_error_);
+#line 493 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _g_free0 (str);
+#line 493 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               str = _tmp105_;
+#line 493 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 493 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       _g_free0 (str);
+#line 493 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       _g_free0 (minfile);
+#line 493 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       _g_free0 (file);
+#line 493 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       _g_free0 (tmpDir);
+#line 493 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       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);
+#line 493 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       g_clear_error (&_inner_error_);
+#line 493 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       return NULL;
+#line 3002 "Packer.c"
+                               }
+#line 494 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp106_ = minfile;
+#line 494 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               g_print ("using MIN FILE  %s\n", _tmp106_);
+#line 495 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp107_ = str;
+#line 495 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp108_ = strlen (_tmp107_);
+#line 495 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp109_ = _tmp108_;
+#line 495 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               if (_tmp109_ > 0) {
+#line 3016 "Packer.c"
+                                       GFileOutputStream* _tmp110_;
+#line 496 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       _tmp110_ = self->priv->targetStream;
+#line 496 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       if (_tmp110_ != NULL) {
+#line 3022 "Packer.c"
+                                               gchar* _tmp111_ = NULL;
+                                               const gchar* _tmp112_;
+                                               gint _tmp113_;
+                                               gint _tmp114_;
+                                               JSDOCPackerRun* _tmp115_;
+                                               const gchar* _tmp116_;
+                                               gint _tmp117_;
+                                               gint _tmp118_;
+                                               GFileOutputStream* _tmp127_;
+                                               gchar* _tmp128_;
+                                               gchar* _tmp129_;
+                                               gchar* _tmp130_;
+                                               gchar* _tmp131_;
+                                               guint8* _tmp132_;
+                                               gint _tmp132__length1;
+                                               guint8* _tmp133_;
+                                               gint _tmp133__length1;
+                                               GFileOutputStream* _tmp134_;
+                                               const gchar* _tmp135_;
+                                               gchar* _tmp136_;
+                                               gchar* _tmp137_;
+                                               guint8* _tmp138_;
+                                               gint _tmp138__length1;
+                                               guint8* _tmp139_;
+                                               gint _tmp139__length1;
+#line 498 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                               _tmp112_ = file;
+#line 498 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                               _tmp113_ = strlen (_tmp112_);
+#line 498 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                               _tmp114_ = _tmp113_;
+#line 498 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                               _tmp115_ = self->config;
+#line 498 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                               _tmp116_ = _tmp115_->opt_real_basedir;
+#line 498 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                               _tmp117_ = strlen (_tmp116_);
+#line 498 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                               _tmp118_ = _tmp117_;
+#line 498 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                               if (_tmp114_ > _tmp118_) {
+#line 3064 "Packer.c"
+                                                       const gchar* _tmp119_;
+                                                       JSDOCPackerRun* _tmp120_;
+                                                       const gchar* _tmp121_;
+                                                       gint _tmp122_;
+                                                       gint _tmp123_;
+                                                       gchar* _tmp124_;
+#line 498 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                                       _tmp119_ = file;
+#line 498 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                                       _tmp120_ = self->config;
+#line 498 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                                       _tmp121_ = _tmp120_->opt_real_basedir;
+#line 498 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                                       _tmp122_ = strlen (_tmp121_);
+#line 498 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                                       _tmp123_ = _tmp122_;
+#line 498 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                                       _tmp124_ = string_substring (_tmp119_, (glong) _tmp123_, (glong) -1);
+#line 498 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                                       _g_free0 (_tmp111_);
+#line 498 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                                       _tmp111_ = _tmp124_;
+#line 3087 "Packer.c"
+                                               } else {
+                                                       const gchar* _tmp125_;
+                                                       gchar* _tmp126_;
+#line 498 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                                       _tmp125_ = file;
+#line 498 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                                       _tmp126_ = g_strdup (_tmp125_);
+#line 498 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                                       _g_free0 (_tmp111_);
+#line 498 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                                       _tmp111_ = _tmp126_;
+#line 3099 "Packer.c"
+                                               }
+#line 497 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                               _tmp127_ = self->priv->targetStream;
+#line 497 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                               _tmp128_ = g_strconcat ("// ", _tmp111_, NULL);
+#line 497 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                               _tmp129_ = _tmp128_;
+#line 497 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                               _tmp130_ = g_strconcat (_tmp129_, "\n", NULL);
+#line 497 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                               _tmp131_ = _tmp130_;
+#line 497 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                               _tmp132_ = string_get_data (_tmp131_, &_tmp132__length1);
+#line 497 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                               _tmp133_ = _tmp132_;
+#line 497 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                               _tmp133__length1 = _tmp132__length1;
+#line 497 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                               g_output_stream_write ((GOutputStream*) _tmp127_, _tmp133_, (gsize) _tmp133__length1, NULL, &_inner_error_);
+#line 497 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                               _g_free0 (_tmp131_);
+#line 497 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                               _g_free0 (_tmp129_);
+#line 497 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                               if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 497 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                                       _g_free0 (_tmp111_);
+#line 497 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                                       _g_free0 (str);
+#line 497 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                                       _g_free0 (minfile);
+#line 497 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                                       _g_free0 (file);
+#line 497 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                                       _g_free0 (tmpDir);
+#line 497 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                                       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);
+#line 497 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                                       g_clear_error (&_inner_error_);
+#line 497 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                                       return NULL;
+#line 3141 "Packer.c"
+                                               }
+#line 501 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                               _tmp134_ = self->priv->targetStream;
+#line 501 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                               _tmp135_ = str;
+#line 501 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                               _tmp136_ = g_strconcat (_tmp135_, "\n", NULL);
+#line 501 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                               _tmp137_ = _tmp136_;
+#line 501 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                               _tmp138_ = string_get_data (_tmp137_, &_tmp138__length1);
+#line 501 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                               _tmp139_ = _tmp138_;
+#line 501 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                               _tmp139__length1 = _tmp138__length1;
+#line 501 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                               g_output_stream_write ((GOutputStream*) _tmp134_, _tmp139_, (gsize) _tmp139__length1, NULL, &_inner_error_);
+#line 501 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                               _g_free0 (_tmp137_);
+#line 501 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                               if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 501 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                                       _g_free0 (_tmp111_);
+#line 501 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                                       _g_free0 (str);
+#line 501 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                                       _g_free0 (minfile);
+#line 501 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                                       _g_free0 (file);
+#line 501 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                                       _g_free0 (tmpDir);
+#line 501 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                                       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);
+#line 501 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                                       g_clear_error (&_inner_error_);
+#line 501 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                                       return NULL;
+#line 3179 "Packer.c"
+                                               }
+#line 496 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                               _g_free0 (_tmp111_);
+#line 3183 "Packer.c"
+                                       } else {
+                                               gchar* _tmp140_ = NULL;
+                                               const gchar* _tmp141_;
+                                               gint _tmp142_;
+                                               gint _tmp143_;
+                                               JSDOCPackerRun* _tmp144_;
+                                               const gchar* _tmp145_;
+                                               gint _tmp146_;
+                                               gint _tmp147_;
+                                               const gchar* _tmp156_;
+                                               gchar* _tmp157_;
+                                               gchar* _tmp158_;
+                                               gchar* _tmp159_;
+                                               gchar* _tmp160_;
+                                               gchar* _tmp161_;
+                                               const gchar* _tmp162_;
+                                               const gchar* _tmp163_;
+                                               gchar* _tmp164_;
+                                               gchar* _tmp165_;
+                                               gchar* _tmp166_;
+                                               gchar* _tmp167_;
+                                               gchar* _tmp168_;
+                                               const gchar* _tmp169_;
+                                               const gchar* _tmp170_;
+                                               gchar* _tmp171_;
+                                               gchar* _tmp172_;
+                                               gchar* _tmp173_;
+#line 505 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                               _tmp141_ = file;
+#line 505 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                               _tmp142_ = strlen (_tmp141_);
+#line 505 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                               _tmp143_ = _tmp142_;
+#line 505 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                               _tmp144_ = self->config;
+#line 505 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                               _tmp145_ = _tmp144_->opt_real_basedir;
+#line 505 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                               _tmp146_ = strlen (_tmp145_);
+#line 505 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                               _tmp147_ = _tmp146_;
+#line 505 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                               if (_tmp143_ > _tmp147_) {
+#line 3227 "Packer.c"
+                                                       const gchar* _tmp148_;
+                                                       JSDOCPackerRun* _tmp149_;
+                                                       const gchar* _tmp150_;
+                                                       gint _tmp151_;
+                                                       gint _tmp152_;
+                                                       gchar* _tmp153_;
+#line 505 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                                       _tmp148_ = file;
+#line 505 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                                       _tmp149_ = self->config;
+#line 505 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                                       _tmp150_ = _tmp149_->opt_real_basedir;
+#line 505 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                                       _tmp151_ = strlen (_tmp150_);
+#line 505 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                                       _tmp152_ = _tmp151_;
+#line 505 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                                       _tmp153_ = string_substring (_tmp148_, (glong) _tmp152_, (glong) -1);
+#line 505 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                                       _g_free0 (_tmp140_);
+#line 505 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                                       _tmp140_ = _tmp153_;
+#line 3250 "Packer.c"
+                                               } else {
+                                                       const gchar* _tmp154_;
+                                                       gchar* _tmp155_;
+#line 505 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                                       _tmp154_ = file;
+#line 505 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                                       _tmp155_ = g_strdup (_tmp154_);
+#line 505 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                                       _g_free0 (_tmp140_);
+#line 505 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                                       _tmp140_ = _tmp155_;
+#line 3262 "Packer.c"
+                                               }
+#line 504 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                               _tmp156_ = self->outstr;
+#line 504 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                               _tmp157_ = g_strconcat ("//", _tmp140_, NULL);
+#line 504 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                               _tmp158_ = _tmp157_;
+#line 504 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                               _tmp159_ = g_strconcat (_tmp158_, "\n", NULL);
+#line 504 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                               _tmp160_ = _tmp159_;
+#line 504 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                               _tmp161_ = g_strconcat (_tmp156_, _tmp160_, NULL);
+#line 504 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                               _g_free0 (self->outstr);
+#line 504 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                               self->outstr = _tmp161_;
+#line 504 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                               _g_free0 (_tmp160_);
+#line 504 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                               _g_free0 (_tmp158_);
+#line 506 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                               _tmp162_ = self->outstr;
+#line 506 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                               _tmp163_ = file;
+#line 506 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                               _tmp164_ = g_strconcat ("//", _tmp163_, NULL);
+#line 506 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                               _tmp165_ = _tmp164_;
+#line 506 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                               _tmp166_ = g_strconcat (_tmp165_, "\n", NULL);
+#line 506 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                               _tmp167_ = _tmp166_;
+#line 506 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                               _tmp168_ = g_strconcat (_tmp162_, _tmp167_, NULL);
+#line 506 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                               _g_free0 (self->outstr);
+#line 506 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                               self->outstr = _tmp168_;
+#line 506 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                               _g_free0 (_tmp167_);
+#line 506 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                               _g_free0 (_tmp165_);
+#line 508 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                               _tmp169_ = self->outstr;
+#line 508 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                               _tmp170_ = str;
+#line 508 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                               _tmp171_ = g_strconcat (_tmp170_, "\n", NULL);
+#line 508 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                               _tmp172_ = _tmp171_;
+#line 508 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                               _tmp173_ = g_strconcat (_tmp169_, _tmp172_, NULL);
+#line 508 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                               _g_free0 (self->outstr);
+#line 508 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                               self->outstr = _tmp173_;
+#line 508 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                               _g_free0 (_tmp172_);
+#line 496 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                               _g_free0 (_tmp140_);
+#line 3324 "Packer.c"
+                                       }
+                               }
+#line 512 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp174_ = self->config;
+#line 512 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _tmp175_ = _tmp174_->opt_clean_cache;
+#line 512 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               if (_tmp175_) {
+#line 3333 "Packer.c"
+                                       const gchar* _tmp176_;
+#line 513 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       _tmp176_ = minfile;
+#line 513 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                                       g_remove (_tmp176_);
+#line 3339 "Packer.c"
+                               }
+#line 483 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _g_free0 (str);
+#line 483 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _g_free0 (minfile);
+#line 483 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                               _g_free0 (file);
+#line 3347 "Packer.c"
+                       }
+               }
+       }
+#line 517 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp177_ = self->config;
+#line 517 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp178_ = _tmp177_->opt_clean_cache;
+#line 517 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       if (_tmp178_) {
+#line 3357 "Packer.c"
+               const gchar* _tmp179_;
+#line 518 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp179_ = tmpDir;
+#line 518 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               g_remove (_tmp179_);
+#line 3363 "Packer.c"
+       }
+#line 521 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp180_ = self->priv->target;
+#line 521 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp181_ = strlen (_tmp180_);
+#line 521 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp182_ = _tmp181_;
+#line 521 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       if (_tmp182_ > 0) {
+#line 3373 "Packer.c"
+               const gchar* _tmp183_;
+               gchar* _tmp184_;
+               gchar* _tmp185_;
+#line 522 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp183_ = self->priv->target;
+#line 522 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp184_ = g_strconcat ("Output file: ", _tmp183_, NULL);
+#line 522 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp185_ = _tmp184_;
+#line 522 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               g_print ("%s", _tmp185_);
+#line 522 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _g_free0 (_tmp185_);
+#line 3387 "Packer.c"
+       }
+#line 524 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp186_ = self->priv->targetDebug;
+#line 524 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp187_ = strlen (_tmp186_);
+#line 524 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp188_ = _tmp187_;
+#line 524 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       if (_tmp188_ > 0) {
+#line 3397 "Packer.c"
+               const gchar* _tmp189_;
+#line 525 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp189_ = self->priv->targetDebug;
+#line 525 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               g_print ("Output debug file: %s\n", _tmp189_);
+#line 3403 "Packer.c"
+       }
+#line 531 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp190_ = self->outstr;
+#line 531 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp191_ = strlen (_tmp190_);
+#line 531 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp192_ = _tmp191_;
+#line 531 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       if (_tmp192_ > 0) {
+#line 3413 "Packer.c"
+               const gchar* _tmp193_;
+               gchar* _tmp194_;
+#line 532 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp193_ = self->outstr;
+#line 532 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp194_ = g_strdup (_tmp193_);
+#line 532 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               result = _tmp194_;
+#line 532 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _g_free0 (tmpDir);
+#line 532 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               return result;
+#line 3426 "Packer.c"
+       }
+#line 535 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp195_ = g_strdup ("");
+#line 535 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       result = _tmp195_;
+#line 535 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _g_free0 (tmpDir);
+#line 535 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       return result;
+#line 3436 "Packer.c"
+}
+
+
+/**
+ * Core packing routine  for a file
+ * 
+ * @param str - str source text..
+ * @param fn - filename (for reference?)
+ * @param minfile - min file location...
+ * 
+ */
+gchar* jsdoc_packer_packFile (JSDOCPacker* self, const gchar* str, const gchar* fn, const gchar* minfile) {
+       gchar* result = NULL;
+       JSDOCTokenReader* tr = NULL;
+       JSDOCTokenReader* _tmp0_;
+       JSDOCTokenReader* _tmp1_;
+       JSDOCTokenReader* _tmp2_;
+       JSDOCTokenReader* _tmp3_;
+       JSDOCTokenReader* _tmp4_;
+       JSDOCTokenReader* _tmp5_;
+       JSDOCTokenReader* _tmp6_;
+       const gchar* _tmp7_;
+       gchar* _tmp8_;
+       JSDOCTokenArray* toks = NULL;
+       JSDOCTokenReader* _tmp9_;
+       const gchar* _tmp10_;
+       JSDOCTextStream* _tmp11_;
+       JSDOCTextStream* _tmp12_;
+       JSDOCTokenArray* _tmp13_;
+       JSDOCTokenArray* _tmp14_;
+       JSDOCPackerRun* _tmp15_;
+       gboolean _tmp16_;
+       const gchar* _tmp19_;
+       gchar* _tmp20_;
+       JSDOCCollapse* ts = NULL;
+       JSDOCTokenArray* _tmp21_;
+       GeeArrayList* _tmp22_;
+       const gchar* _tmp23_;
+       JSDOCCollapse* _tmp24_;
+       JSDOCPackerRun* _tmp25_;
+       gboolean _tmp26_;
+       gchar* outf = NULL;
+       JSDOCTokenArray* _tmp33_;
+       GeeArrayList* _tmp34_;
+       JSDOCTokenStream* _tmp35_;
+       JSDOCTokenStream* _tmp36_;
+       JSDOCPackerRun* _tmp37_;
+       gboolean _tmp38_;
+       gchar* _tmp39_;
+       gchar* _tmp40_;
+       gboolean _tmp41_ = FALSE;
+       gboolean _tmp42_ = FALSE;
+       const gchar* _tmp43_;
+       gint _tmp44_;
+       gint _tmp45_;
+       GError * _inner_error_ = NULL;
+#line 548 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 548 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       g_return_val_if_fail (str != NULL, NULL);
+#line 548 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       g_return_val_if_fail (fn != NULL, NULL);
+#line 548 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       g_return_val_if_fail (minfile != NULL, NULL);
+#line 551 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp0_ = jsdoc_token_reader_new (self);
+#line 551 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       tr = _tmp0_;
+#line 552 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp1_ = tr;
+#line 552 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp1_->keepDocs = TRUE;
+#line 553 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp2_ = tr;
+#line 553 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp2_->keepWhite = TRUE;
+#line 554 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp3_ = tr;
+#line 554 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp3_->keepComments = TRUE;
+#line 555 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp4_ = tr;
+#line 555 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp4_->sepIdents = TRUE;
+#line 556 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp5_ = tr;
+#line 556 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp5_->collapseWhite = FALSE;
+#line 557 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp6_ = tr;
+#line 557 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp7_ = fn;
+#line 557 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp8_ = g_strdup (_tmp7_);
+#line 557 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _g_free0 (_tmp6_->filename);
+#line 557 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp6_->filename = _tmp8_;
+#line 561 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp9_ = tr;
+#line 561 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp10_ = str;
+#line 561 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp11_ = jsdoc_text_stream_new (_tmp10_);
+#line 561 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp12_ = _tmp11_;
+#line 561 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp13_ = jsdoc_token_reader_tokenize (_tmp9_, _tmp12_);
+#line 561 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp14_ = _tmp13_;
+#line 561 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _g_object_unref0 (_tmp12_);
+#line 561 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       toks = _tmp14_;
+#line 563 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp15_ = self->config;
+#line 563 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp16_ = _tmp15_->opt_dump_tokens;
+#line 563 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       if (_tmp16_) {
+#line 3557 "Packer.c"
+               JSDOCTokenArray* _tmp17_;
+               gchar* _tmp18_;
+#line 564 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp17_ = toks;
+#line 564 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               jsdoc_token_array_dump (_tmp17_);
+#line 565 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp18_ = g_strdup ("");
+#line 565 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               result = _tmp18_;
+#line 565 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _g_object_unref0 (toks);
+#line 565 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _g_object_unref0 (tr);
+#line 565 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               return result;
+#line 3574 "Packer.c"
+       }
+#line 569 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp19_ = fn;
+#line 569 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp20_ = g_strdup (_tmp19_);
+#line 569 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _g_free0 (self->activeFile);
+#line 569 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       self->activeFile = _tmp20_;
+#line 576 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp21_ = toks;
+#line 576 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp22_ = _tmp21_->tokens;
+#line 576 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp23_ = fn;
+#line 576 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp24_ = jsdoc_collapse_new (_tmp22_, self, _tmp23_);
+#line 576 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       ts = _tmp24_;
+#line 582 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp25_ = self->config;
+#line 582 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp26_ = _tmp25_->opt_skip_scope;
+#line 582 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       if (!_tmp26_) {
+#line 3600 "Packer.c"
+               JSDOCScopeParser* sp = NULL;
+               JSDOCCollapse* _tmp27_;
+               const gchar* _tmp28_;
+               JSDOCScopeParser* _tmp29_;
+               JSDOCScopeParser* _tmp30_;
+               JSDOCScopeParser* _tmp31_;
+               JSDOCScopeParser* _tmp32_;
+#line 583 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp27_ = ts;
+#line 583 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp28_ = fn;
+#line 583 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp29_ = jsdoc_scope_parser_new ((JSDOCTokenStream*) _tmp27_, self, _tmp28_);
+#line 583 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               sp = _tmp29_;
+#line 586 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp30_ = sp;
+#line 586 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               jsdoc_scope_parser_buildSymbolTree (_tmp30_);
+#line 587 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp31_ = sp;
+#line 587 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               jsdoc_scope_parser_mungeSymboltree (_tmp31_);
+#line 590 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp32_ = sp;
+#line 590 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               jsdoc_scope_parser_printWarnings (_tmp32_);
+#line 582 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _g_object_unref0 (sp);
+#line 3630 "Packer.c"
+       }
+#line 597 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp33_ = toks;
+#line 597 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp34_ = _tmp33_->tokens;
+#line 597 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp35_ = jsdoc_token_stream_new (_tmp34_);
+#line 597 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp36_ = _tmp35_;
+#line 597 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp37_ = self->config;
+#line 597 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp38_ = _tmp37_->opt_keep_whitespace;
+#line 597 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp39_ = jsdoc_CompressWhite (_tmp36_, self, _tmp38_);
+#line 597 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp40_ = _tmp39_;
+#line 597 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _g_object_unref0 (_tmp36_);
+#line 597 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       outf = _tmp40_;
+#line 604 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp43_ = outf;
+#line 604 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp44_ = strlen (_tmp43_);
+#line 604 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp45_ = _tmp44_;
+#line 604 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       if (_tmp45_ > 0) {
+#line 3660 "Packer.c"
+               const gchar* _tmp46_;
+               gint _tmp47_;
+               gint _tmp48_;
+#line 604 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp46_ = minfile;
+#line 604 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp47_ = strlen (_tmp46_);
+#line 604 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp48_ = _tmp47_;
+#line 604 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp42_ = _tmp48_ > 0;
+#line 3672 "Packer.c"
+       } else {
+#line 604 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp42_ = FALSE;
+#line 3676 "Packer.c"
+       }
+#line 604 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       if (_tmp42_) {
+#line 3680 "Packer.c"
+               const gchar* _tmp49_;
+               gboolean _tmp50_;
+#line 604 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp49_ = fn;
+#line 604 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp50_ = jsdoc_packer_hasErrors (self, _tmp49_);
+#line 604 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp41_ = !_tmp50_;
+#line 3689 "Packer.c"
+       } else {
+#line 604 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp41_ = FALSE;
+#line 3693 "Packer.c"
+       }
+#line 604 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       if (_tmp41_) {
+#line 3697 "Packer.c"
+               const gchar* _tmp51_;
+               const gchar* _tmp52_;
+#line 605 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp51_ = minfile;
+#line 605 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               _tmp52_ = outf;
+#line 605 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               g_file_set_contents (_tmp51_, _tmp52_, (gssize) -1, &_inner_error_);
+#line 605 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+               if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 605 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       _g_free0 (outf);
+#line 605 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       _g_object_unref0 (ts);
+#line 605 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       _g_object_unref0 (toks);
+#line 605 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       _g_object_unref0 (tr);
+#line 605 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       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);
+#line 605 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       g_clear_error (&_inner_error_);
+#line 605 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+                       return NULL;
+#line 3722 "Packer.c"
+               }
+       }
+#line 610 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       result = outf;
+#line 610 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _g_object_unref0 (ts);
+#line 610 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _g_object_unref0 (toks);
+#line 610 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _g_object_unref0 (tr);
+#line 610 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       return result;
+#line 3735 "Packer.c"
+}
+
+
+gchar* jsdoc_packer_md5 (JSDOCPacker* self, const gchar* str) {
+       gchar* result = NULL;
+       const gchar* _tmp0_;
+       gchar* _tmp1_;
+#line 617 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 617 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       g_return_val_if_fail (str != NULL, NULL);
+#line 620 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp0_ = str;
+#line 620 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp1_ = g_compute_checksum_for_string (G_CHECKSUM_MD5, _tmp0_, (gsize) -1);
+#line 620 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       result = _tmp1_;
+#line 620 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       return result;
+#line 3755 "Packer.c"
+}
+
+
+static void jsdoc_packer_class_init (JSDOCPackerClass * klass) {
+#line 62 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       jsdoc_packer_parent_class = g_type_class_peek_parent (klass);
+#line 62 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       g_type_class_add_private (klass, sizeof (JSDOCPackerPrivate));
+#line 62 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       G_OBJECT_CLASS (klass)->finalize = jsdoc_packer_finalize;
+#line 3766 "Packer.c"
+}
+
+
+static void jsdoc_packer_instance_init (JSDOCPacker * self) {
+       gchar* _tmp0_;
+       gchar* _tmp1_;
+       gchar* _tmp2_;
+       gchar* _tmp3_;
+#line 62 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       self->priv = JSDOC_PACKER_GET_PRIVATE (self);
+#line 67 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp0_ = g_strdup ("");
+#line 67 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       self->priv->target = _tmp0_;
+#line 68 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       self->priv->targetStream = NULL;
+#line 72 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp1_ = g_strdup ("");
+#line 72 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       self->priv->targetDebug = _tmp1_;
+#line 75 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       self->priv->targetDebugStream = NULL;
+#line 95 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp2_ = g_strdup ("");
+#line 95 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       self->activeFile = _tmp2_;
+#line 97 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _tmp3_ = g_strdup ("");
+#line 97 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       self->outstr = _tmp3_;
+#line 3797 "Packer.c"
+}
+
+
+static void jsdoc_packer_finalize (GObject * obj) {
+       JSDOCPacker * self;
+#line 62 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       self = G_TYPE_CHECK_INSTANCE_CAST (obj, JSDOC_TYPE_PACKER, JSDOCPacker);
+#line 67 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _g_free0 (self->priv->target);
+#line 68 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _g_object_unref0 (self->priv->targetStream);
+#line 72 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _g_free0 (self->priv->targetDebug);
+#line 75 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _g_object_unref0 (self->priv->targetDebugStream);
+#line 89 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _g_object_unref0 (self->files);
+#line 95 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _g_free0 (self->activeFile);
+#line 97 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _g_free0 (self->outstr);
+#line 99 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _g_object_unref0 (self->config);
+#line 153 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       _json_object_unref0 (self->result);
+#line 62 "/home/alan/gitlive/roojspacker/src/jsdoc/Packer.vala"
+       G_OBJECT_CLASS (jsdoc_packer_parent_class)->finalize (obj);
+#line 3825 "Packer.c"
+}
+
+
+GType jsdoc_packer_get_type (void) {
+       static volatile gsize jsdoc_packer_type_id__volatile = 0;
+       if (g_once_init_enter (&jsdoc_packer_type_id__volatile)) {
+               static const GTypeInfo g_define_type_info = { sizeof (JSDOCPackerClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) jsdoc_packer_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (JSDOCPacker), 0, (GInstanceInitFunc) jsdoc_packer_instance_init, NULL };
+               GType jsdoc_packer_type_id;
+               jsdoc_packer_type_id = g_type_register_static (G_TYPE_OBJECT, "JSDOCPacker", &g_define_type_info, 0);
+               g_once_init_leave (&jsdoc_packer_type_id__volatile, jsdoc_packer_type_id);
+       }
+       return jsdoc_packer_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;
+}
+
+
+
diff --git a/jsdoc/Packer.vala b/jsdoc/Packer.vala
new file mode 100644 (file)
index 0000000..de38574
--- /dev/null
@@ -0,0 +1,627 @@
+/**
+ * @namespace JSDOC
+ * @class  Packer
+ * Create a new packer
+ * 
+ * Use with pack.js 
+ * 
+ * 
+ * Usage:
+ * <code>
+ *
+var x = new  JSON.Packer(target, debugTarget);
+
+x.files = an array of files
+x.srcfiles = array of files (that list other files...) << not supported?
+x.target = "output.pathname.js"
+x.debugTarget = "output.pathname.debug.js"
+
+  
+    
+x.pack();  // writes files  etc..
+    
+ *</code> 
+ *
+ * Notes for improving compacting:
+ *  if you add a jsdoc comment 
+ * <code>
+ * /**
+ *   eval:var:avarname
+ *   eval:var:bvarname
+ *   ....
+ * </code>
+ * directly before an eval statement, it will compress all the code around the eval, 
+ * and not rename the variables 'avarname'
+ * 
+ * Dont try running this on a merged uncompressed large file - it's used to be horrifically slow. not sure about now..
+ * Best to use lot's of small classes, and use it to merge, as it will cache the compaction
+ * 
+ * 
+ * 
+ * Notes for translation
+ *  - translation relies on you using double quotes for strings if they need translating
+ *  - single quoted strings are ignored.
+ * 
+ * Generation of indexFiles
+ *   - translateIndex = the indexfile
+ * 
+ * 
+ * 
+ * 
+
+ */
+namespace JSDOC 
+{
+       public errordomain PackerError {
+            ArgumentError
+    }
+    
+    
+       public class Packer : Object 
+       {
+               /**
+               * @cfg {String} target to write files to - must be full path.
+               */
+               string target = "";
+               GLib.FileOutputStream targetStream = null;
+               /**
+                * @cfg {String} debugTarget target to write files debug version to (uncompacted)- must be full path.
+                */
+               string targetDebug = "";
+               
+
+               GLib.FileOutputStream targetDebugStream  = null;
+               /**
+                * @cfg {String} tmpDir  (optional) where to put the temporary files. 
+                *      if you set this, then files will not be cleaned up
+                *  
+                *  at present we need tmpfiles - as we compile multiple files into one.
+                *  we could do this in memory now, as I suspect vala will not be as bad as javascript for leakage...
+                *
+                */
+               //public string tmpDir = "/tmp";  // FIXME??? in ctor?
+       
+        
+                
+               // list of files to compile...
+               public Gee.ArrayList<string> files;
+               
+               /**
+               * @cfg activeFile ??? used???
+               */
+                
+               public string activeFile = "";
+                       
+               public  string outstr = ""; // if no target is specified - then this will contain the result
+               
+               public PackerRun config;
+               
+               public Packer(PackerRun config)
+               {
+                       this.config = config;
+#if HAVE_JSON_GLIB
+                       this.result = new Json.Object();
+#else
+                       this.result_count = new  Gee.HashMap <string,int>();
+               
+                       this.result =  new Gee.HashMap<
+                               string /* errtype*/ , Gee.HashMap<string /*fn*/,     Gee.HashMap<int /*line*/, Gee.ArrayList<string>>>
+                       >();
+       
+#endif                 
+                       this.files = new Gee.ArrayList<string>();
+                       
+                       new Lang_Class(); ///initilizaze lang..
+                       
+                       //this.tmp = Glib.get_tmp_dir(); // do we have to delete this?
+                       
+                        
+               }
+               
+               
+               // this could be another class really..
+               
+               public enum ResultType { 
+                       err , 
+                       warn;
+                       public string to_string() { 
+                               switch(this) {
+                                       case err: return "ERR";
+                                       case warn: return "WARN";
+                                       default: assert_not_reached();
+                               }
+                       
+                         }
+                 }
+               /**
+               *  result of complication - a JSON object containing warnings / errors etc..
+               *  FORMAT:
+               *     warn-TOTAL : X  (number of warnings.
+               *     err-TOTAL: X  (number of errors) << this indicates failure...
+               *     warn : {
+               *            FILENAME : {
+               *                  line : [ Errors,Errors,.... ]
+               *     err : {
+               *           .. sane format..
+               *
+               */
+               
+#if HAVE_JSON_GLIB
+               
+               public Json.Object result;   // output - what's the complication result
+
+               public void  logError(ResultType type, string filename, int line, string message) {
+                        
+                        if (!this.result.has_member(type.to_string()+"-TOTAL")) {
+                                this.result.set_int_member(type.to_string()+"-TOTAL", 1);
+                        } else {
+                               this.result.set_int_member(type.to_string()+"-TOTAL", 
+                                       this.result.get_int_member(type.to_string()+"-TOTAL") +1 
+                               );
+                        }
+                        
+                        
+                        if (!this.result.has_member(type.to_string())) {
+                                this.result.set_object_member(type.to_string(), new Json.Object());
+                        }
+                        var t = this.result.get_object_member(type.to_string());
+                        if (!t.has_member(filename)) {
+                                t.set_object_member(filename, new Json.Object());
+                        }
+                        var tt = t.get_object_member(filename);
+                        if (!tt.has_member(line.to_string())) {
+                                tt.set_array_member(line.to_string(), new Json.Array());
+                        }
+                        var tl = tt.get_array_member(line.to_string());
+                        tl.add_string_element(message);
+                        
+               }
+               
+               public bool hasErrors(string fn)
+               {
+                        if (!this.result.has_member(ResultType.err.to_string())) {
+                                return false;
+                        }
+                        
+                        if (fn.length < 1) {
+                               return true;
+                        }
+                        var t = this.result.get_object_member(ResultType.err.to_string());
+                        
+                        if (t.has_member(fn)) {
+                                return true;
+                        }
+                        return false;
+               }
+               public void dumpErrors(ResultType type)
+               {
+                        if (!this.result.has_member(type.to_string())) {
+                                return;
+                        }
+                       var t = this.result.get_object_member(type.to_string());
+                       t.foreach_member((obj, filename, node) => {
+                                       var linelist = node.dup_object();
+                                       linelist.foreach_member((linelistobj, linestr, nodear) => {
+                                               var errors=  nodear.dup_array();
+                                               errors.foreach_element((errorar, ignore, nodestr) => {
+                                                       print("%s: %s:%s %s\n", type.to_string(), filename, linestr, nodestr.get_string());
+                                               });
+                                       });
+                       
+                       });
+               }
+#else
+               public Gee.HashMap <string,int> result_count;   // output - what's the complication result
+               
+               public Gee.HashMap<
+                               string /* errtype*/ , Gee.HashMap<string /*fn*/,     Gee.HashMap<int /*line*/, Gee.ArrayList<string>>>
+               > result;
+
+               public void  logError(ResultType type, string filename, int line, string message) {
+                        
+                        
+                        if (!this.result_count.has_key(type.to_string()+"-TOTAL")) {
+                                this.result_count.set(type.to_string()+"-TOTAL", 1);
+                        } else {
+                               this.result_count.set(type.to_string()+"-TOTAL",                                 
+                                       this.result_count.get(type.to_string()+"-TOTAL") +1
+                               );
+                        }
+                        
+                        
+                        
+                        if (!this.result.has_key(type.to_string())) {
+                                this.result.set(type.to_string(),
+                                        new Gee.HashMap<string /*fn*/,     Gee.HashMap<int /*line*/, Gee.ArrayList<string>>>()
+                                );
+                        }
+                        var t = this.result.get(type.to_string());
+                        if (!t.has_key(filename)) {
+                                t.set(filename, new  Gee.HashMap<int /*line*/, Gee.ArrayList<string>>());
+                        }
+                        var tt = t.get(filename);
+                        if (!tt.has_key(line)) {
+                                tt.set(line, new Gee.ArrayList<string>());
+                        }
+                        var tl = tt.get(line);
+                        tl.add(message);
+                        
+               }
+               
+               public bool hasErrors(string fn)
+               {
+                        if (!this.result.has_key(ResultType.err.to_string())) {
+                                return false;
+                        }
+                        
+                        if (fn.length < 1) {
+                               return true;
+                        }
+                        var t = this.result.get(ResultType.err.to_string());
+                        
+                        if (t.has_key(fn)) {
+                                return true;
+                        }
+                        return false;
+               }
+               public void dumpErrors(ResultType type)
+               {
+                        if (!this.result.has_key(type.to_string())) {
+                                return;
+                        }
+                       var t = this.result.get(type.to_string());
+                       foreach(string filename in t.keys) {
+                               var node = t.get(filename);
+                               foreach(int line in node.keys) {
+                                       var errors = node.get(line);
+                                       foreach(string errstr in errors) {
+                                                       print("%s: %s:%d %s\n", type.to_string(), filename, line, errstr);
+                                       }
+                               }
+                       
+                       }
+               }
+
+
+#endif
+               
+               
+               
+               public void loadSourceIndexes(Gee.ArrayList<string> indexes)
+               {
+                       foreach(var f in indexes) {
+                               this.loadSourceIndex(f);
+                       }
+               }
+               
+               public void loadFiles(string[] fs)
+               {
+                       // fixme -- prefix baseDir?
+                       foreach(var f in fs) {
+                           GLib.debug("add File: %s", f);
+                               this.files.add(f); //?? easier way?
+                       }
+               }
+               public void loadFile(string f)
+               {
+                   // fixme -- prefix baseDir?
+                   GLib.debug("add File: %s", f);
+                       this.files.add(f); 
+                       GLib.debug("FILE LEN: %d", this.files.size);
+               }
+                
+               
+               public string pack(string target, string targetDebug = "") throws PackerError 
+               {
+                   this.target = target;
+                       this.targetDebug  = targetDebug;
+                   
+                   if (this.files.size < 1) {
+                               throw new PackerError.ArgumentError("No Files loaded before pack() called");
+                       }
+                       if (this.target.length > 0 ) {
+                               this.targetStream = File.new_for_path(this.target).replace(null, false,FileCreateFlags.NONE);
+                       }
+                       if (this.targetDebug.length > 0 ) {
+                               this.targetDebugStream = File.new_for_path(this.targetDebug).replace(null, false,FileCreateFlags.NONE);
+                       }
+                       return this.packAll();
+               }
+               
+  
+                
+          
+               /**
+                * load a dependancy list -f option
+                * @param {String} srcfile sourcefile to parse
+                * 
+                */
+               
+               public void loadSourceIndex(string in_srcfile)
+               {
+                   
+                   var srcfile = in_srcfile;
+                   if (srcfile[0] != '/') {
+                               srcfile = config.opt_real_basedir + in_srcfile;
+                       }
+                   string str;
+                   FileUtils.get_contents(srcfile,out str);
+                   
+                   var lines = str.split("\n");
+                   for(var i =0; i < lines.length;i++) {
+                           var f = lines[i].strip();
+                       if (f.length < 1 ||
+                               Regex.match_simple ("^/", f) ||
+                               !Regex.match_simple ("[a-zA-Z]+", f) 
+                       ){
+                               continue; // blank comment or not starting with a-z
+                       }
+                       
+                       if (Regex.match_simple ("\\.js$", f)) {
+                           this.files.add( f);
+                           // js file..
+                           continue;
+                       }
+                       
+                               // this maps Roo.bootstrap.XXX to Roo/bootstrap/xxx.js
+                               // should we prefix? =- or should this be done elsewhere?
+                               
+                       var add = f.replace(".", "/") + ".js";
+                       
+                       if (add[0] != '/') {
+                                       add = config.opt_real_basedir + add;
+                               }
+                       
+                       if (this.files.contains(add)) {
+                           continue;
+                       }
+                       
+                       
+                       
+                       this.files.add( add );
+                       
+                   }
+               }
+               
+    
+               private string packAll()   // do the packing (run from constructor)
+               {
+                   
+                   //this.transOrigFile= bpath + '/../lang.en.js'; // needs better naming...
+                   //File.write(this.transfile, "");
+                   if (this.target.length > 0) {
+                       this.targetStream.write("".data);
+                   }
+                   
+                   if (this.targetDebugStream != null) {
+                           this.targetDebugStream.write("".data);
+                   }
+                   
+                   
+                   var tmpDir = GLib.DirUtils.make_tmp("roojspacker_XXXXXX");
+                   
+                   foreach(var file in this.files) {
+                       
+                       print("reading %s\n",file );
+                       
+                       if (!FileUtils.test (file, FileTest.EXISTS) || FileUtils.test (file, FileTest.IS_DIR)) {
+                           print("SKIP (is not a file) %s\n ", file);
+                           continue;
+                       }
+                      
+                               var loaded_string = false;
+                               string file_contents = "";
+                       // debug Target
+                       
+                       if (this.targetDebugStream !=null) {
+                               
+                               FileUtils.get_contents(file,out file_contents);
+                           this.targetDebugStream.write(file_contents.data);
+                           loaded_string = false;
+                       }
+                       // it's a good idea to check with 0 compression to see if the code can parse!!
+                       
+                       // debug file..
+                       //File.append(dout, str +"\n"); 
+                       
+                  
+                       
+                       var minfile = tmpDir + "/" + file.replace("/", ".");
+                       
+                       
+                       // let's see if we have a min file already?
+                       // this might happen if tmpDir is set .. 
+
+                       
+                       if ( FileUtils.test (minfile, FileTest.EXISTS)) {
+                                
+                               var otv = File.new_for_path(file).query_info (FileAttribute.TIME_MODIFIED, 0).get_modification_time();
+                               var mtv = File.new_for_path(minfile).query_info (FileAttribute.TIME_MODIFIED, 0).get_modification_time();
+                                       
+                                        
+                          // print("%s : compare : Cache file  %s to Orignal Time %s\n", file, mtv.to_iso8601(), otv.to_iso8601());
+                           if (mtv.tv_usec > otv.tv_usec) {
+                               continue; // file is newer or the same time..
+                               
+                           }
+                           
+                       }
+                        
+                       print("COMPRESSING to %s\n", minfile);
+                       //var codeComp = pack(str, 10, 0, 0);
+                       if (config.opt_clean_cache && FileUtils.test (minfile, FileTest.EXISTS)) {
+                           FileUtils.remove(minfile);
+                       }
+                       if (!loaded_string) {
+                               FileUtils.get_contents(file,out file_contents);
+                       }
+
+                        this.packFile(file_contents, file, minfile);
+                        
+                     
+                   }
+                   
+                   // at this point if we have errors, we should stop..
+
+                                           
+                       this.dumpErrors(ResultType.warn);
+                       this.dumpErrors(ResultType.err); // since they are fatal - display them last...
+                       
+                       
+                       
+                       
+                       if (config.opt_dump_tokens || this.hasErrors("")) {
+                                
+                               GLib.Process.exit(0);
+                       }
+                   print("MERGING SOURCE\n");
+                   
+                   for(var i=0; i < this.files.size; i++)  {
+                       var file = this.files[i];
+                       var minfile = tmpDir + "/" + file.replace("/", ".");
+                       
+                       
+                       if ( !FileUtils.test(minfile, FileTest.EXISTS)) {
+                               print("skipping source %s - does not exist\n", minfile);
+                           continue;
+                       }
+                       string str;
+                       FileUtils.get_contents(minfile, out str);
+                       print("using MIN FILE  %s\n", minfile);
+                       if (str.length > 0) {
+                           if (this.targetStream != null) {
+                                       this.targetStream.write(("// " + 
+                                               ( (file.length > config.opt_real_basedir.length) ? file.substring(config.opt_real_basedir.length)  : file ) + 
+                                               "\n").data); 
+
+                                       this.targetStream.write((str + "\n").data); 
+
+                           } else {
+                               this.outstr += "//" + 
+                                       ( (file.length > config.opt_real_basedir.length) ? file.substring(config.opt_real_basedir.length)  : file ) +  "\n";
+                               this.outstr += "//" +  file  +"\n";
+
+                                    this.outstr += str + "\n";
+                           }
+                           
+                       }
+                       if (config.opt_clean_cache) {
+                           FileUtils.remove(minfile);
+                       }
+                       
+                   }
+                   if (config.opt_clean_cache) {
+                               FileUtils.remove(tmpDir);
+                       }
+                   
+                   if (this.target.length > 0 ) {
+                           print("Output file: " + this.target);
+                   }
+                   if (this.targetDebug.length > 0) {
+                                print("Output debug file: %s\n" , this.targetDebug);
+                       }
+            
+
+            
+                       // OUTPUT should be handled by PackerRun (so that this can be used as a library...)
+                       if (this.outstr.length > 0 ) {
+                return this.outstr;
+                       //      stdout.printf ("%s", this.outstr);
+                       }
+                   return "";
+               
+               
+               }
+               /**
+                * Core packing routine  for a file
+                * 
+                * @param str - str source text..
+                * @param fn - filename (for reference?)
+                * @param minfile - min file location...
+                * 
+                */
+
+               public  string packFile  (string str,string fn, string minfile)  
+               {
+
+                       var tr = new  TokenReader(this);
+                       tr.keepDocs =true;
+                       tr.keepWhite = true;
+                       tr.keepComments = true;
+                       tr.sepIdents = true;
+                       tr.collapseWhite = false;
+                       tr.filename = fn;
+                       // we can load translation map here...
+               
+                       TokenArray toks = tr.tokenize(new TextStream(str)); // dont merge xxx + . + yyyy etc.
+               
+                       if (config.opt_dump_tokens) {
+                               toks.dump();
+                               return "";
+                               //GLib.Process.exit(0);
+                       }
+               
+                       this.activeFile = fn;
+               
+                       // and replace if we are generating a different language..
+               
+
+                       //var ts = new TokenStream(toks);
+                       //print(JSON.stringify(toks, null,4 )); Seed.quit();
+                       var ts = new Collapse(toks.tokens, this, fn);
+                       
+                       //ts.dumpAll("");                       print("Done collaps"); Process.exit(1);
+                       
+                  // print(JSON.stringify(ts.tokens, null,4 )); Seed.quit();
+                       //return;//
+                       if (!config.opt_skip_scope) {
+                               var sp = new ScopeParser(ts, this, fn);
+                               //sp.packer = this;
+                               sp.buildSymbolTree();
+                               sp.mungeSymboltree();
+                       
+                       
+                               sp.printWarnings();
+                       }
+                       
+                       
+                       //print(sp.warnings.join("\n"));
+                       //(new TokenStream(toks.tokens)).dumpAll(""); GLib.Process.exit(1);
+                       // compress works on the original array - in theory the replacements have already been done by now 
+                       var outf = CompressWhite(new TokenStream(toks.tokens), this, config.opt_keep_whitespace); // do not kill whitespace..
+               
+                       
+       //              debug("RESULT: \n %s\n", outf);
+                       
+                       
+                       
+                       if (outf.length > 0 && minfile.length > 0 && !this.hasErrors(fn)) {
+                               FileUtils.set_contents(minfile, outf);
+                                
+                       }  
+
+               
+                       return outf;
+               
+               
+                        
+               }
+                
+
+               public string md5(string str)
+               {
+               
+                       return GLib.Checksum.compute_for_string(GLib.ChecksumType.MD5, str);
+               
+               }
+    
+        //stringHandler : function(tok) -- not used...
+    }
+    
+}
diff --git a/jsdoc/PackerRun.c b/jsdoc/PackerRun.c
new file mode 100644 (file)
index 0000000..7bb2b3c
--- /dev/null
@@ -0,0 +1,1394 @@
+/* PackerRun.c generated by valac 0.36.6, the Vala compiler
+ * generated from PackerRun.vala, do not modify */
+
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gio/gio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+#include <gee.h>
+#include <json-glib/json-glib.h>
+
+
+#define JSDOC_TYPE_PACKER_RUN (jsdoc_packer_run_get_type ())
+#define JSDOC_PACKER_RUN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_PACKER_RUN, JSDOCPackerRun))
+#define JSDOC_PACKER_RUN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_PACKER_RUN, JSDOCPackerRunClass))
+#define JSDOC_IS_PACKER_RUN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_PACKER_RUN))
+#define JSDOC_IS_PACKER_RUN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_PACKER_RUN))
+#define JSDOC_PACKER_RUN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_PACKER_RUN, JSDOCPackerRunClass))
+
+typedef struct _JSDOCPackerRun JSDOCPackerRun;
+typedef struct _JSDOCPackerRunClass JSDOCPackerRunClass;
+typedef struct _JSDOCPackerRunPrivate JSDOCPackerRunPrivate;
+#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_option_context_free0(var) ((var == NULL) ? NULL : (var = (g_option_context_free (var), NULL)))
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+
+#define JSDOC_TYPE_PACKER (jsdoc_packer_get_type ())
+#define JSDOC_PACKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_PACKER, JSDOCPacker))
+#define JSDOC_PACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_PACKER, JSDOCPackerClass))
+#define JSDOC_IS_PACKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_PACKER))
+#define JSDOC_IS_PACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_PACKER))
+#define JSDOC_PACKER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_PACKER, JSDOCPackerClass))
+
+typedef struct _JSDOCPacker JSDOCPacker;
+typedef struct _JSDOCPackerClass JSDOCPackerClass;
+typedef struct _JSDOCPackerPrivate JSDOCPackerPrivate;
+
+#define JSDOC_TYPE_DOC_BUILDER (jsdoc_doc_builder_get_type ())
+#define JSDOC_DOC_BUILDER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_DOC_BUILDER, JSDOCDocBuilder))
+#define JSDOC_DOC_BUILDER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_DOC_BUILDER, JSDOCDocBuilderClass))
+#define JSDOC_IS_DOC_BUILDER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_DOC_BUILDER))
+#define JSDOC_IS_DOC_BUILDER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_DOC_BUILDER))
+#define JSDOC_DOC_BUILDER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_DOC_BUILDER, JSDOCDocBuilderClass))
+
+typedef struct _JSDOCDocBuilder JSDOCDocBuilder;
+typedef struct _JSDOCDocBuilderClass JSDOCDocBuilderClass;
+
+struct _JSDOCPackerRun {
+       GApplication parent_instance;
+       JSDOCPackerRunPrivate * priv;
+       gchar* opt_target;
+       gchar* opt_debug_target;
+       gchar* opt_real_basedir;
+       gchar* opt_doc_target;
+       gchar* opt_doc_template_dir;
+       gboolean opt_doc_include_private;
+       gboolean opt_debug;
+       gboolean opt_skip_scope;
+       gboolean opt_keep_whitespace;
+       gboolean opt_dump_tokens;
+       gboolean opt_clean_cache;
+       gchar* opt_doc_ext;
+};
+
+struct _JSDOCPackerRunClass {
+       GApplicationClass parent_class;
+};
+
+struct _JSDOCPackerRunPrivate {
+       gchar* opt_basedir;
+       gchar** opt_files;
+       gchar** opt_files_from;
+};
+
+typedef enum  {
+       JSDOC_PACKER_ERROR_ArgumentError
+} JSDOCPackerError;
+#define JSDOC_PACKER_ERROR jsdoc_packer_error_quark ()
+struct _JSDOCPacker {
+       GObject parent_instance;
+       JSDOCPackerPrivate * priv;
+       GeeArrayList* files;
+       gchar* activeFile;
+       gchar* outstr;
+       JSDOCPackerRun* config;
+       JsonObject* result;
+};
+
+struct _JSDOCPackerClass {
+       GObjectClass parent_class;
+};
+
+
+extern JSDOCPackerRun* _PackerRun;
+JSDOCPackerRun* _PackerRun = NULL;
+static gpointer jsdoc_packer_run_parent_class = NULL;
+
+GType jsdoc_packer_run_get_type (void) G_GNUC_CONST;
+#define JSDOC_PACKER_RUN_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), JSDOC_TYPE_PACKER_RUN, JSDOCPackerRunPrivate))
+enum  {
+       JSDOC_PACKER_RUN_DUMMY_PROPERTY
+};
+JSDOCPackerRun* jsdoc_packer_run_singleton (void);
+JSDOCPackerRun* jsdoc_packer_run_new (void);
+JSDOCPackerRun* jsdoc_packer_run_construct (GType object_type);
+void jsdoc_packer_run_parseArgs (JSDOCPackerRun* self, gchar** args, int args_length1);
+void jsdoc_packer_run_runPack (JSDOCPackerRun* self);
+static void ___lambda4_ (JSDOCPackerRun* self, const gchar* dom, GLogLevelFlags lvl, const gchar* msg);
+static void ____lambda4__glog_func (const gchar* log_domain, GLogLevelFlags log_levels, const gchar* message, gpointer self);
+GType jsdoc_packer_get_type (void) G_GNUC_CONST;
+JSDOCPacker* jsdoc_packer_new (JSDOCPackerRun* config);
+JSDOCPacker* jsdoc_packer_construct (GType object_type, JSDOCPackerRun* config);
+void jsdoc_packer_loadFile (JSDOCPacker* self, const gchar* f);
+void jsdoc_packer_loadSourceIndex (JSDOCPacker* self, const gchar* in_srcfile);
+GQuark jsdoc_packer_error_quark (void);
+gchar* jsdoc_packer_pack (JSDOCPacker* self, const gchar* target, const gchar* targetDebug, GError** error);
+GType jsdoc_doc_builder_get_type (void) G_GNUC_CONST;
+JSDOCDocBuilder* jsdoc_doc_builder_new (JSDOCPacker* p);
+JSDOCDocBuilder* jsdoc_doc_builder_construct (GType object_type, JSDOCPacker* p);
+static void jsdoc_packer_run_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 gpointer _g_object_ref0 (gpointer self) {
+#line 93 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       return self ? g_object_ref (self) : NULL;
+#line 133 "PackerRun.c"
+}
+
+
+JSDOCPackerRun* jsdoc_packer_run_singleton (void) {
+       JSDOCPackerRun* result = NULL;
+       JSDOCPackerRun* _tmp0_;
+       JSDOCPackerRun* _tmp2_;
+       JSDOCPackerRun* _tmp3_;
+#line 90 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp0_ = _PackerRun;
+#line 90 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       if (_tmp0_ == NULL) {
+#line 146 "PackerRun.c"
+               JSDOCPackerRun* _tmp1_;
+#line 91 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               _tmp1_ = jsdoc_packer_run_new ();
+#line 91 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               _g_object_unref0 (_PackerRun);
+#line 91 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               _PackerRun = _tmp1_;
+#line 154 "PackerRun.c"
+       }
+#line 93 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp2_ = _PackerRun;
+#line 93 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp3_ = _g_object_ref0 (_tmp2_);
+#line 93 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       result = _tmp3_;
+#line 93 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       return result;
+#line 164 "PackerRun.c"
+}
+
+
+JSDOCPackerRun* jsdoc_packer_run_construct (GType object_type) {
+       JSDOCPackerRun * self = NULL;
+#line 99 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       self = (JSDOCPackerRun*) g_object_new (object_type, "application-id", "org.roojs.jsdoc.packerrun", "flags", G_APPLICATION_HANDLES_COMMAND_LINE, NULL);
+#line 96 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       return self;
+#line 174 "PackerRun.c"
+}
+
+
+JSDOCPackerRun* jsdoc_packer_run_new (void) {
+#line 96 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       return jsdoc_packer_run_construct (JSDOC_TYPE_PACKER_RUN);
+#line 181 "PackerRun.c"
+}
+
+
+void jsdoc_packer_run_parseArgs (JSDOCPackerRun* self, gchar** args, int args_length1) {
+       GOptionEntry* options = NULL;
+       GOptionEntry _tmp0_ = {0};
+       GOptionEntry _tmp1_ = {0};
+       GOptionEntry _tmp2_ = {0};
+       GOptionEntry _tmp3_ = {0};
+       GOptionEntry _tmp4_ = {0};
+       GOptionEntry _tmp5_ = {0};
+       GOptionEntry _tmp6_ = {0};
+       GOptionEntry _tmp7_ = {0};
+       GOptionEntry _tmp8_ = {0};
+       GOptionEntry _tmp9_ = {0};
+       GOptionEntry _tmp10_ = {0};
+       GOptionEntry _tmp11_ = {0};
+       GOptionEntry _tmp12_ = {0};
+       GOptionEntry* _tmp13_;
+       gint options_length1;
+       gint _options_size_;
+       GOptionContext* opt_context = NULL;
+       GOptionContext* _tmp14_;
+       GError * _inner_error_ = NULL;
+#line 109 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       g_return_if_fail (self != NULL);
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       memset (&_tmp0_, 0, sizeof (GOptionEntry));
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp0_.long_name = "jsfile";
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp0_.short_name = 'f';
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp0_.flags = 0;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp0_.arg = G_OPTION_ARG_FILENAME_ARRAY;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp0_.arg_data = &self->priv->opt_files;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp0_.description = "add a file to compile";
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp0_.arg_description = NULL;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       memset (&_tmp1_, 0, sizeof (GOptionEntry));
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp1_.long_name = "target";
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp1_.short_name = 't';
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp1_.flags = 0;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp1_.arg = G_OPTION_ARG_STRING;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp1_.arg_data = &self->opt_target;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp1_.description = "Target File to write (eg. roojs.js)";
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp1_.arg_description = NULL;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       memset (&_tmp2_, 0, sizeof (GOptionEntry));
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp2_.long_name = "debug-target";
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp2_.short_name = 'T';
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp2_.flags = 0;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp2_.arg = G_OPTION_ARG_STRING;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp2_.arg_data = &self->opt_debug_target;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp2_.description = "Target File to write debug code (eg. roojs-debug.js)";
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp2_.arg_description = NULL;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       memset (&_tmp3_, 0, sizeof (GOptionEntry));
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp3_.long_name = "basedir";
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp3_.short_name = 'b';
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp3_.flags = 0;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp3_.arg = G_OPTION_ARG_STRING;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp3_.arg_data = &self->priv->opt_basedir;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp3_.description = "Base directory (where the files listed in index files are located.)";
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp3_.arg_description = NULL;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       memset (&_tmp4_, 0, sizeof (GOptionEntry));
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp4_.long_name = "index-files";
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp4_.short_name = 'i';
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp4_.flags = 0;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp4_.arg = G_OPTION_ARG_FILENAME_ARRAY;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp4_.arg_data = &self->priv->opt_files_from;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp4_.description = "files that contain listing of files to compile";
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp4_.arg_description = NULL;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       memset (&_tmp5_, 0, sizeof (GOptionEntry));
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp5_.long_name = "keep-whitespace";
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp5_.short_name = 'w';
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp5_.flags = 0;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp5_.arg = G_OPTION_ARG_NONE;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp5_.arg_data = &self->opt_keep_whitespace;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp5_.description = "Keep whitespace";
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp5_.arg_description = NULL;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       memset (&_tmp6_, 0, sizeof (GOptionEntry));
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp6_.long_name = "skip-scope";
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp6_.short_name = 's';
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp6_.flags = 0;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp6_.arg = G_OPTION_ARG_NONE;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp6_.arg_data = &self->opt_skip_scope;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp6_.description = "Skip scope parsing and variable replacement";
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp6_.arg_description = NULL;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       memset (&_tmp7_, 0, sizeof (GOptionEntry));
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp7_.long_name = "debug";
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp7_.short_name = 'D';
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp7_.flags = 0;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp7_.arg = G_OPTION_ARG_NONE;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp7_.arg_data = &self->opt_debug;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp7_.description = "Show debug messages";
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp7_.arg_description = NULL;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       memset (&_tmp8_, 0, sizeof (GOptionEntry));
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp8_.long_name = "dump-tokens";
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp8_.short_name = 'k';
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp8_.flags = 0;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp8_.arg = G_OPTION_ARG_NONE;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp8_.arg_data = &self->opt_dump_tokens;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp8_.description = "Dump the tokens from a file";
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp8_.arg_description = NULL;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       memset (&_tmp9_, 0, sizeof (GOptionEntry));
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp9_.long_name = "clean-cache";
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp9_.short_name = 'c';
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp9_.flags = 0;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp9_.arg = G_OPTION_ARG_NONE;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp9_.arg_data = &self->opt_clean_cache;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp9_.description = "Clean up the cache after running (slower)";
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp9_.arg_description = NULL;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       memset (&_tmp10_, 0, sizeof (GOptionEntry));
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp10_.long_name = "doc-target";
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp10_.short_name = 'd';
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp10_.flags = 0;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp10_.arg = G_OPTION_ARG_STRING;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp10_.arg_data = &self->opt_doc_target;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp10_.description = "Target location for documetnation";
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp10_.arg_description = NULL;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       memset (&_tmp11_, 0, sizeof (GOptionEntry));
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp11_.long_name = "doc-template-dir";
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp11_.short_name = 'p';
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp11_.flags = 0;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp11_.arg = G_OPTION_ARG_STRING;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp11_.arg_data = &self->opt_doc_template_dir;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp11_.description = "Template directory for documentation";
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp11_.arg_description = NULL;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       memset (&_tmp12_, 0, sizeof (GOptionEntry));
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp12_.long_name = "doc-private";
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp12_.short_name = 'P';
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp12_.flags = 0;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp12_.arg = G_OPTION_ARG_NONE;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp12_.arg_data = &self->opt_doc_include_private;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp12_.description = "Document Private functions";
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp12_.arg_description = NULL;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp13_ = g_new0 (GOptionEntry, 13);
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp13_[0] = _tmp0_;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp13_[1] = _tmp1_;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp13_[2] = _tmp2_;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp13_[3] = _tmp3_;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp13_[4] = _tmp4_;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp13_[5] = _tmp5_;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp13_[6] = _tmp6_;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp13_[7] = _tmp7_;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp13_[8] = _tmp8_;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp13_[9] = _tmp9_;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp13_[10] = _tmp10_;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp13_[11] = _tmp11_;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp13_[12] = _tmp12_;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       options = _tmp13_;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       options_length1 = 13;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _options_size_ = options_length1;
+#line 263 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp14_ = g_option_context_new ("JSDOC Packer");
+#line 263 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       opt_context = _tmp14_;
+#line 454 "PackerRun.c"
+       {
+               gboolean _tmp15_ = FALSE;
+               gboolean _tmp16_;
+#line 266 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               g_option_context_set_help_enabled (opt_context, TRUE);
+#line 267 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               g_option_context_add_main_entries (opt_context, options, NULL);
+#line 268 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               _tmp16_ = g_option_context_parse (opt_context, &args_length1, &args, &_inner_error_);
+#line 268 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               _tmp15_ = _tmp16_;
+#line 268 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 268 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+                       if (_inner_error_->domain == G_OPTION_ERROR) {
+#line 470 "PackerRun.c"
+                               goto __catch3_g_option_error;
+                       }
+#line 268 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+                       _g_option_context_free0 (opt_context);
+#line 268 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+                       options = (g_free (options), NULL);
+#line 268 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+                       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);
+#line 268 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+                       g_clear_error (&_inner_error_);
+#line 268 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+                       return;
+#line 483 "PackerRun.c"
+               }
+#line 268 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               if (!_tmp15_) {
+#line 269 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+                       g_print ("options parse error");
+#line 270 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+                       exit (EXIT_FAILURE);
+#line 491 "PackerRun.c"
+               }
+       }
+       goto __finally3;
+       __catch3_g_option_error:
+       {
+               GError* e = NULL;
+               FILE* _tmp17_;
+               const gchar* _tmp18_;
+               FILE* _tmp19_;
+               gchar** _tmp20_;
+               gint _tmp20__length1;
+               const gchar* _tmp21_;
+               gchar* _tmp22_;
+               gchar* _tmp23_;
+#line 265 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               e = _inner_error_;
+#line 265 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               _inner_error_ = NULL;
+#line 277 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               _tmp17_ = stdout;
+#line 277 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               _tmp18_ = e->message;
+#line 277 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               fprintf (_tmp17_, "error: %s\n", _tmp18_);
+#line 278 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               _tmp19_ = stdout;
+#line 278 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               _tmp20_ = args;
+#line 278 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               _tmp20__length1 = args_length1;
+#line 278 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               _tmp21_ = _tmp20_[0];
+#line 278 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               _tmp22_ = g_option_context_get_help (opt_context, TRUE, NULL);
+#line 278 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               _tmp23_ = _tmp22_;
+#line 278 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               fprintf (_tmp19_, "Run '%s --help' to see a full list of available command line options.\n" \
+" %s", _tmp21_, _tmp23_);
+#line 278 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               _g_free0 (_tmp23_);
+#line 280 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               exit (EXIT_FAILURE);
+#line 265 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               _g_error_free0 (e);
+#line 536 "PackerRun.c"
+       }
+       __finally3:
+#line 265 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 265 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               _g_option_context_free0 (opt_context);
+#line 265 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               options = (g_free (options), NULL);
+#line 265 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               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);
+#line 265 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               g_clear_error (&_inner_error_);
+#line 265 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               return;
+#line 551 "PackerRun.c"
+       }
+#line 109 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _g_option_context_free0 (opt_context);
+#line 109 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       options = (g_free (options), NULL);
+#line 557 "PackerRun.c"
+}
+
+
+static void ___lambda4_ (JSDOCPackerRun* self, const gchar* dom, GLogLevelFlags lvl, const gchar* msg) {
+       const gchar* _tmp0_;
+       const gchar* _tmp1_;
+#line 293 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       g_return_if_fail (msg != NULL);
+#line 294 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp0_ = dom;
+#line 294 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp1_ = msg;
+#line 294 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       g_print ("%s: %s\n", _tmp0_, _tmp1_);
+#line 572 "PackerRun.c"
+}
+
+
+static void ____lambda4__glog_func (const gchar* log_domain, GLogLevelFlags log_levels, const gchar* message, gpointer self) {
+#line 291 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       ___lambda4_ ((JSDOCPackerRun*) self, log_domain, log_levels, message);
+#line 579 "PackerRun.c"
+}
+
+
+static gchar string_get (const gchar* self, glong index) {
+       gchar result = '\0';
+       glong _tmp0_;
+       gchar _tmp1_;
+#line 1110 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (self != NULL, '\0');
+#line 1111 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp0_ = index;
+#line 1111 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp1_ = ((gchar*) self)[_tmp0_];
+#line 1111 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       result = _tmp1_;
+#line 1111 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       return result;
+#line 597 "PackerRun.c"
+}
+
+
+static glong string_strnlen (gchar* str, glong maxlen) {
+       glong result = 0L;
+       gchar* end = NULL;
+       gchar* _tmp0_;
+       glong _tmp1_;
+       gchar* _tmp2_;
+       gchar* _tmp3_;
+#line 1322 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp0_ = str;
+#line 1322 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp1_ = maxlen;
+#line 1322 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp2_ = memchr (_tmp0_, 0, (gsize) _tmp1_);
+#line 1322 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       end = _tmp2_;
+#line 1323 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp3_ = end;
+#line 1323 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if (_tmp3_ == NULL) {
+#line 620 "PackerRun.c"
+               glong _tmp4_;
+#line 1324 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp4_ = maxlen;
+#line 1324 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               result = _tmp4_;
+#line 1324 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               return result;
+#line 628 "PackerRun.c"
+       } else {
+               gchar* _tmp5_;
+               gchar* _tmp6_;
+#line 1326 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp5_ = end;
+#line 1326 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp6_ = str;
+#line 1326 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               result = (glong) (_tmp5_ - _tmp6_);
+#line 1326 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               return result;
+#line 640 "PackerRun.c"
+       }
+}
+
+
+static gchar* string_substring (const gchar* self, glong offset, glong len) {
+       gchar* result = NULL;
+       glong string_length = 0L;
+       gboolean _tmp0_ = FALSE;
+       glong _tmp1_;
+       glong _tmp8_;
+       glong _tmp14_;
+       glong _tmp17_;
+       glong _tmp18_;
+       glong _tmp19_;
+       glong _tmp20_;
+       glong _tmp21_;
+       gchar* _tmp22_;
+#line 1333 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 1335 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp1_ = offset;
+#line 1335 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if (_tmp1_ >= ((glong) 0)) {
+#line 664 "PackerRun.c"
+               glong _tmp2_;
+#line 1335 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp2_ = len;
+#line 1335 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp0_ = _tmp2_ >= ((glong) 0);
+#line 670 "PackerRun.c"
+       } else {
+#line 1335 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp0_ = FALSE;
+#line 674 "PackerRun.c"
+       }
+#line 1335 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if (_tmp0_) {
+#line 678 "PackerRun.c"
+               glong _tmp3_;
+               glong _tmp4_;
+               glong _tmp5_;
+#line 1337 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp3_ = offset;
+#line 1337 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp4_ = len;
+#line 1337 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp5_ = string_strnlen ((gchar*) self, _tmp3_ + _tmp4_);
+#line 1337 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               string_length = _tmp5_;
+#line 690 "PackerRun.c"
+       } else {
+               gint _tmp6_;
+               gint _tmp7_;
+#line 1339 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp6_ = strlen (self);
+#line 1339 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp7_ = _tmp6_;
+#line 1339 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               string_length = (glong) _tmp7_;
+#line 700 "PackerRun.c"
+       }
+#line 1342 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp8_ = offset;
+#line 1342 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if (_tmp8_ < ((glong) 0)) {
+#line 706 "PackerRun.c"
+               glong _tmp9_;
+               glong _tmp10_;
+               glong _tmp11_;
+#line 1343 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp9_ = string_length;
+#line 1343 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp10_ = offset;
+#line 1343 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               offset = _tmp9_ + _tmp10_;
+#line 1344 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp11_ = offset;
+#line 1344 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               g_return_val_if_fail (_tmp11_ >= ((glong) 0), NULL);
+#line 720 "PackerRun.c"
+       } else {
+               glong _tmp12_;
+               glong _tmp13_;
+#line 1346 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp12_ = offset;
+#line 1346 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp13_ = string_length;
+#line 1346 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               g_return_val_if_fail (_tmp12_ <= _tmp13_, NULL);
+#line 730 "PackerRun.c"
+       }
+#line 1348 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp14_ = len;
+#line 1348 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if (_tmp14_ < ((glong) 0)) {
+#line 736 "PackerRun.c"
+               glong _tmp15_;
+               glong _tmp16_;
+#line 1349 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp15_ = string_length;
+#line 1349 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp16_ = offset;
+#line 1349 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               len = _tmp15_ - _tmp16_;
+#line 745 "PackerRun.c"
+       }
+#line 1351 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp17_ = offset;
+#line 1351 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp18_ = len;
+#line 1351 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp19_ = string_length;
+#line 1351 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       g_return_val_if_fail ((_tmp17_ + _tmp18_) <= _tmp19_, NULL);
+#line 1352 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp20_ = offset;
+#line 1352 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp21_ = len;
+#line 1352 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp22_ = g_strndup (((gchar*) self) + _tmp20_, (gsize) _tmp21_);
+#line 1352 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       result = _tmp22_;
+#line 1352 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       return result;
+#line 765 "PackerRun.c"
+}
+
+
+void jsdoc_packer_run_runPack (JSDOCPackerRun* self) {
+       gboolean _tmp0_;
+       gchar* curdir = NULL;
+       gchar* _tmp1_;
+       gchar* _tmp2_;
+       gchar* _tmp3_;
+       gchar* _tmp4_;
+       const gchar* _tmp5_;
+       const gchar* _tmp15_;
+       const gchar* _tmp16_;
+       gint _tmp17_;
+       gint _tmp18_;
+       gchar _tmp19_;
+       gchar* _tmp20_;
+       gchar* _tmp21_;
+       gboolean _tmp22_;
+       const gchar* _tmp25_;
+       const gchar* _tmp26_;
+       gboolean _tmp27_ = FALSE;
+       gchar** _tmp28_;
+       gint _tmp28__length1;
+       JSDOCPacker* p = NULL;
+       JSDOCPacker* _tmp30_;
+       gchar** _tmp31_;
+       gint _tmp31__length1;
+       gchar** _tmp37_;
+       gint _tmp37__length1;
+       gboolean run_pack = FALSE;
+       gboolean _tmp43_ = FALSE;
+       gboolean _tmp44_ = FALSE;
+       const gchar* _tmp45_;
+       const gchar* _tmp64_;
+       GError * _inner_error_ = NULL;
+#line 287 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       g_return_if_fail (self != NULL);
+#line 290 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp0_ = self->opt_debug;
+#line 290 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       if (_tmp0_) {
+#line 291 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               g_log_set_handler (NULL, G_LOG_LEVEL_DEBUG | G_LOG_LEVEL_WARNING, ____lambda4__glog_func, self);
+#line 810 "PackerRun.c"
+       }
+#line 302 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp1_ = g_get_current_dir ();
+#line 302 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp2_ = _tmp1_;
+#line 302 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp3_ = g_strconcat (_tmp2_, G_DIR_SEPARATOR_S, NULL);
+#line 302 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp4_ = _tmp3_;
+#line 302 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _g_free0 (_tmp2_);
+#line 302 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       curdir = _tmp4_;
+#line 303 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp5_ = self->priv->opt_basedir;
+#line 303 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       if (_tmp5_ == NULL) {
+#line 828 "PackerRun.c"
+               const gchar* _tmp6_;
+               gchar* _tmp7_;
+#line 305 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               _tmp6_ = curdir;
+#line 305 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               _tmp7_ = g_strdup (_tmp6_);
+#line 305 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               _g_free0 (self->opt_real_basedir);
+#line 305 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               self->opt_real_basedir = _tmp7_;
+#line 839 "PackerRun.c"
+       } else {
+               const gchar* _tmp8_;
+               gchar _tmp9_;
+#line 306 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               _tmp8_ = self->priv->opt_basedir;
+#line 306 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               _tmp9_ = string_get (_tmp8_, (glong) 0);
+#line 306 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               if (_tmp9_ == '/') {
+#line 849 "PackerRun.c"
+                       const gchar* _tmp10_;
+                       gchar* _tmp11_;
+#line 307 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+                       _tmp10_ = self->priv->opt_basedir;
+#line 307 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+                       _tmp11_ = g_strdup (_tmp10_);
+#line 307 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+                       _g_free0 (self->opt_real_basedir);
+#line 307 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+                       self->opt_real_basedir = _tmp11_;
+#line 860 "PackerRun.c"
+               } else {
+                       const gchar* _tmp12_;
+                       const gchar* _tmp13_;
+                       gchar* _tmp14_;
+#line 309 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+                       _tmp12_ = curdir;
+#line 309 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+                       _tmp13_ = self->priv->opt_basedir;
+#line 309 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+                       _tmp14_ = g_strconcat (_tmp12_, _tmp13_, NULL);
+#line 309 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+                       _g_free0 (self->opt_real_basedir);
+#line 309 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+                       self->opt_real_basedir = _tmp14_;
+#line 875 "PackerRun.c"
+               }
+       }
+#line 312 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp15_ = self->opt_real_basedir;
+#line 312 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp16_ = self->opt_real_basedir;
+#line 312 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp17_ = strlen (_tmp16_);
+#line 312 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp18_ = _tmp17_;
+#line 312 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp19_ = string_get (_tmp15_, (glong) (_tmp18_ - 1));
+#line 312 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp20_ = g_strdup_printf ("%c", _tmp19_);
+#line 312 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp21_ = _tmp20_;
+#line 312 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp22_ = g_strcmp0 (_tmp21_, G_DIR_SEPARATOR_S) != 0;
+#line 312 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _g_free0 (_tmp21_);
+#line 312 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       if (_tmp22_) {
+#line 898 "PackerRun.c"
+               const gchar* _tmp23_;
+               gchar* _tmp24_;
+#line 313 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               _tmp23_ = self->opt_real_basedir;
+#line 313 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               _tmp24_ = g_strconcat (_tmp23_, G_DIR_SEPARATOR_S, NULL);
+#line 313 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               _g_free0 (self->opt_real_basedir);
+#line 313 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               self->opt_real_basedir = _tmp24_;
+#line 909 "PackerRun.c"
+       }
+#line 316 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp25_ = self->opt_real_basedir;
+#line 316 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp26_ = self->priv->opt_basedir;
+#line 316 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       g_debug ("PackerRun.vala:316: real_base_dir  = '%s' : opt_basedir ='%s'\n", _tmp25_, _tmp26_);
+#line 319 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp28_ = self->priv->opt_files;
+#line 319 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp28__length1 = _vala_array_length (self->priv->opt_files);
+#line 319 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       if (_tmp28_ == NULL) {
+#line 923 "PackerRun.c"
+               gchar** _tmp29_;
+               gint _tmp29__length1;
+#line 319 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               _tmp29_ = self->priv->opt_files_from;
+#line 319 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               _tmp29__length1 = _vala_array_length (self->priv->opt_files_from);
+#line 319 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               _tmp27_ = _tmp29_ == NULL;
+#line 932 "PackerRun.c"
+       } else {
+#line 319 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               _tmp27_ = FALSE;
+#line 936 "PackerRun.c"
+       }
+#line 319 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       if (_tmp27_) {
+#line 320 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               g_error ("PackerRun.vala:320: You must list some files with -f or -i to compile " \
+"- see --help for more details");
+#line 321 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               exit (1);
+#line 944 "PackerRun.c"
+       }
+#line 326 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp30_ = jsdoc_packer_new (self);
+#line 326 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       p = _tmp30_;
+#line 329 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp31_ = self->priv->opt_files;
+#line 329 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp31__length1 = _vala_array_length (self->priv->opt_files);
+#line 329 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       if (_tmp31_ != NULL) {
+#line 956 "PackerRun.c"
+               gchar** _tmp32_;
+               gint _tmp32__length1;
+#line 331 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               _tmp32_ = self->priv->opt_files;
+#line 331 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               _tmp32__length1 = _vala_array_length (self->priv->opt_files);
+#line 963 "PackerRun.c"
+               {
+                       gchar** f_collection = NULL;
+                       gint f_collection_length1 = 0;
+                       gint _f_collection_size_ = 0;
+                       gint f_it = 0;
+#line 331 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+                       f_collection = _tmp32_;
+#line 331 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+                       f_collection_length1 = _tmp32__length1;
+#line 331 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+                       for (f_it = 0; f_it < _tmp32__length1; f_it = f_it + 1) {
+#line 975 "PackerRun.c"
+                               gchar* _tmp33_;
+                               gchar* f = NULL;
+#line 331 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+                               _tmp33_ = g_strdup (f_collection[f_it]);
+#line 331 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+                               f = _tmp33_;
+#line 982 "PackerRun.c"
+                               {
+                                       const gchar* _tmp34_;
+                                       JSDOCPacker* _tmp35_;
+                                       const gchar* _tmp36_;
+#line 332 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+                                       _tmp34_ = f;
+#line 332 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+                                       g_debug ("PackerRun.vala:332: Adding File %s", _tmp34_);
+#line 333 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+                                       _tmp35_ = p;
+#line 333 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+                                       _tmp36_ = f;
+#line 333 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+                                       jsdoc_packer_loadFile (_tmp35_, _tmp36_);
+#line 331 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+                                       _g_free0 (f);
+#line 999 "PackerRun.c"
+                               }
+                       }
+               }
+       }
+#line 336 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp37_ = self->priv->opt_files_from;
+#line 336 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp37__length1 = _vala_array_length (self->priv->opt_files_from);
+#line 336 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       if (_tmp37_ != NULL) {
+#line 1010 "PackerRun.c"
+               gchar** _tmp38_;
+               gint _tmp38__length1;
+#line 338 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               _tmp38_ = self->priv->opt_files_from;
+#line 338 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               _tmp38__length1 = _vala_array_length (self->priv->opt_files_from);
+#line 1017 "PackerRun.c"
+               {
+                       gchar** f_collection = NULL;
+                       gint f_collection_length1 = 0;
+                       gint _f_collection_size_ = 0;
+                       gint f_it = 0;
+#line 338 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+                       f_collection = _tmp38_;
+#line 338 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+                       f_collection_length1 = _tmp38__length1;
+#line 338 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+                       for (f_it = 0; f_it < _tmp38__length1; f_it = f_it + 1) {
+#line 1029 "PackerRun.c"
+                               gchar* _tmp39_;
+                               gchar* f = NULL;
+#line 338 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+                               _tmp39_ = g_strdup (f_collection[f_it]);
+#line 338 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+                               f = _tmp39_;
+#line 1036 "PackerRun.c"
+                               {
+                                       const gchar* _tmp40_;
+                                       JSDOCPacker* _tmp41_;
+                                       const gchar* _tmp42_;
+#line 339 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+                                       _tmp40_ = f;
+#line 339 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+                                       g_debug ("PackerRun.vala:339: Adding File %s", _tmp40_);
+#line 340 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+                                       _tmp41_ = p;
+#line 340 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+                                       _tmp42_ = f;
+#line 340 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+                                       jsdoc_packer_loadSourceIndex (_tmp41_, _tmp42_);
+#line 338 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+                                       _g_free0 (f);
+#line 1053 "PackerRun.c"
+                               }
+                       }
+               }
+       }
+#line 344 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       run_pack = FALSE;
+#line 345 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp45_ = self->opt_target;
+#line 345 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       if (_tmp45_ != NULL) {
+#line 345 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               _tmp44_ = TRUE;
+#line 1066 "PackerRun.c"
+       } else {
+               const gchar* _tmp46_;
+#line 345 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               _tmp46_ = self->opt_debug_target;
+#line 345 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               _tmp44_ = _tmp46_ != NULL;
+#line 1073 "PackerRun.c"
+       }
+#line 345 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       if (_tmp44_) {
+#line 345 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               _tmp43_ = TRUE;
+#line 1079 "PackerRun.c"
+       } else {
+               gboolean _tmp47_;
+#line 345 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               _tmp47_ = self->opt_dump_tokens;
+#line 345 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               _tmp43_ = _tmp47_;
+#line 1086 "PackerRun.c"
+       }
+#line 345 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       if (_tmp43_) {
+#line 1090 "PackerRun.c"
+               const gchar* _tmp48_ = NULL;
+               const gchar* _tmp49_;
+               const gchar* _tmp51_ = NULL;
+               const gchar* _tmp52_;
+               JSDOCPacker* _tmp54_;
+               gchar* _tmp55_;
+               gchar* _tmp56_;
+               JSDOCPacker* _tmp57_;
+               const gchar* _tmp58_;
+               gint _tmp59_;
+               gint _tmp60_;
+#line 347 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               _tmp49_ = self->opt_target;
+#line 347 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               if (_tmp49_ == NULL) {
+#line 347 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+                       _tmp48_ = "";
+#line 1108 "PackerRun.c"
+               } else {
+                       const gchar* _tmp50_;
+#line 347 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+                       _tmp50_ = self->opt_target;
+#line 347 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+                       _tmp48_ = _tmp50_;
+#line 1115 "PackerRun.c"
+               }
+#line 348 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               _tmp52_ = self->opt_debug_target;
+#line 348 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               if (_tmp52_ == NULL) {
+#line 348 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+                       _tmp51_ = "";
+#line 1123 "PackerRun.c"
+               } else {
+                       const gchar* _tmp53_;
+#line 348 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+                       _tmp53_ = self->opt_debug_target;
+#line 348 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+                       _tmp51_ = _tmp53_;
+#line 1130 "PackerRun.c"
+               }
+#line 347 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               _tmp54_ = p;
+#line 347 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               _tmp55_ = jsdoc_packer_pack (_tmp54_, _tmp48_, _tmp51_, &_inner_error_);
+#line 347 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               _tmp56_ = _tmp55_;
+#line 347 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               _g_free0 (_tmp56_);
+#line 347 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 347 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+                       _g_object_unref0 (p);
+#line 347 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+                       _g_free0 (curdir);
+#line 347 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+                       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);
+#line 347 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+                       g_clear_error (&_inner_error_);
+#line 347 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+                       return;
+#line 1152 "PackerRun.c"
+               }
+#line 350 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               _tmp57_ = p;
+#line 350 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               _tmp58_ = _tmp57_->outstr;
+#line 350 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               _tmp59_ = strlen (_tmp58_);
+#line 350 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               _tmp60_ = _tmp59_;
+#line 350 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               if (_tmp60_ > 0) {
+#line 1164 "PackerRun.c"
+                       FILE* _tmp61_;
+                       JSDOCPacker* _tmp62_;
+                       const gchar* _tmp63_;
+#line 351 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+                       _tmp61_ = stdout;
+#line 351 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+                       _tmp62_ = p;
+#line 351 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+                       _tmp63_ = _tmp62_->outstr;
+#line 351 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+                       fprintf (_tmp61_, "%s", _tmp63_);
+#line 1176 "PackerRun.c"
+               }
+#line 353 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               _g_object_unref0 (p);
+#line 353 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               _g_free0 (curdir);
+#line 353 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               return;
+#line 1184 "PackerRun.c"
+       }
+#line 355 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp64_ = self->opt_doc_target;
+#line 355 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       if (_tmp64_ != NULL) {
+#line 1190 "PackerRun.c"
+               gchar* _tmp65_ = NULL;
+               const gchar* _tmp66_;
+               gboolean _tmp67_;
+               gchar* _tmp75_;
+               JSDOCDocBuilder* d = NULL;
+               JSDOCPacker* _tmp76_;
+               JSDOCDocBuilder* _tmp77_;
+#line 357 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               _tmp66_ = self->opt_doc_target;
+#line 357 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               _tmp67_ = g_str_has_suffix (_tmp66_, "/");
+#line 357 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               if (_tmp67_) {
+#line 1204 "PackerRun.c"
+                       const gchar* _tmp68_;
+                       const gchar* _tmp69_;
+                       gint _tmp70_;
+                       gint _tmp71_;
+                       gchar* _tmp72_;
+#line 358 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+                       _tmp68_ = self->opt_doc_target;
+#line 358 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+                       _tmp69_ = self->opt_doc_target;
+#line 358 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+                       _tmp70_ = strlen (_tmp69_);
+#line 358 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+                       _tmp71_ = _tmp70_;
+#line 358 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+                       _tmp72_ = string_substring (_tmp68_, (glong) 0, (glong) (_tmp71_ - 1));
+#line 358 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+                       _g_free0 (_tmp65_);
+#line 358 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+                       _tmp65_ = _tmp72_;
+#line 1224 "PackerRun.c"
+               } else {
+                       const gchar* _tmp73_;
+                       gchar* _tmp74_;
+#line 358 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+                       _tmp73_ = self->opt_doc_target;
+#line 358 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+                       _tmp74_ = g_strdup (_tmp73_);
+#line 358 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+                       _g_free0 (_tmp65_);
+#line 358 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+                       _tmp65_ = _tmp74_;
+#line 1236 "PackerRun.c"
+               }
+#line 357 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               _tmp75_ = g_strdup (_tmp65_);
+#line 357 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               _g_free0 (self->opt_doc_target);
+#line 357 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               self->opt_doc_target = _tmp75_;
+#line 359 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               _tmp76_ = p;
+#line 359 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               _tmp77_ = jsdoc_doc_builder_new (_tmp76_);
+#line 359 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               d = _tmp77_;
+#line 360 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               _g_object_unref0 (d);
+#line 360 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               _g_free0 (_tmp65_);
+#line 360 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               _g_object_unref0 (p);
+#line 360 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               _g_free0 (curdir);
+#line 360 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+               return;
+#line 1260 "PackerRun.c"
+       }
+#line 362 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       g_error ("PackerRun.vala:362: either select output target or doc output target");
+#line 287 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _g_object_unref0 (p);
+#line 287 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _g_free0 (curdir);
+#line 1268 "PackerRun.c"
+}
+
+
+static void jsdoc_packer_run_class_init (JSDOCPackerRunClass * klass) {
+#line 30 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       jsdoc_packer_run_parent_class = g_type_class_peek_parent (klass);
+#line 30 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       g_type_class_add_private (klass, sizeof (JSDOCPackerRunPrivate));
+#line 30 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       G_OBJECT_CLASS (klass)->finalize = jsdoc_packer_run_finalize;
+#line 1279 "PackerRun.c"
+}
+
+
+static void jsdoc_packer_run_instance_init (JSDOCPackerRun * self) {
+       gchar* _tmp0_;
+#line 30 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       self->priv = JSDOC_PACKER_RUN_GET_PRIVATE (self);
+#line 33 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       self->opt_target = NULL;
+#line 34 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       self->opt_debug_target = NULL;
+#line 36 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       self->priv->opt_basedir = NULL;
+#line 42 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       self->opt_real_basedir = NULL;
+#line 44 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       self->opt_doc_target = NULL;
+#line 45 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       self->opt_doc_template_dir = NULL;
+#line 46 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       self->opt_doc_include_private = FALSE;
+#line 49 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       self->priv->opt_files = NULL;
+#line 51 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       self->priv->opt_files_from = NULL;
+#line 54 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       self->opt_debug = FALSE;
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       self->opt_skip_scope = FALSE;
+#line 67 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       self->opt_keep_whitespace = FALSE;
+#line 74 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       self->opt_dump_tokens = FALSE;
+#line 82 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       self->opt_clean_cache = TRUE;
+#line 86 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _tmp0_ = g_strdup ("html");
+#line 86 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       self->opt_doc_ext = _tmp0_;
+#line 1319 "PackerRun.c"
+}
+
+
+static void jsdoc_packer_run_finalize (GObject * obj) {
+       JSDOCPackerRun * self;
+#line 30 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       self = G_TYPE_CHECK_INSTANCE_CAST (obj, JSDOC_TYPE_PACKER_RUN, JSDOCPackerRun);
+#line 33 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _g_free0 (self->opt_target);
+#line 34 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _g_free0 (self->opt_debug_target);
+#line 36 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _g_free0 (self->priv->opt_basedir);
+#line 42 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _g_free0 (self->opt_real_basedir);
+#line 44 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _g_free0 (self->opt_doc_target);
+#line 45 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _g_free0 (self->opt_doc_template_dir);
+#line 49 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       self->priv->opt_files = (_vala_array_free (self->priv->opt_files, _vala_array_length (self->priv->opt_files), (GDestroyNotify) g_free), NULL);
+#line 51 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       self->priv->opt_files_from = (_vala_array_free (self->priv->opt_files_from, _vala_array_length (self->priv->opt_files_from), (GDestroyNotify) g_free), NULL);
+#line 86 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       _g_free0 (self->opt_doc_ext);
+#line 30 "/home/alan/gitlive/roojspacker/src/jsdoc/PackerRun.vala"
+       G_OBJECT_CLASS (jsdoc_packer_run_parent_class)->finalize (obj);
+#line 1347 "PackerRun.c"
+}
+
+
+GType jsdoc_packer_run_get_type (void) {
+       static volatile gsize jsdoc_packer_run_type_id__volatile = 0;
+       if (g_once_init_enter (&jsdoc_packer_run_type_id__volatile)) {
+               static const GTypeInfo g_define_type_info = { sizeof (JSDOCPackerRunClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) jsdoc_packer_run_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (JSDOCPackerRun), 0, (GInstanceInitFunc) jsdoc_packer_run_instance_init, NULL };
+               GType jsdoc_packer_run_type_id;
+               jsdoc_packer_run_type_id = g_type_register_static (g_application_get_type (), "JSDOCPackerRun", &g_define_type_info, 0);
+               g_once_init_leave (&jsdoc_packer_run_type_id__volatile, jsdoc_packer_run_type_id);
+       }
+       return jsdoc_packer_run_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;
+}
+
+
+
diff --git a/jsdoc/PackerRun.vala b/jsdoc/PackerRun.vala
new file mode 100644 (file)
index 0000000..1ff926f
--- /dev/null
@@ -0,0 +1,370 @@
+
+/** 
+
+  THIS IS THE ENTRY POINT...
+
+  the application
+  -- in theory this code  can be used as a library... but this is the standard command line version...
+  
+  
+  valac  --vapidir=/usr/share/vala/vapi 
+     --vapidir=/usr/share/vala/vapi 
+    --vapidir=/usr/share/vala-0.30/vapi 
+        --thread  -g  
+      JSDOC/Lang.vala JSDOC/TextStream.vala JSDOC/TokenReader.vala JSDOC/Token.vala JSDOC/TokenStream.vala JSDOC/Packer.vala 
+      JSDOC/Collapse.vala JSDOC/ScopeParser.vala JSDOC/Scope.vala JSDOC/Identifier.vala JSDOC/CompressWhite.vala 
+       JSDOC/PackerRun.vala --pkg glib-2.0 --pkg gee-1.0 --pkg gio-2.0 --pkg posix -o /tmp/jspack --target-glib=2.32  -X -lm
+
+  
+*/
+
+JSDOC.PackerRun _PackerRun;
+
+namespace JSDOC
+{
+       // --------------- <<<<<<< <MAIN HERE....
+       
+#if HAVE_OLD_GLIB
+       public class PackerRun : Object 
+#else
+       public class PackerRun : Application    
+#endif
+       {
+               public  string opt_target = null;
+               public string opt_debug_target = null;
+//             public  string opt_tmpdir = null;
+               private  string opt_basedir = null;
+               
+               /**
+               * @cfg baseDir -- prefix the files listed in indexfiles with this.
+               */
+                
+               public  string opt_real_basedir = null; // USE this one it's calcuated based on current path..
+               
+               public  string opt_doc_target = null;
+               public  string opt_doc_template_dir = null;
+               public  bool opt_doc_include_private = false;           
+                               
+               [CCode (array_length = false, array_null_terminated = true)]
+               private string[]? opt_files = null;
+               [CCode (array_length = false, array_null_terminated = true)]
+               private  string[]? opt_files_from = null;
+               
+               
+               public  bool opt_debug = false;
+               
+                /**
+                * @cfg {Boolean} opt_skip_scope (optional) skip Scope parsing and replacement.
+                *    usefull for debugging...
+                */
+               public  bool opt_skip_scope = false;
+               
+               /**
+                * @cfg {Boolean} opt_keep_whitespace (optional) do not remove white space in output.
+                *    usefull for debugging compressed files.
+                */
+               
+               public  bool opt_keep_whitespace = false;       
+               
+                       /**
+                * @cfg {Boolean} opt_dump_tokens (optional) read the first file and dump the tokens.
+                *    usefull for debugging...
+                */
+               
+               public  bool opt_dump_tokens = false;   
+               
+                  
+               /**
+                * @cfg {Boolean} opt_clean_cache  (optional) clean up temp files after done - 
+                *    Defaults to false if you set tmpDir, otherwise true.
+                */
+               
+               public  bool opt_clean_cache = true;    
+               
+               // not actually an option yet..
+               
+               public  string opt_doc_ext = "html";
+               
+               public static PackerRun singleton()
+               {
+                       if (_PackerRun == null) {
+                               _PackerRun = new PackerRun();
+                       }
+                       return _PackerRun;
+               }
+  
+               public PackerRun ()
+               {
+#if !HAVE_OLD_GLIB             
+                       Object(
+                           application_id: "org.roojs.jsdoc.packerrun",
+                               flags: ApplicationFlags.HANDLES_COMMAND_LINE 
+                       );
+#endif         
+                       
+
+               }
+               
+               
+               public void parseArgs(string[] args)
+               {
+                       GLib.OptionEntry[] options       = {
+                               OptionEntry() {
+                                       long_name = "jsfile",
+                                       short_name = 'f',
+                                       flags = 0,
+                                       arg =  OptionArg.FILENAME_ARRAY,
+                                       arg_data = &opt_files,
+                                       description = "add a file to compile",
+                                       arg_description = null
+                               },
+                               OptionEntry() {
+                                       long_name = "target",
+                                       short_name = 't',
+                                       flags = 0,
+                                       arg =  OptionArg.STRING,
+                                       arg_data = &opt_target,
+                                       description = "Target File to write (eg. roojs.js)",
+                                       arg_description = null
+                               },
+                               OptionEntry() {
+                                       long_name = "debug-target",
+                                       short_name = 'T',
+                                       flags = 0,
+                                       arg =  OptionArg.STRING,
+                                       arg_data = &opt_debug_target,
+                                       description = "Target File to write debug code (eg. roojs-debug.js)",
+                                       arg_description = null
+                               },
+                               //{ "tmpdir", 'm', 0, OptionArg.STRING, ref opt_tmpdir, "Temporary Directory to use (defaults to /tmp)", null },
+                               /*
+                               OptionEntry() {
+                                       long_name = "tmpdir",
+                                       short_name = 'm',
+                                       flags = 0,
+                                       arg =  OptionArg.STRING,
+                                       arg_data = &opt_tmpdir,
+                                       description = "Temporary Directory - used by documentation tool?",
+                                       arg_description = null
+                               }, 
+                               */
+
+                               OptionEntry() {
+                                       long_name = "basedir",
+                                       short_name = 'b',
+                                       flags = 0,
+                                       arg =  OptionArg.STRING,
+                                       arg_data = &opt_basedir,
+                                       description = "Base directory (where the files listed in index files are located.)",
+                                       arg_description = null
+                               }, 
+
+                               OptionEntry() {
+                                       long_name = "index-files",
+                                       short_name = 'i',
+                                       flags = 0,
+                                       arg =  OptionArg.FILENAME_ARRAY,
+                                       arg_data = &opt_files_from,
+                                       description = "files that contain listing of files to compile",
+                                       arg_description = null
+                               }, 
+
+                               OptionEntry() {
+                                       long_name = "keep-whitespace",
+                                       short_name = 'w',
+                                       flags = 0,
+                                       arg =  OptionArg.NONE,
+                                       arg_data = &opt_keep_whitespace,
+                                       description = "Keep whitespace",
+                                       arg_description = null
+                               }, 
+                        
+                               OptionEntry() {
+                                       long_name = "skip-scope",
+                                       short_name = 's',
+                                       flags = 0,
+                                       arg =  OptionArg.NONE,
+                                       arg_data = &opt_skip_scope,
+                                       description = "Skip scope parsing and variable replacement",
+                                       arg_description = null
+                               }, 
+                               OptionEntry() {
+                                       long_name = "debug",
+                                       short_name = 'D',
+                                       flags = 0,
+                                       arg =  OptionArg.NONE,
+                                       arg_data = &opt_debug,
+                                       description = "Show debug messages",
+                                       arg_description = null
+                               }, 
+
+                               OptionEntry() {
+                                       long_name = "dump-tokens",
+                                       short_name = 'k',
+                                       flags = 0,
+                                       arg =  OptionArg.NONE,
+                                       arg_data = &opt_dump_tokens,
+                                       description = "Dump the tokens from a file",
+                                       arg_description = null
+                               }, 
+
+                               OptionEntry() {
+                                       long_name = "clean-cache",
+                                       short_name = 'c',
+                                       flags = 0,
+                                       arg =  OptionArg.NONE,
+                                       arg_data = &opt_clean_cache,
+                                       description = "Clean up the cache after running (slower)",
+                                       arg_description = null
+                               }, 
+
+
+                       // fixme -- keepwhite.. cleanup 
+                       
+                       // documentation options
+                       // usage: roojspacker --basedir roojs1 \
+                       //       --doc-target roojs1/docs \
+                       //       --index-files roojs1/buildSDK/dependancy_core.txt  \
+                       //       --index-files roojs1/buildSDK/dependancy_ui.txt  \
+                       //       --index-files roojs1/buildSDK/dependancy_bootstrap.txt  \
+                       //       --doc-template-dir \
+                       
+                               OptionEntry() {
+                                       long_name = "doc-target",
+                                       short_name = 'd',
+                                       flags = 0,
+                                       arg =  OptionArg.STRING,
+                                       arg_data = &opt_doc_target,
+                                       description = "Target location for documetnation",
+                                       arg_description = null
+                               }, 
+
+                               OptionEntry() {
+                                       long_name = "doc-template-dir",
+                                       short_name = 'p',
+                                       flags = 0,
+                                       arg =  OptionArg.STRING,
+                                       arg_data = &opt_doc_template_dir,
+                                       description = "Template directory for documentation",
+                                       arg_description = null
+                               },                      
+
+
+                               OptionEntry() {
+                                       long_name = "doc-private",
+                                       short_name = 'P',
+                                       flags = 0,
+                                       arg =  OptionArg.NONE,
+                                       arg_data = &opt_doc_include_private,
+                                       description = "Document Private functions",
+                                       arg_description = null
+                               }
+                       };
+                       var opt_context = new OptionContext ("JSDOC Packer");
+
+                       try {
+                               opt_context.set_help_enabled (true);
+                               opt_context.add_main_entries (options, null);
+                               if (!opt_context.parse ( ref args)) {
+                                       print("options parse error");
+                                       GLib.Process.exit(Posix.EXIT_FAILURE);
+                               }
+
+
+                                
+
+                       } catch (OptionError e) {
+                               stdout.printf ("error: %s\n", e.message);
+                               stdout.printf ("Run '%s --help' to see a full list of available command line options.\n %s", 
+                                                        args[0], opt_context.get_help(true,null));
+                               GLib.Process.exit(Posix.EXIT_FAILURE);
+                                
+                       }
+                       
+                                        
+                        
+               }
+               public void  runPack()
+               {       
+                       // what's required...
+                       if (opt_debug) {
+                               GLib.Log.set_handler(null, 
+                                       GLib.LogLevelFlags.LEVEL_DEBUG | GLib.LogLevelFlags.LEVEL_WARNING, 
+                                       (dom, lvl, msg) => {
+                                       print("%s: %s\n", dom, msg);
+                               });
+                       }
+                       
+                        
+  
+                        
+                       // set the base directory...
+                       var curdir = Environment.get_current_dir() + Path.DIR_SEPARATOR_S;
+                       if (opt_basedir == null) {
+
+                               opt_real_basedir = curdir;
+                       } else if (opt_basedir[0] == '/') {     
+                               opt_real_basedir  = opt_basedir;
+                       } else {
+                               opt_real_basedir  = curdir + opt_basedir;
+                       }
+                       // suffix a slash..
+                       if (opt_real_basedir [opt_real_basedir .length-1].to_string() != Path.DIR_SEPARATOR_S) {
+                               opt_real_basedir  += Path.DIR_SEPARATOR_S;
+                       }
+                       
+                       GLib.debug("real_base_dir  = '%s' : opt_basedir ='%s'\n", opt_real_basedir , opt_basedir);
+                       
+                       
+                       if (opt_files == null && opt_files_from == null) {
+                               GLib.error("You must list some files with -f or -i to compile - see --help for more details");
+                               GLib.Process.exit(1);
+                       }
+                       
+                       
+                               // initialize the Packer (does not parse anything..)
+                       var p = new Packer(     this );
+                       
+                       
+                       if (opt_files != null) {
+                        
+                               foreach (var  f in opt_files) {
+                                       GLib.debug("Adding File %s", f);
+                                       p.loadFile(f);  // just adds to list of files to parse (no parsing yet..)
+                               }
+                       }  
+                       if (opt_files_from != null) {
+                        
+                               foreach (var  f in opt_files_from) {
+                                       GLib.debug("Adding File %s", f);
+                                       p.loadSourceIndex(f);
+                               }
+                       }  
+                       
+                       var run_pack = false;
+                       if (opt_target != null || opt_debug_target != null || opt_dump_tokens) {
+                               // do the actual packing...
+                               p.pack( opt_target == null ? "" : opt_target ,
+                                               opt_debug_target == null ? "" :  opt_debug_target );
+                       
+                       if (p.outstr.length > 0 ) {
+                                       stdout.printf ("%s", p.outstr);
+                               }
+                               return;
+               }
+               if (opt_doc_target != null) {
+                               // remove trailing /
+                       opt_doc_target = opt_doc_target.has_suffix("/") ? 
+                                       opt_doc_target.substring(0, opt_doc_target.length-1) : opt_doc_target;
+                       var d = new JSDOC.DocBuilder(p);
+                       return;
+               } 
+               GLib.error("either select output target or doc output target");
+               
+               
+               
+               }        
+               
+       }
+       
+}
\ No newline at end of file
diff --git a/jsdoc/PrettyPrint.c b/jsdoc/PrettyPrint.c
new file mode 100644 (file)
index 0000000..dbc3357
--- /dev/null
@@ -0,0 +1,1124 @@
+/* PrettyPrint.c generated by valac 0.36.6, the Vala compiler
+ * generated from PrettyPrint.vala, do not modify */
+
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gee.h>
+
+
+#define JSDOC_TYPE_PRETTY_PRINT (jsdoc_pretty_print_get_type ())
+#define JSDOC_PRETTY_PRINT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_PRETTY_PRINT, JSDOCPrettyPrint))
+#define JSDOC_PRETTY_PRINT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_PRETTY_PRINT, JSDOCPrettyPrintClass))
+#define JSDOC_IS_PRETTY_PRINT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_PRETTY_PRINT))
+#define JSDOC_IS_PRETTY_PRINT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_PRETTY_PRINT))
+#define JSDOC_PRETTY_PRINT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_PRETTY_PRINT, JSDOCPrettyPrintClass))
+
+typedef struct _JSDOCPrettyPrint JSDOCPrettyPrint;
+typedef struct _JSDOCPrettyPrintClass JSDOCPrettyPrintClass;
+typedef struct _JSDOCPrettyPrintPrivate JSDOCPrettyPrintPrivate;
+#define _g_free0(var) (var = (g_free (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 JSDOC_TYPE_TEXT_STREAM (jsdoc_text_stream_get_type ())
+#define JSDOC_TEXT_STREAM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_TEXT_STREAM, JSDOCTextStream))
+#define JSDOC_TEXT_STREAM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_TEXT_STREAM, JSDOCTextStreamClass))
+#define JSDOC_IS_TEXT_STREAM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_TEXT_STREAM))
+#define JSDOC_IS_TEXT_STREAM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_TEXT_STREAM))
+#define JSDOC_TEXT_STREAM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_TEXT_STREAM, JSDOCTextStreamClass))
+
+typedef struct _JSDOCTextStream JSDOCTextStream;
+typedef struct _JSDOCTextStreamClass JSDOCTextStreamClass;
+
+#define JSDOC_TYPE_TOKEN_READER (jsdoc_token_reader_get_type ())
+#define JSDOC_TOKEN_READER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_TOKEN_READER, JSDOCTokenReader))
+#define JSDOC_TOKEN_READER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_TOKEN_READER, JSDOCTokenReaderClass))
+#define JSDOC_IS_TOKEN_READER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_TOKEN_READER))
+#define JSDOC_IS_TOKEN_READER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_TOKEN_READER))
+#define JSDOC_TOKEN_READER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_TOKEN_READER, JSDOCTokenReaderClass))
+
+typedef struct _JSDOCTokenReader JSDOCTokenReader;
+typedef struct _JSDOCTokenReaderClass JSDOCTokenReaderClass;
+
+#define JSDOC_TYPE_PACKER (jsdoc_packer_get_type ())
+#define JSDOC_PACKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_PACKER, JSDOCPacker))
+#define JSDOC_PACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_PACKER, JSDOCPackerClass))
+#define JSDOC_IS_PACKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_PACKER))
+#define JSDOC_IS_PACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_PACKER))
+#define JSDOC_PACKER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_PACKER, JSDOCPackerClass))
+
+typedef struct _JSDOCPacker JSDOCPacker;
+typedef struct _JSDOCPackerClass JSDOCPackerClass;
+typedef struct _JSDOCTokenReaderPrivate JSDOCTokenReaderPrivate;
+
+#define JSDOC_TYPE_TOKEN_ARRAY (jsdoc_token_array_get_type ())
+#define JSDOC_TOKEN_ARRAY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_TOKEN_ARRAY, JSDOCTokenArray))
+#define JSDOC_TOKEN_ARRAY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_TOKEN_ARRAY, JSDOCTokenArrayClass))
+#define JSDOC_IS_TOKEN_ARRAY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_TOKEN_ARRAY))
+#define JSDOC_IS_TOKEN_ARRAY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_TOKEN_ARRAY))
+#define JSDOC_TOKEN_ARRAY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_TOKEN_ARRAY, JSDOCTokenArrayClass))
+
+typedef struct _JSDOCTokenArray JSDOCTokenArray;
+typedef struct _JSDOCTokenArrayClass JSDOCTokenArrayClass;
+
+#define JSDOC_TYPE_TOKEN (jsdoc_token_get_type ())
+#define JSDOC_TOKEN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_TOKEN, JSDOCToken))
+#define JSDOC_TOKEN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_TOKEN, JSDOCTokenClass))
+#define JSDOC_IS_TOKEN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_TOKEN))
+#define JSDOC_IS_TOKEN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_TOKEN))
+#define JSDOC_TOKEN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_TOKEN, JSDOCTokenClass))
+
+typedef struct _JSDOCToken JSDOCToken;
+typedef struct _JSDOCTokenClass JSDOCTokenClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+typedef struct _JSDOCTokenPrivate JSDOCTokenPrivate;
+
+#define JSDOC_TYPE_TOKEN_TYPE (jsdoc_token_type_get_type ())
+
+#define JSDOC_TYPE_TOKEN_NAME (jsdoc_token_name_get_type ())
+
+#define JSDOC_TYPE_IDENTIFIER (jsdoc_identifier_get_type ())
+#define JSDOC_IDENTIFIER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_IDENTIFIER, JSDOCIdentifier))
+#define JSDOC_IDENTIFIER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_IDENTIFIER, JSDOCIdentifierClass))
+#define JSDOC_IS_IDENTIFIER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_IDENTIFIER))
+#define JSDOC_IS_IDENTIFIER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_IDENTIFIER))
+#define JSDOC_IDENTIFIER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_IDENTIFIER, JSDOCIdentifierClass))
+
+typedef struct _JSDOCIdentifier JSDOCIdentifier;
+typedef struct _JSDOCIdentifierClass JSDOCIdentifierClass;
+
+#define JSDOC_TYPE_TOKEN_KEY_MAP (jsdoc_token_key_map_get_type ())
+#define JSDOC_TOKEN_KEY_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_TOKEN_KEY_MAP, JSDOCTokenKeyMap))
+#define JSDOC_TOKEN_KEY_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_TOKEN_KEY_MAP, JSDOCTokenKeyMapClass))
+#define JSDOC_IS_TOKEN_KEY_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_TOKEN_KEY_MAP))
+#define JSDOC_IS_TOKEN_KEY_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_TOKEN_KEY_MAP))
+#define JSDOC_TOKEN_KEY_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_TOKEN_KEY_MAP, JSDOCTokenKeyMapClass))
+
+typedef struct _JSDOCTokenKeyMap JSDOCTokenKeyMap;
+typedef struct _JSDOCTokenKeyMapClass JSDOCTokenKeyMapClass;
+
+struct _JSDOCPrettyPrint {
+       GObject parent_instance;
+       JSDOCPrettyPrintPrivate * priv;
+};
+
+struct _JSDOCPrettyPrintClass {
+       GObjectClass parent_class;
+};
+
+struct _JSDOCTokenReader {
+       GObject parent_instance;
+       JSDOCTokenReaderPrivate * priv;
+       gboolean collapseWhite;
+       gboolean keepDocs;
+       gboolean keepWhite;
+       gboolean keepComments;
+       gboolean sepIdents;
+       gchar* filename;
+       gboolean ignoreBadGrammer;
+};
+
+struct _JSDOCTokenReaderClass {
+       GObjectClass parent_class;
+};
+
+typedef enum  {
+       JSDOC_TOKEN_TYPE_TOKN,
+       JSDOC_TOKEN_TYPE_KEYW,
+       JSDOC_TOKEN_TYPE_NAME,
+       JSDOC_TOKEN_TYPE_COMM,
+       JSDOC_TOKEN_TYPE_PUNC,
+       JSDOC_TOKEN_TYPE_WHIT,
+       JSDOC_TOKEN_TYPE_STRN,
+       JSDOC_TOKEN_TYPE_NUMB,
+       JSDOC_TOKEN_TYPE_REGX,
+       JSDOC_TOKEN_TYPE_VOID
+} JSDOCTokenType;
+
+typedef enum  {
+       JSDOC_TOKEN_NAME_UNKNOWN_TOKEN,
+       JSDOC_TOKEN_NAME_BREAK,
+       JSDOC_TOKEN_NAME_CASE,
+       JSDOC_TOKEN_NAME_CATCH,
+       JSDOC_TOKEN_NAME_CONST,
+       JSDOC_TOKEN_NAME_CONTINUE,
+       JSDOC_TOKEN_NAME_DEFAULT,
+       JSDOC_TOKEN_NAME_DELETE,
+       JSDOC_TOKEN_NAME_DO,
+       JSDOC_TOKEN_NAME_ELSE,
+       JSDOC_TOKEN_NAME_FALSE,
+       JSDOC_TOKEN_NAME_FINALLY,
+       JSDOC_TOKEN_NAME_FOR,
+       JSDOC_TOKEN_NAME_FUNCTION,
+       JSDOC_TOKEN_NAME_IF,
+       JSDOC_TOKEN_NAME_IN,
+       JSDOC_TOKEN_NAME_INSTANCEOF,
+       JSDOC_TOKEN_NAME_NEW,
+       JSDOC_TOKEN_NAME_NULL,
+       JSDOC_TOKEN_NAME_RETURN,
+       JSDOC_TOKEN_NAME_SWITCH,
+       JSDOC_TOKEN_NAME_THIS,
+       JSDOC_TOKEN_NAME_THROW,
+       JSDOC_TOKEN_NAME_TRUE,
+       JSDOC_TOKEN_NAME_TRY,
+       JSDOC_TOKEN_NAME_TYPEOF,
+       JSDOC_TOKEN_NAME_VOID,
+       JSDOC_TOKEN_NAME_WHILE,
+       JSDOC_TOKEN_NAME_WITH,
+       JSDOC_TOKEN_NAME_VAR,
+       JSDOC_TOKEN_NAME_EVAL,
+       JSDOC_TOKEN_NAME_NAME,
+       JSDOC_TOKEN_NAME_MULTI_LINE_COMM,
+       JSDOC_TOKEN_NAME_JSDOC,
+       JSDOC_TOKEN_NAME_SINGLE_LINE_COMM,
+       JSDOC_TOKEN_NAME_SEMICOLON,
+       JSDOC_TOKEN_NAME_COMMA,
+       JSDOC_TOKEN_NAME_HOOK,
+       JSDOC_TOKEN_NAME_COLON,
+       JSDOC_TOKEN_NAME_OR,
+       JSDOC_TOKEN_NAME_AND,
+       JSDOC_TOKEN_NAME_BITWISE_OR,
+       JSDOC_TOKEN_NAME_BITWISE_XOR,
+       JSDOC_TOKEN_NAME_BITWISE_AND,
+       JSDOC_TOKEN_NAME_STRICT_EQ,
+       JSDOC_TOKEN_NAME_EQ,
+       JSDOC_TOKEN_NAME_ASSIGN,
+       JSDOC_TOKEN_NAME_STRICT_NE,
+       JSDOC_TOKEN_NAME_NE,
+       JSDOC_TOKEN_NAME_LSH,
+       JSDOC_TOKEN_NAME_LE,
+       JSDOC_TOKEN_NAME_LT,
+       JSDOC_TOKEN_NAME_URSH,
+       JSDOC_TOKEN_NAME_RSH,
+       JSDOC_TOKEN_NAME_GE,
+       JSDOC_TOKEN_NAME_GT,
+       JSDOC_TOKEN_NAME_INCREMENT,
+       JSDOC_TOKEN_NAME_DECREMENT,
+       JSDOC_TOKEN_NAME_PLUS,
+       JSDOC_TOKEN_NAME_MINUS,
+       JSDOC_TOKEN_NAME_MUL,
+       JSDOC_TOKEN_NAME_DIV,
+       JSDOC_TOKEN_NAME_MOD,
+       JSDOC_TOKEN_NAME_NOT,
+       JSDOC_TOKEN_NAME_BITWISE_NOT,
+       JSDOC_TOKEN_NAME_DOT,
+       JSDOC_TOKEN_NAME_LEFT_BRACE,
+       JSDOC_TOKEN_NAME_RIGHT_BRACE,
+       JSDOC_TOKEN_NAME_LEFT_CURLY,
+       JSDOC_TOKEN_NAME_RIGHT_CURLY,
+       JSDOC_TOKEN_NAME_LEFT_PAREN,
+       JSDOC_TOKEN_NAME_RIGHT_PAREN,
+       JSDOC_TOKEN_NAME_SPACE,
+       JSDOC_TOKEN_NAME_NEWLINE,
+       JSDOC_TOKEN_NAME_DOUBLE_QUOTE,
+       JSDOC_TOKEN_NAME_SINGLE_QUOTE,
+       JSDOC_TOKEN_NAME_OCTAL,
+       JSDOC_TOKEN_NAME_DECIMAL,
+       JSDOC_TOKEN_NAME_HEX_DEC,
+       JSDOC_TOKEN_NAME_REGX,
+       JSDOC_TOKEN_NAME_START_OF_STREAM,
+       JSDOC_TOKEN_NAME_END_OF_STREAM,
+       JSDOC_TOKEN_NAME_UNKNOWN
+} JSDOCTokenName;
+
+struct _JSDOCToken {
+       GObject parent_instance;
+       JSDOCTokenPrivate * priv;
+       gint id;
+       gchar* data;
+       JSDOCTokenType type;
+       JSDOCTokenName name;
+       gint line;
+       gchar* prefix;
+       gchar* outData;
+       JSDOCIdentifier* identifier;
+       GeeArrayList* items;
+       GeeHashMap* props;
+       GeeArrayList* keyseq;
+};
+
+struct _JSDOCTokenClass {
+       GObjectClass parent_class;
+};
+
+
+static gpointer jsdoc_pretty_print_parent_class = NULL;
+
+GType jsdoc_pretty_print_get_type (void) G_GNUC_CONST;
+enum  {
+       JSDOC_PRETTY_PRINT_DUMMY_PROPERTY
+};
+static gchar* jsdoc_pretty_print_escapeHTML (const gchar* str);
+gchar* jsdoc_pretty_print_toPretty (const gchar* str);
+GType jsdoc_text_stream_get_type (void) G_GNUC_CONST;
+JSDOCTextStream* jsdoc_text_stream_new (const gchar* text);
+JSDOCTextStream* jsdoc_text_stream_construct (GType object_type, const gchar* text);
+GType jsdoc_token_reader_get_type (void) G_GNUC_CONST;
+GType jsdoc_packer_get_type (void) G_GNUC_CONST;
+JSDOCTokenReader* jsdoc_token_reader_new (JSDOCPacker* packer);
+JSDOCTokenReader* jsdoc_token_reader_construct (GType object_type, JSDOCPacker* packer);
+GType jsdoc_token_array_get_type (void) G_GNUC_CONST;
+JSDOCTokenArray* jsdoc_token_reader_tokenize (JSDOCTokenReader* self, JSDOCTextStream* stream);
+gint jsdoc_token_array_get_length (JSDOCTokenArray* self);
+GType jsdoc_token_get_type (void) G_GNUC_CONST;
+static gchar* jsdoc_pretty_print_toStyle (JSDOCToken* tok, const gchar* cs);
+JSDOCToken* jsdoc_token_array_get (JSDOCTokenArray* self, gint i);
+GType jsdoc_token_type_get_type (void) G_GNUC_CONST;
+GType jsdoc_token_name_get_type (void) G_GNUC_CONST;
+GType jsdoc_identifier_get_type (void) G_GNUC_CONST;
+GType jsdoc_token_key_map_get_type (void) G_GNUC_CONST;
+gboolean jsdoc_token_isName (JSDOCToken* self, JSDOCTokenName what);
+gboolean jsdoc_token_isType (JSDOCToken* self, JSDOCTokenType what);
+JSDOCPrettyPrint* jsdoc_pretty_print_new (void);
+JSDOCPrettyPrint* jsdoc_pretty_print_construct (GType object_type);
+
+
+static gchar* string_replace (const gchar* self, const gchar* old, const gchar* replacement) {
+       gchar* result = NULL;
+       gboolean _tmp0_ = FALSE;
+       gboolean _tmp1_ = FALSE;
+       GError * _inner_error_ = NULL;
+#line 1407 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 1407 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (old != NULL, NULL);
+#line 1407 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (replacement != NULL, NULL);
+#line 1408 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if ((*((gchar*) self)) == '\0') {
+#line 1408 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp1_ = TRUE;
+#line 295 "PrettyPrint.c"
+       } else {
+               const gchar* _tmp2_;
+#line 1408 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp2_ = old;
+#line 1408 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp1_ = (*((gchar*) _tmp2_)) == '\0';
+#line 302 "PrettyPrint.c"
+       }
+#line 1408 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if (_tmp1_) {
+#line 1408 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp0_ = TRUE;
+#line 308 "PrettyPrint.c"
+       } else {
+               const gchar* _tmp3_;
+               const gchar* _tmp4_;
+#line 1408 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp3_ = old;
+#line 1408 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp4_ = replacement;
+#line 1408 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp0_ = g_strcmp0 (_tmp3_, _tmp4_) == 0;
+#line 318 "PrettyPrint.c"
+       }
+#line 1408 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if (_tmp0_) {
+#line 322 "PrettyPrint.c"
+               gchar* _tmp5_;
+#line 1409 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp5_ = g_strdup (self);
+#line 1409 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               result = _tmp5_;
+#line 1409 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               return result;
+#line 330 "PrettyPrint.c"
+       }
+       {
+               GRegex* regex = NULL;
+               const gchar* _tmp6_;
+               gchar* _tmp7_;
+               gchar* _tmp8_;
+               GRegex* _tmp9_;
+               GRegex* _tmp10_;
+               gchar* _tmp11_ = NULL;
+               GRegex* _tmp12_;
+               const gchar* _tmp13_;
+               gchar* _tmp14_;
+               gchar* _tmp15_;
+#line 1412 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp6_ = old;
+#line 1412 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp7_ = g_regex_escape_string (_tmp6_, -1);
+#line 1412 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp8_ = _tmp7_;
+#line 1412 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp9_ = g_regex_new (_tmp8_, 0, 0, &_inner_error_);
+#line 1412 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp10_ = _tmp9_;
+#line 1412 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _g_free0 (_tmp8_);
+#line 1412 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               regex = _tmp10_;
+#line 1412 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1412 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       if (_inner_error_->domain == G_REGEX_ERROR) {
+#line 362 "PrettyPrint.c"
+                               goto __catch8_g_regex_error;
+                       }
+#line 1412 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       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);
+#line 1412 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       g_clear_error (&_inner_error_);
+#line 1412 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       return NULL;
+#line 371 "PrettyPrint.c"
+               }
+#line 1413 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp12_ = regex;
+#line 1413 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp13_ = replacement;
+#line 1413 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp14_ = g_regex_replace_literal (_tmp12_, self, (gssize) -1, 0, _tmp13_, 0, &_inner_error_);
+#line 1413 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp11_ = _tmp14_;
+#line 1413 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1413 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       _g_regex_unref0 (regex);
+#line 1413 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       if (_inner_error_->domain == G_REGEX_ERROR) {
+#line 387 "PrettyPrint.c"
+                               goto __catch8_g_regex_error;
+                       }
+#line 1413 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       _g_regex_unref0 (regex);
+#line 1413 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       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);
+#line 1413 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       g_clear_error (&_inner_error_);
+#line 1413 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       return NULL;
+#line 398 "PrettyPrint.c"
+               }
+#line 1413 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp15_ = _tmp11_;
+#line 1413 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp11_ = NULL;
+#line 1413 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               result = _tmp15_;
+#line 1413 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _g_free0 (_tmp11_);
+#line 1413 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _g_regex_unref0 (regex);
+#line 1413 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               return result;
+#line 412 "PrettyPrint.c"
+       }
+       goto __finally8;
+       __catch8_g_regex_error:
+       {
+               GError* e = NULL;
+#line 1411 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               e = _inner_error_;
+#line 1411 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _inner_error_ = NULL;
+#line 1415 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               g_assert_not_reached ();
+#line 1411 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _g_error_free0 (e);
+#line 426 "PrettyPrint.c"
+       }
+       __finally8:
+#line 1411 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1411 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               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);
+#line 1411 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               g_clear_error (&_inner_error_);
+#line 1411 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               return NULL;
+#line 437 "PrettyPrint.c"
+       }
+}
+
+
+static gchar* jsdoc_pretty_print_escapeHTML (const gchar* str) {
+       gchar* result = NULL;
+       const gchar* _tmp0_;
+       gchar* _tmp1_;
+       gchar* _tmp2_;
+       gchar* _tmp3_;
+       gchar* _tmp4_;
+       gchar* _tmp5_;
+       gchar* _tmp6_;
+       gchar* _tmp7_;
+       gchar* _tmp8_;
+#line 7 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       g_return_val_if_fail (str != NULL, NULL);
+#line 8 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       _tmp0_ = str;
+#line 8 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       _tmp1_ = string_replace (_tmp0_, "&", "&amp;");
+#line 8 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       _tmp2_ = _tmp1_;
+#line 8 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       _tmp3_ = string_replace (_tmp2_, ">", "&gt;");
+#line 8 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       _tmp4_ = _tmp3_;
+#line 8 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       _tmp5_ = string_replace (_tmp4_, "<", "&lt;");
+#line 8 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       _tmp6_ = _tmp5_;
+#line 8 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       _tmp7_ = string_replace (_tmp6_, "\"", "&quot;");
+#line 8 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       _tmp8_ = _tmp7_;
+#line 8 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       _g_free0 (_tmp6_);
+#line 8 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       _g_free0 (_tmp4_);
+#line 8 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       _g_free0 (_tmp2_);
+#line 8 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       result = _tmp8_;
+#line 8 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       return result;
+#line 483 "PrettyPrint.c"
+}
+
+
+gchar* jsdoc_pretty_print_toPretty (const gchar* str) {
+       gchar* result = NULL;
+       JSDOCTextStream* txs = NULL;
+       const gchar* _tmp0_;
+       JSDOCTextStream* _tmp1_;
+       JSDOCTokenReader* tr = NULL;
+       JSDOCTokenReader* _tmp2_;
+       JSDOCTokenReader* _tmp3_;
+       JSDOCTokenReader* _tmp4_;
+       JSDOCTokenArray* toks = NULL;
+       JSDOCTokenReader* _tmp5_;
+       JSDOCTextStream* _tmp6_;
+       JSDOCTokenArray* _tmp7_;
+       gchar* r = NULL;
+       gchar* _tmp8_;
+       gchar* cs = NULL;
+       gchar* _tmp9_;
+       const gchar* _tmp67_;
+       gint _tmp68_;
+       gint _tmp69_;
+       const gchar* _tmp72_;
+       gchar* _tmp73_;
+       gchar* _tmp74_;
+       gchar* _tmp75_;
+       gchar* _tmp76_;
+#line 14 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       g_return_val_if_fail (str != NULL, NULL);
+#line 17 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       _tmp0_ = str;
+#line 17 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       _tmp1_ = jsdoc_text_stream_new (_tmp0_);
+#line 17 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       txs = _tmp1_;
+#line 18 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       _tmp2_ = jsdoc_token_reader_new (NULL);
+#line 18 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       tr = _tmp2_;
+#line 19 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       _tmp3_ = tr;
+#line 19 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       _tmp3_->keepComments = TRUE;
+#line 20 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       _tmp4_ = tr;
+#line 20 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       _tmp4_->keepWhite = TRUE;
+#line 21 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       _tmp5_ = tr;
+#line 21 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       _tmp6_ = txs;
+#line 21 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       _tmp7_ = jsdoc_token_reader_tokenize (_tmp5_, _tmp6_);
+#line 21 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       toks = _tmp7_;
+#line 28 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       _tmp8_ = g_strdup ("");
+#line 28 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       r = _tmp8_;
+#line 35 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       _tmp9_ = g_strdup ("");
+#line 35 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       cs = _tmp9_;
+#line 548 "PrettyPrint.c"
+       {
+               gint i = 0;
+#line 40 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+               i = 0;
+#line 553 "PrettyPrint.c"
+               {
+                       gboolean _tmp10_ = FALSE;
+#line 40 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                       _tmp10_ = TRUE;
+#line 40 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                       while (TRUE) {
+#line 560 "PrettyPrint.c"
+                               gint _tmp12_;
+                               JSDOCTokenArray* _tmp13_;
+                               gint _tmp14_;
+                               gint _tmp15_;
+                               gchar* ns = NULL;
+                               JSDOCTokenArray* _tmp16_;
+                               gint _tmp17_;
+                               JSDOCToken* _tmp18_;
+                               JSDOCToken* _tmp19_;
+                               const gchar* _tmp20_;
+                               gchar* _tmp21_;
+                               gchar* _tmp22_;
+                               const gchar* _tmp23_;
+                               const gchar* _tmp24_;
+                               JSDOCTokenArray* _tmp39_;
+                               gint _tmp40_;
+                               JSDOCToken* _tmp41_;
+                               JSDOCToken* _tmp42_;
+                               JSDOCIdentifier* _tmp43_;
+                               gboolean _tmp44_;
+                               const gchar* _tmp58_;
+                               JSDOCTokenArray* _tmp59_;
+                               gint _tmp60_;
+                               JSDOCToken* _tmp61_;
+                               JSDOCToken* _tmp62_;
+                               const gchar* _tmp63_;
+                               gchar* _tmp64_;
+                               gchar* _tmp65_;
+                               gchar* _tmp66_;
+#line 40 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                               if (!_tmp10_) {
+#line 592 "PrettyPrint.c"
+                                       gint _tmp11_;
+#line 40 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                                       _tmp11_ = i;
+#line 40 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                                       i = _tmp11_ + 1;
+#line 598 "PrettyPrint.c"
+                               }
+#line 40 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                               _tmp10_ = FALSE;
+#line 40 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                               _tmp12_ = i;
+#line 40 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                               _tmp13_ = toks;
+#line 40 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                               _tmp14_ = jsdoc_token_array_get_length (_tmp13_);
+#line 40 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                               _tmp15_ = _tmp14_;
+#line 40 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                               if (!(_tmp12_ < _tmp15_)) {
+#line 40 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                                       break;
+#line 614 "PrettyPrint.c"
+                               }
+#line 41 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                               _tmp16_ = toks;
+#line 41 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                               _tmp17_ = i;
+#line 41 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                               _tmp18_ = jsdoc_token_array_get (_tmp16_, _tmp17_);
+#line 41 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                               _tmp19_ = _tmp18_;
+#line 41 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                               _tmp20_ = cs;
+#line 41 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                               _tmp21_ = jsdoc_pretty_print_toStyle (_tmp19_, _tmp20_);
+#line 41 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                               _tmp22_ = _tmp21_;
+#line 41 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                               _g_object_unref0 (_tmp19_);
+#line 41 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                               ns = _tmp22_;
+#line 42 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                               _tmp23_ = ns;
+#line 42 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                               _tmp24_ = cs;
+#line 42 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                               if (g_strcmp0 (_tmp23_, _tmp24_) != 0) {
+#line 640 "PrettyPrint.c"
+                                       const gchar* _tmp25_;
+                                       gint _tmp26_;
+                                       gint _tmp27_;
+                                       const gchar* _tmp30_;
+                                       const gchar* _tmp31_;
+                                       gchar* _tmp32_;
+                                       gchar* _tmp33_;
+                                       gchar* _tmp34_;
+                                       gchar* _tmp35_;
+                                       gchar* _tmp36_;
+                                       const gchar* _tmp37_;
+                                       gchar* _tmp38_;
+#line 44 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                                       _tmp25_ = cs;
+#line 44 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                                       _tmp26_ = strlen (_tmp25_);
+#line 44 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                                       _tmp27_ = _tmp26_;
+#line 44 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                                       if (_tmp27_ > 0) {
+#line 661 "PrettyPrint.c"
+                                               const gchar* _tmp28_;
+                                               gchar* _tmp29_;
+#line 44 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                                               _tmp28_ = r;
+#line 44 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                                               _tmp29_ = g_strconcat (_tmp28_, "</span>", NULL);
+#line 44 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                                               _g_free0 (r);
+#line 44 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                                               r = _tmp29_;
+#line 672 "PrettyPrint.c"
+                                       }
+#line 45 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                                       _tmp30_ = r;
+#line 45 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                                       _tmp31_ = ns;
+#line 45 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                                       _tmp32_ = g_strconcat ("<span class=\"jsdoc-", _tmp31_, NULL);
+#line 45 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                                       _tmp33_ = _tmp32_;
+#line 45 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                                       _tmp34_ = g_strconcat (_tmp33_, "\">", NULL);
+#line 45 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                                       _tmp35_ = _tmp34_;
+#line 45 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                                       _tmp36_ = g_strconcat (_tmp30_, _tmp35_, NULL);
+#line 45 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                                       _g_free0 (r);
+#line 45 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                                       r = _tmp36_;
+#line 45 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                                       _g_free0 (_tmp35_);
+#line 45 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                                       _g_free0 (_tmp33_);
+#line 46 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                                       _tmp37_ = ns;
+#line 46 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                                       _tmp38_ = g_strdup (_tmp37_);
+#line 46 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                                       _g_free0 (cs);
+#line 46 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                                       cs = _tmp38_;
+#line 704 "PrettyPrint.c"
+                               }
+#line 48 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                               _tmp39_ = toks;
+#line 48 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                               _tmp40_ = i;
+#line 48 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                               _tmp41_ = jsdoc_token_array_get (_tmp39_, _tmp40_);
+#line 48 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                               _tmp42_ = _tmp41_;
+#line 48 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                               _tmp43_ = _tmp42_->identifier;
+#line 48 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                               _tmp44_ = _tmp43_ != NULL;
+#line 48 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                               _g_object_unref0 (_tmp42_);
+#line 48 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                               if (_tmp44_) {
+#line 722 "PrettyPrint.c"
+                                       const gchar* _tmp45_;
+                                       JSDOCTokenArray* _tmp46_;
+                                       gint _tmp47_;
+                                       JSDOCToken* _tmp48_;
+                                       JSDOCToken* _tmp49_;
+                                       const gchar* _tmp50_;
+                                       gchar* _tmp51_;
+                                       gchar* _tmp52_;
+                                       gchar* _tmp53_;
+                                       gchar* _tmp54_;
+                                       gchar* _tmp55_;
+                                       gchar* _tmp56_;
+                                       gchar* _tmp57_;
+#line 50 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                                       _tmp45_ = r;
+#line 50 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                                       _tmp46_ = toks;
+#line 50 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                                       _tmp47_ = i;
+#line 50 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                                       _tmp48_ = jsdoc_token_array_get (_tmp46_, _tmp47_);
+#line 50 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                                       _tmp49_ = _tmp48_;
+#line 50 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                                       _tmp50_ = _tmp49_->data;
+#line 50 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                                       _tmp51_ = jsdoc_pretty_print_escapeHTML (_tmp50_);
+#line 50 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                                       _tmp52_ = _tmp51_;
+#line 50 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                                       _tmp53_ = g_strconcat ("<span class=\"with-ident2\">", _tmp52_, NULL);
+#line 50 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                                       _tmp54_ = _tmp53_;
+#line 50 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                                       _tmp55_ = g_strconcat (_tmp54_, "</span>", NULL);
+#line 50 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                                       _tmp56_ = _tmp55_;
+#line 50 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                                       _tmp57_ = g_strconcat (_tmp45_, _tmp56_, NULL);
+#line 50 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                                       _g_free0 (r);
+#line 50 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                                       r = _tmp57_;
+#line 50 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                                       _g_free0 (_tmp56_);
+#line 50 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                                       _g_free0 (_tmp54_);
+#line 50 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                                       _g_free0 (_tmp52_);
+#line 50 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                                       _g_object_unref0 (_tmp49_);
+#line 52 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                                       _g_free0 (ns);
+#line 52 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                                       continue;
+#line 778 "PrettyPrint.c"
+                               }
+#line 55 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                               _tmp58_ = r;
+#line 55 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                               _tmp59_ = toks;
+#line 55 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                               _tmp60_ = i;
+#line 55 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                               _tmp61_ = jsdoc_token_array_get (_tmp59_, _tmp60_);
+#line 55 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                               _tmp62_ = _tmp61_;
+#line 55 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                               _tmp63_ = _tmp62_->data;
+#line 55 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                               _tmp64_ = jsdoc_pretty_print_escapeHTML (_tmp63_);
+#line 55 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                               _tmp65_ = _tmp64_;
+#line 55 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                               _tmp66_ = g_strconcat (_tmp58_, _tmp65_, NULL);
+#line 55 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                               _g_free0 (r);
+#line 55 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                               r = _tmp66_;
+#line 55 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                               _g_free0 (_tmp65_);
+#line 55 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                               _g_object_unref0 (_tmp62_);
+#line 40 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+                               _g_free0 (ns);
+#line 808 "PrettyPrint.c"
+                       }
+               }
+       }
+#line 57 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       _tmp67_ = cs;
+#line 57 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       _tmp68_ = strlen (_tmp67_);
+#line 57 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       _tmp69_ = _tmp68_;
+#line 57 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       if (_tmp69_ > 0) {
+#line 820 "PrettyPrint.c"
+               const gchar* _tmp70_;
+               gchar* _tmp71_;
+#line 57 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+               _tmp70_ = r;
+#line 57 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+               _tmp71_ = g_strconcat (_tmp70_, "</span>", NULL);
+#line 57 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+               _g_free0 (r);
+#line 57 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+               r = _tmp71_;
+#line 831 "PrettyPrint.c"
+       }
+#line 59 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       _tmp72_ = r;
+#line 59 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       _tmp73_ = g_strconcat ("<code class=\"jsdoc-pretty\">", _tmp72_, NULL);
+#line 59 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       _tmp74_ = _tmp73_;
+#line 59 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       _tmp75_ = g_strconcat (_tmp74_, "</code>", NULL);
+#line 59 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       _tmp76_ = _tmp75_;
+#line 59 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       _g_free0 (_tmp74_);
+#line 59 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       result = _tmp76_;
+#line 59 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       _g_free0 (cs);
+#line 59 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       _g_free0 (r);
+#line 59 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       _g_object_unref0 (toks);
+#line 59 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       _g_object_unref0 (tr);
+#line 59 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       _g_object_unref0 (txs);
+#line 59 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       return result;
+#line 859 "PrettyPrint.c"
+}
+
+
+static gchar* jsdoc_pretty_print_toStyle (JSDOCToken* tok, const gchar* cs) {
+       gchar* result = NULL;
+       gboolean _tmp0_ = FALSE;
+       JSDOCToken* _tmp1_;
+       gboolean _tmp2_;
+       gboolean _tmp7_ = FALSE;
+       gboolean _tmp8_ = FALSE;
+       JSDOCToken* _tmp9_;
+       gboolean _tmp10_;
+       JSDOCToken* _tmp16_;
+       gboolean _tmp17_;
+       gboolean _tmp19_ = FALSE;
+       gboolean _tmp20_ = FALSE;
+       JSDOCToken* _tmp21_;
+       gboolean _tmp22_;
+       GRegex* r = NULL;
+       GRegex* _tmp28_;
+       GRegex* _tmp29_;
+       JSDOCToken* _tmp30_;
+       const gchar* _tmp31_;
+       gboolean _tmp32_;
+       gchar* _tmp34_;
+       GError * _inner_error_ = NULL;
+#line 64 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       g_return_val_if_fail (tok != NULL, NULL);
+#line 64 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       g_return_val_if_fail (cs != NULL, NULL);
+#line 67 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       _tmp1_ = tok;
+#line 67 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       _tmp2_ = jsdoc_token_isName (_tmp1_, JSDOC_TOKEN_NAME_SPACE);
+#line 67 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       if (_tmp2_) {
+#line 67 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+               _tmp0_ = TRUE;
+#line 898 "PrettyPrint.c"
+       } else {
+               JSDOCToken* _tmp3_;
+               gboolean _tmp4_;
+#line 67 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+               _tmp3_ = tok;
+#line 67 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+               _tmp4_ = jsdoc_token_isName (_tmp3_, JSDOC_TOKEN_NAME_NEWLINE);
+#line 67 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+               _tmp0_ = _tmp4_;
+#line 908 "PrettyPrint.c"
+       }
+#line 67 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       if (_tmp0_) {
+#line 912 "PrettyPrint.c"
+               const gchar* _tmp5_;
+               gchar* _tmp6_;
+#line 68 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+               _tmp5_ = cs;
+#line 68 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+               _tmp6_ = g_strdup (_tmp5_);
+#line 68 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+               result = _tmp6_;
+#line 68 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+               return result;
+#line 923 "PrettyPrint.c"
+       }
+#line 70 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       _tmp9_ = tok;
+#line 70 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       _tmp10_ = jsdoc_token_isName (_tmp9_, JSDOC_TOKEN_NAME_MULTI_LINE_COMM);
+#line 70 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       if (_tmp10_) {
+#line 70 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+               _tmp8_ = TRUE;
+#line 933 "PrettyPrint.c"
+       } else {
+               JSDOCToken* _tmp11_;
+               gboolean _tmp12_;
+#line 71 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+               _tmp11_ = tok;
+#line 71 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+               _tmp12_ = jsdoc_token_isName (_tmp11_, JSDOC_TOKEN_NAME_JSDOC);
+#line 71 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+               _tmp8_ = _tmp12_;
+#line 943 "PrettyPrint.c"
+       }
+#line 70 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       if (_tmp8_) {
+#line 70 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+               _tmp7_ = TRUE;
+#line 949 "PrettyPrint.c"
+       } else {
+               JSDOCToken* _tmp13_;
+               gboolean _tmp14_;
+#line 72 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+               _tmp13_ = tok;
+#line 72 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+               _tmp14_ = jsdoc_token_isName (_tmp13_, JSDOC_TOKEN_NAME_SINGLE_LINE_COMM);
+#line 72 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+               _tmp7_ = _tmp14_;
+#line 959 "PrettyPrint.c"
+       }
+#line 70 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       if (_tmp7_) {
+#line 963 "PrettyPrint.c"
+               gchar* _tmp15_;
+#line 73 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+               _tmp15_ = g_strdup ("comment");
+#line 73 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+               result = _tmp15_;
+#line 73 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+               return result;
+#line 971 "PrettyPrint.c"
+       }
+#line 76 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       _tmp16_ = tok;
+#line 76 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       _tmp17_ = jsdoc_token_isType (_tmp16_, JSDOC_TOKEN_TYPE_STRN);
+#line 76 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       if (_tmp17_) {
+#line 979 "PrettyPrint.c"
+               gchar* _tmp18_;
+#line 77 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+               _tmp18_ = g_strdup ("string");
+#line 77 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+               result = _tmp18_;
+#line 77 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+               return result;
+#line 987 "PrettyPrint.c"
+       }
+#line 80 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       _tmp21_ = tok;
+#line 80 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       _tmp22_ = jsdoc_token_isType (_tmp21_, JSDOC_TOKEN_TYPE_NAME);
+#line 80 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       if (_tmp22_) {
+#line 80 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+               _tmp20_ = TRUE;
+#line 997 "PrettyPrint.c"
+       } else {
+               JSDOCToken* _tmp23_;
+               const gchar* _tmp24_;
+#line 80 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+               _tmp23_ = tok;
+#line 80 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+               _tmp24_ = _tmp23_->data;
+#line 80 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+               _tmp20_ = g_strcmp0 (_tmp24_, ".") == 0;
+#line 1007 "PrettyPrint.c"
+       }
+#line 80 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       if (_tmp20_) {
+#line 80 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+               _tmp19_ = TRUE;
+#line 1013 "PrettyPrint.c"
+       } else {
+               JSDOCToken* _tmp25_;
+               gboolean _tmp26_;
+#line 80 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+               _tmp25_ = tok;
+#line 80 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+               _tmp26_ = jsdoc_token_isName (_tmp25_, JSDOC_TOKEN_NAME_THIS);
+#line 80 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+               _tmp19_ = _tmp26_;
+#line 1023 "PrettyPrint.c"
+       }
+#line 80 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       if (_tmp19_) {
+#line 1027 "PrettyPrint.c"
+               gchar* _tmp27_;
+#line 81 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+               _tmp27_ = g_strdup ("var");
+#line 81 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+               result = _tmp27_;
+#line 81 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+               return result;
+#line 1035 "PrettyPrint.c"
+       }
+#line 83 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       _tmp28_ = g_regex_new ("^[a-zA-Z]+", 0, 0, &_inner_error_);
+#line 83 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       r = _tmp28_;
+#line 83 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 83 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+               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);
+#line 83 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+               g_clear_error (&_inner_error_);
+#line 83 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+               return NULL;
+#line 1049 "PrettyPrint.c"
+       }
+#line 85 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       _tmp29_ = r;
+#line 85 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       _tmp30_ = tok;
+#line 85 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       _tmp31_ = _tmp30_->data;
+#line 85 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       _tmp32_ = g_regex_match (_tmp29_, _tmp31_, 0, NULL);
+#line 85 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       if (_tmp32_) {
+#line 1061 "PrettyPrint.c"
+               gchar* _tmp33_;
+#line 86 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+               _tmp33_ = g_strdup ("keyword");
+#line 86 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+               result = _tmp33_;
+#line 86 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+               _g_regex_unref0 (r);
+#line 86 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+               return result;
+#line 1071 "PrettyPrint.c"
+       }
+#line 88 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       _tmp34_ = g_strdup ("syntax");
+#line 88 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       result = _tmp34_;
+#line 88 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       _g_regex_unref0 (r);
+#line 88 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       return result;
+#line 1081 "PrettyPrint.c"
+}
+
+
+JSDOCPrettyPrint* jsdoc_pretty_print_construct (GType object_type) {
+       JSDOCPrettyPrint * self = NULL;
+#line 3 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       self = (JSDOCPrettyPrint*) g_object_new (object_type, NULL);
+#line 3 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       return self;
+#line 1091 "PrettyPrint.c"
+}
+
+
+JSDOCPrettyPrint* jsdoc_pretty_print_new (void) {
+#line 3 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       return jsdoc_pretty_print_construct (JSDOC_TYPE_PRETTY_PRINT);
+#line 1098 "PrettyPrint.c"
+}
+
+
+static void jsdoc_pretty_print_class_init (JSDOCPrettyPrintClass * klass) {
+#line 3 "/home/alan/gitlive/roojspacker/src/jsdoc/PrettyPrint.vala"
+       jsdoc_pretty_print_parent_class = g_type_class_peek_parent (klass);
+#line 1105 "PrettyPrint.c"
+}
+
+
+static void jsdoc_pretty_print_instance_init (JSDOCPrettyPrint * self) {
+}
+
+
+GType jsdoc_pretty_print_get_type (void) {
+       static volatile gsize jsdoc_pretty_print_type_id__volatile = 0;
+       if (g_once_init_enter (&jsdoc_pretty_print_type_id__volatile)) {
+               static const GTypeInfo g_define_type_info = { sizeof (JSDOCPrettyPrintClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) jsdoc_pretty_print_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (JSDOCPrettyPrint), 0, (GInstanceInitFunc) jsdoc_pretty_print_instance_init, NULL };
+               GType jsdoc_pretty_print_type_id;
+               jsdoc_pretty_print_type_id = g_type_register_static (G_TYPE_OBJECT, "JSDOCPrettyPrint", &g_define_type_info, 0);
+               g_once_init_leave (&jsdoc_pretty_print_type_id__volatile, jsdoc_pretty_print_type_id);
+       }
+       return jsdoc_pretty_print_type_id__volatile;
+}
+
+
+
diff --git a/jsdoc/PrettyPrint.vala b/jsdoc/PrettyPrint.vala
new file mode 100644 (file)
index 0000000..f9e152e
--- /dev/null
@@ -0,0 +1,91 @@
+
+namespace JSDOC {
+       class PrettyPrint : Object 
+       {
+
+               // pretty simple...
+               static string  escapeHTML(string str) { 
+                       return str.replace("&","&amp;").
+                                   replace(">","&gt;"). 
+                                   replace("<","&lt;"). 
+                                   replace("\"","&quot;");
+               }
+
+                public static  string toPretty(string str)
+               {
+                       
+                       var txs = new TextStream(str);
+                       var tr = new TokenReader(null);
+                       tr.keepComments = true;
+                       tr.keepWhite = true;
+                       var toks = tr.tokenize(txs);
+                       
+                       //var sp = new ScopeParser(new Collapse(toks));
+                       //sp.buildSymbolTree();
+                       
+                       
+                  // sp.mungeSymboltree();
+                       var r = "";
+                       //r += sp.warnings.join("<BR>");
+                       //r == "<BR>";
+                       
+                       
+                       
+                       
+                       var cs = ""; // current style..
+                       
+                       // loop through and print it...?
+                       
+                       
+                       for (var i = 0;i < toks.length; i++) {
+                               var ns = toStyle(toks.get(i),cs);
+                               if (ns != cs) {
+                                   // change of style
+                                   if (cs.length > 0) { r += "</span>"; };
+                                   r +="<span class=\"jsdoc-"+ns+"\">";
+                                   cs = ns;
+                               }
+                               if (toks.get(i).identifier != null) {
+                                   
+                                   r += "<span class=\"with-ident2\">" +
+                                       escapeHTML(toks.get(i).data) + "</span>";
+                                       continue;
+                                       
+                               }
+                               r += escapeHTML(toks.get(i).data); //.replace(/\n/g, "<BR/>\n");
+                       }
+                       if (cs.length > 0) r += "</span>";
+                       
+                       return "<code class=\"jsdoc-pretty\">"+r+"</code>";
+                       
+                               
+               }
+               
+               static string toStyle(Token tok, string cs)
+               {
+
+                       if (tok.isName(TokenName.SPACE) || tok.isName(TokenName.NEWLINE) ) {
+                               return cs;
+                       }
+                       if (tok.isName(TokenName.MULTI_LINE_COMM) || 
+                               tok.isName(TokenName.JSDOC) ||
+                               tok.isName(TokenName.SINGLE_LINE_COMM) ) {
+                           return "comment";
+                           
+                       }
+                       if (tok.isType(TokenType.STRN)) {
+                           return "string";
+                       }
+                       // other 'vary things??
+                       if (tok.isType(TokenType.NAME) || tok.data == "." || tok.isName(TokenName.THIS)) {
+                           return "var";
+                       }
+                       var r = new Regex("^[a-zA-Z]+");
+                       
+                       if (r.match(tok.data)) {
+                           return "keyword";
+                       }
+                       return "syntax";
+               }
+       }
+}
\ No newline at end of file
diff --git a/jsdoc/Scope.c b/jsdoc/Scope.c
new file mode 100644 (file)
index 0000000..9507754
--- /dev/null
@@ -0,0 +1,2576 @@
+/* Scope.c generated by valac 0.36.6, the Vala compiler
+ * generated from Scope.vala, do not modify */
+
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gee.h>
+#include <stdlib.h>
+#include <string.h>
+
+
+#define JSDOC_TYPE_SCOPE (jsdoc_scope_get_type ())
+#define JSDOC_SCOPE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_SCOPE, JSDOCScope))
+#define JSDOC_SCOPE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_SCOPE, JSDOCScopeClass))
+#define JSDOC_IS_SCOPE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_SCOPE))
+#define JSDOC_IS_SCOPE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_SCOPE))
+#define JSDOC_SCOPE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_SCOPE, JSDOCScopeClass))
+
+typedef struct _JSDOCScope JSDOCScope;
+typedef struct _JSDOCScopeClass JSDOCScopeClass;
+typedef struct _JSDOCScopePrivate JSDOCScopePrivate;
+
+#define JSDOC_TYPE_IDENTIFIER (jsdoc_identifier_get_type ())
+#define JSDOC_IDENTIFIER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_IDENTIFIER, JSDOCIdentifier))
+#define JSDOC_IDENTIFIER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_IDENTIFIER, JSDOCIdentifierClass))
+#define JSDOC_IS_IDENTIFIER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_IDENTIFIER))
+#define JSDOC_IS_IDENTIFIER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_IDENTIFIER))
+#define JSDOC_IDENTIFIER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_IDENTIFIER, JSDOCIdentifierClass))
+
+typedef struct _JSDOCIdentifier JSDOCIdentifier;
+typedef struct _JSDOCIdentifierClass JSDOCIdentifierClass;
+
+#define JSDOC_TYPE_TOKEN (jsdoc_token_get_type ())
+#define JSDOC_TOKEN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_TOKEN, JSDOCToken))
+#define JSDOC_TOKEN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_TOKEN, JSDOCTokenClass))
+#define JSDOC_IS_TOKEN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_TOKEN))
+#define JSDOC_IS_TOKEN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_TOKEN))
+#define JSDOC_TOKEN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_TOKEN, JSDOCTokenClass))
+
+typedef struct _JSDOCToken JSDOCToken;
+typedef struct _JSDOCTokenClass JSDOCTokenClass;
+#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 _JSDOCIdentifierPrivate JSDOCIdentifierPrivate;
+typedef struct _JSDOCTokenPrivate JSDOCTokenPrivate;
+
+#define JSDOC_TYPE_TOKEN_TYPE (jsdoc_token_type_get_type ())
+
+#define JSDOC_TYPE_TOKEN_NAME (jsdoc_token_name_get_type ())
+
+#define JSDOC_TYPE_TOKEN_KEY_MAP (jsdoc_token_key_map_get_type ())
+#define JSDOC_TOKEN_KEY_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_TOKEN_KEY_MAP, JSDOCTokenKeyMap))
+#define JSDOC_TOKEN_KEY_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_TOKEN_KEY_MAP, JSDOCTokenKeyMapClass))
+#define JSDOC_IS_TOKEN_KEY_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_TOKEN_KEY_MAP))
+#define JSDOC_IS_TOKEN_KEY_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_TOKEN_KEY_MAP))
+#define JSDOC_TOKEN_KEY_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_TOKEN_KEY_MAP, JSDOCTokenKeyMapClass))
+
+typedef struct _JSDOCTokenKeyMap JSDOCTokenKeyMap;
+typedef struct _JSDOCTokenKeyMapClass JSDOCTokenKeyMapClass;
+
+struct _JSDOCScope {
+       GObject parent_instance;
+       JSDOCScopePrivate * priv;
+       JSDOCScope* parent;
+       GeeArrayList* subScopes;
+       gchar* ident;
+};
+
+struct _JSDOCScopeClass {
+       GObjectClass parent_class;
+};
+
+struct _JSDOCScopePrivate {
+       gint id;
+       gint braceN;
+       GeeHashMap* identifier_map;
+       GeeArrayList* identifier_list;
+       GeeHashMap* hints;
+       gboolean mungeM;
+       gboolean munged;
+       GeeHashMap* protectedVars;
+       JSDOCToken* token;
+};
+
+struct _JSDOCIdentifier {
+       GObject parent_instance;
+       JSDOCIdentifierPrivate * priv;
+       gchar* name;
+       gint refcount;
+       gchar* mungedValue;
+       JSDOCScope* scope;
+       gboolean toMunge;
+};
+
+struct _JSDOCIdentifierClass {
+       GObjectClass parent_class;
+};
+
+typedef enum  {
+       JSDOC_TOKEN_TYPE_TOKN,
+       JSDOC_TOKEN_TYPE_KEYW,
+       JSDOC_TOKEN_TYPE_NAME,
+       JSDOC_TOKEN_TYPE_COMM,
+       JSDOC_TOKEN_TYPE_PUNC,
+       JSDOC_TOKEN_TYPE_WHIT,
+       JSDOC_TOKEN_TYPE_STRN,
+       JSDOC_TOKEN_TYPE_NUMB,
+       JSDOC_TOKEN_TYPE_REGX,
+       JSDOC_TOKEN_TYPE_VOID
+} JSDOCTokenType;
+
+typedef enum  {
+       JSDOC_TOKEN_NAME_UNKNOWN_TOKEN,
+       JSDOC_TOKEN_NAME_BREAK,
+       JSDOC_TOKEN_NAME_CASE,
+       JSDOC_TOKEN_NAME_CATCH,
+       JSDOC_TOKEN_NAME_CONST,
+       JSDOC_TOKEN_NAME_CONTINUE,
+       JSDOC_TOKEN_NAME_DEFAULT,
+       JSDOC_TOKEN_NAME_DELETE,
+       JSDOC_TOKEN_NAME_DO,
+       JSDOC_TOKEN_NAME_ELSE,
+       JSDOC_TOKEN_NAME_FALSE,
+       JSDOC_TOKEN_NAME_FINALLY,
+       JSDOC_TOKEN_NAME_FOR,
+       JSDOC_TOKEN_NAME_FUNCTION,
+       JSDOC_TOKEN_NAME_IF,
+       JSDOC_TOKEN_NAME_IN,
+       JSDOC_TOKEN_NAME_INSTANCEOF,
+       JSDOC_TOKEN_NAME_NEW,
+       JSDOC_TOKEN_NAME_NULL,
+       JSDOC_TOKEN_NAME_RETURN,
+       JSDOC_TOKEN_NAME_SWITCH,
+       JSDOC_TOKEN_NAME_THIS,
+       JSDOC_TOKEN_NAME_THROW,
+       JSDOC_TOKEN_NAME_TRUE,
+       JSDOC_TOKEN_NAME_TRY,
+       JSDOC_TOKEN_NAME_TYPEOF,
+       JSDOC_TOKEN_NAME_VOID,
+       JSDOC_TOKEN_NAME_WHILE,
+       JSDOC_TOKEN_NAME_WITH,
+       JSDOC_TOKEN_NAME_VAR,
+       JSDOC_TOKEN_NAME_EVAL,
+       JSDOC_TOKEN_NAME_NAME,
+       JSDOC_TOKEN_NAME_MULTI_LINE_COMM,
+       JSDOC_TOKEN_NAME_JSDOC,
+       JSDOC_TOKEN_NAME_SINGLE_LINE_COMM,
+       JSDOC_TOKEN_NAME_SEMICOLON,
+       JSDOC_TOKEN_NAME_COMMA,
+       JSDOC_TOKEN_NAME_HOOK,
+       JSDOC_TOKEN_NAME_COLON,
+       JSDOC_TOKEN_NAME_OR,
+       JSDOC_TOKEN_NAME_AND,
+       JSDOC_TOKEN_NAME_BITWISE_OR,
+       JSDOC_TOKEN_NAME_BITWISE_XOR,
+       JSDOC_TOKEN_NAME_BITWISE_AND,
+       JSDOC_TOKEN_NAME_STRICT_EQ,
+       JSDOC_TOKEN_NAME_EQ,
+       JSDOC_TOKEN_NAME_ASSIGN,
+       JSDOC_TOKEN_NAME_STRICT_NE,
+       JSDOC_TOKEN_NAME_NE,
+       JSDOC_TOKEN_NAME_LSH,
+       JSDOC_TOKEN_NAME_LE,
+       JSDOC_TOKEN_NAME_LT,
+       JSDOC_TOKEN_NAME_URSH,
+       JSDOC_TOKEN_NAME_RSH,
+       JSDOC_TOKEN_NAME_GE,
+       JSDOC_TOKEN_NAME_GT,
+       JSDOC_TOKEN_NAME_INCREMENT,
+       JSDOC_TOKEN_NAME_DECREMENT,
+       JSDOC_TOKEN_NAME_PLUS,
+       JSDOC_TOKEN_NAME_MINUS,
+       JSDOC_TOKEN_NAME_MUL,
+       JSDOC_TOKEN_NAME_DIV,
+       JSDOC_TOKEN_NAME_MOD,
+       JSDOC_TOKEN_NAME_NOT,
+       JSDOC_TOKEN_NAME_BITWISE_NOT,
+       JSDOC_TOKEN_NAME_DOT,
+       JSDOC_TOKEN_NAME_LEFT_BRACE,
+       JSDOC_TOKEN_NAME_RIGHT_BRACE,
+       JSDOC_TOKEN_NAME_LEFT_CURLY,
+       JSDOC_TOKEN_NAME_RIGHT_CURLY,
+       JSDOC_TOKEN_NAME_LEFT_PAREN,
+       JSDOC_TOKEN_NAME_RIGHT_PAREN,
+       JSDOC_TOKEN_NAME_SPACE,
+       JSDOC_TOKEN_NAME_NEWLINE,
+       JSDOC_TOKEN_NAME_DOUBLE_QUOTE,
+       JSDOC_TOKEN_NAME_SINGLE_QUOTE,
+       JSDOC_TOKEN_NAME_OCTAL,
+       JSDOC_TOKEN_NAME_DECIMAL,
+       JSDOC_TOKEN_NAME_HEX_DEC,
+       JSDOC_TOKEN_NAME_REGX,
+       JSDOC_TOKEN_NAME_START_OF_STREAM,
+       JSDOC_TOKEN_NAME_END_OF_STREAM,
+       JSDOC_TOKEN_NAME_UNKNOWN
+} JSDOCTokenName;
+
+struct _JSDOCToken {
+       GObject parent_instance;
+       JSDOCTokenPrivate * priv;
+       gint id;
+       gchar* data;
+       JSDOCTokenType type;
+       JSDOCTokenName name;
+       gint line;
+       gchar* prefix;
+       gchar* outData;
+       JSDOCIdentifier* identifier;
+       GeeArrayList* items;
+       GeeHashMap* props;
+       GeeArrayList* keyseq;
+};
+
+struct _JSDOCTokenClass {
+       GObjectClass parent_class;
+};
+
+
+extern gint jsdoc_Scope_gid;
+gint jsdoc_Scope_gid = 0;
+static gpointer jsdoc_scope_parent_class = NULL;
+static gboolean jsdoc_scope_initialized;
+static gboolean jsdoc_scope_initialized = FALSE;
+extern GeeArrayList* jsdoc_scope_builtin;
+GeeArrayList* jsdoc_scope_builtin = NULL;
+extern GeeArrayList* jsdoc_scope_skips;
+GeeArrayList* jsdoc_scope_skips = NULL;
+extern gchar** jsdoc_scope_ones;
+extern gint jsdoc_scope_ones_length1;
+gchar** jsdoc_scope_ones = NULL;
+gint jsdoc_scope_ones_length1 = 0;
+extern gchar** jsdoc_scope_twos;
+extern gint jsdoc_scope_twos_length1;
+gchar** jsdoc_scope_twos = NULL;
+gint jsdoc_scope_twos_length1 = 0;
+
+GType jsdoc_scope_get_type (void) G_GNUC_CONST;
+GType jsdoc_identifier_get_type (void) G_GNUC_CONST;
+GType jsdoc_token_get_type (void) G_GNUC_CONST;
+#define JSDOC_SCOPE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), JSDOC_TYPE_SCOPE, JSDOCScopePrivate))
+enum  {
+       JSDOC_SCOPE_DUMMY_PROPERTY
+};
+JSDOCScope* jsdoc_scope_new (gint braceN, JSDOCScope* parent, gint startTokN, const gchar* lastIdent, JSDOCToken* token);
+JSDOCScope* jsdoc_scope_construct (GType object_type, gint braceN, JSDOCScope* parent, gint startTokN, const gchar* lastIdent, JSDOCToken* token);
+static void jsdoc_scope_init (void);
+void jsdoc_scope_dump (JSDOCScope* self, const gchar* indent);
+gchar* jsdoc_token_asString (JSDOCToken* self);
+JSDOCIdentifier* jsdoc_scope_declareIdentifier (JSDOCScope* self, const gchar* symbol, JSDOCToken* token);
+JSDOCIdentifier* jsdoc_identifier_new (const gchar* name, JSDOCScope* scope);
+JSDOCIdentifier* jsdoc_identifier_construct (GType object_type, const gchar* name, JSDOCScope* scope);
+GType jsdoc_token_type_get_type (void) G_GNUC_CONST;
+GType jsdoc_token_name_get_type (void) G_GNUC_CONST;
+GType jsdoc_token_key_map_get_type (void) G_GNUC_CONST;
+void jsdoc_scope_addToParentScope (JSDOCScope* self, const gchar* ident);
+JSDOCIdentifier* jsdoc_scope_getIdentifier (JSDOCScope* self, const gchar* symbol, JSDOCToken* token);
+void jsdoc_scope_addHint (JSDOCScope* self, const gchar* varName, const gchar* varType);
+void jsdoc_scope_preventMunging (JSDOCScope* self);
+gchar** jsdoc_scope_getUsedSymbols (JSDOCScope* self, int* result_length1);
+static void _vala_array_add1 (gchar** * array, int* length, int* size, gchar* value);
+static gchar** jsdoc_scope_getAllUsedSymbols (JSDOCScope* self, int* result_length1);
+static void _vala_array_add2 (gchar** * array, int* length, int* size, gchar* value);
+gboolean jsdoc_scope_isProtectedVar (JSDOCScope* self, const gchar* ident);
+void jsdoc_scope_munge (JSDOCScope* self);
+static void _vala_array_add3 (gchar** * array, int* length, int* size, gchar* value);
+static void jsdoc_scope_array_merge (GeeArrayList* fs, gchar** toadd, int toadd_length1, gchar** ignore, int ignore_length1);
+static void _vala_array_add4 (gchar** * array, int* length, int* size, gchar* value);
+static gchar** _vala_array_dup1 (gchar** self, int length);
+static void jsdoc_scope_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 gpointer _g_object_ref0 (gpointer self) {
+#line 34 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       return self ? g_object_ref (self) : NULL;
+#line 279 "Scope.c"
+}
+
+
+JSDOCScope* jsdoc_scope_construct (GType object_type, gint braceN, JSDOCScope* parent, gint startTokN, const gchar* lastIdent, JSDOCToken* token) {
+       JSDOCScope * self = NULL;
+       const gchar* _tmp0_;
+       gint _tmp1_;
+       gint _tmp2_;
+       gchar* _tmp4_;
+       gint _tmp5_;
+       JSDOCScope* _tmp6_;
+       JSDOCScope* _tmp7_;
+       gint _tmp8_;
+       GeeHashMap* _tmp9_;
+       GeeArrayList* _tmp10_;
+       GeeArrayList* _tmp11_;
+       GeeHashMap* _tmp12_;
+       GeeHashMap* _tmp13_;
+       const gchar* _tmp14_;
+       gchar* _tmp15_;
+       gint _tmp16_;
+       JSDOCToken* _tmp17_;
+       JSDOCToken* _tmp18_;
+       JSDOCScope* _tmp19_;
+#line 27 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       g_return_val_if_fail (lastIdent != NULL, NULL);
+#line 27 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       self = (JSDOCScope*) g_object_new (object_type, NULL);
+#line 29 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp0_ = lastIdent;
+#line 29 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp1_ = strlen (_tmp0_);
+#line 29 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp2_ = _tmp1_;
+#line 29 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       if (_tmp2_ > 0) {
+#line 316 "Scope.c"
+               const gchar* _tmp3_;
+#line 30 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp3_ = lastIdent;
+#line 30 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               g_debug ("Scope.vala:30: NEW SCOPE: %s", _tmp3_);
+#line 322 "Scope.c"
+       }
+#line 32 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp4_ = g_strdup ("");
+#line 32 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _g_free0 (self->ident);
+#line 32 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       self->ident = _tmp4_;
+#line 33 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp5_ = braceN;
+#line 33 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       self->priv->braceN = _tmp5_;
+#line 34 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp6_ = parent;
+#line 34 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp7_ = _g_object_ref0 (_tmp6_);
+#line 34 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _g_object_unref0 (self->parent);
+#line 34 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       self->parent = _tmp7_;
+#line 35 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp8_ = startTokN;
+#line 35 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       self->priv->id = _tmp8_;
+#line 36 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp9_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, JSDOC_TYPE_IDENTIFIER, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 36 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _g_object_unref0 (self->priv->identifier_map);
+#line 36 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       self->priv->identifier_map = _tmp9_;
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp10_ = gee_array_list_new (JSDOC_TYPE_IDENTIFIER, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL);
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _g_object_unref0 (self->priv->identifier_list);
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       self->priv->identifier_list = _tmp10_;
+#line 38 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp11_ = gee_array_list_new (JSDOC_TYPE_SCOPE, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL);
+#line 38 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _g_object_unref0 (self->subScopes);
+#line 38 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       self->subScopes = _tmp11_;
+#line 39 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp12_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 39 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _g_object_unref0 (self->priv->hints);
+#line 39 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       self->priv->hints = _tmp12_;
+#line 40 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp13_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, G_TYPE_BOOLEAN, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 40 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _g_object_unref0 (self->priv->protectedVars);
+#line 40 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       self->priv->protectedVars = _tmp13_;
+#line 41 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp14_ = lastIdent;
+#line 41 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp15_ = g_strdup (_tmp14_);
+#line 41 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _g_free0 (self->ident);
+#line 41 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       self->ident = _tmp15_;
+#line 42 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp16_ = jsdoc_Scope_gid;
+#line 42 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       jsdoc_Scope_gid = _tmp16_ + 1;
+#line 42 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       self->priv->id = _tmp16_;
+#line 43 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp17_ = token;
+#line 43 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp18_ = _g_object_ref0 (_tmp17_);
+#line 43 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _g_object_unref0 (self->priv->token);
+#line 43 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       self->priv->token = _tmp18_;
+#line 47 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp19_ = parent;
+#line 47 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       if (_tmp19_ != NULL) {
+#line 402 "Scope.c"
+               JSDOCScope* _tmp20_;
+               GeeArrayList* _tmp21_;
+#line 48 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp20_ = self->parent;
+#line 48 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp21_ = _tmp20_->subScopes;
+#line 48 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               gee_abstract_collection_add ((GeeAbstractCollection*) _tmp21_, self);
+#line 411 "Scope.c"
+       }
+#line 50 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       jsdoc_scope_init ();
+#line 27 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       return self;
+#line 417 "Scope.c"
+}
+
+
+JSDOCScope* jsdoc_scope_new (gint braceN, JSDOCScope* parent, gint startTokN, const gchar* lastIdent, JSDOCToken* token) {
+#line 27 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       return jsdoc_scope_construct (JSDOC_TYPE_SCOPE, braceN, parent, startTokN, lastIdent, token);
+#line 424 "Scope.c"
+}
+
+
+/**
+ * dump the scope to StdOut...
+ * 
+ */
+void jsdoc_scope_dump (JSDOCScope* self, const gchar* indent) {
+       gchar* str = NULL;
+       gchar* _tmp0_;
+       GeeArrayList* idents = NULL;
+       GeeArrayList* _tmp1_;
+       GeeArrayList* _tmp2_;
+       GeeListIterator* iter = NULL;
+       GeeArrayList* _tmp3_;
+       GeeListIterator* _tmp4_;
+       gchar* _tmp30_ = NULL;
+       JSDOCToken* _tmp31_;
+       const gchar* _tmp35_;
+       gchar* _tmp36_;
+       gchar* _tmp37_;
+       gchar* _tmp38_;
+       gchar* _tmp39_;
+       const gchar* _tmp40_;
+       gchar* _tmp41_;
+       gchar* _tmp42_;
+       gchar* _tmp43_;
+       gchar* _tmp44_;
+       const gchar* _tmp45_;
+       gchar* _tmp46_;
+       gchar* _tmp47_;
+       gchar* _tmp48_;
+       gchar* _tmp49_;
+       gint _tmp50_;
+       const gchar* _tmp51_;
+#line 65 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       g_return_if_fail (self != NULL);
+#line 65 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       g_return_if_fail (indent != NULL);
+#line 69 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp0_ = g_strdup ("");
+#line 69 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       str = _tmp0_;
+#line 70 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp1_ = self->priv->identifier_list;
+#line 70 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp2_ = _g_object_ref0 (_tmp1_);
+#line 70 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       idents = _tmp2_;
+#line 71 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp3_ = idents;
+#line 71 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp4_ = gee_abstract_list_list_iterator ((GeeAbstractList*) _tmp3_);
+#line 71 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       iter = _tmp4_;
+#line 72 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       while (TRUE) {
+#line 482 "Scope.c"
+               GeeListIterator* _tmp5_;
+               gboolean _tmp6_;
+               JSDOCIdentifier* identifier = NULL;
+               GeeListIterator* _tmp7_;
+               gpointer _tmp8_;
+               const gchar* _tmp9_ = NULL;
+               const gchar* _tmp10_;
+               gint _tmp11_;
+               gint _tmp12_;
+               const gchar* _tmp13_;
+               gchar* _tmp14_;
+               const gchar* _tmp15_;
+               const gchar* _tmp16_;
+               gchar* _tmp17_;
+               gchar* _tmp18_;
+               JSDOCIdentifier* _tmp19_;
+               const gchar* _tmp20_;
+               gchar* _tmp21_;
+               gchar* _tmp22_;
+               gchar* _tmp23_;
+               gchar* _tmp24_;
+               JSDOCIdentifier* _tmp25_;
+               const gchar* _tmp26_;
+               gchar* _tmp27_;
+               gchar* _tmp28_;
+               gchar* _tmp29_;
+#line 72 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp5_ = iter;
+#line 72 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp6_ = gee_iterator_next ((GeeIterator*) _tmp5_);
+#line 72 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               if (!_tmp6_) {
+#line 72 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       break;
+#line 517 "Scope.c"
+               }
+#line 73 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp7_ = iter;
+#line 73 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp8_ = gee_iterator_get ((GeeIterator*) _tmp7_);
+#line 73 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               identifier = (JSDOCIdentifier*) _tmp8_;
+#line 74 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp10_ = str;
+#line 74 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp11_ = strlen (_tmp10_);
+#line 74 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp12_ = _tmp11_;
+#line 74 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               if (_tmp12_ > 0) {
+#line 74 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       _tmp9_ = ", ";
+#line 535 "Scope.c"
+               } else {
+#line 74 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       _tmp9_ = "";
+#line 539 "Scope.c"
+               }
+#line 74 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp13_ = str;
+#line 74 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp14_ = g_strconcat (_tmp13_, _tmp9_, NULL);
+#line 74 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _g_free0 (str);
+#line 74 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               str = _tmp14_;
+#line 75 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp15_ = str;
+#line 75 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp16_ = indent;
+#line 75 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp17_ = g_strconcat (_tmp16_, " ", NULL);
+#line 75 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp18_ = _tmp17_;
+#line 75 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp19_ = identifier;
+#line 75 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp20_ = _tmp19_->name;
+#line 75 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp21_ = g_strconcat (_tmp18_, _tmp20_, NULL);
+#line 75 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp22_ = _tmp21_;
+#line 75 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp23_ = g_strconcat (_tmp22_, "=>", NULL);
+#line 75 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp24_ = _tmp23_;
+#line 75 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp25_ = identifier;
+#line 75 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp26_ = _tmp25_->mungedValue;
+#line 75 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp27_ = g_strconcat (_tmp24_, _tmp26_, NULL);
+#line 75 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp28_ = _tmp27_;
+#line 75 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp29_ = g_strconcat (_tmp15_, _tmp28_, NULL);
+#line 75 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _g_free0 (str);
+#line 75 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               str = _tmp29_;
+#line 75 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _g_free0 (_tmp28_);
+#line 75 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _g_free0 (_tmp24_);
+#line 75 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _g_free0 (_tmp22_);
+#line 75 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _g_free0 (_tmp18_);
+#line 72 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _g_object_unref0 (identifier);
+#line 593 "Scope.c"
+       }
+#line 84 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp31_ = self->priv->token;
+#line 84 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       if (_tmp31_ != NULL) {
+#line 599 "Scope.c"
+               JSDOCToken* _tmp32_;
+               gchar* _tmp33_;
+#line 84 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp32_ = self->priv->token;
+#line 84 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp33_ = jsdoc_token_asString (_tmp32_);
+#line 84 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _g_free0 (_tmp30_);
+#line 84 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp30_ = _tmp33_;
+#line 610 "Scope.c"
+       } else {
+               gchar* _tmp34_;
+#line 84 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp34_ = g_strdup ("TOP");
+#line 84 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _g_free0 (_tmp30_);
+#line 84 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp30_ = _tmp34_;
+#line 619 "Scope.c"
+       }
+#line 78 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp35_ = indent;
+#line 78 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp36_ = g_strconcat ("\n", _tmp35_, NULL);
+#line 78 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp37_ = _tmp36_;
+#line 78 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp38_ = g_strconcat (_tmp37_, "Scope: %d\n", NULL);
+#line 78 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp39_ = _tmp38_;
+#line 78 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp40_ = indent;
+#line 78 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp41_ = g_strconcat (_tmp39_, _tmp40_, NULL);
+#line 78 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp42_ = _tmp41_;
+#line 78 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp43_ = g_strconcat (_tmp42_, "Started: %s\n", NULL);
+#line 78 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp44_ = _tmp43_;
+#line 78 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp45_ = indent;
+#line 78 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp46_ = g_strconcat (_tmp44_, _tmp45_, NULL);
+#line 78 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp47_ = _tmp46_;
+#line 78 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp48_ = g_strconcat (_tmp47_, "- idents..: %s\n", NULL);
+#line 78 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp49_ = _tmp48_;
+#line 78 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp50_ = self->priv->id;
+#line 78 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp51_ = str;
+#line 78 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       g_print (_tmp49_, _tmp50_, _tmp30_, _tmp51_);
+#line 78 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _g_free0 (_tmp49_);
+#line 78 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _g_free0 (_tmp47_);
+#line 78 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _g_free0 (_tmp44_);
+#line 78 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _g_free0 (_tmp42_);
+#line 78 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _g_free0 (_tmp39_);
+#line 78 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _g_free0 (_tmp37_);
+#line 669 "Scope.c"
+       {
+               GeeArrayList* _s_list = NULL;
+               GeeArrayList* _tmp52_;
+               GeeArrayList* _tmp53_;
+               gint _s_size = 0;
+               GeeArrayList* _tmp54_;
+               gint _tmp55_;
+               gint _tmp56_;
+               gint _s_index = 0;
+#line 88 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp52_ = self->subScopes;
+#line 88 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp53_ = _g_object_ref0 (_tmp52_);
+#line 88 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _s_list = _tmp53_;
+#line 88 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp54_ = _s_list;
+#line 88 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp55_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp54_);
+#line 88 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp56_ = _tmp55_;
+#line 88 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _s_size = _tmp56_;
+#line 88 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _s_index = -1;
+#line 88 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               while (TRUE) {
+#line 697 "Scope.c"
+                       gint _tmp57_;
+                       gint _tmp58_;
+                       gint _tmp59_;
+                       JSDOCScope* s = NULL;
+                       GeeArrayList* _tmp60_;
+                       gint _tmp61_;
+                       gpointer _tmp62_;
+                       JSDOCScope* _tmp63_;
+                       const gchar* _tmp64_;
+                       gchar* _tmp65_;
+                       gchar* _tmp66_;
+#line 88 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       _tmp57_ = _s_index;
+#line 88 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       _s_index = _tmp57_ + 1;
+#line 88 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       _tmp58_ = _s_index;
+#line 88 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       _tmp59_ = _s_size;
+#line 88 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       if (!(_tmp58_ < _tmp59_)) {
+#line 88 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                               break;
+#line 721 "Scope.c"
+                       }
+#line 88 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       _tmp60_ = _s_list;
+#line 88 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       _tmp61_ = _s_index;
+#line 88 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       _tmp62_ = gee_abstract_list_get ((GeeAbstractList*) _tmp60_, _tmp61_);
+#line 88 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       s = (JSDOCScope*) _tmp62_;
+#line 89 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       _tmp63_ = s;
+#line 89 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       _tmp64_ = indent;
+#line 89 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       _tmp65_ = g_strconcat (_tmp64_, " ", NULL);
+#line 89 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       _tmp66_ = _tmp65_;
+#line 89 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       jsdoc_scope_dump (_tmp63_, _tmp66_);
+#line 89 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       _g_free0 (_tmp66_);
+#line 88 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       _g_object_unref0 (s);
+#line 745 "Scope.c"
+               }
+#line 88 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _g_object_unref0 (_s_list);
+#line 749 "Scope.c"
+       }
+#line 65 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _g_free0 (_tmp30_);
+#line 65 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _g_object_unref0 (iter);
+#line 65 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _g_object_unref0 (idents);
+#line 65 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _g_free0 (str);
+#line 759 "Scope.c"
+}
+
+
+JSDOCIdentifier* jsdoc_scope_declareIdentifier (JSDOCScope* self, const gchar* symbol, JSDOCToken* token) {
+       JSDOCIdentifier* result = NULL;
+       GeeHashMap* _tmp0_;
+       const gchar* _tmp1_;
+       gboolean _tmp2_;
+       JSDOCToken* _tmp10_;
+       GeeHashMap* _tmp11_;
+       const gchar* _tmp12_;
+       gpointer _tmp13_;
+       gint _tmp14_;
+       const gchar* _tmp19_;
+       GeeHashMap* _tmp20_;
+       const gchar* _tmp21_;
+       gpointer _tmp22_;
+#line 96 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 96 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       g_return_val_if_fail (symbol != NULL, NULL);
+#line 96 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       g_return_val_if_fail (token != NULL, NULL);
+#line 101 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp0_ = self->priv->identifier_map;
+#line 101 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp1_ = symbol;
+#line 101 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp2_ = gee_abstract_map_has_key ((GeeAbstractMap*) _tmp0_, _tmp1_);
+#line 101 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       if (!_tmp2_) {
+#line 791 "Scope.c"
+               JSDOCIdentifier* nid = NULL;
+               const gchar* _tmp3_;
+               JSDOCIdentifier* _tmp4_;
+               GeeArrayList* _tmp5_;
+               JSDOCIdentifier* _tmp6_;
+               GeeHashMap* _tmp7_;
+               const gchar* _tmp8_;
+               JSDOCIdentifier* _tmp9_;
+#line 102 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp3_ = symbol;
+#line 102 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp4_ = jsdoc_identifier_new (_tmp3_, self);
+#line 102 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               nid = _tmp4_;
+#line 103 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp5_ = self->priv->identifier_list;
+#line 103 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp6_ = nid;
+#line 103 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               gee_abstract_collection_add ((GeeAbstractCollection*) _tmp5_, _tmp6_);
+#line 104 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp7_ = self->priv->identifier_map;
+#line 104 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp8_ = symbol;
+#line 104 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp9_ = nid;
+#line 104 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               gee_abstract_map_set ((GeeAbstractMap*) _tmp7_, _tmp8_, _tmp9_);
+#line 101 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _g_object_unref0 (nid);
+#line 822 "Scope.c"
+       }
+#line 109 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp10_ = token;
+#line 109 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp11_ = self->priv->identifier_map;
+#line 109 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp12_ = symbol;
+#line 109 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp13_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp11_, _tmp12_);
+#line 109 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _g_object_unref0 (_tmp10_->identifier);
+#line 109 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp10_->identifier = (JSDOCIdentifier*) _tmp13_;
+#line 112 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp14_ = self->priv->braceN;
+#line 112 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       if (_tmp14_ < 0) {
+#line 840 "Scope.c"
+               GeeHashMap* _tmp15_;
+               const gchar* _tmp16_;
+               gpointer _tmp17_;
+               JSDOCIdentifier* _tmp18_;
+#line 114 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp15_ = self->priv->identifier_map;
+#line 114 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp16_ = symbol;
+#line 114 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp17_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp15_, _tmp16_);
+#line 114 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp18_ = (JSDOCIdentifier*) _tmp17_;
+#line 114 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp18_->toMunge = FALSE;
+#line 114 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _g_object_unref0 (_tmp18_);
+#line 857 "Scope.c"
+       }
+#line 118 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp19_ = symbol;
+#line 118 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       jsdoc_scope_addToParentScope (self, _tmp19_);
+#line 119 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp20_ = self->priv->identifier_map;
+#line 119 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp21_ = symbol;
+#line 119 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp22_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp20_, _tmp21_);
+#line 119 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       result = (JSDOCIdentifier*) _tmp22_;
+#line 119 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       return result;
+#line 873 "Scope.c"
+}
+
+
+JSDOCIdentifier* jsdoc_scope_getIdentifier (JSDOCScope* self, const gchar* symbol, JSDOCToken* token) {
+       JSDOCIdentifier* result = NULL;
+       GeeHashMap* _tmp0_;
+       const gchar* _tmp1_;
+       gboolean _tmp2_;
+       GeeHashMap* _tmp3_;
+       const gchar* _tmp4_;
+       gpointer _tmp5_;
+#line 124 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 124 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       g_return_val_if_fail (symbol != NULL, NULL);
+#line 124 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       g_return_val_if_fail (token != NULL, NULL);
+#line 126 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp0_ = self->priv->identifier_map;
+#line 126 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp1_ = symbol;
+#line 126 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp2_ = gee_abstract_map_has_key ((GeeAbstractMap*) _tmp0_, _tmp1_);
+#line 126 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       if (!_tmp2_) {
+#line 127 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               result = NULL;
+#line 127 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               return result;
+#line 903 "Scope.c"
+       }
+#line 136 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp3_ = self->priv->identifier_map;
+#line 136 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp4_ = symbol;
+#line 136 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp5_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp3_, _tmp4_);
+#line 136 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       result = (JSDOCIdentifier*) _tmp5_;
+#line 136 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       return result;
+#line 915 "Scope.c"
+}
+
+
+void jsdoc_scope_addHint (JSDOCScope* self, const gchar* varName, const gchar* varType) {
+       GeeHashMap* _tmp0_;
+       const gchar* _tmp1_;
+       const gchar* _tmp2_;
+#line 139 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       g_return_if_fail (self != NULL);
+#line 139 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       g_return_if_fail (varName != NULL);
+#line 139 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       g_return_if_fail (varType != NULL);
+#line 141 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp0_ = self->priv->hints;
+#line 141 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp1_ = varName;
+#line 141 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp2_ = varType;
+#line 141 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       gee_abstract_map_set ((GeeAbstractMap*) _tmp0_, _tmp1_, _tmp2_);
+#line 937 "Scope.c"
+}
+
+
+void jsdoc_scope_preventMunging (JSDOCScope* self) {
+#line 143 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       g_return_if_fail (self != NULL);
+#line 144 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       self->priv->mungeM = FALSE;
+#line 946 "Scope.c"
+}
+
+
+static void _vala_array_add1 (gchar** * array, int* length, int* size, gchar* value) {
+#line 169 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       if ((*length) == (*size)) {
+#line 169 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               *size = (*size) ? (2 * (*size)) : 4;
+#line 169 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               *array = g_renew (gchar*, *array, (*size) + 1);
+#line 957 "Scope.c"
+       }
+#line 169 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       (*array)[(*length)++] = value;
+#line 169 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       (*array)[*length] = NULL;
+#line 963 "Scope.c"
+}
+
+
+gchar** jsdoc_scope_getUsedSymbols (JSDOCScope* self, int* result_length1) {
+       gchar** result = NULL;
+       gchar** _result_ = NULL;
+       gchar** _tmp0_;
+       gint _result__length1;
+       gint __result__size_;
+       GeeArrayList* idents = NULL;
+       GeeArrayList* _tmp1_;
+       GeeArrayList* _tmp2_;
+       GeeListIterator* iter = NULL;
+       GeeArrayList* _tmp3_;
+       GeeListIterator* _tmp4_;
+       gchar** _tmp21_;
+       gint _tmp21__length1;
+#line 149 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 151 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp0_ = g_new0 (gchar*, 0 + 1);
+#line 151 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _result_ = _tmp0_;
+#line 151 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _result__length1 = 0;
+#line 151 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       __result__size_ = _result__length1;
+#line 157 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp1_ = self->priv->identifier_list;
+#line 157 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp2_ = _g_object_ref0 (_tmp1_);
+#line 157 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       idents = _tmp2_;
+#line 158 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp3_ = idents;
+#line 158 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp4_ = gee_abstract_list_list_iterator ((GeeAbstractList*) _tmp3_);
+#line 158 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       iter = _tmp4_;
+#line 159 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       while (TRUE) {
+#line 1005 "Scope.c"
+               GeeListIterator* _tmp5_;
+               gboolean _tmp6_;
+               JSDOCIdentifier* identifier = NULL;
+               GeeListIterator* _tmp7_;
+               gpointer _tmp8_;
+               gchar* mungedValue = NULL;
+               JSDOCIdentifier* _tmp9_;
+               const gchar* _tmp10_;
+               gchar* _tmp11_;
+               const gchar* _tmp12_;
+               gint _tmp13_;
+               gint _tmp14_;
+               gchar** _tmp18_;
+               gint _tmp18__length1;
+               const gchar* _tmp19_;
+               gchar* _tmp20_;
+#line 159 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp5_ = iter;
+#line 159 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp6_ = gee_iterator_next ((GeeIterator*) _tmp5_);
+#line 159 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               if (!_tmp6_) {
+#line 159 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       break;
+#line 1030 "Scope.c"
+               }
+#line 160 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp7_ = iter;
+#line 160 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp8_ = gee_iterator_get ((GeeIterator*) _tmp7_);
+#line 160 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               identifier = (JSDOCIdentifier*) _tmp8_;
+#line 163 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp9_ = identifier;
+#line 163 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp10_ = _tmp9_->mungedValue;
+#line 163 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp11_ = g_strdup (_tmp10_);
+#line 163 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               mungedValue = _tmp11_;
+#line 165 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp12_ = mungedValue;
+#line 165 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp13_ = strlen (_tmp12_);
+#line 165 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp14_ = _tmp13_;
+#line 165 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               if (_tmp14_ < 1) {
+#line 1054 "Scope.c"
+                       JSDOCIdentifier* _tmp15_;
+                       const gchar* _tmp16_;
+                       gchar* _tmp17_;
+#line 167 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       _tmp15_ = identifier;
+#line 167 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       _tmp16_ = _tmp15_->name;
+#line 167 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       _tmp17_ = g_strdup (_tmp16_);
+#line 167 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       _g_free0 (mungedValue);
+#line 167 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       mungedValue = _tmp17_;
+#line 1068 "Scope.c"
+               }
+#line 169 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp18_ = _result_;
+#line 169 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp18__length1 = _result__length1;
+#line 169 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp19_ = mungedValue;
+#line 169 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp20_ = g_strdup (_tmp19_);
+#line 169 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _vala_array_add1 (&_result_, &_result__length1, &__result__size_, _tmp20_);
+#line 159 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _g_free0 (mungedValue);
+#line 159 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _g_object_unref0 (identifier);
+#line 1084 "Scope.c"
+       }
+#line 173 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp21_ = _result_;
+#line 173 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp21__length1 = _result__length1;
+#line 173 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       if (result_length1) {
+#line 173 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               *result_length1 = _tmp21__length1;
+#line 1094 "Scope.c"
+       }
+#line 173 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       result = _tmp21_;
+#line 173 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _g_object_unref0 (iter);
+#line 173 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _g_object_unref0 (idents);
+#line 173 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       return result;
+#line 1104 "Scope.c"
+}
+
+
+static void _vala_array_add2 (gchar** * array, int* length, int* size, gchar* value) {
+#line 183 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       if ((*length) == (*size)) {
+#line 183 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               *size = (*size) ? (2 * (*size)) : 4;
+#line 183 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               *array = g_renew (gchar*, *array, (*size) + 1);
+#line 1115 "Scope.c"
+       }
+#line 183 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       (*array)[(*length)++] = value;
+#line 183 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       (*array)[*length] = NULL;
+#line 1121 "Scope.c"
+}
+
+
+static gchar** jsdoc_scope_getAllUsedSymbols (JSDOCScope* self, int* result_length1) {
+       gchar** result = NULL;
+       gchar** _result_ = NULL;
+       gint _tmp0_;
+       gchar** _tmp1_;
+       gint _result__length1;
+       gint __result__size_;
+       JSDOCScope* scope = NULL;
+       JSDOCScope* _tmp2_;
+       JSDOCScope* _tmp3_;
+       gchar** _tmp20_;
+       gint _tmp20__length1;
+#line 176 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 178 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp1_ = jsdoc_scope_getUsedSymbols (self, &_tmp0_);
+#line 178 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _result_ = _tmp1_;
+#line 178 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _result__length1 = _tmp0_;
+#line 178 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       __result__size_ = _result__length1;
+#line 179 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp2_ = self->parent;
+#line 179 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp3_ = _g_object_ref0 (_tmp2_);
+#line 179 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       scope = _tmp3_;
+#line 180 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       while (TRUE) {
+#line 1155 "Scope.c"
+               JSDOCScope* _tmp4_;
+               gchar** ps = NULL;
+               JSDOCScope* _tmp5_;
+               gint _tmp6_;
+               gchar** _tmp7_;
+               gint ps_length1;
+               gint _ps_size_;
+               JSDOCScope* _tmp17_;
+               JSDOCScope* _tmp18_;
+               JSDOCScope* _tmp19_;
+#line 180 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp4_ = scope;
+#line 180 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               if (!(_tmp4_ != NULL)) {
+#line 180 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       break;
+#line 1172 "Scope.c"
+               }
+#line 181 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp5_ = scope;
+#line 181 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp7_ = jsdoc_scope_getUsedSymbols (_tmp5_, &_tmp6_);
+#line 181 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               ps = _tmp7_;
+#line 181 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               ps_length1 = _tmp6_;
+#line 181 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _ps_size_ = ps_length1;
+#line 1184 "Scope.c"
+               {
+                       gint i = 0;
+#line 182 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       i = 0;
+#line 1189 "Scope.c"
+                       {
+                               gboolean _tmp8_ = FALSE;
+#line 182 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                               _tmp8_ = TRUE;
+#line 182 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                               while (TRUE) {
+#line 1196 "Scope.c"
+                                       gint _tmp10_;
+                                       gchar** _tmp11_;
+                                       gint _tmp11__length1;
+                                       gchar** _tmp12_;
+                                       gint _tmp12__length1;
+                                       gchar** _tmp13_;
+                                       gint _tmp13__length1;
+                                       gint _tmp14_;
+                                       const gchar* _tmp15_;
+                                       gchar* _tmp16_;
+#line 182 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                       if (!_tmp8_) {
+#line 1209 "Scope.c"
+                                               gint _tmp9_;
+#line 182 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                               _tmp9_ = i;
+#line 182 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                               i = _tmp9_ + 1;
+#line 1215 "Scope.c"
+                                       }
+#line 182 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                       _tmp8_ = FALSE;
+#line 182 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                       _tmp10_ = i;
+#line 182 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                       _tmp11_ = ps;
+#line 182 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                       _tmp11__length1 = ps_length1;
+#line 182 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                       if (!(_tmp10_ < _tmp11__length1)) {
+#line 182 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                               break;
+#line 1229 "Scope.c"
+                                       }
+#line 183 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                       _tmp12_ = _result_;
+#line 183 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                       _tmp12__length1 = _result__length1;
+#line 183 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                       _tmp13_ = ps;
+#line 183 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                       _tmp13__length1 = ps_length1;
+#line 183 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                       _tmp14_ = i;
+#line 183 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                       _tmp15_ = _tmp13_[_tmp14_];
+#line 183 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                       _tmp16_ = g_strdup (_tmp15_);
+#line 183 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                       _vala_array_add2 (&_result_, &_result__length1, &__result__size_, _tmp16_);
+#line 1247 "Scope.c"
+                               }
+                       }
+               }
+#line 185 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp17_ = scope;
+#line 185 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp18_ = _tmp17_->parent;
+#line 185 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp19_ = _g_object_ref0 (_tmp18_);
+#line 185 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _g_object_unref0 (scope);
+#line 185 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               scope = _tmp19_;
+#line 180 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               ps = (_vala_array_free (ps, ps_length1, (GDestroyNotify) g_free), NULL);
+#line 1263 "Scope.c"
+       }
+#line 188 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp20_ = _result_;
+#line 188 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp20__length1 = _result__length1;
+#line 188 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       if (result_length1) {
+#line 188 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               *result_length1 = _tmp20__length1;
+#line 1273 "Scope.c"
+       }
+#line 188 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       result = _tmp20_;
+#line 188 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _g_object_unref0 (scope);
+#line 188 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       return result;
+#line 1281 "Scope.c"
+}
+
+
+/** - we need to register short vairalbes so they never get munged into.. */
+void jsdoc_scope_addToParentScope (JSDOCScope* self, const gchar* ident) {
+       const gchar* _tmp0_;
+       gint _tmp1_;
+       gint _tmp2_;
+       JSDOCScope* scope = NULL;
+       JSDOCScope* _tmp3_;
+       JSDOCScope* _tmp4_;
+#line 191 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       g_return_if_fail (self != NULL);
+#line 191 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       g_return_if_fail (ident != NULL);
+#line 193 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp0_ = ident;
+#line 193 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp1_ = strlen (_tmp0_);
+#line 193 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp2_ = _tmp1_;
+#line 193 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       if (_tmp2_ > 2) {
+#line 194 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               return;
+#line 1307 "Scope.c"
+       }
+#line 196 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp3_ = self->parent;
+#line 196 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp4_ = _g_object_ref0 (_tmp3_);
+#line 196 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       scope = _tmp4_;
+#line 197 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       while (TRUE) {
+#line 1317 "Scope.c"
+               JSDOCScope* _tmp5_;
+               JSDOCScope* _tmp6_;
+               JSDOCScope* _tmp7_;
+               JSDOCScope* _tmp11_;
+               JSDOCScope* _tmp12_;
+               JSDOCScope* _tmp13_;
+#line 197 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp5_ = scope;
+#line 197 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               if (!(_tmp5_ != NULL)) {
+#line 197 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       break;
+#line 1330 "Scope.c"
+               }
+#line 199 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp6_ = scope;
+#line 199 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp7_ = _tmp6_->parent;
+#line 199 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               if (_tmp7_ != NULL) {
+#line 1338 "Scope.c"
+                       JSDOCScope* _tmp8_;
+                       GeeHashMap* _tmp9_;
+                       const gchar* _tmp10_;
+#line 200 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       _tmp8_ = scope;
+#line 200 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       _tmp9_ = _tmp8_->priv->protectedVars;
+#line 200 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       _tmp10_ = ident;
+#line 200 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       gee_abstract_map_set ((GeeAbstractMap*) _tmp9_, _tmp10_, (gpointer) ((gintptr) TRUE));
+#line 1350 "Scope.c"
+               }
+#line 202 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp11_ = scope;
+#line 202 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp12_ = _tmp11_->parent;
+#line 202 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp13_ = _g_object_ref0 (_tmp12_);
+#line 202 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _g_object_unref0 (scope);
+#line 202 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               scope = _tmp13_;
+#line 1362 "Scope.c"
+       }
+#line 191 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _g_object_unref0 (scope);
+#line 1366 "Scope.c"
+}
+
+
+gboolean jsdoc_scope_isProtectedVar (JSDOCScope* self, const gchar* ident) {
+       gboolean result = FALSE;
+       const gchar* _tmp0_;
+       gint _tmp1_;
+       gint _tmp2_;
+       JSDOCScope* scope = NULL;
+       JSDOCScope* _tmp3_;
+       JSDOCScope* _tmp4_;
+#line 206 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       g_return_val_if_fail (self != NULL, FALSE);
+#line 206 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       g_return_val_if_fail (ident != NULL, FALSE);
+#line 212 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp0_ = ident;
+#line 212 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp1_ = strlen (_tmp0_);
+#line 212 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp2_ = _tmp1_;
+#line 212 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       if (_tmp2_ > 2) {
+#line 213 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               result = FALSE;
+#line 213 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               return result;
+#line 1394 "Scope.c"
+       }
+#line 215 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp3_ = self->parent;
+#line 215 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp4_ = _g_object_ref0 (_tmp3_);
+#line 215 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       scope = _tmp4_;
+#line 216 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       while (TRUE) {
+#line 1404 "Scope.c"
+               JSDOCScope* _tmp5_;
+               JSDOCScope* _tmp6_;
+               JSDOCScope* _tmp7_;
+               JSDOCScope* _tmp12_;
+               JSDOCScope* _tmp13_;
+               JSDOCScope* _tmp14_;
+#line 216 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp5_ = scope;
+#line 216 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               if (!(_tmp5_ != NULL)) {
+#line 216 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       break;
+#line 1417 "Scope.c"
+               }
+#line 218 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp6_ = scope;
+#line 218 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp7_ = _tmp6_->parent;
+#line 218 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               if (_tmp7_ != NULL) {
+#line 1425 "Scope.c"
+                       JSDOCScope* _tmp8_;
+                       GeeHashMap* _tmp9_;
+                       const gchar* _tmp10_;
+                       gboolean _tmp11_;
+#line 219 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       _tmp8_ = scope;
+#line 219 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       _tmp9_ = _tmp8_->priv->protectedVars;
+#line 219 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       _tmp10_ = ident;
+#line 219 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       _tmp11_ = gee_abstract_map_has_key ((GeeAbstractMap*) _tmp9_, _tmp10_);
+#line 219 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       if (_tmp11_) {
+#line 220 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                               result = TRUE;
+#line 220 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                               _g_object_unref0 (scope);
+#line 220 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                               return result;
+#line 1446 "Scope.c"
+                       }
+               }
+#line 223 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp12_ = scope;
+#line 223 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp13_ = _tmp12_->parent;
+#line 223 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp14_ = _g_object_ref0 (_tmp13_);
+#line 223 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _g_object_unref0 (scope);
+#line 223 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               scope = _tmp14_;
+#line 1459 "Scope.c"
+       }
+#line 225 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       result = FALSE;
+#line 225 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _g_object_unref0 (scope);
+#line 225 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       return result;
+#line 1467 "Scope.c"
+}
+
+
+/**
+ * set's all the munged values on the identifiers.
+ * 
+ * 
+ */
+static void _vala_array_add3 (gchar** * array, int* length, int* size, gchar* value) {
+#line 270 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       if ((*length) == (*size)) {
+#line 270 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               *size = (*size) ? (2 * (*size)) : 4;
+#line 270 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               *array = g_renew (gchar*, *array, (*size) + 1);
+#line 1483 "Scope.c"
+       }
+#line 270 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       (*array)[(*length)++] = value;
+#line 270 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       (*array)[*length] = NULL;
+#line 1489 "Scope.c"
+}
+
+
+void jsdoc_scope_munge (JSDOCScope* self) {
+       gboolean _tmp0_;
+       gboolean _tmp1_;
+       gint pickFromSet = 0;
+       JSDOCScope* _tmp2_;
+       gchar** all = NULL;
+       gchar** _tmp13_;
+       gint all_length1;
+       gint _all_size_;
+       GeeListIterator* iter = NULL;
+       GeeArrayList* _tmp14_;
+       GeeListIterator* _tmp15_;
+       GeeArrayList* freeSymbols = NULL;
+       GeeArrayList* _tmp24_;
+       gchar** sy = NULL;
+       gint _tmp25_;
+       gchar** _tmp26_;
+       gint sy_length1;
+       gint _sy_size_;
+       GeeArrayList* _tmp27_;
+       gchar** _tmp28_;
+       gint _tmp28__length1;
+       gchar** _tmp29_;
+       gint _tmp29__length1;
+       gchar* repsym = NULL;
+       gchar* _tmp30_;
+       GeeArrayList* _tmp31_;
+       GeeListIterator* _tmp32_;
+#line 237 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       g_return_if_fail (self != NULL);
+#line 240 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp0_ = self->priv->mungeM;
+#line 240 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       if (!_tmp0_) {
+#line 243 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               return;
+#line 1529 "Scope.c"
+       }
+#line 245 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp1_ = self->priv->munged;
+#line 245 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       if (_tmp1_) {
+#line 246 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               return;
+#line 1537 "Scope.c"
+       }
+#line 252 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       pickFromSet = 1;
+#line 255 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp2_ = self->parent;
+#line 255 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       if (_tmp2_ == NULL) {
+#line 257 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               self->priv->munged = TRUE;
+#line 1547 "Scope.c"
+               {
+                       gint j = 0;
+#line 259 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       j = 0;
+#line 1552 "Scope.c"
+                       {
+                               gboolean _tmp3_ = FALSE;
+#line 259 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                               _tmp3_ = TRUE;
+#line 259 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                               while (TRUE) {
+#line 1559 "Scope.c"
+                                       gint _tmp5_;
+                                       GeeArrayList* _tmp6_;
+                                       gint _tmp7_;
+                                       gint _tmp8_;
+                                       GeeArrayList* _tmp9_;
+                                       gint _tmp10_;
+                                       gpointer _tmp11_;
+                                       JSDOCScope* _tmp12_;
+#line 259 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                       if (!_tmp3_) {
+#line 1570 "Scope.c"
+                                               gint _tmp4_;
+#line 259 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                               _tmp4_ = j;
+#line 259 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                               j = _tmp4_ + 1;
+#line 1576 "Scope.c"
+                                       }
+#line 259 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                       _tmp3_ = FALSE;
+#line 259 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                       _tmp5_ = j;
+#line 259 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                       _tmp6_ = self->subScopes;
+#line 259 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                       _tmp7_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp6_);
+#line 259 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                       _tmp8_ = _tmp7_;
+#line 259 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                       if (!(_tmp5_ < _tmp8_)) {
+#line 259 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                               break;
+#line 1592 "Scope.c"
+                                       }
+#line 260 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                       _tmp9_ = self->subScopes;
+#line 260 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                       _tmp10_ = j;
+#line 260 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                       _tmp11_ = gee_abstract_list_get ((GeeAbstractList*) _tmp9_, _tmp10_);
+#line 260 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                       _tmp12_ = (JSDOCScope*) _tmp11_;
+#line 260 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                       jsdoc_scope_munge (_tmp12_);
+#line 260 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                       _g_object_unref0 (_tmp12_);
+#line 1606 "Scope.c"
+                               }
+                       }
+               }
+#line 264 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               return;
+#line 1612 "Scope.c"
+       }
+#line 267 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp13_ = g_new0 (gchar*, 0 + 1);
+#line 267 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       all = _tmp13_;
+#line 267 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       all_length1 = 0;
+#line 267 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _all_size_ = all_length1;
+#line 268 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp14_ = self->priv->identifier_list;
+#line 268 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp15_ = gee_abstract_list_list_iterator ((GeeAbstractList*) _tmp14_);
+#line 268 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       iter = _tmp15_;
+#line 269 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       while (TRUE) {
+#line 1630 "Scope.c"
+               GeeListIterator* _tmp16_;
+               gboolean _tmp17_;
+               gchar** _tmp18_;
+               gint _tmp18__length1;
+               GeeListIterator* _tmp19_;
+               gpointer _tmp20_;
+               JSDOCIdentifier* _tmp21_;
+               const gchar* _tmp22_;
+               gchar* _tmp23_;
+#line 269 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp16_ = iter;
+#line 269 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp17_ = gee_iterator_next ((GeeIterator*) _tmp16_);
+#line 269 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               if (!_tmp17_) {
+#line 269 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       break;
+#line 1648 "Scope.c"
+               }
+#line 270 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp18_ = all;
+#line 270 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp18__length1 = all_length1;
+#line 270 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp19_ = iter;
+#line 270 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp20_ = gee_iterator_get ((GeeIterator*) _tmp19_);
+#line 270 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp21_ = (JSDOCIdentifier*) _tmp20_;
+#line 270 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp22_ = _tmp21_->name;
+#line 270 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp23_ = g_strdup (_tmp22_);
+#line 270 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _vala_array_add3 (&all, &all_length1, &_all_size_, _tmp23_);
+#line 270 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _g_object_unref0 (_tmp21_);
+#line 1668 "Scope.c"
+       }
+#line 276 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp24_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL);
+#line 276 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       freeSymbols = _tmp24_;
+#line 278 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp26_ = jsdoc_scope_getAllUsedSymbols (self, &_tmp25_);
+#line 278 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       sy = _tmp26_;
+#line 278 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       sy_length1 = _tmp25_;
+#line 278 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _sy_size_ = sy_length1;
+#line 287 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp27_ = freeSymbols;
+#line 287 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp28_ = jsdoc_scope_ones;
+#line 287 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp28__length1 = jsdoc_scope_ones_length1;
+#line 287 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp29_ = sy;
+#line 287 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp29__length1 = sy_length1;
+#line 287 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       jsdoc_scope_array_merge (_tmp27_, _tmp28_, _tmp28__length1, _tmp29_, _tmp29__length1);
+#line 289 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp30_ = g_strdup ("");
+#line 289 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       repsym = _tmp30_;
+#line 293 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp31_ = self->priv->identifier_list;
+#line 293 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp32_ = gee_abstract_list_list_iterator ((GeeAbstractList*) _tmp31_);
+#line 293 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _g_object_unref0 (iter);
+#line 293 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       iter = _tmp32_;
+#line 294 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       while (TRUE) {
+#line 1708 "Scope.c"
+               GeeListIterator* _tmp33_;
+               gboolean _tmp34_;
+               gchar* i = NULL;
+               GeeListIterator* _tmp35_;
+               gpointer _tmp36_;
+               JSDOCIdentifier* _tmp37_;
+               const gchar* _tmp38_;
+               gchar* _tmp39_;
+               gchar* _tmp40_;
+               GeeHashMap* _tmp41_;
+               const gchar* _tmp42_;
+               gpointer _tmp43_;
+               JSDOCIdentifier* _tmp44_;
+               gboolean _tmp45_;
+               gboolean _tmp46_;
+               const gchar* _tmp47_;
+               gboolean _tmp48_;
+               const gchar* _tmp49_;
+               gint _tmp50_;
+               gint _tmp51_;
+               JSDOCIdentifier* identifier = NULL;
+               GeeHashMap* _tmp60_;
+               const gchar* _tmp61_;
+               gpointer _tmp62_;
+               gchar* mungedValue = NULL;
+               JSDOCIdentifier* _tmp63_;
+               const gchar* _tmp64_;
+               gchar* _tmp65_;
+               const gchar* _tmp66_;
+               gint _tmp67_;
+               gint _tmp68_;
+               gboolean _tmp69_ = FALSE;
+               gboolean _tmp70_;
+               JSDOCIdentifier* _tmp80_;
+               const gchar* _tmp81_;
+               gchar* _tmp82_;
+#line 294 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp33_ = iter;
+#line 294 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp34_ = gee_iterator_next ((GeeIterator*) _tmp33_);
+#line 294 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               if (!_tmp34_) {
+#line 294 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       break;
+#line 1753 "Scope.c"
+               }
+#line 295 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp35_ = iter;
+#line 295 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp36_ = gee_iterator_get ((GeeIterator*) _tmp35_);
+#line 295 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp37_ = (JSDOCIdentifier*) _tmp36_;
+#line 295 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp38_ = _tmp37_->name;
+#line 295 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp39_ = g_strdup (_tmp38_);
+#line 295 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp40_ = _tmp39_;
+#line 295 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _g_object_unref0 (_tmp37_);
+#line 295 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               i = _tmp40_;
+#line 300 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp41_ = self->priv->identifier_map;
+#line 300 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp42_ = i;
+#line 300 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp43_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp41_, _tmp42_);
+#line 300 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp44_ = (JSDOCIdentifier*) _tmp43_;
+#line 300 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp45_ = _tmp44_->toMunge;
+#line 300 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp46_ = !_tmp45_;
+#line 300 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _g_object_unref0 (_tmp44_);
+#line 300 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               if (_tmp46_) {
+#line 302 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       _g_free0 (i);
+#line 302 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       continue;
+#line 1791 "Scope.c"
+               }
+#line 305 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp47_ = i;
+#line 305 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp48_ = jsdoc_scope_isProtectedVar (self, _tmp47_);
+#line 305 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               if (_tmp48_) {
+#line 307 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       _g_free0 (i);
+#line 307 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       continue;
+#line 1803 "Scope.c"
+               }
+#line 318 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp49_ = repsym;
+#line 318 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp50_ = strlen (_tmp49_);
+#line 318 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp51_ = _tmp50_;
+#line 318 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               if (_tmp51_ < 1) {
+#line 1813 "Scope.c"
+                       GeeArrayList* _tmp52_;
+                       gint _tmp53_;
+                       gint _tmp54_;
+                       GeeArrayList* _tmp58_;
+                       gpointer _tmp59_;
+#line 319 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       _tmp52_ = freeSymbols;
+#line 319 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       _tmp53_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp52_);
+#line 319 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       _tmp54_ = _tmp53_;
+#line 319 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       if (_tmp54_ < 1) {
+#line 1827 "Scope.c"
+                               GeeArrayList* _tmp55_;
+                               gchar** _tmp56_;
+                               gint _tmp56__length1;
+                               gchar** _tmp57_;
+                               gint _tmp57__length1;
+#line 320 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                               _tmp55_ = freeSymbols;
+#line 320 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                               _tmp56_ = jsdoc_scope_twos;
+#line 320 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                               _tmp56__length1 = jsdoc_scope_twos_length1;
+#line 320 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                               _tmp57_ = sy;
+#line 320 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                               _tmp57__length1 = sy_length1;
+#line 320 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                               jsdoc_scope_array_merge (_tmp55_, _tmp56_, _tmp56__length1, _tmp57_, _tmp57__length1);
+#line 1845 "Scope.c"
+                       }
+#line 322 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       _tmp58_ = freeSymbols;
+#line 322 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       _tmp59_ = gee_abstract_list_remove_at ((GeeAbstractList*) _tmp58_, 0);
+#line 322 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       _g_free0 (repsym);
+#line 322 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       repsym = (gchar*) _tmp59_;
+#line 1855 "Scope.c"
+               }
+#line 325 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp60_ = self->priv->identifier_map;
+#line 325 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp61_ = i;
+#line 325 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp62_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp60_, _tmp61_);
+#line 325 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               identifier = (JSDOCIdentifier*) _tmp62_;
+#line 327 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp63_ = identifier;
+#line 327 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp64_ = _tmp63_->name;
+#line 327 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp65_ = g_strdup (_tmp64_);
+#line 327 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               mungedValue = _tmp65_;
+#line 329 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp66_ = mungedValue;
+#line 329 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp67_ = strlen (_tmp66_);
+#line 329 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp68_ = _tmp67_;
+#line 329 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               if (_tmp68_ < 3) {
+#line 330 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       _g_free0 (mungedValue);
+#line 330 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       _g_object_unref0 (identifier);
+#line 330 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       _g_free0 (i);
+#line 330 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       continue;
+#line 1889 "Scope.c"
+               }
+#line 335 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp70_ = self->priv->mungeM;
+#line 335 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               if (_tmp70_) {
+#line 1895 "Scope.c"
+                       const gchar* _tmp71_;
+                       gint _tmp72_;
+                       gint _tmp73_;
+                       const gchar* _tmp74_;
+                       gint _tmp75_;
+                       gint _tmp76_;
+#line 335 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       _tmp71_ = repsym;
+#line 335 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       _tmp72_ = strlen (_tmp71_);
+#line 335 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       _tmp73_ = _tmp72_;
+#line 335 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       _tmp74_ = mungedValue;
+#line 335 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       _tmp75_ = strlen (_tmp74_);
+#line 335 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       _tmp76_ = _tmp75_;
+#line 335 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       _tmp69_ = _tmp73_ < _tmp76_;
+#line 1916 "Scope.c"
+               } else {
+#line 335 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       _tmp69_ = FALSE;
+#line 1920 "Scope.c"
+               }
+#line 335 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               if (_tmp69_) {
+#line 1924 "Scope.c"
+                       const gchar* _tmp77_;
+                       gchar* _tmp78_;
+                       gchar* _tmp79_;
+#line 337 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       _tmp77_ = repsym;
+#line 337 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       _tmp78_ = g_strdup (_tmp77_);
+#line 337 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       _g_free0 (mungedValue);
+#line 337 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       mungedValue = _tmp78_;
+#line 338 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       _tmp79_ = g_strdup ("");
+#line 338 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       _g_free0 (repsym);
+#line 338 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       repsym = _tmp79_;
+#line 1942 "Scope.c"
+               }
+#line 341 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp80_ = identifier;
+#line 341 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp81_ = mungedValue;
+#line 341 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp82_ = g_strdup (_tmp81_);
+#line 341 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _g_free0 (_tmp80_->mungedValue);
+#line 341 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp80_->mungedValue = _tmp82_;
+#line 294 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _g_free0 (mungedValue);
+#line 294 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _g_object_unref0 (identifier);
+#line 294 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _g_free0 (i);
+#line 1960 "Scope.c"
+       }
+#line 345 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       self->priv->munged = TRUE;
+#line 1964 "Scope.c"
+       {
+               gint j = 0;
+#line 347 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               j = 0;
+#line 1969 "Scope.c"
+               {
+                       gboolean _tmp83_ = FALSE;
+#line 347 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       _tmp83_ = TRUE;
+#line 347 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       while (TRUE) {
+#line 1976 "Scope.c"
+                               gint _tmp85_;
+                               GeeArrayList* _tmp86_;
+                               gint _tmp87_;
+                               gint _tmp88_;
+                               GeeArrayList* _tmp89_;
+                               gint _tmp90_;
+                               gpointer _tmp91_;
+                               JSDOCScope* _tmp92_;
+#line 347 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                               if (!_tmp83_) {
+#line 1987 "Scope.c"
+                                       gint _tmp84_;
+#line 347 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                       _tmp84_ = j;
+#line 347 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                       j = _tmp84_ + 1;
+#line 1993 "Scope.c"
+                               }
+#line 347 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                               _tmp83_ = FALSE;
+#line 347 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                               _tmp85_ = j;
+#line 347 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                               _tmp86_ = self->subScopes;
+#line 347 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                               _tmp87_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp86_);
+#line 347 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                               _tmp88_ = _tmp87_;
+#line 347 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                               if (!(_tmp85_ < _tmp88_)) {
+#line 347 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                       break;
+#line 2009 "Scope.c"
+                               }
+#line 348 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                               _tmp89_ = self->subScopes;
+#line 348 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                               _tmp90_ = j;
+#line 348 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                               _tmp91_ = gee_abstract_list_get ((GeeAbstractList*) _tmp89_, _tmp90_);
+#line 348 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                               _tmp92_ = (JSDOCScope*) _tmp91_;
+#line 348 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                               jsdoc_scope_munge (_tmp92_);
+#line 348 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                               _g_object_unref0 (_tmp92_);
+#line 2023 "Scope.c"
+                       }
+               }
+       }
+#line 237 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _g_free0 (repsym);
+#line 237 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       sy = (_vala_array_free (sy, sy_length1, (GDestroyNotify) g_free), NULL);
+#line 237 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _g_object_unref0 (freeSymbols);
+#line 237 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _g_object_unref0 (iter);
+#line 237 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       all = (_vala_array_free (all, all_length1, (GDestroyNotify) g_free), NULL);
+#line 2037 "Scope.c"
+}
+
+
+static void jsdoc_scope_array_merge (GeeArrayList* fs, gchar** toadd, int toadd_length1, gchar** ignore, int ignore_length1) {
+       gboolean got_it = FALSE;
+       gchar** _tmp0_;
+       gint _tmp0__length1;
+#line 358 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       g_return_if_fail (fs != NULL);
+#line 360 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       got_it = FALSE;
+#line 361 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp0_ = toadd;
+#line 361 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp0__length1 = toadd_length1;
+#line 2053 "Scope.c"
+       {
+               gchar** i_collection = NULL;
+               gint i_collection_length1 = 0;
+               gint _i_collection_size_ = 0;
+               gint i_it = 0;
+#line 361 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               i_collection = _tmp0_;
+#line 361 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               i_collection_length1 = _tmp0__length1;
+#line 361 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               for (i_it = 0; i_it < _tmp0__length1; i_it = i_it + 1) {
+#line 2065 "Scope.c"
+                       gchar* _tmp1_;
+                       gchar* i = NULL;
+#line 361 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       _tmp1_ = g_strdup (i_collection[i_it]);
+#line 361 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       i = _tmp1_;
+#line 2072 "Scope.c"
+                       {
+                               gchar** _tmp2_;
+                               gint _tmp2__length1;
+                               gboolean _tmp6_;
+                               GeeArrayList* _tmp7_;
+                               const gchar* _tmp8_;
+#line 362 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                               got_it = FALSE;
+#line 363 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                               _tmp2_ = ignore;
+#line 363 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                               _tmp2__length1 = ignore_length1;
+#line 2085 "Scope.c"
+                               {
+                                       gchar** ig_collection = NULL;
+                                       gint ig_collection_length1 = 0;
+                                       gint _ig_collection_size_ = 0;
+                                       gint ig_it = 0;
+#line 363 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                       ig_collection = _tmp2_;
+#line 363 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                       ig_collection_length1 = _tmp2__length1;
+#line 363 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                       for (ig_it = 0; ig_it < _tmp2__length1; ig_it = ig_it + 1) {
+#line 2097 "Scope.c"
+                                               gchar* _tmp3_;
+                                               gchar* ig = NULL;
+#line 363 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                               _tmp3_ = g_strdup (ig_collection[ig_it]);
+#line 363 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                               ig = _tmp3_;
+#line 2104 "Scope.c"
+                                               {
+                                                       const gchar* _tmp4_;
+                                                       const gchar* _tmp5_;
+#line 364 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                                       _tmp4_ = i;
+#line 364 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                                       _tmp5_ = ig;
+#line 364 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                                       if (g_strcmp0 (_tmp4_, _tmp5_) == 0) {
+#line 365 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                                               got_it = TRUE;
+#line 366 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                                               _g_free0 (ig);
+#line 366 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                                               break;
+#line 2120 "Scope.c"
+                                                       }
+#line 363 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                                       _g_free0 (ig);
+#line 2124 "Scope.c"
+                                               }
+                                       }
+                               }
+#line 369 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                               _tmp6_ = got_it;
+#line 369 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                               if (_tmp6_) {
+#line 370 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                       _g_free0 (i);
+#line 370 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                       continue;
+#line 2136 "Scope.c"
+                               }
+#line 372 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                               _tmp7_ = fs;
+#line 372 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                               _tmp8_ = i;
+#line 372 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                               gee_abstract_collection_add ((GeeAbstractCollection*) _tmp7_, _tmp8_);
+#line 361 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                               _g_free0 (i);
+#line 2146 "Scope.c"
+                       }
+               }
+       }
+}
+
+
+static void _vala_array_add4 (gchar** * array, int* length, int* size, gchar* value) {
+#line 403 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       if ((*length) == (*size)) {
+#line 403 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               *size = (*size) ? (2 * (*size)) : 4;
+#line 403 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               *array = g_renew (gchar*, *array, (*size) + 1);
+#line 2160 "Scope.c"
+       }
+#line 403 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       (*array)[(*length)++] = value;
+#line 403 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       (*array)[*length] = NULL;
+#line 2166 "Scope.c"
+}
+
+
+static gchar** _vala_array_dup1 (gchar** self, int length) {
+       gchar** result;
+       int i;
+#line 419 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       result = g_new0 (gchar*, length + 1);
+#line 419 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       for (i = 0; i < length; i++) {
+#line 2177 "Scope.c"
+               gchar* _tmp0_;
+#line 419 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               _tmp0_ = g_strdup (self[i]);
+#line 419 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               result[i] = _tmp0_;
+#line 2183 "Scope.c"
+       }
+#line 419 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       return result;
+#line 2187 "Scope.c"
+}
+
+
+static void jsdoc_scope_init (void) {
+       gboolean _tmp0_;
+       GeeArrayList* _tmp1_;
+       GeeArrayList* _tmp2_;
+       gchar** _tmp3_;
+       gchar** _tmp4_;
+       gchar** _tmp5_;
+       gint _tmp5__length1;
+       gchar** _tmp6_;
+       gchar** _tmp7_;
+       gint _tmp7__length1;
+       GeeArrayList* _tmp8_;
+       GeeArrayList* _tmp9_;
+       gchar** _tmp10_;
+       gchar** _tmp11_;
+       gchar** _tmp12_;
+       gint _tmp12__length1;
+       gchar** _tmp13_;
+       gchar** _tmp14_;
+       gint _tmp14__length1;
+       gchar** _tmp15_;
+       gchar** _tmp16_;
+       gchar** n = NULL;
+       gchar** _tmp17_;
+       gchar** _tmp18_;
+       gint n_length1;
+       gint _n_size_;
+       gchar** twos = NULL;
+       gchar** _tmp19_;
+       gint twos_length1;
+       gint _twos_size_;
+       gchar** _tmp41_;
+       gint _tmp41__length1;
+       gchar** _tmp42_;
+       gint _tmp42__length1;
+#line 385 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp0_ = jsdoc_scope_initialized;
+#line 385 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       if (_tmp0_) {
+#line 386 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               return;
+#line 2232 "Scope.c"
+       }
+#line 388 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       jsdoc_scope_initialized = TRUE;
+#line 389 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp1_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL);
+#line 389 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _g_object_unref0 (jsdoc_scope_builtin);
+#line 389 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       jsdoc_scope_builtin = _tmp1_;
+#line 390 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp2_ = jsdoc_scope_builtin;
+#line 390 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp4_ = _tmp3_ = g_strsplit ("NaN,top", ",", 0);
+#line 390 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp5_ = _tmp4_;
+#line 390 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp5__length1 = _vala_array_length (_tmp3_);
+#line 390 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp6_ = g_new0 (gchar*, 0 + 1);
+#line 390 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp7_ = _tmp6_;
+#line 390 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp7__length1 = 0;
+#line 390 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       jsdoc_scope_array_merge (_tmp2_, _tmp5_, _vala_array_length (_tmp3_), _tmp7_, 0);
+#line 390 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp7_ = (_vala_array_free (_tmp7_, _tmp7__length1, (GDestroyNotify) g_free), NULL);
+#line 390 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp5_ = (_vala_array_free (_tmp5_, _tmp5__length1, (GDestroyNotify) g_free), NULL);
+#line 392 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp8_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL);
+#line 392 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _g_object_unref0 (jsdoc_scope_skips);
+#line 392 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       jsdoc_scope_skips = _tmp8_;
+#line 393 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp9_ = jsdoc_scope_skips;
+#line 393 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp11_ = _tmp10_ = g_strsplit ("as,is,do,if,in,for,int,new,try,use,var,NaN,top", ",", 0);
+#line 393 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp12_ = _tmp11_;
+#line 393 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp12__length1 = _vala_array_length (_tmp10_);
+#line 393 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp13_ = g_new0 (gchar*, 0 + 1);
+#line 393 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp14_ = _tmp13_;
+#line 393 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp14__length1 = 0;
+#line 393 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       jsdoc_scope_array_merge (_tmp9_, _tmp12_, _vala_array_length (_tmp10_), _tmp14_, 0);
+#line 393 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp14_ = (_vala_array_free (_tmp14_, _tmp14__length1, (GDestroyNotify) g_free), NULL);
+#line 393 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp12_ = (_vala_array_free (_tmp12_, _tmp12__length1, (GDestroyNotify) g_free), NULL);
+#line 395 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp16_ = _tmp15_ = g_strsplit ("A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,a,b,c,d,e,f,g,h,i," \
+"j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z", ",", 0);
+#line 395 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       jsdoc_scope_ones = (_vala_array_free (jsdoc_scope_ones, jsdoc_scope_ones_length1, (GDestroyNotify) g_free), NULL);
+#line 395 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       jsdoc_scope_ones = _tmp16_;
+#line 395 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       jsdoc_scope_ones_length1 = _vala_array_length (_tmp15_);
+#line 396 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp18_ = _tmp17_ = g_strsplit ("A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,a,b,c,d,e,f,g,h,i," \
+"j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,0,1,2,3,4,5,6,7,8,9", ",", 0);
+#line 396 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       n = _tmp18_;
+#line 396 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       n_length1 = _vala_array_length (_tmp17_);
+#line 396 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _n_size_ = n_length1;
+#line 398 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp19_ = g_new0 (gchar*, 0 + 1);
+#line 398 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       twos = _tmp19_;
+#line 398 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       twos_length1 = 0;
+#line 398 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _twos_size_ = twos_length1;
+#line 2312 "Scope.c"
+       {
+               gint i = 0;
+#line 399 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+               i = 0;
+#line 2317 "Scope.c"
+               {
+                       gboolean _tmp20_ = FALSE;
+#line 399 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       _tmp20_ = TRUE;
+#line 399 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                       while (TRUE) {
+#line 2324 "Scope.c"
+                               gint _tmp22_;
+                               gchar** _tmp23_;
+                               gint _tmp23__length1;
+#line 399 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                               if (!_tmp20_) {
+#line 2330 "Scope.c"
+                                       gint _tmp21_;
+#line 399 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                       _tmp21_ = i;
+#line 399 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                       i = _tmp21_ + 1;
+#line 2336 "Scope.c"
+                               }
+#line 399 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                               _tmp20_ = FALSE;
+#line 399 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                               _tmp22_ = i;
+#line 399 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                               _tmp23_ = jsdoc_scope_ones;
+#line 399 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                               _tmp23__length1 = jsdoc_scope_ones_length1;
+#line 399 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                               if (!(_tmp22_ < _tmp23__length1)) {
+#line 399 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                       break;
+#line 2350 "Scope.c"
+                               }
+                               {
+                                       gint j = 0;
+#line 400 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                       j = 0;
+#line 2356 "Scope.c"
+                                       {
+                                               gboolean _tmp24_ = FALSE;
+#line 400 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                               _tmp24_ = TRUE;
+#line 400 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                               while (TRUE) {
+#line 2363 "Scope.c"
+                                                       gint _tmp26_;
+                                                       gchar** _tmp27_;
+                                                       gint _tmp27__length1;
+                                                       gchar* tw = NULL;
+                                                       gchar** _tmp28_;
+                                                       gint _tmp28__length1;
+                                                       gint _tmp29_;
+                                                       const gchar* _tmp30_;
+                                                       gchar** _tmp31_;
+                                                       gint _tmp31__length1;
+                                                       gint _tmp32_;
+                                                       const gchar* _tmp33_;
+                                                       gchar* _tmp34_;
+                                                       GeeArrayList* _tmp35_;
+                                                       const gchar* _tmp36_;
+                                                       gint _tmp37_;
+#line 400 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                                       if (!_tmp24_) {
+#line 2382 "Scope.c"
+                                                               gint _tmp25_;
+#line 400 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                                               _tmp25_ = j;
+#line 400 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                                               j = _tmp25_ + 1;
+#line 2388 "Scope.c"
+                                                       }
+#line 400 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                                       _tmp24_ = FALSE;
+#line 400 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                                       _tmp26_ = j;
+#line 400 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                                       _tmp27_ = n;
+#line 400 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                                       _tmp27__length1 = n_length1;
+#line 400 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                                       if (!(_tmp26_ < _tmp27__length1)) {
+#line 400 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                                               break;
+#line 2402 "Scope.c"
+                                                       }
+#line 401 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                                       _tmp28_ = jsdoc_scope_ones;
+#line 401 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                                       _tmp28__length1 = jsdoc_scope_ones_length1;
+#line 401 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                                       _tmp29_ = i;
+#line 401 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                                       _tmp30_ = _tmp28_[_tmp29_];
+#line 401 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                                       _tmp31_ = n;
+#line 401 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                                       _tmp31__length1 = n_length1;
+#line 401 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                                       _tmp32_ = j;
+#line 401 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                                       _tmp33_ = _tmp31_[_tmp32_];
+#line 401 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                                       _tmp34_ = g_strconcat (_tmp30_, _tmp33_, NULL);
+#line 401 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                                       tw = _tmp34_;
+#line 402 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                                       _tmp35_ = jsdoc_scope_skips;
+#line 402 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                                       _tmp36_ = tw;
+#line 402 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                                       _tmp37_ = gee_abstract_list_index_of ((GeeAbstractList*) _tmp35_, _tmp36_);
+#line 402 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                                       if (_tmp37_ < 0) {
+#line 2432 "Scope.c"
+                                                               gchar** _tmp38_;
+                                                               gint _tmp38__length1;
+                                                               const gchar* _tmp39_;
+                                                               gchar* _tmp40_;
+#line 403 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                                               _tmp38_ = twos;
+#line 403 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                                               _tmp38__length1 = twos_length1;
+#line 403 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                                               _tmp39_ = tw;
+#line 403 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                                               _tmp40_ = g_strdup (_tmp39_);
+#line 403 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                                               _vala_array_add4 (&twos, &twos_length1, &_twos_size_, _tmp40_);
+#line 2447 "Scope.c"
+                                                       }
+#line 400 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+                                                       _g_free0 (tw);
+#line 2451 "Scope.c"
+                                               }
+                                       }
+                               }
+                       }
+               }
+       }
+#line 419 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp41_ = twos;
+#line 419 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp41__length1 = twos_length1;
+#line 419 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp42_ = (_tmp41_ != NULL) ? _vala_array_dup1 (_tmp41_, _tmp41__length1) : ((gpointer) _tmp41_);
+#line 419 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp42__length1 = _tmp41__length1;
+#line 419 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       jsdoc_scope_twos = (_vala_array_free (jsdoc_scope_twos, jsdoc_scope_twos_length1, (GDestroyNotify) g_free), NULL);
+#line 419 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       jsdoc_scope_twos = _tmp42_;
+#line 419 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       jsdoc_scope_twos_length1 = _tmp42__length1;
+#line 383 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       twos = (_vala_array_free (twos, twos_length1, (GDestroyNotify) g_free), NULL);
+#line 383 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       n = (_vala_array_free (n, n_length1, (GDestroyNotify) g_free), NULL);
+#line 2476 "Scope.c"
+}
+
+
+static void jsdoc_scope_class_init (JSDOCScopeClass * klass) {
+#line 7 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       jsdoc_scope_parent_class = g_type_class_peek_parent (klass);
+#line 7 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       g_type_class_add_private (klass, sizeof (JSDOCScopePrivate));
+#line 7 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       G_OBJECT_CLASS (klass)->finalize = jsdoc_scope_finalize;
+#line 2487 "Scope.c"
+}
+
+
+static void jsdoc_scope_instance_init (JSDOCScope * self) {
+       gchar* _tmp0_;
+#line 7 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       self->priv = JSDOC_SCOPE_GET_PRIVATE (self);
+#line 14 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _tmp0_ = g_strdup ("");
+#line 14 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       self->ident = _tmp0_;
+#line 20 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       self->priv->mungeM = TRUE;
+#line 23 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       self->priv->munged = FALSE;
+#line 2503 "Scope.c"
+}
+
+
+static void jsdoc_scope_finalize (GObject * obj) {
+       JSDOCScope * self;
+#line 7 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       self = G_TYPE_CHECK_INSTANCE_CAST (obj, JSDOC_TYPE_SCOPE, JSDOCScope);
+#line 12 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _g_object_unref0 (self->parent);
+#line 13 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _g_object_unref0 (self->subScopes);
+#line 14 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _g_free0 (self->ident);
+#line 16 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _g_object_unref0 (self->priv->identifier_map);
+#line 17 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _g_object_unref0 (self->priv->identifier_list);
+#line 19 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _g_object_unref0 (self->priv->hints);
+#line 24 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _g_object_unref0 (self->priv->protectedVars);
+#line 25 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       _g_object_unref0 (self->priv->token);
+#line 7 "/home/alan/gitlive/roojspacker/src/jsdoc/Scope.vala"
+       G_OBJECT_CLASS (jsdoc_scope_parent_class)->finalize (obj);
+#line 2529 "Scope.c"
+}
+
+
+GType jsdoc_scope_get_type (void) {
+       static volatile gsize jsdoc_scope_type_id__volatile = 0;
+       if (g_once_init_enter (&jsdoc_scope_type_id__volatile)) {
+               static const GTypeInfo g_define_type_info = { sizeof (JSDOCScopeClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) jsdoc_scope_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (JSDOCScope), 0, (GInstanceInitFunc) jsdoc_scope_instance_init, NULL };
+               GType jsdoc_scope_type_id;
+               jsdoc_scope_type_id = g_type_register_static (G_TYPE_OBJECT, "JSDOCScope", &g_define_type_info, 0);
+               g_once_init_leave (&jsdoc_scope_type_id__volatile, jsdoc_scope_type_id);
+       }
+       return jsdoc_scope_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;
+}
+
+
+
diff --git a/jsdoc/Scope.vala b/jsdoc/Scope.vala
new file mode 100644 (file)
index 0000000..b8255f0
--- /dev/null
@@ -0,0 +1,431 @@
+
+namespace JSDOC 
+{
+       public int Scope_gid = 0;
+       
+       public class Scope : Object 
+       {
+       
+           int id ;
+               int braceN ;
+               public Scope parent;
+               public Gee.ArrayList<Scope> subScopes;
+               public string ident = ""; // used by the walker...
+               
+               Gee.HashMap<string,Identifier> identifier_map;   // map of identifiers to {Identifier} objects
+               Gee.ArrayList<Identifier> identifier_list;
+               
+               Gee.HashMap<string,string> hints;
+               bool mungeM = true;
+               //ident: '',
+               
+               bool munged  = false;
+           Gee.HashMap<string,bool> protectedVars ; // only used by to parent..
+               Token? token;
+               // lastIdent is only used on the documentation parser..
+               public Scope(int braceN, Scope? parent, int startTokN, string lastIdent, Token? token) // Identifier? lastIdent
+               {
+                       if (lastIdent.length> 0 ) {
+                          GLib.debug("NEW SCOPE: %s", lastIdent);
+                       }
+                       this.ident = "";
+                       this.braceN = braceN;
+                       this.parent = parent;
+                       this.id = startTokN;
+                       this.identifier_map = new Gee.HashMap<string,Identifier>();
+                       this.identifier_list = new Gee.ArrayList<Identifier>();
+                       this.subScopes = new Gee.ArrayList<Scope> ();
+                       this.hints = new Gee.HashMap<string,string>();
+                       this.protectedVars = new Gee.HashMap<string,bool>();
+                       this.ident = lastIdent;
+                       this.id = Scope_gid++;
+                       this.token = token;
+                       //print("ADD SCOPE(" + this.gid + ") TO "+ (parent ? this.parent.gid : 'TOP') + ' : ' + 
+                       //    (token ? token.toString() : ''));
+               
+                       if (parent != null) {
+                               this.parent.subScopes.add(this);
+                       } 
+                       Scope.init();
+               
+               }
+
+
+
+
+
+
+
+        
+               /**
+                * dump the scope to StdOut...
+                * 
+                */
+               public void dump (string indent = "") 
+               {
+                   //indent = indent || '';
+                   
+                   var str = "";
+                        var idents = this.identifier_list;
+                   var iter = idents.list_iterator();
+                   while (iter.next()) {
+                           var identifier = iter.get();
+                           str += (str.length > 0 ? ", " : "");
+                               str +=  indent + " " + identifier.name + "=>" +  identifier.mungedValue ;
+                       }
+                       
+                   print( "\n"+ 
+                       indent +  "Scope: %d\n" +
+                       indent + "Started: %s\n" +
+                       indent + "- idents..: %s\n",
+
+                               this.id,
+                               this.token != null ? this.token.asString()  : "TOP",
+                               str
+                               //                   " + XObject.keys(this.identifiers).join(", ") + "
+                   );
+                   foreach(var s in this.subScopes) {
+                          s.dump(indent + " ");
+                   };
+                   
+                   
+               }
+    
+    
+               public Identifier declareIdentifier(string symbol, Token token) 
+               {
+                   
+                   //print("SCOPE : " + this.gid +  " :SYM: " + symbol + " " + token.toString()+"");
+                   
+                   if (!this.identifier_map.has_key(symbol)) {
+                               var nid = new Identifier(symbol, this);
+                       this.identifier_list.add(nid);
+                       this.identifier_map.set(symbol,   nid);
+                       
+                   }
+                   
+                   //if (typeof(token) != 'undefined') { // shoudl this happen?
+                       token.identifier = this.identifier_map.get(symbol);
+                       
+                   //}
+                   if (this.braceN < 0) {
+                           // then it's global... 
+                   this.identifier_map.get(symbol).toMunge  = false;
+                   }
+                    
+                   
+                   this.addToParentScope(symbol);
+                   return this.identifier_map.get(symbol);
+               }
+               
+               
+               
+               public Identifier? getIdentifier(string symbol, Token token) 
+               {
+                   if (!this.identifier_map.has_key(symbol)) {
+                               return null;
+                       //if (['String', 'Date'].indexOf(symbol)> -1) {
+                        //   return false;
+                       //}
+                       
+                       //print("SCOPE : " + this.gid +" = SYMBOL NOT FOUND?" + token.toString());
+                       //return n;
+                   }
+                    //print("SCOPE : " + this.gid +" = FOUND:" + token.toString());
+                   return this.identifier_map.get(symbol);
+               }
+               
+               public void addHint(string varName, string varType) {
+               
+                   this.hints.set(varName, varType);
+               }
+               public void preventMunging () {
+                   this.mungeM = false;
+               }
+
+               //usedsymcache : false,
+               
+               public string[] getUsedSymbols () {
+                   
+                   string[] result = {};
+                   
+                   // if (this.usedsymcache !== false) {
+                   //    return this.usedsymcache;
+                   //}
+                   
+                   var idents = this.identifier_list;
+                   var iter = idents.list_iterator();
+                   while (iter.next()) {
+                           var identifier = iter.get();
+                       //println('<b>'+i+'</b>='+typeof(idents[i]) +'<br/>');
+                       //var identifier = this.identifier_map.get(i);
+                       var mungedValue = identifier.mungedValue;
+                       
+                       if (mungedValue.length < 1) {
+                           //println(identifier.toSource());
+                           mungedValue = identifier.name;
+                       }
+                       result += mungedValue;
+                   }
+                   //println("Symbols for ("+ this.id +"): <B>" + result.join(',') + "</B><BR/>");
+                   //this.usedsymcache = result;
+                   return result;
+               }
+
+               string[] getAllUsedSymbols() 
+               {
+                   var result = this.getUsedSymbols();
+                   var scope = this.parent;
+                   while (scope != null) {
+                               var ps = scope.getUsedSymbols();
+                               for (var i =0;  i< ps.length; i++) {
+                                       result += ps[i];
+                               }
+                       scope = scope.parent;
+                   }
+                    //println("Done - addused");
+                   return result;
+               }
+               /** - we need to register short vairalbes so they never get munged into.. */
+               public void addToParentScope(string ident) 
+               {
+                   if (ident.length > 2) {
+                       return;
+                   }
+                   var scope = this.parent;
+                   while (scope != null) {
+                       //println("addused:"+scope.id);
+                       if (scope.parent != null) {
+                           scope.protectedVars.set(ident, true);
+                       }
+                       scope = scope.parent;
+                   }
+                   
+               }
+               public bool isProtectedVar(string ident)
+               {
+                   //if (ident == "_this") { // not sure why we need to protect _this. as it should be calculated as protected..
+                       //      return true;
+                       //}
+                   
+                   if (ident.length > 2) {
+                       return false;
+                   }
+                   var scope = this.parent;
+                   while (scope != null) {
+                       //println("addused:"+scope.id);
+                       if (scope.parent != null) {
+                               if (scope.protectedVars.has_key(ident)) {
+                                       return true;
+                                       }
+                       }
+                       scope = scope.parent;
+                   }
+                   return false;
+               }
+               
+               
+               
+               
+               /**
+                * set's all the munged values on the identifiers.
+                * 
+                * 
+                */
+
+               public void munge() 
+               {
+
+                   if (!this.mungeM) {
+                       // Stop right here if this scope was flagged as unsafe for munging.
+                      // println("MUNGE: SKIP -  Scope" + this.id+"</BR>");
+                       return;
+                   }
+                   if (this.munged) {
+                       return;
+                   }
+                   
+
+                   
+                   
+                   var pickFromSet = 1;
+
+                   // Do not munge symbols in the global scope!
+                   if (this.parent == null) {
+                               // same code at bottom... ?? goto::
+                               this.munged = true;
+                               //println("Doing sub scopes");
+                               for (var j = 0; j < this.subScopes.size; j++) {
+                                       this.subScopes.get(j).munge();
+                                       
+                               }
+                   
+                               return;
+                       }
+                       
+                   string[] all = {};
+                   var iter = this.identifier_list.list_iterator();
+                   while (iter.next()) {
+                       all += iter.get().name;
+                   }
+                   //print("MUNGE: %s\n", string.joinv(",", all));
+                       
+                       //println("MUNGE: Building FreeSyms:" + this.id+"</BR>");
+                       
+                   Gee.ArrayList<string> freeSymbols= new Gee.ArrayList<string>();
+                   
+                   var sy = this.getAllUsedSymbols();
+
+                   // we need to remove the used from the free.....
+                   
+                   
+                   
+                   
+                   
+                       
+                       Scope.array_merge(freeSymbols,Scope.ones,sy); 
+                        
+                   var repsym = "";
+                       //println(freeSymbols.toSource());
+                      
+                       //println("MUNGE: Replacing " + this.id+"</BR>");
+                   iter = this.identifier_list.list_iterator();
+                   while (iter.next()) {
+                               var i = iter.get().name;
+                       
+                       // is the identifer in the global scope!?!!?
+                       
+                       
+                       if (!this.identifier_map.get(i).toMunge) {
+                           //print("SKIP toMunge==false : " + i)
+                           continue;
+                       }
+                       
+                       if (this.isProtectedVar(i)) {
+                           //print("SKIP PROTECTED: " + i)
+                           continue; // 
+                       }
+                       
+                       
+                       
+                       //if (this.identifiers[i].constructor !=  Identifier) {
+                       //    print("SKIP NOT IDENTIFIER : " + i)
+                       //    continue;
+                      // }
+                      // println("IDENT:" +i+'</BR>');
+                       
+                       if (repsym.length < 1) {
+                           if (freeSymbols.size < 1) {
+                               Scope.array_merge(freeSymbols,Scope.twos,sy); 
+                           }
+                           repsym = freeSymbols.remove_at(0); // pop off beginngin???
+                       }
+                       
+                       var identifier = this.identifier_map.get(i); 
+                       //println(typeof(identifier.name));
+                       var mungedValue = identifier.name; 
+                       
+                       if (mungedValue.length < 3) {  // don't bother replacing 1&2 character variables..
+                               continue;
+                       }
+                       
+                       //println([     repsym,mungedValue ]);
+                       
+                       if (this.mungeM && repsym.length < mungedValue.length) {
+                           //print("REPLACE:"+ mungedValue +" with " + repsym );    
+                           mungedValue = repsym;
+                           repsym = "";
+                       }
+                       
+                       identifier.mungedValue =  mungedValue;
+                   }
+                   //println("MUNGE: Done " + this.id+"</BR>");
+                        
+                       this.munged = true;
+                       //println("Doing sub scopes");
+                       for (var j = 0; j < this.subScopes.size; j++) {
+                               this.subScopes.get(j).munge();
+                       }
+               }
+                
+
+
+               // ---------------------- static part... --------------------
+
+
+
+               static void array_merge(Gee.ArrayList<string> fs, string[] toadd, string[] ignore) 
+               {
+                       var got_it = false;
+                       foreach(var i in toadd) {
+                               got_it = false;
+                               foreach(var ig in ignore) {
+                                       if (i == ig) {
+                                               got_it = true;
+                                               break;
+                                       }
+                               }
+                               if (got_it) {
+                                       continue;
+                               }
+                               fs.add(i);
+                       }
+                
+               }
+               static bool initialized = false;
+               public static Gee.ArrayList<string> builtin;
+               public static Gee.ArrayList<string> skips;
+                        
+               public static string[] ones;
+               public static string[] twos;
+       //      static string[] threes : [],
+               static  void init () 
+               {
+                       if (Scope.initialized) {
+                               return;
+                       }
+                       Scope.initialized = true;
+                       Scope.builtin = new Gee.ArrayList<string>(); 
+                       array_merge(Scope.builtin, "NaN,top".split(","), {});
+               
+                       Scope.skips =  new Gee.ArrayList<string>(); 
+                       array_merge(Scope.skips, "as,is,do,if,in,for,int,new,try,use,var,NaN,top".split(","), {});
+               
+                       Scope.ones = "A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z".split(",");
+                       var n = "A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,0,1,2,3,4,5,6,7,8,9".split(",");
+
+                       string[] twos = {};
+                       for(var i = 0; i < Scope.ones.length; i++) {
+                           for(var j = 0; j < n.length; j++) {
+                               string tw = Scope.ones[i] + n[j];
+                               if (Scope.skips.index_of(tw) < 0) {
+                                   twos += tw;
+                               }
+                                   
+                               /*
+                               for(var k = 0; k < n.length; k++) {
+                                   var thr = a[i] + n[j] + n[k];
+                                   //println("thr="+ thr + ":iOf="+this.skips.indexOf(thr) );
+                                   if (this.skips.indexOf(thr)  < 0) {
+                                       //println("+"+thr);
+                                       this.threes.push(thr);
+                                      }
+                                   
+                               }
+                               */
+                           }
+                       }
+                       Scope.twos = twos;
+                       //println("done creating var list");
+                       //println("threes="+ this.threes.toSource());
+                       //throw "DONE";
+                       
+                        
+               }
+       
+       }
+}
+
+
+
diff --git a/jsdoc/ScopeParser.c b/jsdoc/ScopeParser.c
new file mode 100644 (file)
index 0000000..7b235b6
--- /dev/null
@@ -0,0 +1,4786 @@
+/* ScopeParser.c generated by valac 0.36.6, the Vala compiler
+ * generated from ScopeParser.vala, do not modify */
+
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gee.h>
+#include <stdlib.h>
+#include <string.h>
+
+
+#define JSDOC_TYPE_SCOPE_PARSER_MODE (jsdoc_scope_parser_mode_get_type ())
+
+#define JSDOC_TYPE_SCOPE_PARSER (jsdoc_scope_parser_get_type ())
+#define JSDOC_SCOPE_PARSER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_SCOPE_PARSER, JSDOCScopeParser))
+#define JSDOC_SCOPE_PARSER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_SCOPE_PARSER, JSDOCScopeParserClass))
+#define JSDOC_IS_SCOPE_PARSER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_SCOPE_PARSER))
+#define JSDOC_IS_SCOPE_PARSER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_SCOPE_PARSER))
+#define JSDOC_SCOPE_PARSER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_SCOPE_PARSER, JSDOCScopeParserClass))
+
+typedef struct _JSDOCScopeParser JSDOCScopeParser;
+typedef struct _JSDOCScopeParserClass JSDOCScopeParserClass;
+typedef struct _JSDOCScopeParserPrivate JSDOCScopeParserPrivate;
+
+#define JSDOC_TYPE_TOKEN_STREAM (jsdoc_token_stream_get_type ())
+#define JSDOC_TOKEN_STREAM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_TOKEN_STREAM, JSDOCTokenStream))
+#define JSDOC_TOKEN_STREAM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_TOKEN_STREAM, JSDOCTokenStreamClass))
+#define JSDOC_IS_TOKEN_STREAM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_TOKEN_STREAM))
+#define JSDOC_IS_TOKEN_STREAM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_TOKEN_STREAM))
+#define JSDOC_TOKEN_STREAM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_TOKEN_STREAM, JSDOCTokenStreamClass))
+
+typedef struct _JSDOCTokenStream JSDOCTokenStream;
+typedef struct _JSDOCTokenStreamClass JSDOCTokenStreamClass;
+
+#define JSDOC_TYPE_SCOPE (jsdoc_scope_get_type ())
+#define JSDOC_SCOPE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_SCOPE, JSDOCScope))
+#define JSDOC_SCOPE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_SCOPE, JSDOCScopeClass))
+#define JSDOC_IS_SCOPE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_SCOPE))
+#define JSDOC_IS_SCOPE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_SCOPE))
+#define JSDOC_SCOPE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_SCOPE, JSDOCScopeClass))
+
+typedef struct _JSDOCScope JSDOCScope;
+typedef struct _JSDOCScopeClass JSDOCScopeClass;
+
+#define JSDOC_TYPE_PACKER (jsdoc_packer_get_type ())
+#define JSDOC_PACKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_PACKER, JSDOCPacker))
+#define JSDOC_PACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_PACKER, JSDOCPackerClass))
+#define JSDOC_IS_PACKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_PACKER))
+#define JSDOC_IS_PACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_PACKER))
+#define JSDOC_PACKER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_PACKER, JSDOCPackerClass))
+
+typedef struct _JSDOCPacker JSDOCPacker;
+typedef struct _JSDOCPackerClass JSDOCPackerClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _g_free0(var) (var = (g_free (var), NULL))
+
+#define JSDOC_TYPE_TOKEN (jsdoc_token_get_type ())
+#define JSDOC_TOKEN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_TOKEN, JSDOCToken))
+#define JSDOC_TOKEN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_TOKEN, JSDOCTokenClass))
+#define JSDOC_IS_TOKEN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_TOKEN))
+#define JSDOC_IS_TOKEN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_TOKEN))
+#define JSDOC_TOKEN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_TOKEN, JSDOCTokenClass))
+
+typedef struct _JSDOCToken JSDOCToken;
+typedef struct _JSDOCTokenClass JSDOCTokenClass;
+typedef struct _Block4Data Block4Data;
+typedef struct _JSDOCTokenPrivate JSDOCTokenPrivate;
+
+#define JSDOC_TYPE_TOKEN_TYPE (jsdoc_token_type_get_type ())
+
+#define JSDOC_TYPE_TOKEN_NAME (jsdoc_token_name_get_type ())
+
+#define JSDOC_TYPE_IDENTIFIER (jsdoc_identifier_get_type ())
+#define JSDOC_IDENTIFIER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_IDENTIFIER, JSDOCIdentifier))
+#define JSDOC_IDENTIFIER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_IDENTIFIER, JSDOCIdentifierClass))
+#define JSDOC_IS_IDENTIFIER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_IDENTIFIER))
+#define JSDOC_IS_IDENTIFIER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_IDENTIFIER))
+#define JSDOC_IDENTIFIER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_IDENTIFIER, JSDOCIdentifierClass))
+
+typedef struct _JSDOCIdentifier JSDOCIdentifier;
+typedef struct _JSDOCIdentifierClass JSDOCIdentifierClass;
+
+#define JSDOC_TYPE_TOKEN_KEY_MAP (jsdoc_token_key_map_get_type ())
+#define JSDOC_TOKEN_KEY_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_TOKEN_KEY_MAP, JSDOCTokenKeyMap))
+#define JSDOC_TOKEN_KEY_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_TOKEN_KEY_MAP, JSDOCTokenKeyMapClass))
+#define JSDOC_IS_TOKEN_KEY_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_TOKEN_KEY_MAP))
+#define JSDOC_IS_TOKEN_KEY_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_TOKEN_KEY_MAP))
+#define JSDOC_TOKEN_KEY_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_TOKEN_KEY_MAP, JSDOCTokenKeyMapClass))
+
+typedef struct _JSDOCTokenKeyMap JSDOCTokenKeyMap;
+typedef struct _JSDOCTokenKeyMapClass JSDOCTokenKeyMapClass;
+typedef struct _JSDOCTokenStreamPrivate JSDOCTokenStreamPrivate;
+
+#define JSDOC_PACKER_TYPE_RESULT_TYPE (jsdoc_packer_result_type_get_type ())
+typedef struct _JSDOCIdentifierPrivate JSDOCIdentifierPrivate;
+#define _g_regex_unref0(var) ((var == NULL) ? NULL : (var = (g_regex_unref (var), NULL)))
+typedef struct _JSDOCTokenKeyMapPrivate JSDOCTokenKeyMapPrivate;
+typedef struct _Block5Data Block5Data;
+typedef struct _JSDOCScopePrivate JSDOCScopePrivate;
+
+typedef enum  {
+       JSDOC_SCOPE_PARSER_MODE_BUILDING_SYMBOL_TREE,
+       JSDOC_SCOPE_PARSER_MODE_PASS2_SYMBOL_TREE
+} JSDOCScopeParserMode;
+
+struct _JSDOCScopeParser {
+       GObject parent_instance;
+       JSDOCScopeParserPrivate * priv;
+};
+
+struct _JSDOCScopeParserClass {
+       GObjectClass parent_class;
+};
+
+struct _JSDOCScopeParserPrivate {
+       JSDOCTokenStream* ts;
+       GeeArrayList* warnings;
+       JSDOCScope* globalScope;
+       JSDOCScopeParserMode mode;
+       GeeHashMap* indexedScopes;
+       gboolean munge;
+       gint expN;
+       gint braceNesting;
+       JSDOCPacker* packer;
+       gchar* filename;
+};
+
+struct _Block4Data {
+       int _ref_count_;
+       JSDOCScopeParser* self;
+       JSDOCToken* token;
+       JSDOCScope* scope;
+};
+
+typedef enum  {
+       JSDOC_TOKEN_TYPE_TOKN,
+       JSDOC_TOKEN_TYPE_KEYW,
+       JSDOC_TOKEN_TYPE_NAME,
+       JSDOC_TOKEN_TYPE_COMM,
+       JSDOC_TOKEN_TYPE_PUNC,
+       JSDOC_TOKEN_TYPE_WHIT,
+       JSDOC_TOKEN_TYPE_STRN,
+       JSDOC_TOKEN_TYPE_NUMB,
+       JSDOC_TOKEN_TYPE_REGX,
+       JSDOC_TOKEN_TYPE_VOID
+} JSDOCTokenType;
+
+typedef enum  {
+       JSDOC_TOKEN_NAME_UNKNOWN_TOKEN,
+       JSDOC_TOKEN_NAME_BREAK,
+       JSDOC_TOKEN_NAME_CASE,
+       JSDOC_TOKEN_NAME_CATCH,
+       JSDOC_TOKEN_NAME_CONST,
+       JSDOC_TOKEN_NAME_CONTINUE,
+       JSDOC_TOKEN_NAME_DEFAULT,
+       JSDOC_TOKEN_NAME_DELETE,
+       JSDOC_TOKEN_NAME_DO,
+       JSDOC_TOKEN_NAME_ELSE,
+       JSDOC_TOKEN_NAME_FALSE,
+       JSDOC_TOKEN_NAME_FINALLY,
+       JSDOC_TOKEN_NAME_FOR,
+       JSDOC_TOKEN_NAME_FUNCTION,
+       JSDOC_TOKEN_NAME_IF,
+       JSDOC_TOKEN_NAME_IN,
+       JSDOC_TOKEN_NAME_INSTANCEOF,
+       JSDOC_TOKEN_NAME_NEW,
+       JSDOC_TOKEN_NAME_NULL,
+       JSDOC_TOKEN_NAME_RETURN,
+       JSDOC_TOKEN_NAME_SWITCH,
+       JSDOC_TOKEN_NAME_THIS,
+       JSDOC_TOKEN_NAME_THROW,
+       JSDOC_TOKEN_NAME_TRUE,
+       JSDOC_TOKEN_NAME_TRY,
+       JSDOC_TOKEN_NAME_TYPEOF,
+       JSDOC_TOKEN_NAME_VOID,
+       JSDOC_TOKEN_NAME_WHILE,
+       JSDOC_TOKEN_NAME_WITH,
+       JSDOC_TOKEN_NAME_VAR,
+       JSDOC_TOKEN_NAME_EVAL,
+       JSDOC_TOKEN_NAME_NAME,
+       JSDOC_TOKEN_NAME_MULTI_LINE_COMM,
+       JSDOC_TOKEN_NAME_JSDOC,
+       JSDOC_TOKEN_NAME_SINGLE_LINE_COMM,
+       JSDOC_TOKEN_NAME_SEMICOLON,
+       JSDOC_TOKEN_NAME_COMMA,
+       JSDOC_TOKEN_NAME_HOOK,
+       JSDOC_TOKEN_NAME_COLON,
+       JSDOC_TOKEN_NAME_OR,
+       JSDOC_TOKEN_NAME_AND,
+       JSDOC_TOKEN_NAME_BITWISE_OR,
+       JSDOC_TOKEN_NAME_BITWISE_XOR,
+       JSDOC_TOKEN_NAME_BITWISE_AND,
+       JSDOC_TOKEN_NAME_STRICT_EQ,
+       JSDOC_TOKEN_NAME_EQ,
+       JSDOC_TOKEN_NAME_ASSIGN,
+       JSDOC_TOKEN_NAME_STRICT_NE,
+       JSDOC_TOKEN_NAME_NE,
+       JSDOC_TOKEN_NAME_LSH,
+       JSDOC_TOKEN_NAME_LE,
+       JSDOC_TOKEN_NAME_LT,
+       JSDOC_TOKEN_NAME_URSH,
+       JSDOC_TOKEN_NAME_RSH,
+       JSDOC_TOKEN_NAME_GE,
+       JSDOC_TOKEN_NAME_GT,
+       JSDOC_TOKEN_NAME_INCREMENT,
+       JSDOC_TOKEN_NAME_DECREMENT,
+       JSDOC_TOKEN_NAME_PLUS,
+       JSDOC_TOKEN_NAME_MINUS,
+       JSDOC_TOKEN_NAME_MUL,
+       JSDOC_TOKEN_NAME_DIV,
+       JSDOC_TOKEN_NAME_MOD,
+       JSDOC_TOKEN_NAME_NOT,
+       JSDOC_TOKEN_NAME_BITWISE_NOT,
+       JSDOC_TOKEN_NAME_DOT,
+       JSDOC_TOKEN_NAME_LEFT_BRACE,
+       JSDOC_TOKEN_NAME_RIGHT_BRACE,
+       JSDOC_TOKEN_NAME_LEFT_CURLY,
+       JSDOC_TOKEN_NAME_RIGHT_CURLY,
+       JSDOC_TOKEN_NAME_LEFT_PAREN,
+       JSDOC_TOKEN_NAME_RIGHT_PAREN,
+       JSDOC_TOKEN_NAME_SPACE,
+       JSDOC_TOKEN_NAME_NEWLINE,
+       JSDOC_TOKEN_NAME_DOUBLE_QUOTE,
+       JSDOC_TOKEN_NAME_SINGLE_QUOTE,
+       JSDOC_TOKEN_NAME_OCTAL,
+       JSDOC_TOKEN_NAME_DECIMAL,
+       JSDOC_TOKEN_NAME_HEX_DEC,
+       JSDOC_TOKEN_NAME_REGX,
+       JSDOC_TOKEN_NAME_START_OF_STREAM,
+       JSDOC_TOKEN_NAME_END_OF_STREAM,
+       JSDOC_TOKEN_NAME_UNKNOWN
+} JSDOCTokenName;
+
+struct _JSDOCToken {
+       GObject parent_instance;
+       JSDOCTokenPrivate * priv;
+       gint id;
+       gchar* data;
+       JSDOCTokenType type;
+       JSDOCTokenName name;
+       gint line;
+       gchar* prefix;
+       gchar* outData;
+       JSDOCIdentifier* identifier;
+       GeeArrayList* items;
+       GeeHashMap* props;
+       GeeArrayList* keyseq;
+};
+
+struct _JSDOCTokenClass {
+       GObjectClass parent_class;
+};
+
+struct _JSDOCTokenStream {
+       GObject parent_instance;
+       JSDOCTokenStreamPrivate * priv;
+       GeeArrayList* tokens;
+       gint cursor;
+};
+
+struct _JSDOCTokenStreamClass {
+       GObjectClass parent_class;
+};
+
+typedef enum  {
+       JSDOC_PACKER_RESULT_TYPE_err,
+       JSDOC_PACKER_RESULT_TYPE_warn
+} JSDOCPackerResultType;
+
+struct _JSDOCIdentifier {
+       GObject parent_instance;
+       JSDOCIdentifierPrivate * priv;
+       gchar* name;
+       gint refcount;
+       gchar* mungedValue;
+       JSDOCScope* scope;
+       gboolean toMunge;
+};
+
+struct _JSDOCIdentifierClass {
+       GObjectClass parent_class;
+};
+
+struct _JSDOCTokenKeyMap {
+       GObject parent_instance;
+       JSDOCTokenKeyMapPrivate * priv;
+       JSDOCToken* key;
+       GeeArrayList* vals;
+};
+
+struct _JSDOCTokenKeyMapClass {
+       GObjectClass parent_class;
+};
+
+struct _Block5Data {
+       int _ref_count_;
+       JSDOCScopeParser* self;
+       JSDOCToken* token;
+       JSDOCScope* scope;
+};
+
+struct _JSDOCScope {
+       GObject parent_instance;
+       JSDOCScopePrivate * priv;
+       JSDOCScope* parent;
+       GeeArrayList* subScopes;
+       gchar* ident;
+};
+
+struct _JSDOCScopeClass {
+       GObjectClass parent_class;
+};
+
+
+static gpointer jsdoc_scope_parser_parent_class = NULL;
+static GeeArrayList* jsdoc_scope_parser_idents;
+static GeeArrayList* jsdoc_scope_parser_idents = NULL;
+static gboolean jsdoc_scope_parser_initialized;
+static gboolean jsdoc_scope_parser_initialized = FALSE;
+extern GeeArrayList* jsdoc_scope_builtin;
+
+GType jsdoc_scope_parser_mode_get_type (void) G_GNUC_CONST;
+GType jsdoc_scope_parser_get_type (void) G_GNUC_CONST;
+GType jsdoc_token_stream_get_type (void) G_GNUC_CONST;
+GType jsdoc_scope_get_type (void) G_GNUC_CONST;
+GType jsdoc_packer_get_type (void) G_GNUC_CONST;
+#define JSDOC_SCOPE_PARSER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), JSDOC_TYPE_SCOPE_PARSER, JSDOCScopeParserPrivate))
+enum  {
+       JSDOC_SCOPE_PARSER_DUMMY_PROPERTY
+};
+static void jsdoc_scope_parser_init (void);
+JSDOCScopeParser* jsdoc_scope_parser_new (JSDOCTokenStream* ts, JSDOCPacker* packer, const gchar* filename);
+JSDOCScopeParser* jsdoc_scope_parser_construct (GType object_type, JSDOCTokenStream* ts, JSDOCPacker* packer, const gchar* filename);
+GType jsdoc_token_get_type (void) G_GNUC_CONST;
+JSDOCScope* jsdoc_scope_new (gint braceN, JSDOCScope* parent, gint startTokN, const gchar* lastIdent, JSDOCToken* token);
+JSDOCScope* jsdoc_scope_construct (GType object_type, gint braceN, JSDOCScope* parent, gint startTokN, const gchar* lastIdent, JSDOCToken* token);
+void jsdoc_scope_parser_buildSymbolTree (JSDOCScopeParser* self);
+void jsdoc_token_stream_rewind (JSDOCTokenStream* self);
+static void jsdoc_scope_parser_parseScope (JSDOCScopeParser* self, JSDOCScope* scope);
+void jsdoc_scope_parser_mungeSymboltree (JSDOCScopeParser* self);
+void jsdoc_scope_munge (JSDOCScope* self);
+static Block4Data* block4_data_ref (Block4Data* _data4_);
+static void block4_data_unref (void * _userdata_);
+JSDOCToken* jsdoc_token_stream_lookTok (JSDOCTokenStream* self, gint n);
+GType jsdoc_token_type_get_type (void) G_GNUC_CONST;
+GType jsdoc_token_name_get_type (void) G_GNUC_CONST;
+GType jsdoc_identifier_get_type (void) G_GNUC_CONST;
+GType jsdoc_token_key_map_get_type (void) G_GNUC_CONST;
+JSDOCToken* jsdoc_token_stream_nextTok (JSDOCTokenStream* self);
+void jsdoc_token_stream_printRange (JSDOCTokenStream* self, gint start, gint end);
+GType jsdoc_packer_result_type_get_type (void) G_GNUC_CONST;
+void jsdoc_packer_logError (JSDOCPacker* self, JSDOCPackerResultType type, const gchar* filename, gint line, const gchar* message);
+JSDOCIdentifier* jsdoc_scope_getIdentifier (JSDOCScope* self, const gchar* symbol, JSDOCToken* token);
+JSDOCIdentifier* jsdoc_scope_declareIdentifier (JSDOCScope* self, const gchar* symbol, JSDOCToken* token);
+JSDOCTokenStream* jsdoc_token_stream_new (GeeArrayList* tokens);
+JSDOCTokenStream* jsdoc_token_stream_construct (GType object_type, GeeArrayList* tokens);
+static void jsdoc_scope_parser_parseExpression (JSDOCScopeParser* self, JSDOCScope* scope);
+static void jsdoc_scope_parser_parseFunctionDeclaration (JSDOCScopeParser* self, JSDOCScope* scope);
+static void jsdoc_scope_parser_protectScopeFromObfuscation (JSDOCScopeParser* self, JSDOCScope* scope);
+static void jsdoc_scope_parser_parseCatch (JSDOCScopeParser* self, JSDOCScope* scope);
+static gboolean ________lambda9_ (Block4Data* _data4_, GMatchInfo* match_info, GString* _result_);
+static JSDOCIdentifier* jsdoc_scope_parser_getIdentifier (JSDOCScopeParser* self, const gchar* symbol, JSDOCScope* in_scope, JSDOCToken* token);
+static gboolean _________lambda9__gregex_eval_callback (GMatchInfo* match_info, GString* _result_, gpointer self);
+static Block5Data* block5_data_ref (Block5Data* _data5_);
+static void block5_data_unref (void * _userdata_);
+gchar* jsdoc_token_asString (JSDOCToken* self);
+static gboolean _______lambda8_ (Block5Data* _data5_, GMatchInfo* match_info, GString* _result_);
+static gboolean ________lambda8__gregex_eval_callback (GMatchInfo* match_info, GString* _result_, gpointer self);
+void jsdoc_scope_preventMunging (JSDOCScope* self);
+void jsdoc_scope_parser_printWarnings (JSDOCScopeParser* self);
+static void jsdoc_scope_parser_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);
+
+
+GType jsdoc_scope_parser_mode_get_type (void) {
+       static volatile gsize jsdoc_scope_parser_mode_type_id__volatile = 0;
+       if (g_once_init_enter (&jsdoc_scope_parser_mode_type_id__volatile)) {
+               static const GEnumValue values[] = {{JSDOC_SCOPE_PARSER_MODE_BUILDING_SYMBOL_TREE, "JSDOC_SCOPE_PARSER_MODE_BUILDING_SYMBOL_TREE", "building-symbol-tree"}, {JSDOC_SCOPE_PARSER_MODE_PASS2_SYMBOL_TREE, "JSDOC_SCOPE_PARSER_MODE_PASS2_SYMBOL_TREE", "pass2-symbol-tree"}, {0, NULL, NULL}};
+               GType jsdoc_scope_parser_mode_type_id;
+               jsdoc_scope_parser_mode_type_id = g_enum_register_static ("JSDOCScopeParserMode", values);
+               g_once_init_leave (&jsdoc_scope_parser_mode_type_id__volatile, jsdoc_scope_parser_mode_type_id);
+       }
+       return jsdoc_scope_parser_mode_type_id__volatile;
+}
+
+
+static void jsdoc_scope_parser_init (void) {
+       gboolean _tmp0_;
+       gchar** identsar = NULL;
+       gchar* _tmp1_;
+       gchar* _tmp2_;
+       gchar* _tmp3_;
+       gchar* _tmp4_;
+       gchar* _tmp5_;
+       gchar* _tmp6_;
+       gchar* _tmp7_;
+       gchar* _tmp8_;
+       gchar* _tmp9_;
+       gchar* _tmp10_;
+       gchar* _tmp11_;
+       gchar* _tmp12_;
+       gchar* _tmp13_;
+       gchar* _tmp14_;
+       gchar* _tmp15_;
+       gchar* _tmp16_;
+       gchar* _tmp17_;
+       gchar* _tmp18_;
+       gchar* _tmp19_;
+       gchar* _tmp20_;
+       gchar* _tmp21_;
+       gchar* _tmp22_;
+       gchar* _tmp23_;
+       gchar* _tmp24_;
+       gchar* _tmp25_;
+       gchar* _tmp26_;
+       gchar* _tmp27_;
+       gchar* _tmp28_;
+       gchar* _tmp29_;
+       gchar* _tmp30_;
+       gchar* _tmp31_;
+       gchar* _tmp32_;
+       gchar* _tmp33_;
+       gchar* _tmp34_;
+       gchar* _tmp35_;
+       gchar* _tmp36_;
+       gchar* _tmp37_;
+       gchar* _tmp38_;
+       gchar* _tmp39_;
+       gchar* _tmp40_;
+       gchar* _tmp41_;
+       gchar* _tmp42_;
+       gchar* _tmp43_;
+       gchar* _tmp44_;
+       gchar* _tmp45_;
+       gchar* _tmp46_;
+       gchar* _tmp47_;
+       gchar* _tmp48_;
+       gchar* _tmp49_;
+       gchar* _tmp50_;
+       gchar* _tmp51_;
+       gchar* _tmp52_;
+       gchar* _tmp53_;
+       gchar* _tmp54_;
+       gchar* _tmp55_;
+       gchar* _tmp56_;
+       gchar* _tmp57_;
+       gchar* _tmp58_;
+       gchar* _tmp59_;
+       gchar* _tmp60_;
+       gchar** _tmp61_;
+       gint identsar_length1;
+       gint _identsar_size_;
+       GeeArrayList* _tmp62_;
+#line 34 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp0_ = jsdoc_scope_parser_initialized;
+#line 34 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       if (_tmp0_) {
+#line 35 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               return;
+#line 462 "ScopeParser.c"
+       }
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp1_ = g_strdup ("break");
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp2_ = g_strdup ("case");
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp3_ = g_strdup ("continue");
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp4_ = g_strdup ("default");
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp5_ = g_strdup ("delete");
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp6_ = g_strdup ("do");
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp7_ = g_strdup ("else");
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp8_ = g_strdup ("export");
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp9_ = g_strdup ("false");
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp10_ = g_strdup ("for");
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp11_ = g_strdup ("function");
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp12_ = g_strdup ("if");
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp13_ = g_strdup ("import");
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp14_ = g_strdup ("in");
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp15_ = g_strdup ("new");
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp16_ = g_strdup ("null");
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp17_ = g_strdup ("return");
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp18_ = g_strdup ("switch");
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp19_ = g_strdup ("this");
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp20_ = g_strdup ("true");
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp21_ = g_strdup ("typeof");
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp22_ = g_strdup ("var");
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp23_ = g_strdup ("void");
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp24_ = g_strdup ("while");
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp25_ = g_strdup ("with");
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp26_ = g_strdup ("catch");
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp27_ = g_strdup ("class");
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp28_ = g_strdup ("const");
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp29_ = g_strdup ("debugger");
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp30_ = g_strdup ("enum");
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp31_ = g_strdup ("extends");
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp32_ = g_strdup ("finally");
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp33_ = g_strdup ("super");
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp34_ = g_strdup ("throw");
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp35_ = g_strdup ("try");
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp36_ = g_strdup ("abstract");
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp37_ = g_strdup ("boolean");
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp38_ = g_strdup ("byte");
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp39_ = g_strdup ("char");
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp40_ = g_strdup ("double");
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp41_ = g_strdup ("final");
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp42_ = g_strdup ("float");
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp43_ = g_strdup ("goto");
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp44_ = g_strdup ("implements");
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp45_ = g_strdup ("instanceof");
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp46_ = g_strdup ("int");
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp47_ = g_strdup ("interface");
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp48_ = g_strdup ("long");
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp49_ = g_strdup ("native");
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp50_ = g_strdup ("package");
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp51_ = g_strdup ("private");
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp52_ = g_strdup ("protected");
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp53_ = g_strdup ("public");
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp54_ = g_strdup ("short");
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp55_ = g_strdup ("static");
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp56_ = g_strdup ("synchronized");
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp57_ = g_strdup ("throws");
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp58_ = g_strdup ("transient");
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp59_ = g_strdup ("include");
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp60_ = g_strdup ("undefined");
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp61_ = g_new0 (gchar*, 60 + 1);
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp61_[0] = _tmp1_;
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp61_[1] = _tmp2_;
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp61_[2] = _tmp3_;
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp61_[3] = _tmp4_;
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp61_[4] = _tmp5_;
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp61_[5] = _tmp6_;
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp61_[6] = _tmp7_;
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp61_[7] = _tmp8_;
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp61_[8] = _tmp9_;
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp61_[9] = _tmp10_;
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp61_[10] = _tmp11_;
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp61_[11] = _tmp12_;
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp61_[12] = _tmp13_;
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp61_[13] = _tmp14_;
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp61_[14] = _tmp15_;
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp61_[15] = _tmp16_;
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp61_[16] = _tmp17_;
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp61_[17] = _tmp18_;
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp61_[18] = _tmp19_;
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp61_[19] = _tmp20_;
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp61_[20] = _tmp21_;
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp61_[21] = _tmp22_;
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp61_[22] = _tmp23_;
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp61_[23] = _tmp24_;
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp61_[24] = _tmp25_;
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp61_[25] = _tmp26_;
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp61_[26] = _tmp27_;
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp61_[27] = _tmp28_;
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp61_[28] = _tmp29_;
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp61_[29] = _tmp30_;
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp61_[30] = _tmp31_;
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp61_[31] = _tmp32_;
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp61_[32] = _tmp33_;
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp61_[33] = _tmp34_;
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp61_[34] = _tmp35_;
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp61_[35] = _tmp36_;
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp61_[36] = _tmp37_;
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp61_[37] = _tmp38_;
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp61_[38] = _tmp39_;
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp61_[39] = _tmp40_;
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp61_[40] = _tmp41_;
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp61_[41] = _tmp42_;
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp61_[42] = _tmp43_;
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp61_[43] = _tmp44_;
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp61_[44] = _tmp45_;
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp61_[45] = _tmp46_;
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp61_[46] = _tmp47_;
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp61_[47] = _tmp48_;
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp61_[48] = _tmp49_;
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp61_[49] = _tmp50_;
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp61_[50] = _tmp51_;
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp61_[51] = _tmp52_;
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp61_[52] = _tmp53_;
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp61_[53] = _tmp54_;
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp61_[54] = _tmp55_;
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp61_[55] = _tmp56_;
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp61_[56] = _tmp57_;
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp61_[57] = _tmp58_;
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp61_[58] = _tmp59_;
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp61_[59] = _tmp60_;
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       identsar = _tmp61_;
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       identsar_length1 = 60;
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _identsar_size_ = identsar_length1;
+#line 102 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp62_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL);
+#line 102 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _g_object_unref0 (jsdoc_scope_parser_idents);
+#line 102 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       jsdoc_scope_parser_idents = _tmp62_;
+#line 718 "ScopeParser.c"
+       {
+               gint i = 0;
+#line 103 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               i = 0;
+#line 723 "ScopeParser.c"
+               {
+                       gboolean _tmp63_ = FALSE;
+#line 103 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                       _tmp63_ = TRUE;
+#line 103 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                       while (TRUE) {
+#line 730 "ScopeParser.c"
+                               gint _tmp65_;
+                               gchar** _tmp66_;
+                               gint _tmp66__length1;
+                               GeeArrayList* _tmp67_;
+                               gchar** _tmp68_;
+                               gint _tmp68__length1;
+                               gint _tmp69_;
+                               const gchar* _tmp70_;
+#line 103 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               if (!_tmp63_) {
+#line 741 "ScopeParser.c"
+                                       gint _tmp64_;
+#line 103 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       _tmp64_ = i;
+#line 103 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       i = _tmp64_ + 1;
+#line 747 "ScopeParser.c"
+                               }
+#line 103 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp63_ = FALSE;
+#line 103 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp65_ = i;
+#line 103 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp66_ = identsar;
+#line 103 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp66__length1 = identsar_length1;
+#line 103 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               if (!(_tmp65_ < _tmp66__length1)) {
+#line 103 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       break;
+#line 761 "ScopeParser.c"
+                               }
+#line 104 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp67_ = jsdoc_scope_parser_idents;
+#line 104 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp68_ = identsar;
+#line 104 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp68__length1 = identsar_length1;
+#line 104 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp69_ = i;
+#line 104 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp70_ = _tmp68_[_tmp69_];
+#line 104 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               gee_abstract_collection_add ((GeeAbstractCollection*) _tmp67_, _tmp70_);
+#line 775 "ScopeParser.c"
+                       }
+               }
+       }
+#line 32 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       identsar = (_vala_array_free (identsar, identsar_length1, (GDestroyNotify) g_free), NULL);
+#line 781 "ScopeParser.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       return self ? g_object_ref (self) : NULL;
+#line 788 "ScopeParser.c"
+}
+
+
+JSDOCScopeParser* jsdoc_scope_parser_construct (GType object_type, JSDOCTokenStream* ts, JSDOCPacker* packer, const gchar* filename) {
+       JSDOCScopeParser * self = NULL;
+       JSDOCTokenStream* _tmp0_;
+       JSDOCTokenStream* _tmp1_;
+       JSDOCPacker* _tmp2_;
+       JSDOCPacker* _tmp3_;
+       const gchar* _tmp4_;
+       gchar* _tmp5_;
+       GeeArrayList* _tmp6_;
+       JSDOCScope* _tmp7_;
+       GeeHashMap* _tmp8_;
+#line 110 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       g_return_val_if_fail (ts != NULL, NULL);
+#line 110 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       g_return_val_if_fail (packer != NULL, NULL);
+#line 110 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       g_return_val_if_fail (filename != NULL, NULL);
+#line 110 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       self = (JSDOCScopeParser*) g_object_new (object_type, NULL);
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp0_ = ts;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _g_object_unref0 (self->priv->ts);
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       self->priv->ts = _tmp1_;
+#line 112 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp2_ = packer;
+#line 112 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp3_ = _g_object_ref0 (_tmp2_);
+#line 112 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _g_object_unref0 (self->priv->packer);
+#line 112 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       self->priv->packer = _tmp3_;
+#line 113 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp4_ = filename;
+#line 113 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp5_ = g_strdup (_tmp4_);
+#line 113 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _g_free0 (self->priv->filename);
+#line 113 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       self->priv->filename = _tmp5_;
+#line 114 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp6_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL);
+#line 114 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _g_object_unref0 (self->priv->warnings);
+#line 114 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       self->priv->warnings = _tmp6_;
+#line 116 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp7_ = jsdoc_scope_new (-1, NULL, -1, "", NULL);
+#line 116 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _g_object_unref0 (self->priv->globalScope);
+#line 116 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       self->priv->globalScope = _tmp7_;
+#line 117 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp8_ = gee_hash_map_new (G_TYPE_INT, NULL, NULL, JSDOC_TYPE_SCOPE, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 117 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _g_object_unref0 (self->priv->indexedScopes);
+#line 117 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       self->priv->indexedScopes = _tmp8_;
+#line 110 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       return self;
+#line 855 "ScopeParser.c"
+}
+
+
+JSDOCScopeParser* jsdoc_scope_parser_new (JSDOCTokenStream* ts, JSDOCPacker* packer, const gchar* filename) {
+#line 110 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       return jsdoc_scope_parser_construct (JSDOC_TYPE_SCOPE_PARSER, ts, packer, filename);
+#line 862 "ScopeParser.c"
+}
+
+
+void jsdoc_scope_parser_buildSymbolTree (JSDOCScopeParser* self) {
+       JSDOCTokenStream* _tmp0_;
+       JSDOCScope* _tmp1_;
+       GeeHashMap* _tmp2_;
+       GeeHashMap* _tmp3_;
+       JSDOCScope* _tmp4_;
+       JSDOCScope* _tmp5_;
+#line 141 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       g_return_if_fail (self != NULL);
+#line 145 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp0_ = self->priv->ts;
+#line 145 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       jsdoc_token_stream_rewind (_tmp0_);
+#line 146 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       self->priv->braceNesting = 0;
+#line 151 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp1_ = jsdoc_scope_new (-1, NULL, -1, "", NULL);
+#line 151 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _g_object_unref0 (self->priv->globalScope);
+#line 151 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       self->priv->globalScope = _tmp1_;
+#line 152 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp2_ = gee_hash_map_new (G_TYPE_INT, NULL, NULL, JSDOC_TYPE_SCOPE, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 152 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _g_object_unref0 (self->priv->indexedScopes);
+#line 152 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       self->priv->indexedScopes = _tmp2_;
+#line 153 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp3_ = self->priv->indexedScopes;
+#line 153 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp4_ = self->priv->globalScope;
+#line 153 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       gee_abstract_map_set ((GeeAbstractMap*) _tmp3_, (gpointer) ((gintptr) 0), _tmp4_);
+#line 155 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       self->priv->mode = JSDOC_SCOPE_PARSER_MODE_BUILDING_SYMBOL_TREE;
+#line 157 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp5_ = self->priv->globalScope;
+#line 157 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       jsdoc_scope_parser_parseScope (self, _tmp5_);
+#line 905 "ScopeParser.c"
+}
+
+
+void jsdoc_scope_parser_mungeSymboltree (JSDOCScopeParser* self) {
+       gboolean _tmp0_;
+       JSDOCTokenStream* _tmp1_;
+       JSDOCScope* _tmp2_;
+       JSDOCScope* _tmp3_;
+#line 163 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       g_return_if_fail (self != NULL);
+#line 165 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp0_ = self->priv->munge;
+#line 165 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       if (!_tmp0_) {
+#line 166 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               return;
+#line 922 "ScopeParser.c"
+       }
+#line 190 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp1_ = self->priv->ts;
+#line 190 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       jsdoc_token_stream_rewind (_tmp1_);
+#line 191 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       self->priv->braceNesting = 0;
+#line 192 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       self->priv->mode = JSDOC_SCOPE_PARSER_MODE_PASS2_SYMBOL_TREE;
+#line 196 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp2_ = self->priv->globalScope;
+#line 196 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       jsdoc_scope_parser_parseScope (self, _tmp2_);
+#line 200 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp3_ = self->priv->globalScope;
+#line 200 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       jsdoc_scope_munge (_tmp3_);
+#line 940 "ScopeParser.c"
+}
+
+
+static Block4Data* block4_data_ref (Block4Data* _data4_) {
+#line 209 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       g_atomic_int_inc (&_data4_->_ref_count_);
+#line 209 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       return _data4_;
+#line 949 "ScopeParser.c"
+}
+
+
+static void block4_data_unref (void * _userdata_) {
+       Block4Data* _data4_;
+       _data4_ = (Block4Data*) _userdata_;
+#line 209 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       if (g_atomic_int_dec_and_test (&_data4_->_ref_count_)) {
+#line 958 "ScopeParser.c"
+               JSDOCScopeParser* self;
+#line 209 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               self = _data4_->self;
+#line 209 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _g_object_unref0 (_data4_->token);
+#line 209 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _g_object_unref0 (_data4_->scope);
+#line 209 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _g_object_unref0 (self);
+#line 209 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               g_slice_free (Block4Data, _data4_);
+#line 970 "ScopeParser.c"
+       }
+}
+
+
+static gboolean ________lambda9_ (Block4Data* _data4_, GMatchInfo* match_info, GString* _result_) {
+       JSDOCScopeParser* self;
+       gboolean result = FALSE;
+       gchar* a = NULL;
+       GMatchInfo* _tmp0_;
+       gchar* _tmp1_;
+       JSDOCIdentifier* hi = NULL;
+       const gchar* _tmp2_;
+       JSDOCScope* _tmp3_;
+       JSDOCToken* _tmp4_;
+       JSDOCIdentifier* _tmp5_;
+       JSDOCIdentifier* _tmp6_;
+#line 394 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       self = _data4_->self;
+#line 394 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       g_return_val_if_fail (match_info != NULL, FALSE);
+#line 394 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       g_return_val_if_fail (_result_ != NULL, FALSE);
+#line 395 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp0_ = match_info;
+#line 395 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp1_ = g_match_info_fetch (_tmp0_, 1);
+#line 395 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       a = _tmp1_;
+#line 397 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp2_ = a;
+#line 397 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp3_ = _data4_->scope;
+#line 397 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp4_ = _data4_->token;
+#line 397 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp5_ = jsdoc_scope_parser_getIdentifier (self, _tmp2_, _tmp3_, _tmp4_);
+#line 397 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       hi = _tmp5_;
+#line 399 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp6_ = hi;
+#line 399 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       if (_tmp6_ != NULL) {
+#line 1013 "ScopeParser.c"
+               JSDOCIdentifier* _tmp7_;
+#line 402 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp7_ = hi;
+#line 402 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp7_->toMunge = FALSE;
+#line 1019 "ScopeParser.c"
+       }
+#line 404 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       result = FALSE;
+#line 404 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _g_object_unref0 (hi);
+#line 404 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _g_free0 (a);
+#line 404 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       return result;
+#line 1029 "ScopeParser.c"
+}
+
+
+static gboolean _________lambda9__gregex_eval_callback (GMatchInfo* match_info, GString* _result_, gpointer self) {
+       gboolean result;
+       result = ________lambda9_ (self, match_info, _result_);
+#line 394 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       return result;
+#line 1038 "ScopeParser.c"
+}
+
+
+static glong string_strnlen (gchar* str, glong maxlen) {
+       glong result = 0L;
+       gchar* end = NULL;
+       gchar* _tmp0_;
+       glong _tmp1_;
+       gchar* _tmp2_;
+       gchar* _tmp3_;
+#line 1322 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp0_ = str;
+#line 1322 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp1_ = maxlen;
+#line 1322 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp2_ = memchr (_tmp0_, 0, (gsize) _tmp1_);
+#line 1322 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       end = _tmp2_;
+#line 1323 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp3_ = end;
+#line 1323 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if (_tmp3_ == NULL) {
+#line 1061 "ScopeParser.c"
+               glong _tmp4_;
+#line 1324 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp4_ = maxlen;
+#line 1324 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               result = _tmp4_;
+#line 1324 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               return result;
+#line 1069 "ScopeParser.c"
+       } else {
+               gchar* _tmp5_;
+               gchar* _tmp6_;
+#line 1326 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp5_ = end;
+#line 1326 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp6_ = str;
+#line 1326 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               result = (glong) (_tmp5_ - _tmp6_);
+#line 1326 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               return result;
+#line 1081 "ScopeParser.c"
+       }
+}
+
+
+static gchar* string_substring (const gchar* self, glong offset, glong len) {
+       gchar* result = NULL;
+       glong string_length = 0L;
+       gboolean _tmp0_ = FALSE;
+       glong _tmp1_;
+       glong _tmp8_;
+       glong _tmp14_;
+       glong _tmp17_;
+       glong _tmp18_;
+       glong _tmp19_;
+       glong _tmp20_;
+       glong _tmp21_;
+       gchar* _tmp22_;
+#line 1333 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 1335 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp1_ = offset;
+#line 1335 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if (_tmp1_ >= ((glong) 0)) {
+#line 1105 "ScopeParser.c"
+               glong _tmp2_;
+#line 1335 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp2_ = len;
+#line 1335 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp0_ = _tmp2_ >= ((glong) 0);
+#line 1111 "ScopeParser.c"
+       } else {
+#line 1335 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp0_ = FALSE;
+#line 1115 "ScopeParser.c"
+       }
+#line 1335 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if (_tmp0_) {
+#line 1119 "ScopeParser.c"
+               glong _tmp3_;
+               glong _tmp4_;
+               glong _tmp5_;
+#line 1337 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp3_ = offset;
+#line 1337 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp4_ = len;
+#line 1337 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp5_ = string_strnlen ((gchar*) self, _tmp3_ + _tmp4_);
+#line 1337 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               string_length = _tmp5_;
+#line 1131 "ScopeParser.c"
+       } else {
+               gint _tmp6_;
+               gint _tmp7_;
+#line 1339 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp6_ = strlen (self);
+#line 1339 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp7_ = _tmp6_;
+#line 1339 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               string_length = (glong) _tmp7_;
+#line 1141 "ScopeParser.c"
+       }
+#line 1342 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp8_ = offset;
+#line 1342 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if (_tmp8_ < ((glong) 0)) {
+#line 1147 "ScopeParser.c"
+               glong _tmp9_;
+               glong _tmp10_;
+               glong _tmp11_;
+#line 1343 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp9_ = string_length;
+#line 1343 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp10_ = offset;
+#line 1343 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               offset = _tmp9_ + _tmp10_;
+#line 1344 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp11_ = offset;
+#line 1344 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               g_return_val_if_fail (_tmp11_ >= ((glong) 0), NULL);
+#line 1161 "ScopeParser.c"
+       } else {
+               glong _tmp12_;
+               glong _tmp13_;
+#line 1346 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp12_ = offset;
+#line 1346 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp13_ = string_length;
+#line 1346 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               g_return_val_if_fail (_tmp12_ <= _tmp13_, NULL);
+#line 1171 "ScopeParser.c"
+       }
+#line 1348 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp14_ = len;
+#line 1348 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if (_tmp14_ < ((glong) 0)) {
+#line 1177 "ScopeParser.c"
+               glong _tmp15_;
+               glong _tmp16_;
+#line 1349 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp15_ = string_length;
+#line 1349 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp16_ = offset;
+#line 1349 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               len = _tmp15_ - _tmp16_;
+#line 1186 "ScopeParser.c"
+       }
+#line 1351 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp17_ = offset;
+#line 1351 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp18_ = len;
+#line 1351 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp19_ = string_length;
+#line 1351 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       g_return_val_if_fail ((_tmp17_ + _tmp18_) <= _tmp19_, NULL);
+#line 1352 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp20_ = offset;
+#line 1352 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp21_ = len;
+#line 1352 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp22_ = g_strndup (((gchar*) self) + _tmp20_, (gsize) _tmp21_);
+#line 1352 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       result = _tmp22_;
+#line 1352 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       return result;
+#line 1206 "ScopeParser.c"
+}
+
+
+static void jsdoc_scope_parser_parseScope (JSDOCScopeParser* self, JSDOCScope* scope) {
+       Block4Data* _data4_;
+       JSDOCScope* _tmp0_;
+       JSDOCScope* _tmp1_;
+       GeeArrayList* isObjectLitAr = NULL;
+       GeeArrayList* _tmp2_;
+       GeeArrayList* _tmp3_;
+       JSDOCTokenStream* _tmp4_;
+       JSDOCToken* _tmp5_;
+       GError * _inner_error_ = NULL;
+#line 209 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       g_return_if_fail (self != NULL);
+#line 209 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       g_return_if_fail (scope != NULL);
+#line 209 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _data4_ = g_slice_new0 (Block4Data);
+#line 209 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _data4_->_ref_count_ = 1;
+#line 209 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _data4_->self = g_object_ref (self);
+#line 209 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp0_ = scope;
+#line 209 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 209 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _g_object_unref0 (_data4_->scope);
+#line 209 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _data4_->scope = _tmp1_;
+#line 214 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp2_ = gee_array_list_new (G_TYPE_BOOLEAN, NULL, NULL, NULL, NULL, NULL);
+#line 214 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       isObjectLitAr = _tmp2_;
+#line 215 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp3_ = isObjectLitAr;
+#line 215 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       gee_abstract_collection_add ((GeeAbstractCollection*) _tmp3_, (gpointer) ((gintptr) FALSE));
+#line 228 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp4_ = self->priv->ts;
+#line 228 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp5_ = jsdoc_token_stream_lookTok (_tmp4_, 1);
+#line 228 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _data4_->token = _tmp5_;
+#line 229 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       while (TRUE) {
+#line 1254 "ScopeParser.c"
+               JSDOCToken* _tmp6_;
+               JSDOCToken* _tmp7_;
+               JSDOCTokenType _tmp8_;
+               JSDOCTokenStream* _tmp281_;
+               JSDOCToken* _tmp282_;
+#line 229 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp6_ = _data4_->token;
+#line 229 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               if (!(_tmp6_ != NULL)) {
+#line 229 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                       break;
+#line 1266 "ScopeParser.c"
+               }
+#line 237 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp7_ = _data4_->token;
+#line 237 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp8_ = _tmp7_->type;
+#line 237 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               switch (_tmp8_) {
+#line 237 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                       case JSDOC_TOKEN_TYPE_KEYW:
+#line 1276 "ScopeParser.c"
+                       {
+                               JSDOCToken* _tmp9_;
+                               JSDOCTokenName _tmp10_;
+#line 241 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp9_ = _data4_->token;
+#line 241 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp10_ = _tmp9_->name;
+#line 241 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               switch (_tmp10_) {
+#line 241 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       case JSDOC_TOKEN_NAME_VAR:
+#line 241 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       case JSDOC_TOKEN_NAME_CONST:
+#line 1290 "ScopeParser.c"
+                                       {
+#line 247 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               while (TRUE) {
+#line 1294 "ScopeParser.c"
+                                                       JSDOCTokenStream* _tmp11_;
+                                                       JSDOCToken* _tmp12_;
+                                                       JSDOCToken* _tmp13_;
+                                                       gboolean _tmp14_ = FALSE;
+                                                       JSDOCToken* _tmp15_;
+                                                       JSDOCTokenName _tmp16_;
+                                                       JSDOCToken* _tmp19_;
+                                                       JSDOCTokenType _tmp20_;
+                                                       JSDOCScopeParserMode _tmp31_;
+                                                       JSDOCTokenStream* _tmp57_;
+                                                       JSDOCToken* _tmp58_;
+                                                       JSDOCToken* _tmp59_;
+                                                       JSDOCTokenName _tmp60_;
+#line 248 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp11_ = self->priv->ts;
+#line 248 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp12_ = jsdoc_token_stream_nextTok (_tmp11_);
+#line 248 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _g_object_unref0 (_data4_->token);
+#line 248 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _data4_->token = _tmp12_;
+#line 251 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp13_ = _data4_->token;
+#line 251 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       if (_tmp13_ == NULL) {
+#line 252 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               break;
+#line 1322 "ScopeParser.c"
+                                                       }
+#line 254 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp15_ = _data4_->token;
+#line 254 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp16_ = _tmp15_->name;
+#line 254 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       if (_tmp16_ == JSDOC_TOKEN_NAME_VAR) {
+#line 254 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               _tmp14_ = TRUE;
+#line 1332 "ScopeParser.c"
+                                                       } else {
+                                                               JSDOCToken* _tmp17_;
+                                                               const gchar* _tmp18_;
+#line 254 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               _tmp17_ = _data4_->token;
+#line 254 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               _tmp18_ = _tmp17_->data;
+#line 254 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               _tmp14_ = g_strcmp0 (_tmp18_, ",") == 0;
+#line 1342 "ScopeParser.c"
+                                                       }
+#line 254 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       if (_tmp14_) {
+#line 255 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               continue;
+#line 1348 "ScopeParser.c"
+                                                       }
+#line 258 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp19_ = _data4_->token;
+#line 258 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp20_ = _tmp19_->type;
+#line 258 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       if (_tmp20_ != JSDOC_TOKEN_TYPE_NAME) {
+#line 1356 "ScopeParser.c"
+                                                               JSDOCTokenStream* _tmp21_;
+                                                               JSDOCTokenStream* _tmp22_;
+                                                               gint _tmp23_;
+                                                               gint _tmp24_;
+                                                               JSDOCTokenStream* _tmp25_;
+                                                               gint _tmp26_;
+                                                               JSDOCPacker* _tmp27_;
+                                                               const gchar* _tmp28_;
+                                                               JSDOCToken* _tmp29_;
+                                                               gint _tmp30_;
+#line 259 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               _tmp21_ = self->priv->ts;
+#line 259 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               _tmp22_ = self->priv->ts;
+#line 259 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               _tmp23_ = _tmp22_->cursor;
+#line 259 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               _tmp24_ = MAX (_tmp23_ - 10, 0);
+#line 259 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               _tmp25_ = self->priv->ts;
+#line 259 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               _tmp26_ = _tmp25_->cursor;
+#line 259 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               jsdoc_token_stream_printRange (_tmp21_, _tmp24_, _tmp26_);
+#line 260 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               _tmp27_ = self->priv->packer;
+#line 260 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               _tmp28_ = self->priv->filename;
+#line 260 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               _tmp29_ = _data4_->token;
+#line 260 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               _tmp30_ = _tmp29_->line;
+#line 260 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               jsdoc_packer_logError (_tmp27_, JSDOC_PACKER_RESULT_TYPE_err, _tmp28_, _tmp30_, "var without indent");
+#line 1391 "ScopeParser.c"
+                                                       }
+#line 271 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp31_ = self->priv->mode;
+#line 271 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       if (_tmp31_ == JSDOC_SCOPE_PARSER_MODE_BUILDING_SYMBOL_TREE) {
+#line 1397 "ScopeParser.c"
+                                                               JSDOCIdentifier* identifier = NULL;
+                                                               JSDOCScope* _tmp32_;
+                                                               JSDOCToken* _tmp33_;
+                                                               const gchar* _tmp34_;
+                                                               JSDOCToken* _tmp35_;
+                                                               JSDOCIdentifier* _tmp36_;
+                                                               JSDOCIdentifier* _tmp37_;
+#line 272 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               _tmp32_ = _data4_->scope;
+#line 272 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               _tmp33_ = _data4_->token;
+#line 272 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               _tmp34_ = _tmp33_->data;
+#line 272 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               _tmp35_ = _data4_->token;
+#line 272 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               _tmp36_ = jsdoc_scope_getIdentifier (_tmp32_, _tmp34_, _tmp35_);
+#line 272 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               identifier = _tmp36_;
+#line 274 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               _tmp37_ = identifier;
+#line 274 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               if (_tmp37_ == NULL) {
+#line 1421 "ScopeParser.c"
+                                                                       JSDOCScope* _tmp38_;
+                                                                       JSDOCToken* _tmp39_;
+                                                                       const gchar* _tmp40_;
+                                                                       JSDOCToken* _tmp41_;
+                                                                       JSDOCIdentifier* _tmp42_;
+                                                                       JSDOCIdentifier* _tmp43_;
+#line 275 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp38_ = _data4_->scope;
+#line 275 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp39_ = _data4_->token;
+#line 275 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp40_ = _tmp39_->data;
+#line 275 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp41_ = _data4_->token;
+#line 275 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp42_ = jsdoc_scope_declareIdentifier (_tmp38_, _tmp40_, _tmp41_);
+#line 275 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp43_ = _tmp42_;
+#line 275 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _g_object_unref0 (_tmp43_);
+#line 1442 "ScopeParser.c"
+                                                               } else {
+                                                                       JSDOCToken* _tmp44_;
+                                                                       JSDOCIdentifier* _tmp45_;
+                                                                       JSDOCIdentifier* _tmp46_;
+                                                                       JSDOCPacker* _tmp47_;
+                                                                       const gchar* _tmp48_;
+                                                                       JSDOCToken* _tmp49_;
+                                                                       gint _tmp50_;
+                                                                       JSDOCToken* _tmp51_;
+                                                                       const gchar* _tmp52_;
+                                                                       gchar* _tmp53_;
+                                                                       gchar* _tmp54_;
+                                                                       gchar* _tmp55_;
+                                                                       gchar* _tmp56_;
+#line 277 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp44_ = _data4_->token;
+#line 277 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp45_ = identifier;
+#line 277 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp46_ = _g_object_ref0 (_tmp45_);
+#line 277 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _g_object_unref0 (_tmp44_->identifier);
+#line 277 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp44_->identifier = _tmp46_;
+#line 278 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp47_ = self->priv->packer;
+#line 278 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp48_ = self->priv->filename;
+#line 278 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp49_ = _data4_->token;
+#line 278 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp50_ = _tmp49_->line;
+#line 278 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp51_ = _data4_->token;
+#line 278 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp52_ = _tmp51_->data;
+#line 278 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp53_ = g_strconcat ("The variable '", _tmp52_, NULL);
+#line 278 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp54_ = _tmp53_;
+#line 278 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp55_ = g_strconcat (_tmp54_, "' has already been declared in the same scope", NULL);
+#line 278 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp56_ = _tmp55_;
+#line 278 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       jsdoc_packer_logError (_tmp47_, JSDOC_PACKER_RESULT_TYPE_warn, _tmp48_, _tmp50_, _tmp56_);
+#line 278 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _g_free0 (_tmp56_);
+#line 278 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _g_free0 (_tmp54_);
+#line 1493 "ScopeParser.c"
+                                                               }
+#line 271 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               _g_object_unref0 (identifier);
+#line 1497 "ScopeParser.c"
+                                                       }
+#line 287 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp57_ = self->priv->ts;
+#line 287 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp58_ = jsdoc_token_stream_nextTok (_tmp57_);
+#line 287 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _g_object_unref0 (_data4_->token);
+#line 287 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _data4_->token = _tmp58_;
+#line 295 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp59_ = _data4_->token;
+#line 295 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp60_ = _tmp59_->name;
+#line 295 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       if (_tmp60_ == JSDOC_TOKEN_NAME_IN) {
+#line 296 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               break;
+#line 1515 "ScopeParser.c"
+                                                       } else {
+                                                               gint bn = 0;
+                                                               gint _tmp61_;
+                                                               GeeArrayList* nts = NULL;
+                                                               GeeArrayList* _tmp62_;
+                                                               GeeArrayList* _tmp74_;
+                                                               gint _tmp75_;
+                                                               gint _tmp76_;
+                                                               gint _tmp84_;
+                                                               JSDOCTokenStream* _tmp85_;
+                                                               JSDOCToken* _tmp86_;
+                                                               JSDOCToken* _tmp87_;
+                                                               const gchar* _tmp88_;
+#line 299 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               _tmp61_ = self->priv->braceNesting;
+#line 299 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               bn = _tmp61_;
+#line 300 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               _tmp62_ = gee_array_list_new (JSDOC_TYPE_TOKEN, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL);
+#line 300 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               nts = _tmp62_;
+#line 301 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               while (TRUE) {
+#line 1539 "ScopeParser.c"
+                                                                       gboolean _tmp63_ = FALSE;
+                                                                       gboolean _tmp64_ = FALSE;
+                                                                       JSDOCToken* _tmp65_;
+                                                                       GeeArrayList* _tmp70_;
+                                                                       JSDOCToken* _tmp71_;
+                                                                       JSDOCTokenStream* _tmp72_;
+                                                                       JSDOCToken* _tmp73_;
+#line 302 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp65_ = _data4_->token;
+#line 302 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       if (_tmp65_ == NULL) {
+#line 302 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                               _tmp64_ = TRUE;
+#line 1553 "ScopeParser.c"
+                                                                       } else {
+                                                                               JSDOCToken* _tmp66_;
+                                                                               JSDOCTokenType _tmp67_;
+#line 302 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                               _tmp66_ = _data4_->token;
+#line 302 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                               _tmp67_ = _tmp66_->type;
+#line 302 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                               _tmp64_ = _tmp67_ == JSDOC_TOKEN_TYPE_VOID;
+#line 1563 "ScopeParser.c"
+                                                                       }
+#line 302 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       if (_tmp64_) {
+#line 302 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                               _tmp63_ = TRUE;
+#line 1569 "ScopeParser.c"
+                                                                       } else {
+                                                                               JSDOCToken* _tmp68_;
+                                                                               const gchar* _tmp69_;
+#line 302 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                               _tmp68_ = _data4_->token;
+#line 302 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                               _tmp69_ = _tmp68_->data;
+#line 302 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                               _tmp63_ = g_strcmp0 (_tmp69_, ",") == 0;
+#line 1579 "ScopeParser.c"
+                                                                       }
+#line 302 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       if (_tmp63_) {
+#line 303 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                               break;
+#line 1585 "ScopeParser.c"
+                                                                       }
+#line 305 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp70_ = nts;
+#line 305 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp71_ = _data4_->token;
+#line 305 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       gee_abstract_collection_add ((GeeAbstractCollection*) _tmp70_, _tmp71_);
+#line 306 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp72_ = self->priv->ts;
+#line 306 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp73_ = jsdoc_token_stream_nextTok (_tmp72_);
+#line 306 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _g_object_unref0 (_data4_->token);
+#line 306 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _data4_->token = _tmp73_;
+#line 1601 "ScopeParser.c"
+                                                               }
+#line 308 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               _tmp74_ = nts;
+#line 308 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               _tmp75_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp74_);
+#line 308 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               _tmp76_ = _tmp75_;
+#line 308 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               if (_tmp76_ > 0) {
+#line 1611 "ScopeParser.c"
+                                                                       JSDOCTokenStream* TS = NULL;
+                                                                       JSDOCTokenStream* _tmp77_;
+                                                                       JSDOCTokenStream* _tmp78_;
+                                                                       GeeArrayList* _tmp79_;
+                                                                       JSDOCTokenStream* _tmp80_;
+                                                                       JSDOCScope* _tmp81_;
+                                                                       JSDOCTokenStream* _tmp82_;
+                                                                       JSDOCTokenStream* _tmp83_;
+#line 309 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp77_ = self->priv->ts;
+#line 309 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp78_ = _g_object_ref0 (_tmp77_);
+#line 309 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       TS = _tmp78_;
+#line 310 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp79_ = nts;
+#line 310 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp80_ = jsdoc_token_stream_new (_tmp79_);
+#line 310 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _g_object_unref0 (self->priv->ts);
+#line 310 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       self->priv->ts = _tmp80_;
+#line 311 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp81_ = _data4_->scope;
+#line 311 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       jsdoc_scope_parser_parseExpression (self, _tmp81_);
+#line 312 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp82_ = TS;
+#line 312 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp83_ = _g_object_ref0 (_tmp82_);
+#line 312 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _g_object_unref0 (self->priv->ts);
+#line 312 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       self->priv->ts = _tmp83_;
+#line 308 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _g_object_unref0 (TS);
+#line 1648 "ScopeParser.c"
+                                                               }
+#line 315 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               _tmp84_ = bn;
+#line 315 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               self->priv->braceNesting = _tmp84_;
+#line 319 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               _tmp85_ = self->priv->ts;
+#line 319 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               _tmp86_ = jsdoc_token_stream_lookTok (_tmp85_, 1);
+#line 319 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               _g_object_unref0 (_data4_->token);
+#line 319 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               _data4_->token = _tmp86_;
+#line 322 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               _tmp87_ = _data4_->token;
+#line 322 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               _tmp88_ = _tmp87_->data;
+#line 322 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               if (g_strcmp0 (_tmp88_, ";") == 0) {
+#line 323 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _g_object_unref0 (nts);
+#line 323 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       break;
+#line 1672 "ScopeParser.c"
+                                                               }
+#line 295 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               _g_object_unref0 (nts);
+#line 1676 "ScopeParser.c"
+                                                       }
+                                               }
+#line 331 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               break;
+#line 1681 "ScopeParser.c"
+                                       }
+#line 241 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       case JSDOC_TOKEN_NAME_FUNCTION:
+#line 1685 "ScopeParser.c"
+                                       {
+                                               gint bn = 0;
+                                               gint _tmp89_;
+                                               JSDOCScope* _tmp90_;
+                                               gint _tmp91_;
+#line 338 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               _tmp89_ = self->priv->braceNesting;
+#line 338 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               bn = _tmp89_;
+#line 339 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               _tmp90_ = _data4_->scope;
+#line 339 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               jsdoc_scope_parser_parseFunctionDeclaration (self, _tmp90_);
+#line 340 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               _tmp91_ = bn;
+#line 340 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               self->priv->braceNesting = _tmp91_;
+#line 341 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               break;
+#line 1705 "ScopeParser.c"
+                                       }
+#line 241 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       case JSDOC_TOKEN_NAME_WITH:
+#line 1709 "ScopeParser.c"
+                                       {
+                                               JSDOCScopeParserMode _tmp92_;
+#line 346 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               _tmp92_ = self->priv->mode;
+#line 346 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               if (_tmp92_ == JSDOC_SCOPE_PARSER_MODE_BUILDING_SYMBOL_TREE) {
+#line 1716 "ScopeParser.c"
+                                                       JSDOCScope* _tmp93_;
+                                                       JSDOCPacker* _tmp94_;
+                                                       const gchar* _tmp95_;
+                                                       JSDOCToken* _tmp96_;
+                                                       gint _tmp97_;
+#line 352 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp93_ = _data4_->scope;
+#line 352 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       jsdoc_scope_parser_protectScopeFromObfuscation (self, _tmp93_);
+#line 354 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp94_ = self->priv->packer;
+#line 354 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp95_ = self->priv->filename;
+#line 354 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp96_ = _data4_->token;
+#line 354 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp97_ = _tmp96_->line;
+#line 354 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       jsdoc_packer_logError (_tmp94_, JSDOC_PACKER_RESULT_TYPE_warn, _tmp95_, _tmp97_, "Using 'with' is not recommended as it reduces the level of compression");
+#line 1736 "ScopeParser.c"
+                                               }
+#line 363 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               break;
+#line 1740 "ScopeParser.c"
+                                       }
+#line 241 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       case JSDOC_TOKEN_NAME_CATCH:
+#line 1744 "ScopeParser.c"
+                                       {
+                                               JSDOCScope* _tmp98_;
+#line 368 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               _tmp98_ = _data4_->scope;
+#line 368 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               jsdoc_scope_parser_parseCatch (self, _tmp98_);
+#line 369 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               break;
+#line 1753 "ScopeParser.c"
+                                       }
+                                       default:
+                                       {
+                                               JSDOCScopeParserMode _tmp99_;
+#line 377 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               _tmp99_ = self->priv->mode;
+#line 377 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               if (_tmp99_ == JSDOC_SCOPE_PARSER_MODE_BUILDING_SYMBOL_TREE) {
+#line 1762 "ScopeParser.c"
+                                                       JSDOCToken* _tmp100_;
+                                                       JSDOCTokenName _tmp101_;
+#line 379 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp100_ = _data4_->token;
+#line 379 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp101_ = _tmp100_->name;
+#line 379 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       if (_tmp101_ == JSDOC_TOKEN_NAME_EVAL) {
+#line 1771 "ScopeParser.c"
+                                                               gboolean _tmp102_ = FALSE;
+                                                               JSDOCToken* _tmp103_;
+                                                               const gchar* _tmp104_;
+                                                               gint _tmp105_;
+                                                               gint _tmp106_;
+#line 388 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               _tmp103_ = _data4_->token;
+#line 388 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               _tmp104_ = _tmp103_->prefix;
+#line 388 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               _tmp105_ = strlen (_tmp104_);
+#line 388 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               _tmp106_ = _tmp105_;
+#line 388 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               if (_tmp106_ > 0) {
+#line 1787 "ScopeParser.c"
+                                                                       JSDOCToken* _tmp107_;
+                                                                       const gchar* _tmp108_;
+                                                                       gboolean _tmp109_;
+#line 388 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp107_ = _data4_->token;
+#line 388 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp108_ = _tmp107_->prefix;
+#line 388 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp109_ = g_regex_match_simple ("eval", _tmp108_, 0, 0);
+#line 388 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp102_ = _tmp109_;
+#line 1799 "ScopeParser.c"
+                                                               } else {
+#line 388 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp102_ = FALSE;
+#line 1803 "ScopeParser.c"
+                                                               }
+#line 388 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               if (_tmp102_) {
+#line 1807 "ScopeParser.c"
+                                                                       GRegex* regex = NULL;
+                                                                       GRegex* _tmp110_;
+                                                                       GRegex* _tmp111_;
+                                                                       JSDOCToken* _tmp112_;
+                                                                       const gchar* _tmp113_;
+                                                                       JSDOCToken* _tmp114_;
+                                                                       const gchar* _tmp115_;
+                                                                       gint _tmp116_;
+                                                                       gint _tmp117_;
+                                                                       gchar* _tmp118_;
+                                                                       gchar* _tmp119_;
+#line 392 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp110_ = g_regex_new ("eval:var:([a-z_]+)", G_REGEX_CASELESS, 0, &_inner_error_);
+#line 392 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       regex = _tmp110_;
+#line 392 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 392 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                               _g_object_unref0 (isObjectLitAr);
+#line 392 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                               block4_data_unref (_data4_);
+#line 392 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                               _data4_ = NULL;
+#line 392 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                               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);
+#line 392 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                               g_clear_error (&_inner_error_);
+#line 392 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                               return;
+#line 1837 "ScopeParser.c"
+                                                                       }
+#line 394 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp111_ = regex;
+#line 394 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp112_ = _data4_->token;
+#line 394 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp113_ = _tmp112_->prefix;
+#line 394 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp114_ = _data4_->token;
+#line 394 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp115_ = _tmp114_->prefix;
+#line 394 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp116_ = strlen (_tmp115_);
+#line 394 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp117_ = _tmp116_;
+#line 394 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp118_ = g_regex_replace_eval (_tmp111_, _tmp113_, (gssize) _tmp117_, 0, 0, _________lambda9__gregex_eval_callback, _data4_, &_inner_error_);
+#line 394 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp119_ = _tmp118_;
+#line 394 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _g_free0 (_tmp119_);
+#line 394 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 394 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                               _g_regex_unref0 (regex);
+#line 394 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                               _g_object_unref0 (isObjectLitAr);
+#line 394 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                               block4_data_unref (_data4_);
+#line 394 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                               _data4_ = NULL;
+#line 394 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                               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);
+#line 394 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                               g_clear_error (&_inner_error_);
+#line 394 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                               return;
+#line 1875 "ScopeParser.c"
+                                                                       }
+#line 388 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _g_regex_unref0 (regex);
+#line 1879 "ScopeParser.c"
+                                                               } else {
+                                                                       JSDOCScope* _tmp120_;
+                                                                       JSDOCPacker* _tmp121_;
+                                                                       const gchar* _tmp122_;
+                                                                       JSDOCToken* _tmp123_;
+                                                                       gint _tmp124_;
+#line 412 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp120_ = _data4_->scope;
+#line 412 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       jsdoc_scope_parser_protectScopeFromObfuscation (self, _tmp120_);
+#line 414 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp121_ = self->priv->packer;
+#line 414 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp122_ = self->priv->filename;
+#line 414 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp123_ = _data4_->token;
+#line 414 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp124_ = _tmp123_->line;
+#line 414 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       jsdoc_packer_logError (_tmp121_, JSDOC_PACKER_RESULT_TYPE_warn, _tmp122_, _tmp124_, "Using 'eval' is not recommended. (use  eval:var:noreplace in comments " \
+"to optimize)");
+#line 1900 "ScopeParser.c"
+                                                               }
+                                                       }
+                                               }
+#line 429 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               break;
+#line 1906 "ScopeParser.c"
+                                       }
+                               }
+#line 431 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               break;
+#line 1911 "ScopeParser.c"
+                       }
+#line 237 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                       case JSDOC_TOKEN_TYPE_PUNC:
+#line 1915 "ScopeParser.c"
+                       {
+                               JSDOCToken* _tmp125_;
+                               JSDOCTokenName _tmp126_;
+#line 435 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp125_ = _data4_->token;
+#line 435 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp126_ = _tmp125_->name;
+#line 435 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               switch (_tmp126_) {
+#line 435 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       case JSDOC_TOKEN_NAME_LEFT_CURLY:
+#line 435 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       case JSDOC_TOKEN_NAME_LEFT_PAREN:
+#line 435 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       case JSDOC_TOKEN_NAME_LEFT_BRACE:
+#line 1931 "ScopeParser.c"
+                                       {
+                                               JSDOCTokenStream* curTS = NULL;
+                                               JSDOCTokenStream* _tmp127_;
+                                               JSDOCTokenStream* _tmp128_;
+                                               JSDOCToken* _tmp129_;
+                                               GeeHashMap* _tmp130_;
+                                               gint _tmp131_;
+                                               gint _tmp132_;
+                                               JSDOCTokenStream* _tmp187_;
+                                               JSDOCTokenStream* _tmp188_;
+#line 443 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               _tmp127_ = self->priv->ts;
+#line 443 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               _tmp128_ = _g_object_ref0 (_tmp127_);
+#line 443 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               curTS = _tmp128_;
+#line 444 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               _tmp129_ = _data4_->token;
+#line 444 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               _tmp130_ = _tmp129_->props;
+#line 444 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               _tmp131_ = gee_abstract_map_get_size ((GeeAbstractMap*) _tmp130_);
+#line 444 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               _tmp132_ = _tmp131_;
+#line 444 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               if (_tmp132_ > 0) {
+#line 1958 "ScopeParser.c"
+                                                       JSDOCTokenStream* _tmp171_;
+                                                       JSDOCTokenStream* _tmp172_;
+                                                       {
+                                                               gint i = 0;
+#line 448 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               i = 0;
+#line 1965 "ScopeParser.c"
+                                                               {
+                                                                       gboolean _tmp133_ = FALSE;
+#line 448 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp133_ = TRUE;
+#line 448 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       while (TRUE) {
+#line 1972 "ScopeParser.c"
+                                                                               gint _tmp135_;
+                                                                               JSDOCToken* _tmp136_;
+                                                                               GeeArrayList* _tmp137_;
+                                                                               gint _tmp138_;
+                                                                               gint _tmp139_;
+                                                                               gchar* k = NULL;
+                                                                               JSDOCToken* _tmp140_;
+                                                                               GeeArrayList* _tmp141_;
+                                                                               gint _tmp142_;
+                                                                               gpointer _tmp143_;
+                                                                               JSDOCTokenKeyMap* val = NULL;
+                                                                               JSDOCToken* _tmp144_;
+                                                                               GeeHashMap* _tmp145_;
+                                                                               const gchar* _tmp146_;
+                                                                               gpointer _tmp147_;
+                                                                               gboolean _tmp148_ = FALSE;
+                                                                               JSDOCTokenKeyMap* _tmp149_;
+                                                                               JSDOCTokenKeyMap* _tmp154_;
+                                                                               GeeArrayList* _tmp155_;
+                                                                               gpointer _tmp156_;
+                                                                               JSDOCToken* _tmp157_;
+                                                                               const gchar* _tmp158_;
+                                                                               gboolean _tmp159_;
+                                                                               JSDOCTokenKeyMap* _tmp167_;
+                                                                               GeeArrayList* _tmp168_;
+                                                                               JSDOCTokenStream* _tmp169_;
+                                                                               JSDOCScope* _tmp170_;
+#line 448 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                               if (!_tmp133_) {
+#line 2002 "ScopeParser.c"
+                                                                                       gint _tmp134_;
+#line 448 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                       _tmp134_ = i;
+#line 448 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                       i = _tmp134_ + 1;
+#line 2008 "ScopeParser.c"
+                                                                               }
+#line 448 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                               _tmp133_ = FALSE;
+#line 448 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                               _tmp135_ = i;
+#line 448 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                               _tmp136_ = _data4_->token;
+#line 448 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                               _tmp137_ = _tmp136_->keyseq;
+#line 448 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                               _tmp138_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp137_);
+#line 448 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                               _tmp139_ = _tmp138_;
+#line 448 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                               if (!(_tmp135_ < _tmp139_)) {
+#line 448 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                       break;
+#line 2026 "ScopeParser.c"
+                                                                               }
+#line 450 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                               _tmp140_ = _data4_->token;
+#line 450 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                               _tmp141_ = _tmp140_->keyseq;
+#line 450 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                               _tmp142_ = i;
+#line 450 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                               _tmp143_ = gee_abstract_list_get ((GeeAbstractList*) _tmp141_, _tmp142_);
+#line 450 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                               k = (gchar*) _tmp143_;
+#line 452 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                               _tmp144_ = _data4_->token;
+#line 452 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                               _tmp145_ = _tmp144_->props;
+#line 452 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                               _tmp146_ = k;
+#line 452 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                               _tmp147_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp145_, _tmp146_);
+#line 452 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                               val = (JSDOCTokenKeyMap*) _tmp147_;
+#line 456 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                               _tmp149_ = val;
+#line 456 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                               if (_tmp149_ == NULL) {
+#line 456 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                       _tmp148_ = TRUE;
+#line 2054 "ScopeParser.c"
+                                                                               } else {
+                                                                                       JSDOCTokenKeyMap* _tmp150_;
+                                                                                       GeeArrayList* _tmp151_;
+                                                                                       gint _tmp152_;
+                                                                                       gint _tmp153_;
+#line 456 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                       _tmp150_ = val;
+#line 456 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                       _tmp151_ = _tmp150_->vals;
+#line 456 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                       _tmp152_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp151_);
+#line 456 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                       _tmp153_ = _tmp152_;
+#line 456 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                       _tmp148_ = _tmp153_ < 1;
+#line 2070 "ScopeParser.c"
+                                                                               }
+#line 456 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                               if (_tmp148_) {
+#line 457 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                       _g_object_unref0 (val);
+#line 457 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                       _g_free0 (k);
+#line 457 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                       continue;
+#line 2080 "ScopeParser.c"
+                                                                               }
+#line 459 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                               _tmp154_ = val;
+#line 459 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                               _tmp155_ = _tmp154_->vals;
+#line 459 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                               _tmp156_ = gee_abstract_list_get ((GeeAbstractList*) _tmp155_, 0);
+#line 459 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                               _tmp157_ = (JSDOCToken*) _tmp156_;
+#line 459 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                               _tmp158_ = _tmp157_->data;
+#line 459 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                               _tmp159_ = g_strcmp0 (_tmp158_, "function") == 0;
+#line 459 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                               _g_object_unref0 (_tmp157_);
+#line 459 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                               if (_tmp159_) {
+#line 2098 "ScopeParser.c"
+                                                                                       JSDOCTokenKeyMap* _tmp160_;
+                                                                                       GeeArrayList* _tmp161_;
+                                                                                       JSDOCTokenStream* _tmp162_;
+                                                                                       JSDOCTokenStream* _tmp163_;
+                                                                                       JSDOCToken* _tmp164_;
+                                                                                       JSDOCToken* _tmp165_;
+                                                                                       JSDOCScope* _tmp166_;
+#line 461 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                       _tmp160_ = val;
+#line 461 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                       _tmp161_ = _tmp160_->vals;
+#line 461 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                       _tmp162_ = jsdoc_token_stream_new (_tmp161_);
+#line 461 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                       _g_object_unref0 (self->priv->ts);
+#line 461 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                       self->priv->ts = _tmp162_;
+#line 462 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                       _tmp163_ = self->priv->ts;
+#line 462 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                       _tmp164_ = jsdoc_token_stream_nextTok (_tmp163_);
+#line 462 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                       _tmp165_ = _tmp164_;
+#line 462 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                       _g_object_unref0 (_tmp165_);
+#line 463 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                       _tmp166_ = _data4_->scope;
+#line 463 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                       jsdoc_scope_parser_parseFunctionDeclaration (self, _tmp166_);
+#line 465 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                       _g_object_unref0 (val);
+#line 465 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                       _g_free0 (k);
+#line 465 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                       continue;
+#line 2134 "ScopeParser.c"
+                                                                               }
+#line 469 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                               _tmp167_ = val;
+#line 469 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                               _tmp168_ = _tmp167_->vals;
+#line 469 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                               _tmp169_ = jsdoc_token_stream_new (_tmp168_);
+#line 469 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                               _g_object_unref0 (self->priv->ts);
+#line 469 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                               self->priv->ts = _tmp169_;
+#line 470 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                               _tmp170_ = _data4_->scope;
+#line 470 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                               jsdoc_scope_parser_parseExpression (self, _tmp170_);
+#line 448 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                               _g_object_unref0 (val);
+#line 448 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                               _g_free0 (k);
+#line 2154 "ScopeParser.c"
+                                                                       }
+                                                               }
+                                                       }
+#line 473 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp171_ = curTS;
+#line 473 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp172_ = _g_object_ref0 (_tmp171_);
+#line 473 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _g_object_unref0 (self->priv->ts);
+#line 473 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       self->priv->ts = _tmp172_;
+#line 477 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _g_object_unref0 (curTS);
+#line 477 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       break;
+#line 2170 "ScopeParser.c"
+                                               }
+                                               {
+                                                       gint xx = 0;
+#line 483 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       xx = 0;
+#line 2176 "ScopeParser.c"
+                                                       {
+                                                               gboolean _tmp173_ = FALSE;
+#line 483 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               _tmp173_ = TRUE;
+#line 483 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               while (TRUE) {
+#line 2183 "ScopeParser.c"
+                                                                       gint _tmp175_;
+                                                                       JSDOCToken* _tmp176_;
+                                                                       GeeArrayList* _tmp177_;
+                                                                       gint _tmp178_;
+                                                                       gint _tmp179_;
+                                                                       GeeArrayList* expr = NULL;
+                                                                       JSDOCToken* _tmp180_;
+                                                                       GeeArrayList* _tmp181_;
+                                                                       gint _tmp182_;
+                                                                       gpointer _tmp183_;
+                                                                       GeeArrayList* _tmp184_;
+                                                                       JSDOCTokenStream* _tmp185_;
+                                                                       JSDOCScope* _tmp186_;
+#line 483 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       if (!_tmp173_) {
+#line 2199 "ScopeParser.c"
+                                                                               gint _tmp174_;
+#line 483 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                               _tmp174_ = xx;
+#line 483 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                               xx = _tmp174_ + 1;
+#line 2205 "ScopeParser.c"
+                                                                       }
+#line 483 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp173_ = FALSE;
+#line 483 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp175_ = xx;
+#line 483 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp176_ = _data4_->token;
+#line 483 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp177_ = _tmp176_->items;
+#line 483 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp178_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp177_);
+#line 483 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp179_ = _tmp178_;
+#line 483 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       if (!(_tmp175_ < _tmp179_)) {
+#line 483 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                               break;
+#line 2223 "ScopeParser.c"
+                                                                       }
+#line 484 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp180_ = _data4_->token;
+#line 484 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp181_ = _tmp180_->items;
+#line 484 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp182_ = xx;
+#line 484 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp183_ = gee_abstract_list_get ((GeeAbstractList*) _tmp181_, _tmp182_);
+#line 484 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       expr = (GeeArrayList*) _tmp183_;
+#line 487 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp184_ = expr;
+#line 487 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp185_ = jsdoc_token_stream_new (_tmp184_);
+#line 487 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _g_object_unref0 (self->priv->ts);
+#line 487 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       self->priv->ts = _tmp185_;
+#line 489 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp186_ = _data4_->scope;
+#line 489 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       jsdoc_scope_parser_parseScope (self, _tmp186_);
+#line 483 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _g_object_unref0 (expr);
+#line 2249 "ScopeParser.c"
+                                                               }
+                                                       }
+                                               }
+#line 495 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               _tmp187_ = curTS;
+#line 495 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               _tmp188_ = _g_object_ref0 (_tmp187_);
+#line 495 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               _g_object_unref0 (self->priv->ts);
+#line 495 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               self->priv->ts = _tmp188_;
+#line 502 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               _g_object_unref0 (curTS);
+#line 502 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               break;
+#line 2265 "ScopeParser.c"
+                                       }
+#line 435 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       case JSDOC_TOKEN_NAME_RIGHT_CURLY:
+#line 2269 "ScopeParser.c"
+                                       {
+#line 506 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               _g_object_unref0 (isObjectLitAr);
+#line 506 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               block4_data_unref (_data4_);
+#line 506 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               _data4_ = NULL;
+#line 506 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               return;
+#line 2279 "ScopeParser.c"
+                                       }
+                                       default:
+                                       {
+#line 509 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               break;
+#line 2285 "ScopeParser.c"
+                                       }
+                               }
+#line 511 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               break;
+#line 2290 "ScopeParser.c"
+                       }
+#line 237 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                       case JSDOC_TOKEN_TYPE_STRN:
+#line 2294 "ScopeParser.c"
+                       {
+                               gboolean _tmp189_ = FALSE;
+                               JSDOCTokenStream* _tmp190_;
+                               JSDOCToken* _tmp191_;
+                               JSDOCToken* _tmp192_;
+                               const gchar* _tmp193_;
+                               gboolean _tmp194_;
+                               gboolean isInObjectLitAr = FALSE;
+                               GeeArrayList* _tmp204_;
+                               GeeArrayList* _tmp205_;
+                               gint _tmp206_;
+                               gint _tmp207_;
+                               gpointer _tmp208_;
+                               gboolean _tmp209_ = FALSE;
+                               gboolean _tmp210_ = FALSE;
+                               gboolean _tmp211_;
+#line 519 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp190_ = self->priv->ts;
+#line 519 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp191_ = jsdoc_token_stream_lookTok (_tmp190_, -1);
+#line 519 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp192_ = _tmp191_;
+#line 519 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp193_ = _tmp192_->data;
+#line 519 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp194_ = g_strcmp0 (_tmp193_, "{") == 0;
+#line 519 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _g_object_unref0 (_tmp192_);
+#line 519 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               if (_tmp194_) {
+#line 2325 "ScopeParser.c"
+                                       JSDOCTokenStream* _tmp195_;
+                                       JSDOCToken* _tmp196_;
+                                       JSDOCToken* _tmp197_;
+                                       const gchar* _tmp198_;
+#line 519 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       _tmp195_ = self->priv->ts;
+#line 519 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       _tmp196_ = jsdoc_token_stream_lookTok (_tmp195_, 1);
+#line 519 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       _tmp197_ = _tmp196_;
+#line 519 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       _tmp198_ = _tmp197_->data;
+#line 519 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       _tmp189_ = g_strcmp0 (_tmp198_, ":") == 0;
+#line 519 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       _g_object_unref0 (_tmp197_);
+#line 2342 "ScopeParser.c"
+                               } else {
+#line 519 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       _tmp189_ = FALSE;
+#line 2346 "ScopeParser.c"
+                               }
+#line 519 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               if (_tmp189_) {
+#line 2350 "ScopeParser.c"
+                                       GeeArrayList* _tmp199_;
+                                       GeeArrayList* _tmp200_;
+                                       gint _tmp201_;
+                                       gint _tmp202_;
+                                       GeeArrayList* _tmp203_;
+#line 521 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       _tmp199_ = isObjectLitAr;
+#line 521 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       _tmp200_ = isObjectLitAr;
+#line 521 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       _tmp201_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp200_);
+#line 521 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       _tmp202_ = _tmp201_;
+#line 521 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       gee_abstract_list_remove_at ((GeeAbstractList*) _tmp199_, _tmp202_ - 1);
+#line 522 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       _tmp203_ = isObjectLitAr;
+#line 522 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       gee_abstract_collection_add ((GeeAbstractCollection*) _tmp203_, (gpointer) ((gintptr) TRUE));
+#line 2370 "ScopeParser.c"
+                               }
+#line 525 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp204_ = isObjectLitAr;
+#line 525 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp205_ = isObjectLitAr;
+#line 525 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp206_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp205_);
+#line 525 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp207_ = _tmp206_;
+#line 525 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp208_ = gee_abstract_list_get ((GeeAbstractList*) _tmp204_, _tmp207_ - 1);
+#line 525 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               isInObjectLitAr = (gboolean) ((gintptr) _tmp208_);
+#line 527 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp211_ = isInObjectLitAr;
+#line 527 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               if (_tmp211_) {
+#line 2388 "ScopeParser.c"
+                                       JSDOCTokenStream* _tmp212_;
+                                       JSDOCToken* _tmp213_;
+                                       JSDOCToken* _tmp214_;
+                                       const gchar* _tmp215_;
+#line 527 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       _tmp212_ = self->priv->ts;
+#line 527 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       _tmp213_ = jsdoc_token_stream_lookTok (_tmp212_, 1);
+#line 527 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       _tmp214_ = _tmp213_;
+#line 527 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       _tmp215_ = _tmp214_->data;
+#line 527 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       _tmp210_ = g_strcmp0 (_tmp215_, ":") == 0;
+#line 527 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       _g_object_unref0 (_tmp214_);
+#line 2405 "ScopeParser.c"
+                               } else {
+#line 527 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       _tmp210_ = FALSE;
+#line 2409 "ScopeParser.c"
+                               }
+#line 527 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               if (_tmp210_) {
+#line 2413 "ScopeParser.c"
+                                       gboolean _tmp216_ = FALSE;
+                                       JSDOCTokenStream* _tmp217_;
+                                       JSDOCToken* _tmp218_;
+                                       JSDOCToken* _tmp219_;
+                                       const gchar* _tmp220_;
+                                       gboolean _tmp221_;
+#line 528 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       _tmp217_ = self->priv->ts;
+#line 528 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       _tmp218_ = jsdoc_token_stream_lookTok (_tmp217_, -1);
+#line 528 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       _tmp219_ = _tmp218_;
+#line 528 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       _tmp220_ = _tmp219_->data;
+#line 528 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       _tmp221_ = g_strcmp0 (_tmp220_, "{") == 0;
+#line 528 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       _g_object_unref0 (_tmp219_);
+#line 528 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       if (_tmp221_) {
+#line 528 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               _tmp216_ = TRUE;
+#line 2436 "ScopeParser.c"
+                                       } else {
+                                               JSDOCTokenStream* _tmp222_;
+                                               JSDOCToken* _tmp223_;
+                                               JSDOCToken* _tmp224_;
+                                               const gchar* _tmp225_;
+#line 528 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               _tmp222_ = self->priv->ts;
+#line 528 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               _tmp223_ = jsdoc_token_stream_lookTok (_tmp222_, -1);
+#line 528 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               _tmp224_ = _tmp223_;
+#line 528 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               _tmp225_ = _tmp224_->data;
+#line 528 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               _tmp216_ = g_strcmp0 (_tmp225_, ":") == 0;
+#line 528 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               _g_object_unref0 (_tmp224_);
+#line 2454 "ScopeParser.c"
+                                       }
+#line 528 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       _tmp209_ = _tmp216_;
+#line 2458 "ScopeParser.c"
+                               } else {
+#line 527 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       _tmp209_ = FALSE;
+#line 2462 "ScopeParser.c"
+                               }
+#line 527 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               if (_tmp209_) {
+#line 2466 "ScopeParser.c"
+                                       gchar* str = NULL;
+                                       JSDOCToken* _tmp226_;
+                                       const gchar* _tmp227_;
+                                       JSDOCToken* _tmp228_;
+                                       const gchar* _tmp229_;
+                                       gint _tmp230_;
+                                       gint _tmp231_;
+                                       gchar* _tmp232_;
+                                       gboolean _tmp233_ = FALSE;
+                                       const gchar* _tmp234_;
+                                       gboolean _tmp235_;
+#line 532 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       _tmp226_ = _data4_->token;
+#line 532 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       _tmp227_ = _tmp226_->data;
+#line 532 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       _tmp228_ = _data4_->token;
+#line 532 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       _tmp229_ = _tmp228_->data;
+#line 532 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       _tmp230_ = strlen (_tmp229_);
+#line 532 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       _tmp231_ = _tmp230_;
+#line 532 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       _tmp232_ = string_substring (_tmp227_, (glong) 1, (glong) (_tmp231_ - 1));
+#line 532 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       str = _tmp232_;
+#line 534 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       _tmp234_ = str;
+#line 534 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       _tmp235_ = g_regex_match_simple ("^[a-z_]+$", _tmp234_, G_REGEX_CASELESS, 0);
+#line 534 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       if (_tmp235_) {
+#line 2500 "ScopeParser.c"
+                                               GeeArrayList* _tmp236_;
+                                               const gchar* _tmp237_;
+                                               gint _tmp238_;
+#line 534 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               _tmp236_ = jsdoc_scope_parser_idents;
+#line 534 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               _tmp237_ = str;
+#line 534 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               _tmp238_ = gee_abstract_list_index_of ((GeeAbstractList*) _tmp236_, _tmp237_);
+#line 534 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               _tmp233_ = _tmp238_ < 0;
+#line 2512 "ScopeParser.c"
+                                       } else {
+#line 534 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               _tmp233_ = FALSE;
+#line 2516 "ScopeParser.c"
+                                       }
+#line 534 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       if (_tmp233_) {
+#line 2520 "ScopeParser.c"
+                                               JSDOCToken* _tmp239_;
+                                               const gchar* _tmp240_;
+                                               gchar* _tmp241_;
+#line 535 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               _tmp239_ = _data4_->token;
+#line 535 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               _tmp240_ = str;
+#line 535 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               _tmp241_ = g_strdup (_tmp240_);
+#line 535 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               _g_free0 (_tmp239_->outData);
+#line 535 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               _tmp239_->outData = _tmp241_;
+#line 2534 "ScopeParser.c"
+                                       }
+#line 527 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       _g_free0 (str);
+#line 2538 "ScopeParser.c"
+                               }
+#line 542 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               break;
+#line 2542 "ScopeParser.c"
+                       }
+#line 237 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                       case JSDOC_TOKEN_TYPE_NAME:
+#line 2546 "ScopeParser.c"
+                       {
+                               JSDOCTokenStream* _tmp242_;
+                               JSDOCToken* _tmp243_;
+                               JSDOCToken* _tmp244_;
+                               JSDOCTokenName _tmp245_;
+                               gboolean _tmp246_;
+                               gchar* symbol = NULL;
+                               JSDOCToken* _tmp247_;
+                               const gchar* _tmp248_;
+                               gchar* _tmp249_;
+                               const gchar* _tmp250_;
+                               JSDOCScopeParserMode _tmp251_;
+#line 552 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp242_ = self->priv->ts;
+#line 552 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp243_ = jsdoc_token_stream_lookTok (_tmp242_, -1);
+#line 552 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp244_ = _tmp243_;
+#line 552 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp245_ = _tmp244_->name;
+#line 552 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp246_ = _tmp245_ == JSDOC_TOKEN_NAME_DOT;
+#line 552 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _g_object_unref0 (_tmp244_);
+#line 552 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               if (_tmp246_) {
+#line 556 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       break;
+#line 2575 "ScopeParser.c"
+                               }
+#line 560 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp247_ = _data4_->token;
+#line 560 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp248_ = _tmp247_->data;
+#line 560 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp249_ = g_strdup (_tmp248_);
+#line 560 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               symbol = _tmp249_;
+#line 561 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp250_ = symbol;
+#line 561 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               if (g_strcmp0 (_tmp250_, "this") == 0) {
+#line 563 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       _g_free0 (symbol);
+#line 563 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       break;
+#line 2593 "ScopeParser.c"
+                               }
+#line 566 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp251_ = self->priv->mode;
+#line 566 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               if (_tmp251_ == JSDOC_SCOPE_PARSER_MODE_PASS2_SYMBOL_TREE) {
+#line 2599 "ScopeParser.c"
+                                       JSDOCIdentifier* identifier = NULL;
+                                       const gchar* _tmp252_;
+                                       JSDOCScope* _tmp253_;
+                                       JSDOCToken* _tmp254_;
+                                       JSDOCIdentifier* _tmp255_;
+                                       JSDOCIdentifier* _tmp256_;
+#line 575 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       _tmp252_ = symbol;
+#line 575 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       _tmp253_ = _data4_->scope;
+#line 575 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       _tmp254_ = _data4_->token;
+#line 575 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       _tmp255_ = jsdoc_scope_parser_getIdentifier (self, _tmp252_, _tmp253_, _tmp254_);
+#line 575 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       identifier = _tmp255_;
+#line 578 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       _tmp256_ = identifier;
+#line 578 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       if (_tmp256_ == NULL) {
+#line 2620 "ScopeParser.c"
+                                               gboolean _tmp257_ = FALSE;
+                                               const gchar* _tmp258_;
+                                               gint _tmp259_;
+                                               gint _tmp260_;
+#line 581 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               _tmp258_ = symbol;
+#line 581 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               _tmp259_ = strlen (_tmp258_);
+#line 581 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               _tmp260_ = _tmp259_;
+#line 581 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               if (_tmp260_ <= 3) {
+#line 2633 "ScopeParser.c"
+                                                       GeeArrayList* _tmp261_;
+                                                       const gchar* _tmp262_;
+                                                       gint _tmp263_;
+#line 581 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp261_ = jsdoc_scope_builtin;
+#line 581 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp262_ = symbol;
+#line 581 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp263_ = gee_abstract_list_index_of ((GeeAbstractList*) _tmp261_, _tmp262_);
+#line 581 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp257_ = _tmp263_ < 0;
+#line 2645 "ScopeParser.c"
+                                               } else {
+#line 581 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp257_ = FALSE;
+#line 2649 "ScopeParser.c"
+                                               }
+#line 581 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               if (_tmp257_) {
+#line 2653 "ScopeParser.c"
+                                                       JSDOCScope* _tmp264_;
+                                                       const gchar* _tmp265_;
+                                                       JSDOCToken* _tmp266_;
+                                                       JSDOCIdentifier* _tmp267_;
+                                                       JSDOCIdentifier* _tmp268_;
+                                                       JSDOCPacker* _tmp269_;
+                                                       const gchar* _tmp270_;
+                                                       JSDOCToken* _tmp271_;
+                                                       gint _tmp272_;
+                                                       const gchar* _tmp273_;
+                                                       gchar* _tmp274_;
+                                                       gchar* _tmp275_;
+#line 586 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp264_ = self->priv->globalScope;
+#line 586 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp265_ = symbol;
+#line 586 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp266_ = _data4_->token;
+#line 586 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp267_ = jsdoc_scope_declareIdentifier (_tmp264_, _tmp265_, _tmp266_);
+#line 586 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp268_ = _tmp267_;
+#line 586 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _g_object_unref0 (_tmp268_);
+#line 588 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp269_ = self->priv->packer;
+#line 588 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp270_ = self->priv->filename;
+#line 588 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp271_ = _data4_->token;
+#line 588 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp272_ = _tmp271_->line;
+#line 588 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp273_ = symbol;
+#line 588 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp274_ = g_strconcat ("Found an undeclared symbol: ", _tmp273_, NULL);
+#line 588 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp275_ = _tmp274_;
+#line 588 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       jsdoc_packer_logError (_tmp269_, JSDOC_PACKER_RESULT_TYPE_warn, _tmp270_, _tmp272_, _tmp275_);
+#line 588 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _g_free0 (_tmp275_);
+#line 2696 "ScopeParser.c"
+                                               }
+                                       } else {
+                                               JSDOCToken* _tmp276_;
+                                               JSDOCIdentifier* _tmp277_;
+                                               JSDOCIdentifier* _tmp278_;
+                                               JSDOCIdentifier* _tmp279_;
+                                               gint _tmp280_;
+#line 600 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               _tmp276_ = _data4_->token;
+#line 600 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               _tmp277_ = identifier;
+#line 600 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               _tmp278_ = _g_object_ref0 (_tmp277_);
+#line 600 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               _g_object_unref0 (_tmp276_->identifier);
+#line 600 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               _tmp276_->identifier = _tmp278_;
+#line 601 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               _tmp279_ = identifier;
+#line 601 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               _tmp280_ = _tmp279_->refcount;
+#line 601 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               _tmp279_->refcount = _tmp280_ + 1;
+#line 2720 "ScopeParser.c"
+                                       }
+#line 566 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       _g_object_unref0 (identifier);
+#line 2724 "ScopeParser.c"
+                               }
+#line 605 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _g_free0 (symbol);
+#line 605 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               break;
+#line 2730 "ScopeParser.c"
+                       }
+                       default:
+                       {
+#line 609 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               break;
+#line 2736 "ScopeParser.c"
+                       }
+               }
+#line 616 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp281_ = self->priv->ts;
+#line 616 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp282_ = jsdoc_token_stream_nextTok (_tmp281_);
+#line 616 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _g_object_unref0 (_data4_->token);
+#line 616 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _data4_->token = _tmp282_;
+#line 2747 "ScopeParser.c"
+       }
+#line 209 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _g_object_unref0 (isObjectLitAr);
+#line 209 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       block4_data_unref (_data4_);
+#line 209 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _data4_ = NULL;
+#line 2755 "ScopeParser.c"
+}
+
+
+static Block5Data* block5_data_ref (Block5Data* _data5_) {
+#line 626 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       g_atomic_int_inc (&_data5_->_ref_count_);
+#line 626 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       return _data5_;
+#line 2764 "ScopeParser.c"
+}
+
+
+static void block5_data_unref (void * _userdata_) {
+       Block5Data* _data5_;
+       _data5_ = (Block5Data*) _userdata_;
+#line 626 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       if (g_atomic_int_dec_and_test (&_data5_->_ref_count_)) {
+#line 2773 "ScopeParser.c"
+               JSDOCScopeParser* self;
+#line 626 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               self = _data5_->self;
+#line 626 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _g_object_unref0 (_data5_->token);
+#line 626 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _g_object_unref0 (_data5_->scope);
+#line 626 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _g_object_unref0 (self);
+#line 626 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               g_slice_free (Block5Data, _data5_);
+#line 2785 "ScopeParser.c"
+       }
+}
+
+
+static gboolean _______lambda8_ (Block5Data* _data5_, GMatchInfo* match_info, GString* _result_) {
+       JSDOCScopeParser* self;
+       gboolean result = FALSE;
+       gchar* a = NULL;
+       GMatchInfo* _tmp0_;
+       gchar* _tmp1_;
+       JSDOCIdentifier* hi = NULL;
+       const gchar* _tmp2_;
+       JSDOCScope* _tmp3_;
+       JSDOCToken* _tmp4_;
+       JSDOCIdentifier* _tmp5_;
+       JSDOCIdentifier* _tmp6_;
+#line 867 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       self = _data5_->self;
+#line 867 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       g_return_val_if_fail (match_info != NULL, FALSE);
+#line 867 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       g_return_val_if_fail (_result_ != NULL, FALSE);
+#line 868 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp0_ = match_info;
+#line 868 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp1_ = g_match_info_fetch (_tmp0_, 0);
+#line 868 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       a = _tmp1_;
+#line 872 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp2_ = a;
+#line 872 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp3_ = _data5_->scope;
+#line 872 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp4_ = _data5_->token;
+#line 872 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp5_ = jsdoc_scope_parser_getIdentifier (self, _tmp2_, _tmp3_, _tmp4_);
+#line 872 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       hi = _tmp5_;
+#line 874 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp6_ = hi;
+#line 874 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       if (_tmp6_ != NULL) {
+#line 2828 "ScopeParser.c"
+               JSDOCIdentifier* _tmp7_;
+#line 876 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp7_ = hi;
+#line 876 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp7_->toMunge = FALSE;
+#line 2834 "ScopeParser.c"
+       }
+#line 878 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       result = FALSE;
+#line 878 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _g_object_unref0 (hi);
+#line 878 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _g_free0 (a);
+#line 878 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       return result;
+#line 2844 "ScopeParser.c"
+}
+
+
+static gboolean ________lambda8__gregex_eval_callback (GMatchInfo* match_info, GString* _result_, gpointer self) {
+       gboolean result;
+       result = _______lambda8_ (self, match_info, _result_);
+#line 867 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       return result;
+#line 2853 "ScopeParser.c"
+}
+
+
+static void jsdoc_scope_parser_parseExpression (JSDOCScopeParser* self, JSDOCScope* scope) {
+       Block5Data* _data5_;
+       JSDOCScope* _tmp0_;
+       JSDOCScope* _tmp1_;
+       gint _tmp2_;
+       GeeArrayList* isObjectLitAr = NULL;
+       GeeArrayList* _tmp3_;
+       GeeArrayList* _tmp4_;
+       gint _tmp156_;
+       GError * _inner_error_ = NULL;
+#line 626 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       g_return_if_fail (self != NULL);
+#line 626 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       g_return_if_fail (scope != NULL);
+#line 626 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _data5_ = g_slice_new0 (Block5Data);
+#line 626 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _data5_->_ref_count_ = 1;
+#line 626 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _data5_->self = g_object_ref (self);
+#line 626 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp0_ = scope;
+#line 626 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 626 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _g_object_unref0 (_data5_->scope);
+#line 626 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _data5_->scope = _tmp1_;
+#line 634 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp2_ = self->priv->expN;
+#line 634 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       self->priv->expN = _tmp2_ + 1;
+#line 645 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp3_ = gee_array_list_new (G_TYPE_BOOLEAN, NULL, NULL, NULL, NULL, NULL);
+#line 645 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       isObjectLitAr = _tmp3_;
+#line 646 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp4_ = isObjectLitAr;
+#line 646 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       gee_abstract_collection_add ((GeeAbstractCollection*) _tmp4_, (gpointer) ((gintptr) FALSE));
+#line 652 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       while (TRUE) {
+#line 2899 "ScopeParser.c"
+               JSDOCTokenStream* _tmp5_;
+               JSDOCToken* _tmp6_;
+               JSDOCToken* _tmp7_;
+               JSDOCToken* _tmp8_;
+               JSDOCTokenType _tmp9_;
+#line 652 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp5_ = self->priv->ts;
+#line 652 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp6_ = jsdoc_token_stream_nextTok (_tmp5_);
+#line 652 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _g_object_unref0 (_data5_->token);
+#line 652 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _data5_->token = _tmp6_;
+#line 652 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp7_ = _data5_->token;
+#line 652 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               if (!(NULL != _tmp7_)) {
+#line 652 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                       break;
+#line 2919 "ScopeParser.c"
+               }
+#line 672 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp8_ = _data5_->token;
+#line 672 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp9_ = _tmp8_->type;
+#line 672 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               switch (_tmp9_) {
+#line 672 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                       case JSDOC_TOKEN_TYPE_PUNC:
+#line 2929 "ScopeParser.c"
+                       {
+                               JSDOCToken* _tmp10_;
+                               const gchar* _tmp11_;
+                               const gchar* _tmp12_;
+                               GQuark _tmp14_ = 0U;
+#line 676 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               static GQuark _tmp13_label0 = 0;
+#line 676 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               static GQuark _tmp13_label1 = 0;
+#line 676 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               static GQuark _tmp13_label2 = 0;
+#line 676 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               static GQuark _tmp13_label3 = 0;
+#line 676 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               static GQuark _tmp13_label4 = 0;
+#line 676 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               static GQuark _tmp13_label5 = 0;
+#line 676 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               static GQuark _tmp13_label6 = 0;
+#line 676 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               static GQuark _tmp13_label7 = 0;
+#line 676 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp10_ = _data5_->token;
+#line 676 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp11_ = _tmp10_->data;
+#line 676 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp12_ = _tmp11_;
+#line 676 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp14_ = (NULL == _tmp12_) ? 0 : g_quark_from_string (_tmp12_);
+#line 676 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               if (_tmp14_ == ((0 != _tmp13_label0) ? _tmp13_label0 : (_tmp13_label0 = g_quark_from_static_string (";")))) {
+#line 676 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       switch (0) {
+#line 2963 "ScopeParser.c"
+                                               default:
+                                               {
+#line 680 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       break;
+#line 2968 "ScopeParser.c"
+                                               }
+                                       }
+                               } else if (_tmp14_ == ((0 != _tmp13_label1) ? _tmp13_label1 : (_tmp13_label1 = g_quark_from_static_string (",")))) {
+#line 676 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       switch (0) {
+#line 2974 "ScopeParser.c"
+                                               default:
+                                               {
+#line 684 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       break;
+#line 2979 "ScopeParser.c"
+                                               }
+                                       }
+                               } else if (((_tmp14_ == ((0 != _tmp13_label2) ? _tmp13_label2 : (_tmp13_label2 = g_quark_from_static_string ("(")))) || (_tmp14_ == ((0 != _tmp13_label3) ? _tmp13_label3 : (_tmp13_label3 = g_quark_from_static_string ("{"))))) || (_tmp14_ == ((0 != _tmp13_label4) ? _tmp13_label4 : (_tmp13_label4 = g_quark_from_static_string ("["))))) {
+#line 676 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       switch (0) {
+#line 2985 "ScopeParser.c"
+                                               default:
+                                               {
+                                                       JSDOCTokenStream* curTS = NULL;
+                                                       JSDOCTokenStream* _tmp15_;
+                                                       JSDOCTokenStream* _tmp16_;
+                                                       JSDOCToken* _tmp17_;
+                                                       GeeArrayList* _tmp18_;
+                                                       gint _tmp19_;
+                                                       gint _tmp20_;
+                                                       JSDOCTokenStream* _tmp79_;
+                                                       JSDOCTokenStream* _tmp80_;
+#line 693 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp15_ = self->priv->ts;
+#line 693 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp16_ = _g_object_ref0 (_tmp15_);
+#line 693 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       curTS = _tmp16_;
+#line 694 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp17_ = _data5_->token;
+#line 694 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp18_ = _tmp17_->keyseq;
+#line 694 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp19_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp18_);
+#line 694 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp20_ = _tmp19_;
+#line 694 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       if (_tmp20_ > 0) {
+#line 3013 "ScopeParser.c"
+                                                               JSDOCTokenStream* _tmp62_;
+                                                               JSDOCTokenStream* _tmp63_;
+                                                               {
+                                                                       gint i = 0;
+#line 696 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       i = 0;
+#line 3020 "ScopeParser.c"
+                                                                       {
+                                                                               gboolean _tmp21_ = FALSE;
+#line 696 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                               _tmp21_ = TRUE;
+#line 696 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                               while (TRUE) {
+#line 3027 "ScopeParser.c"
+                                                                                       gint _tmp23_;
+                                                                                       JSDOCToken* _tmp24_;
+                                                                                       GeeArrayList* _tmp25_;
+                                                                                       gint _tmp26_;
+                                                                                       gint _tmp27_;
+                                                                                       gchar* k = NULL;
+                                                                                       JSDOCToken* _tmp28_;
+                                                                                       GeeArrayList* _tmp29_;
+                                                                                       gint _tmp30_;
+                                                                                       gpointer _tmp31_;
+                                                                                       JSDOCTokenKeyMap* val = NULL;
+                                                                                       JSDOCToken* _tmp32_;
+                                                                                       GeeHashMap* _tmp33_;
+                                                                                       const gchar* _tmp34_;
+                                                                                       gpointer _tmp35_;
+                                                                                       JSDOCTokenKeyMap* _tmp36_;
+                                                                                       gboolean _tmp41_ = FALSE;
+                                                                                       JSDOCTokenKeyMap* _tmp42_;
+                                                                                       GeeArrayList* _tmp43_;
+                                                                                       gint _tmp44_;
+                                                                                       gint _tmp45_;
+                                                                                       JSDOCTokenKeyMap* _tmp58_;
+                                                                                       GeeArrayList* _tmp59_;
+                                                                                       JSDOCTokenStream* _tmp60_;
+                                                                                       JSDOCScope* _tmp61_;
+#line 696 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                       if (!_tmp21_) {
+#line 3055 "ScopeParser.c"
+                                                                                               gint _tmp22_;
+#line 696 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                               _tmp22_ = i;
+#line 696 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                               i = _tmp22_ + 1;
+#line 3061 "ScopeParser.c"
+                                                                                       }
+#line 696 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                       _tmp21_ = FALSE;
+#line 696 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                       _tmp23_ = i;
+#line 696 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                       _tmp24_ = _data5_->token;
+#line 696 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                       _tmp25_ = _tmp24_->keyseq;
+#line 696 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                       _tmp26_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp25_);
+#line 696 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                       _tmp27_ = _tmp26_;
+#line 696 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                       if (!(_tmp23_ < _tmp27_)) {
+#line 696 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                               break;
+#line 3079 "ScopeParser.c"
+                                                                                       }
+#line 698 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                       _tmp28_ = _data5_->token;
+#line 698 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                       _tmp29_ = _tmp28_->keyseq;
+#line 698 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                       _tmp30_ = i;
+#line 698 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                       _tmp31_ = gee_abstract_list_get ((GeeAbstractList*) _tmp29_, _tmp30_);
+#line 698 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                       k = (gchar*) _tmp31_;
+#line 700 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                       _tmp32_ = _data5_->token;
+#line 700 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                       _tmp33_ = _tmp32_->props;
+#line 700 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                       _tmp34_ = k;
+#line 700 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                       _tmp35_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp33_, _tmp34_);
+#line 700 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                       val = (JSDOCTokenKeyMap*) _tmp35_;
+#line 702 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                       _tmp36_ = val;
+#line 702 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                       if (_tmp36_ == NULL) {
+#line 3105 "ScopeParser.c"
+                                                                                               const gchar* _tmp37_;
+                                                                                               JSDOCToken* _tmp38_;
+                                                                                               gchar* _tmp39_;
+                                                                                               gchar* _tmp40_;
+#line 703 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                               _tmp37_ = k;
+#line 703 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                               _tmp38_ = _data5_->token;
+#line 703 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                               _tmp39_ = jsdoc_token_asString (_tmp38_);
+#line 703 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                               _tmp40_ = _tmp39_;
+#line 703 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                               g_print ("failed  to get %s val from token %s\n", _tmp37_, _tmp40_);
+#line 703 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                               _g_free0 (_tmp40_);
+#line 704 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                               _g_object_unref0 (val);
+#line 704 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                               _g_free0 (k);
+#line 704 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                               continue;
+#line 3128 "ScopeParser.c"
+                                                                                       }
+#line 712 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                       _tmp42_ = val;
+#line 712 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                       _tmp43_ = _tmp42_->vals;
+#line 712 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                       _tmp44_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp43_);
+#line 712 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                       _tmp45_ = _tmp44_;
+#line 712 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                       if (_tmp45_ > 0) {
+#line 3140 "ScopeParser.c"
+                                                                                               JSDOCTokenKeyMap* _tmp46_;
+                                                                                               GeeArrayList* _tmp47_;
+                                                                                               gpointer _tmp48_;
+                                                                                               JSDOCToken* _tmp49_;
+                                                                                               const gchar* _tmp50_;
+#line 712 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                               _tmp46_ = val;
+#line 712 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                               _tmp47_ = _tmp46_->vals;
+#line 712 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                               _tmp48_ = gee_abstract_list_get ((GeeAbstractList*) _tmp47_, 0);
+#line 712 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                               _tmp49_ = (JSDOCToken*) _tmp48_;
+#line 712 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                               _tmp50_ = _tmp49_->data;
+#line 712 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                               _tmp41_ = g_strcmp0 (_tmp50_, "function") == 0;
+#line 712 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                               _g_object_unref0 (_tmp49_);
+#line 3160 "ScopeParser.c"
+                                                                                       } else {
+#line 712 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                               _tmp41_ = FALSE;
+#line 3164 "ScopeParser.c"
+                                                                                       }
+#line 712 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                       if (_tmp41_) {
+#line 3168 "ScopeParser.c"
+                                                                                               JSDOCTokenKeyMap* _tmp51_;
+                                                                                               GeeArrayList* _tmp52_;
+                                                                                               JSDOCTokenStream* _tmp53_;
+                                                                                               JSDOCTokenStream* _tmp54_;
+                                                                                               JSDOCToken* _tmp55_;
+                                                                                               JSDOCToken* _tmp56_;
+                                                                                               JSDOCScope* _tmp57_;
+#line 714 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                               _tmp51_ = val;
+#line 714 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                               _tmp52_ = _tmp51_->vals;
+#line 714 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                               _tmp53_ = jsdoc_token_stream_new (_tmp52_);
+#line 714 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                               _g_object_unref0 (self->priv->ts);
+#line 714 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                               self->priv->ts = _tmp53_;
+#line 715 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                               _tmp54_ = self->priv->ts;
+#line 715 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                               _tmp55_ = jsdoc_token_stream_nextTok (_tmp54_);
+#line 715 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                               _tmp56_ = _tmp55_;
+#line 715 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                               _g_object_unref0 (_tmp56_);
+#line 716 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                               _tmp57_ = _data5_->scope;
+#line 716 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                               jsdoc_scope_parser_parseFunctionDeclaration (self, _tmp57_);
+#line 717 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                               _g_object_unref0 (val);
+#line 717 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                               _g_free0 (k);
+#line 717 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                               continue;
+#line 3204 "ScopeParser.c"
+                                                                                       }
+#line 721 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                       _tmp58_ = val;
+#line 721 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                       _tmp59_ = _tmp58_->vals;
+#line 721 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                       _tmp60_ = jsdoc_token_stream_new (_tmp59_);
+#line 721 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                       _g_object_unref0 (self->priv->ts);
+#line 721 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                       self->priv->ts = _tmp60_;
+#line 722 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                       _tmp61_ = _data5_->scope;
+#line 722 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                       jsdoc_scope_parser_parseExpression (self, _tmp61_);
+#line 696 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                       _g_object_unref0 (val);
+#line 696 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                                       _g_free0 (k);
+#line 3224 "ScopeParser.c"
+                                                                               }
+                                                                       }
+                                                               }
+#line 725 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               _tmp62_ = curTS;
+#line 725 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               _tmp63_ = _g_object_ref0 (_tmp62_);
+#line 725 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               _g_object_unref0 (self->priv->ts);
+#line 725 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               self->priv->ts = _tmp63_;
+#line 729 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               _g_object_unref0 (curTS);
+#line 729 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               break;
+#line 3240 "ScopeParser.c"
+                                                       }
+                                                       {
+                                                               GeeArrayList* _expr_list = NULL;
+                                                               JSDOCToken* _tmp64_;
+                                                               GeeArrayList* _tmp65_;
+                                                               GeeArrayList* _tmp66_;
+                                                               gint _expr_size = 0;
+                                                               GeeArrayList* _tmp67_;
+                                                               gint _tmp68_;
+                                                               gint _tmp69_;
+                                                               gint _expr_index = 0;
+#line 734 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               _tmp64_ = _data5_->token;
+#line 734 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               _tmp65_ = _tmp64_->items;
+#line 734 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               _tmp66_ = _g_object_ref0 (_tmp65_);
+#line 734 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               _expr_list = _tmp66_;
+#line 734 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               _tmp67_ = _expr_list;
+#line 734 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               _tmp68_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp67_);
+#line 734 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               _tmp69_ = _tmp68_;
+#line 734 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               _expr_size = _tmp69_;
+#line 734 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               _expr_index = -1;
+#line 734 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               while (TRUE) {
+#line 3272 "ScopeParser.c"
+                                                                       gint _tmp70_;
+                                                                       gint _tmp71_;
+                                                                       gint _tmp72_;
+                                                                       GeeArrayList* expr = NULL;
+                                                                       GeeArrayList* _tmp73_;
+                                                                       gint _tmp74_;
+                                                                       gpointer _tmp75_;
+                                                                       GeeArrayList* _tmp76_;
+                                                                       JSDOCTokenStream* _tmp77_;
+                                                                       JSDOCScope* _tmp78_;
+#line 734 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp70_ = _expr_index;
+#line 734 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _expr_index = _tmp70_ + 1;
+#line 734 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp71_ = _expr_index;
+#line 734 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp72_ = _expr_size;
+#line 734 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       if (!(_tmp71_ < _tmp72_)) {
+#line 734 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                               break;
+#line 3295 "ScopeParser.c"
+                                                                       }
+#line 734 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp73_ = _expr_list;
+#line 734 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp74_ = _expr_index;
+#line 734 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp75_ = gee_abstract_list_get ((GeeAbstractList*) _tmp73_, _tmp74_);
+#line 734 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       expr = (GeeArrayList*) _tmp75_;
+#line 736 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp76_ = expr;
+#line 736 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp77_ = jsdoc_token_stream_new (_tmp76_);
+#line 736 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _g_object_unref0 (self->priv->ts);
+#line 736 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       self->priv->ts = _tmp77_;
+#line 737 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _tmp78_ = _data5_->scope;
+#line 737 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       jsdoc_scope_parser_parseExpression (self, _tmp78_);
+#line 734 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                                       _g_object_unref0 (expr);
+#line 3319 "ScopeParser.c"
+                                                               }
+#line 734 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               _g_object_unref0 (_expr_list);
+#line 3323 "ScopeParser.c"
+                                                       }
+#line 739 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp79_ = curTS;
+#line 739 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp80_ = _g_object_ref0 (_tmp79_);
+#line 739 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _g_object_unref0 (self->priv->ts);
+#line 739 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       self->priv->ts = _tmp80_;
+#line 744 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _g_object_unref0 (curTS);
+#line 744 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       break;
+#line 3337 "ScopeParser.c"
+                                               }
+                                       }
+                               } else if (((_tmp14_ == ((0 != _tmp13_label5) ? _tmp13_label5 : (_tmp13_label5 = g_quark_from_static_string (")")))) || (_tmp14_ == ((0 != _tmp13_label6) ? _tmp13_label6 : (_tmp13_label6 = g_quark_from_static_string ("]"))))) || (_tmp14_ == ((0 != _tmp13_label7) ? _tmp13_label7 : (_tmp13_label7 = g_quark_from_static_string ("}"))))) {
+#line 676 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       switch (0) {
+#line 3343 "ScopeParser.c"
+                                               default:
+                                               {
+#line 754 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _g_object_unref0 (isObjectLitAr);
+#line 754 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       block5_data_unref (_data5_);
+#line 754 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _data5_ = NULL;
+#line 754 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       return;
+#line 3354 "ScopeParser.c"
+                                               }
+                                       }
+                               }
+#line 764 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               break;
+#line 3360 "ScopeParser.c"
+                       }
+#line 672 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                       case JSDOC_TOKEN_TYPE_STRN:
+#line 3364 "ScopeParser.c"
+                       {
+#line 771 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               break;
+#line 3368 "ScopeParser.c"
+                       }
+#line 672 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                       case JSDOC_TOKEN_TYPE_NAME:
+#line 3372 "ScopeParser.c"
+                       {
+                               JSDOCScopeParserMode _tmp81_;
+                               gchar* symbol = NULL;
+                               JSDOCToken* _tmp82_;
+                               const gchar* _tmp83_;
+                               gchar* _tmp84_;
+                               JSDOCTokenStream* _tmp85_;
+                               JSDOCToken* _tmp86_;
+                               JSDOCToken* _tmp87_;
+                               const gchar* _tmp88_;
+                               gboolean _tmp89_;
+                               const gchar* _tmp90_;
+                               JSDOCScopeParserMode _tmp91_;
+#line 776 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp81_ = self->priv->mode;
+#line 776 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               if (_tmp81_ == JSDOC_SCOPE_PARSER_MODE_BUILDING_SYMBOL_TREE) {
+#line 3390 "ScopeParser.c"
+                               } else {
+                               }
+#line 782 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp82_ = _data5_->token;
+#line 782 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp83_ = _tmp82_->data;
+#line 782 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp84_ = g_strdup (_tmp83_);
+#line 782 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               symbol = _tmp84_;
+#line 789 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp85_ = self->priv->ts;
+#line 789 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp86_ = jsdoc_token_stream_lookTok (_tmp85_, -1);
+#line 789 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp87_ = _tmp86_;
+#line 789 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp88_ = _tmp87_->data;
+#line 789 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp89_ = g_strcmp0 (_tmp88_, ".") == 0;
+#line 789 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _g_object_unref0 (_tmp87_);
+#line 789 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               if (_tmp89_) {
+#line 791 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       _g_free0 (symbol);
+#line 791 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       break;
+#line 3419 "ScopeParser.c"
+                               }
+#line 793 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp90_ = symbol;
+#line 793 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               if (g_strcmp0 (_tmp90_, "this") == 0) {
+#line 794 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       _g_free0 (symbol);
+#line 794 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       break;
+#line 3429 "ScopeParser.c"
+                               }
+#line 797 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp91_ = self->priv->mode;
+#line 797 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               if (_tmp91_ == JSDOC_SCOPE_PARSER_MODE_PASS2_SYMBOL_TREE) {
+#line 3435 "ScopeParser.c"
+                                       JSDOCIdentifier* identifier = NULL;
+                                       const gchar* _tmp92_;
+                                       JSDOCScope* _tmp93_;
+                                       JSDOCToken* _tmp94_;
+                                       JSDOCIdentifier* _tmp95_;
+                                       JSDOCIdentifier* _tmp96_;
+#line 799 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       _tmp92_ = symbol;
+#line 799 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       _tmp93_ = _data5_->scope;
+#line 799 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       _tmp94_ = _data5_->token;
+#line 799 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       _tmp95_ = jsdoc_scope_parser_getIdentifier (self, _tmp92_, _tmp93_, _tmp94_);
+#line 799 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       identifier = _tmp95_;
+#line 801 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       _tmp96_ = identifier;
+#line 801 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       if (_tmp96_ == NULL) {
+#line 3456 "ScopeParser.c"
+                                               gboolean _tmp97_ = FALSE;
+                                               const gchar* _tmp98_;
+                                               gint _tmp99_;
+                                               gint _tmp100_;
+#line 803 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               _tmp98_ = symbol;
+#line 803 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               _tmp99_ = strlen (_tmp98_);
+#line 803 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               _tmp100_ = _tmp99_;
+#line 803 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               if (_tmp100_ <= 3) {
+#line 3469 "ScopeParser.c"
+                                                       GeeArrayList* _tmp101_;
+                                                       const gchar* _tmp102_;
+                                                       gint _tmp103_;
+#line 803 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp101_ = jsdoc_scope_builtin;
+#line 803 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp102_ = symbol;
+#line 803 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp103_ = gee_abstract_list_index_of ((GeeAbstractList*) _tmp101_, _tmp102_);
+#line 803 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp97_ = _tmp103_ < 0;
+#line 3481 "ScopeParser.c"
+                                               } else {
+#line 803 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp97_ = FALSE;
+#line 3485 "ScopeParser.c"
+                                               }
+#line 803 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               if (_tmp97_) {
+#line 3489 "ScopeParser.c"
+                                                       JSDOCScope* _tmp104_;
+                                                       const gchar* _tmp105_;
+                                                       JSDOCToken* _tmp106_;
+                                                       JSDOCIdentifier* _tmp107_;
+                                                       JSDOCIdentifier* _tmp108_;
+                                                       JSDOCPacker* _tmp109_;
+                                                       const gchar* _tmp110_;
+                                                       JSDOCToken* _tmp111_;
+                                                       gint _tmp112_;
+                                                       const gchar* _tmp113_;
+                                                       gchar* _tmp114_;
+                                                       gchar* _tmp115_;
+#line 808 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp104_ = self->priv->globalScope;
+#line 808 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp105_ = symbol;
+#line 808 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp106_ = _data5_->token;
+#line 808 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp107_ = jsdoc_scope_declareIdentifier (_tmp104_, _tmp105_, _tmp106_);
+#line 808 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp108_ = _tmp107_;
+#line 808 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _g_object_unref0 (_tmp108_);
+#line 810 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp109_ = self->priv->packer;
+#line 810 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp110_ = self->priv->filename;
+#line 810 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp111_ = _data5_->token;
+#line 810 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp112_ = _tmp111_->line;
+#line 810 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp113_ = symbol;
+#line 810 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp114_ = g_strconcat ("Found an undeclared symbol: ", _tmp113_, NULL);
+#line 810 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp115_ = _tmp114_;
+#line 810 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       jsdoc_packer_logError (_tmp109_, JSDOC_PACKER_RESULT_TYPE_warn, _tmp110_, _tmp112_, _tmp115_);
+#line 810 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _g_free0 (_tmp115_);
+#line 3532 "ScopeParser.c"
+                                               } else {
+                                               }
+                                       } else {
+                                               JSDOCToken* _tmp116_;
+                                               JSDOCIdentifier* _tmp117_;
+                                               JSDOCIdentifier* _tmp118_;
+                                               JSDOCIdentifier* _tmp119_;
+                                               gint _tmp120_;
+#line 829 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               _tmp116_ = _data5_->token;
+#line 829 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               _tmp117_ = identifier;
+#line 829 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               _tmp118_ = _g_object_ref0 (_tmp117_);
+#line 829 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               _g_object_unref0 (_tmp116_->identifier);
+#line 829 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               _tmp116_->identifier = _tmp118_;
+#line 830 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               _tmp119_ = identifier;
+#line 830 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               _tmp120_ = _tmp119_->refcount;
+#line 830 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               _tmp119_->refcount = _tmp120_ + 1;
+#line 3557 "ScopeParser.c"
+                                       }
+#line 797 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       _g_object_unref0 (identifier);
+#line 3561 "ScopeParser.c"
+                               }
+#line 834 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _g_free0 (symbol);
+#line 834 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               break;
+#line 3567 "ScopeParser.c"
+                       }
+#line 672 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                       case JSDOC_TOKEN_TYPE_KEYW:
+#line 3571 "ScopeParser.c"
+                       {
+                               JSDOCToken* _tmp121_;
+                               JSDOCTokenName _tmp122_;
+                               gchar* symbol = NULL;
+                               JSDOCToken* _tmp124_;
+                               const gchar* _tmp125_;
+                               gchar* _tmp126_;
+                               JSDOCScopeParserMode _tmp127_;
+#line 845 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp121_ = _data5_->token;
+#line 845 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp122_ = _tmp121_->name;
+#line 845 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               if (_tmp122_ == JSDOC_TOKEN_NAME_FUNCTION) {
+#line 3586 "ScopeParser.c"
+                                       JSDOCScope* _tmp123_;
+#line 847 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       _tmp123_ = _data5_->scope;
+#line 847 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       jsdoc_scope_parser_parseFunctionDeclaration (self, _tmp123_);
+#line 848 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       break;
+#line 3594 "ScopeParser.c"
+                               }
+#line 852 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp124_ = _data5_->token;
+#line 852 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp125_ = _tmp124_->data;
+#line 852 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp126_ = g_strdup (_tmp125_);
+#line 852 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               symbol = _tmp126_;
+#line 853 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp127_ = self->priv->mode;
+#line 853 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               if (_tmp127_ == JSDOC_SCOPE_PARSER_MODE_BUILDING_SYMBOL_TREE) {
+#line 3608 "ScopeParser.c"
+                                       JSDOCToken* _tmp128_;
+                                       JSDOCTokenName _tmp129_;
+#line 855 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       _tmp128_ = _data5_->token;
+#line 855 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       _tmp129_ = _tmp128_->name;
+#line 855 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       if (_tmp129_ == JSDOC_TOKEN_NAME_EVAL) {
+#line 3617 "ScopeParser.c"
+                                               gboolean _tmp130_ = FALSE;
+                                               JSDOCToken* _tmp131_;
+                                               const gchar* _tmp132_;
+                                               gint _tmp133_;
+                                               gint _tmp134_;
+#line 860 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               _tmp131_ = _data5_->token;
+#line 860 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               _tmp132_ = _tmp131_->prefix;
+#line 860 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               _tmp133_ = strlen (_tmp132_);
+#line 860 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               _tmp134_ = _tmp133_;
+#line 860 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               if (_tmp134_ > 0) {
+#line 3633 "ScopeParser.c"
+                                                       JSDOCToken* _tmp135_;
+                                                       const gchar* _tmp136_;
+                                                       gboolean _tmp137_;
+#line 860 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp135_ = _data5_->token;
+#line 860 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp136_ = _tmp135_->prefix;
+#line 860 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp137_ = g_regex_match_simple ("eval:var:", _tmp136_, G_REGEX_CASELESS, 0);
+#line 860 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp130_ = _tmp137_;
+#line 3645 "ScopeParser.c"
+                                               } else {
+#line 860 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp130_ = FALSE;
+#line 3649 "ScopeParser.c"
+                                               }
+#line 860 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               if (_tmp130_) {
+#line 3653 "ScopeParser.c"
+                                                       GRegex* regex = NULL;
+                                                       GRegex* _tmp138_;
+                                                       GRegex* _tmp139_;
+                                                       JSDOCToken* _tmp140_;
+                                                       const gchar* _tmp141_;
+                                                       JSDOCToken* _tmp142_;
+                                                       const gchar* _tmp143_;
+                                                       gint _tmp144_;
+                                                       gint _tmp145_;
+                                                       gchar* _tmp146_;
+                                                       gchar* _tmp147_;
+#line 865 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp138_ = g_regex_new ("eval:var:([a-z_]+)", G_REGEX_CASELESS, 0, &_inner_error_);
+#line 865 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       regex = _tmp138_;
+#line 865 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 865 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               _g_free0 (symbol);
+#line 865 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               _g_object_unref0 (isObjectLitAr);
+#line 865 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               block5_data_unref (_data5_);
+#line 865 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               _data5_ = NULL;
+#line 865 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               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);
+#line 865 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               g_clear_error (&_inner_error_);
+#line 865 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               return;
+#line 3685 "ScopeParser.c"
+                                                       }
+#line 867 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp139_ = regex;
+#line 867 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp140_ = _data5_->token;
+#line 867 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp141_ = _tmp140_->prefix;
+#line 867 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp142_ = _data5_->token;
+#line 867 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp143_ = _tmp142_->prefix;
+#line 867 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp144_ = strlen (_tmp143_);
+#line 867 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp145_ = _tmp144_;
+#line 867 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp146_ = g_regex_replace_eval (_tmp139_, _tmp141_, (gssize) _tmp145_, 0, 0, ________lambda8__gregex_eval_callback, _data5_, &_inner_error_);
+#line 867 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp147_ = _tmp146_;
+#line 867 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _g_free0 (_tmp147_);
+#line 867 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 867 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               _g_regex_unref0 (regex);
+#line 867 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               _g_free0 (symbol);
+#line 867 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               _g_object_unref0 (isObjectLitAr);
+#line 867 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               block5_data_unref (_data5_);
+#line 867 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               _data5_ = NULL;
+#line 867 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               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);
+#line 867 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               g_clear_error (&_inner_error_);
+#line 867 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                               return;
+#line 3725 "ScopeParser.c"
+                                                       }
+#line 860 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _g_regex_unref0 (regex);
+#line 3729 "ScopeParser.c"
+                                               } else {
+                                                       JSDOCScope* _tmp148_;
+                                                       JSDOCPacker* _tmp149_;
+                                                       const gchar* _tmp150_;
+                                                       JSDOCToken* _tmp151_;
+                                                       gint _tmp152_;
+                                                       const gchar* _tmp153_;
+                                                       gchar* _tmp154_;
+                                                       gchar* _tmp155_;
+#line 883 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp148_ = _data5_->scope;
+#line 883 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       jsdoc_scope_parser_protectScopeFromObfuscation (self, _tmp148_);
+#line 885 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp149_ = self->priv->packer;
+#line 885 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp150_ = self->priv->filename;
+#line 885 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp151_ = _data5_->token;
+#line 885 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp152_ = _tmp151_->line;
+#line 885 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp153_ = symbol;
+#line 885 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp154_ = g_strconcat ("Using 'eval' is not recommended. use eval:var in comment before eval t" \
+"o enable compression ", _tmp153_, NULL);
+#line 885 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _tmp155_ = _tmp154_;
+#line 885 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       jsdoc_packer_logError (_tmp149_, JSDOC_PACKER_RESULT_TYPE_warn, _tmp150_, _tmp152_, _tmp155_);
+#line 885 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                                       _g_free0 (_tmp155_);
+#line 3761 "ScopeParser.c"
+                                               }
+                                       }
+                               }
+#line 900 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _g_free0 (symbol);
+#line 900 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               break;
+#line 3769 "ScopeParser.c"
+                       }
+                       default:
+                       {
+#line 904 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               break;
+#line 3775 "ScopeParser.c"
+                       }
+               }
+       }
+#line 909 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp156_ = self->priv->expN;
+#line 909 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       self->priv->expN = _tmp156_ - 1;
+#line 626 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _g_object_unref0 (isObjectLitAr);
+#line 626 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       block5_data_unref (_data5_);
+#line 626 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _data5_ = NULL;
+#line 3789 "ScopeParser.c"
+}
+
+
+static void jsdoc_scope_parser_parseCatch (JSDOCScopeParser* self, JSDOCScope* scope) {
+       JSDOCToken* token = NULL;
+       JSDOCTokenStream* _tmp0_;
+       JSDOCToken* _tmp1_;
+       JSDOCTokenStream* _tmp2_;
+       JSDOCToken* _tmp3_;
+       gchar* symbol = NULL;
+       JSDOCToken* _tmp4_;
+       GeeArrayList* _tmp5_;
+       gpointer _tmp6_;
+       GeeArrayList* _tmp7_;
+       gpointer _tmp8_;
+       JSDOCToken* _tmp9_;
+       const gchar* _tmp10_;
+       gchar* _tmp11_;
+       gchar* _tmp12_;
+       JSDOCScopeParserMode _tmp13_;
+#line 913 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       g_return_if_fail (self != NULL);
+#line 913 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       g_return_if_fail (scope != NULL);
+#line 918 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp0_ = self->priv->ts;
+#line 918 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp1_ = jsdoc_token_stream_nextTok (_tmp0_);
+#line 918 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       token = _tmp1_;
+#line 919 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp2_ = self->priv->ts;
+#line 919 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp3_ = jsdoc_token_stream_nextTok (_tmp2_);
+#line 919 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _g_object_unref0 (token);
+#line 919 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       token = _tmp3_;
+#line 927 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp4_ = token;
+#line 927 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp5_ = _tmp4_->items;
+#line 927 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp6_ = gee_abstract_list_get ((GeeAbstractList*) _tmp5_, 0);
+#line 927 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp7_ = (GeeArrayList*) _tmp6_;
+#line 927 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp8_ = gee_abstract_list_get ((GeeAbstractList*) _tmp7_, 0);
+#line 927 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp9_ = (JSDOCToken*) _tmp8_;
+#line 927 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp10_ = _tmp9_->data;
+#line 927 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp11_ = g_strdup (_tmp10_);
+#line 927 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp12_ = _tmp11_;
+#line 927 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _g_object_unref0 (_tmp9_);
+#line 927 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _g_object_unref0 (_tmp7_);
+#line 927 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       symbol = _tmp12_;
+#line 930 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp13_ = self->priv->mode;
+#line 930 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       if (_tmp13_ == JSDOC_SCOPE_PARSER_MODE_BUILDING_SYMBOL_TREE) {
+#line 3856 "ScopeParser.c"
+               JSDOCScope* _tmp14_;
+               const gchar* _tmp15_;
+               JSDOCToken* _tmp16_;
+               GeeArrayList* _tmp17_;
+               gpointer _tmp18_;
+               GeeArrayList* _tmp19_;
+               gpointer _tmp20_;
+               JSDOCToken* _tmp21_;
+               JSDOCIdentifier* _tmp22_;
+               JSDOCIdentifier* _tmp23_;
+#line 934 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp14_ = scope;
+#line 934 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp15_ = symbol;
+#line 934 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp16_ = token;
+#line 934 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp17_ = _tmp16_->items;
+#line 934 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp18_ = gee_abstract_list_get ((GeeAbstractList*) _tmp17_, 0);
+#line 934 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp19_ = (GeeArrayList*) _tmp18_;
+#line 934 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp20_ = gee_abstract_list_get ((GeeAbstractList*) _tmp19_, 0);
+#line 934 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp21_ = (JSDOCToken*) _tmp20_;
+#line 934 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp22_ = jsdoc_scope_declareIdentifier (_tmp14_, _tmp15_, _tmp21_);
+#line 934 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp23_ = _tmp22_;
+#line 934 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _g_object_unref0 (_tmp23_);
+#line 934 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _g_object_unref0 (_tmp21_);
+#line 934 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _g_object_unref0 (_tmp19_);
+#line 3893 "ScopeParser.c"
+       } else {
+               JSDOCIdentifier* identifier = NULL;
+               const gchar* _tmp24_;
+               JSDOCScope* _tmp25_;
+               JSDOCToken* _tmp26_;
+               GeeArrayList* _tmp27_;
+               gpointer _tmp28_;
+               GeeArrayList* _tmp29_;
+               gpointer _tmp30_;
+               JSDOCToken* _tmp31_;
+               JSDOCIdentifier* _tmp32_;
+               JSDOCIdentifier* _tmp33_;
+               JSDOCIdentifier* _tmp34_;
+               gint _tmp35_;
+#line 937 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp24_ = symbol;
+#line 937 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp25_ = scope;
+#line 937 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp26_ = token;
+#line 937 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp27_ = _tmp26_->items;
+#line 937 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp28_ = gee_abstract_list_get ((GeeAbstractList*) _tmp27_, 0);
+#line 937 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp29_ = (GeeArrayList*) _tmp28_;
+#line 937 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp30_ = gee_abstract_list_get ((GeeAbstractList*) _tmp29_, 0);
+#line 937 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp31_ = (JSDOCToken*) _tmp30_;
+#line 937 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp32_ = jsdoc_scope_parser_getIdentifier (self, _tmp24_, _tmp25_, _tmp31_);
+#line 937 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp33_ = _tmp32_;
+#line 937 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _g_object_unref0 (_tmp31_);
+#line 937 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _g_object_unref0 (_tmp29_);
+#line 937 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               identifier = _tmp33_;
+#line 938 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp34_ = identifier;
+#line 938 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp35_ = _tmp34_->refcount;
+#line 938 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp34_->refcount = _tmp35_ + 1;
+#line 930 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _g_object_unref0 (identifier);
+#line 3942 "ScopeParser.c"
+       }
+#line 913 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _g_free0 (symbol);
+#line 913 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _g_object_unref0 (token);
+#line 3948 "ScopeParser.c"
+}
+
+
+static void jsdoc_scope_parser_parseFunctionDeclaration (JSDOCScopeParser* self, JSDOCScope* scope) {
+       JSDOCToken* token = NULL;
+       JSDOCTokenStream* _tmp0_;
+       JSDOCToken* _tmp1_;
+       JSDOCToken* _tmp2_;
+       JSDOCTokenType _tmp3_;
+       JSDOCScope* fnScope = NULL;
+       JSDOCScopeParserMode _tmp34_;
+       GeeArrayList* args = NULL;
+       JSDOCToken* _tmp48_;
+       GeeArrayList* _tmp49_;
+       GeeArrayList* _tmp50_;
+       JSDOCTokenStream* _tmp77_;
+       JSDOCToken* _tmp78_;
+       JSDOCToken* _tmp79_;
+       JSDOCTokenStream* outTS = NULL;
+       JSDOCTokenStream* _tmp80_;
+       JSDOCTokenStream* _tmp81_;
+       JSDOCTokenStream* _tmp97_;
+       JSDOCTokenStream* _tmp98_;
+#line 945 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       g_return_if_fail (self != NULL);
+#line 945 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       g_return_if_fail (scope != NULL);
+#line 955 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp0_ = self->priv->ts;
+#line 955 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp1_ = jsdoc_token_stream_nextTok (_tmp0_);
+#line 955 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       token = _tmp1_;
+#line 956 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp2_ = token;
+#line 956 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp3_ = _tmp2_->type;
+#line 956 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       if (_tmp3_ == JSDOC_TOKEN_TYPE_NAME) {
+#line 3988 "ScopeParser.c"
+               JSDOCScopeParserMode _tmp4_;
+               JSDOCTokenStream* _tmp28_;
+               JSDOCToken* _tmp29_;
+#line 957 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp4_ = self->priv->mode;
+#line 957 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               if (_tmp4_ == JSDOC_SCOPE_PARSER_MODE_BUILDING_SYMBOL_TREE) {
+#line 3996 "ScopeParser.c"
+                       gchar* symbol = NULL;
+                       JSDOCToken* _tmp5_;
+                       const gchar* _tmp6_;
+                       gchar* _tmp7_;
+                       JSDOCScope* _tmp8_;
+                       const gchar* _tmp9_;
+                       JSDOCToken* _tmp10_;
+                       JSDOCIdentifier* _tmp11_;
+                       JSDOCIdentifier* _tmp12_;
+                       gboolean _tmp13_;
+                       JSDOCScope* _tmp23_;
+                       const gchar* _tmp24_;
+                       JSDOCToken* _tmp25_;
+                       JSDOCIdentifier* _tmp26_;
+                       JSDOCIdentifier* _tmp27_;
+#line 959 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                       _tmp5_ = token;
+#line 959 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                       _tmp6_ = _tmp5_->data;
+#line 959 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                       _tmp7_ = g_strdup (_tmp6_);
+#line 959 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                       symbol = _tmp7_;
+#line 960 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                       _tmp8_ = scope;
+#line 960 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                       _tmp9_ = symbol;
+#line 960 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                       _tmp10_ = token;
+#line 960 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                       _tmp11_ = jsdoc_scope_getIdentifier (_tmp8_, _tmp9_, _tmp10_);
+#line 960 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                       _tmp12_ = _tmp11_;
+#line 960 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                       _tmp13_ = _tmp12_ != NULL;
+#line 960 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                       _g_object_unref0 (_tmp12_);
+#line 960 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                       if (_tmp13_) {
+#line 4036 "ScopeParser.c"
+                               JSDOCPacker* _tmp14_;
+                               const gchar* _tmp15_;
+                               JSDOCToken* _tmp16_;
+                               gint _tmp17_;
+                               const gchar* _tmp18_;
+                               gchar* _tmp19_;
+                               gchar* _tmp20_;
+                               gchar* _tmp21_;
+                               gchar* _tmp22_;
+#line 963 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp14_ = self->priv->packer;
+#line 963 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp15_ = self->priv->filename;
+#line 963 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp16_ = token;
+#line 963 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp17_ = _tmp16_->line;
+#line 963 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp18_ = symbol;
+#line 963 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp19_ = g_strconcat ("The function ", _tmp18_, NULL);
+#line 963 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp20_ = _tmp19_;
+#line 963 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp21_ = g_strconcat (_tmp20_, " has already been declared in the same scope...", NULL);
+#line 963 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp22_ = _tmp21_;
+#line 963 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               jsdoc_packer_logError (_tmp14_, JSDOC_PACKER_RESULT_TYPE_warn, _tmp15_, _tmp17_, _tmp22_);
+#line 963 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _g_free0 (_tmp22_);
+#line 963 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _g_free0 (_tmp20_);
+#line 4070 "ScopeParser.c"
+                       }
+#line 973 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                       _tmp23_ = scope;
+#line 973 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                       _tmp24_ = symbol;
+#line 973 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                       _tmp25_ = token;
+#line 973 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                       _tmp26_ = jsdoc_scope_declareIdentifier (_tmp23_, _tmp24_, _tmp25_);
+#line 973 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                       _tmp27_ = _tmp26_;
+#line 973 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                       _g_object_unref0 (_tmp27_);
+#line 957 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                       _g_free0 (symbol);
+#line 4086 "ScopeParser.c"
+               }
+#line 975 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp28_ = self->priv->ts;
+#line 975 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp29_ = jsdoc_token_stream_nextTok (_tmp28_);
+#line 975 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _g_object_unref0 (token);
+#line 975 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               token = _tmp29_;
+#line 4096 "ScopeParser.c"
+       }
+#line 980 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       while (TRUE) {
+#line 4100 "ScopeParser.c"
+               JSDOCToken* _tmp30_;
+               const gchar* _tmp31_;
+               JSDOCTokenStream* _tmp32_;
+               JSDOCToken* _tmp33_;
+#line 980 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp30_ = token;
+#line 980 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp31_ = _tmp30_->data;
+#line 980 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               if (!(g_strcmp0 (_tmp31_, "(") != 0)) {
+#line 980 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                       break;
+#line 4113 "ScopeParser.c"
+               }
+#line 982 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp32_ = self->priv->ts;
+#line 982 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp33_ = jsdoc_token_stream_nextTok (_tmp32_);
+#line 982 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _g_object_unref0 (token);
+#line 982 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               token = _tmp33_;
+#line 4123 "ScopeParser.c"
+       }
+#line 988 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp34_ = self->priv->mode;
+#line 988 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       if (_tmp34_ == JSDOC_SCOPE_PARSER_MODE_BUILDING_SYMBOL_TREE) {
+#line 4129 "ScopeParser.c"
+               JSDOCScope* _tmp35_;
+               JSDOCToken* _tmp36_;
+               gint _tmp37_;
+               JSDOCToken* _tmp38_;
+               JSDOCScope* _tmp39_;
+               GeeHashMap* _tmp40_;
+               JSDOCToken* _tmp41_;
+               gint _tmp42_;
+               JSDOCScope* _tmp43_;
+#line 989 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp35_ = scope;
+#line 989 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp36_ = token;
+#line 989 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp37_ = _tmp36_->id;
+#line 989 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp38_ = token;
+#line 989 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp39_ = jsdoc_scope_new (1, _tmp35_, _tmp37_, "", _tmp38_);
+#line 989 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _g_object_unref0 (fnScope);
+#line 989 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               fnScope = _tmp39_;
+#line 993 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp40_ = self->priv->indexedScopes;
+#line 993 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp41_ = token;
+#line 993 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp42_ = _tmp41_->id;
+#line 993 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp43_ = fnScope;
+#line 993 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               gee_abstract_map_set ((GeeAbstractMap*) _tmp40_, (gpointer) ((gintptr) _tmp42_), _tmp43_);
+#line 4163 "ScopeParser.c"
+       } else {
+               GeeHashMap* _tmp44_;
+               JSDOCToken* _tmp45_;
+               gint _tmp46_;
+               gpointer _tmp47_;
+#line 997 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp44_ = self->priv->indexedScopes;
+#line 997 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp45_ = token;
+#line 997 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp46_ = _tmp45_->id;
+#line 997 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp47_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp44_, (gpointer) ((gintptr) _tmp46_));
+#line 997 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _g_object_unref0 (fnScope);
+#line 997 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               fnScope = (JSDOCScope*) _tmp47_;
+#line 4181 "ScopeParser.c"
+       }
+#line 1002 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp48_ = token;
+#line 1002 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp49_ = _tmp48_->items;
+#line 1002 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp50_ = _g_object_ref0 (_tmp49_);
+#line 1002 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       args = _tmp50_;
+#line 4191 "ScopeParser.c"
+       {
+               gint argpos = 0;
+#line 1003 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               argpos = 0;
+#line 4196 "ScopeParser.c"
+               {
+                       gboolean _tmp51_ = FALSE;
+#line 1003 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                       _tmp51_ = TRUE;
+#line 1003 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                       while (TRUE) {
+#line 4203 "ScopeParser.c"
+                               gint _tmp53_;
+                               GeeArrayList* _tmp54_;
+                               gint _tmp55_;
+                               gint _tmp56_;
+                               GeeArrayList* _tmp57_;
+                               gint _tmp58_;
+                               gpointer _tmp59_;
+                               GeeArrayList* _tmp60_;
+                               gpointer _tmp61_;
+                               gboolean _tmp62_ = FALSE;
+                               JSDOCToken* _tmp63_;
+                               JSDOCTokenType _tmp64_;
+#line 1003 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               if (!_tmp51_) {
+#line 4218 "ScopeParser.c"
+                                       gint _tmp52_;
+#line 1003 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       _tmp52_ = argpos;
+#line 1003 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       argpos = _tmp52_ + 1;
+#line 4224 "ScopeParser.c"
+                               }
+#line 1003 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp51_ = FALSE;
+#line 1003 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp53_ = argpos;
+#line 1003 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp54_ = args;
+#line 1003 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp55_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp54_);
+#line 1003 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp56_ = _tmp55_;
+#line 1003 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               if (!(_tmp53_ < _tmp56_)) {
+#line 1003 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       break;
+#line 4240 "ScopeParser.c"
+                               }
+#line 1005 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp57_ = args;
+#line 1005 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp58_ = argpos;
+#line 1005 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp59_ = gee_abstract_list_get ((GeeAbstractList*) _tmp57_, _tmp58_);
+#line 1005 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp60_ = (GeeArrayList*) _tmp59_;
+#line 1005 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp61_ = gee_abstract_list_get ((GeeAbstractList*) _tmp60_, 0);
+#line 1005 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _g_object_unref0 (token);
+#line 1005 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               token = (JSDOCToken*) _tmp61_;
+#line 1005 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _g_object_unref0 (_tmp60_);
+#line 1009 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp63_ = token;
+#line 1009 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               _tmp64_ = _tmp63_->type;
+#line 1009 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               if (_tmp64_ == JSDOC_TOKEN_TYPE_NAME) {
+#line 4264 "ScopeParser.c"
+                                       JSDOCScopeParserMode _tmp65_;
+#line 1009 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       _tmp65_ = self->priv->mode;
+#line 1009 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       _tmp62_ = _tmp65_ == JSDOC_SCOPE_PARSER_MODE_BUILDING_SYMBOL_TREE;
+#line 4270 "ScopeParser.c"
+                               } else {
+#line 1009 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       _tmp62_ = FALSE;
+#line 4274 "ScopeParser.c"
+                               }
+#line 1009 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               if (_tmp62_) {
+#line 4278 "ScopeParser.c"
+                                       gchar* symbol = NULL;
+                                       JSDOCToken* _tmp66_;
+                                       const gchar* _tmp67_;
+                                       gchar* _tmp68_;
+                                       JSDOCIdentifier* identifier = NULL;
+                                       JSDOCScope* _tmp69_;
+                                       const gchar* _tmp70_;
+                                       JSDOCToken* _tmp71_;
+                                       JSDOCIdentifier* _tmp72_;
+                                       gboolean _tmp73_ = FALSE;
+                                       const gchar* _tmp74_;
+#line 1010 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       _tmp66_ = token;
+#line 1010 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       _tmp67_ = _tmp66_->data;
+#line 1010 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       _tmp68_ = g_strdup (_tmp67_);
+#line 1010 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       symbol = _tmp68_;
+#line 1011 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       _tmp69_ = fnScope;
+#line 1011 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       _tmp70_ = symbol;
+#line 1011 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       _tmp71_ = token;
+#line 1011 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       _tmp72_ = jsdoc_scope_declareIdentifier (_tmp69_, _tmp70_, _tmp71_);
+#line 1011 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       identifier = _tmp72_;
+#line 1012 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       _tmp74_ = symbol;
+#line 1012 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       if (g_strcmp0 (_tmp74_, "$super") == 0) {
+#line 4312 "ScopeParser.c"
+                                               gint _tmp75_;
+#line 1012 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               _tmp75_ = argpos;
+#line 1012 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               _tmp73_ = _tmp75_ == 0;
+#line 4318 "ScopeParser.c"
+                                       } else {
+#line 1012 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               _tmp73_ = FALSE;
+#line 4322 "ScopeParser.c"
+                                       }
+#line 1012 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       if (_tmp73_) {
+#line 4326 "ScopeParser.c"
+                                               JSDOCIdentifier* _tmp76_;
+#line 1014 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               _tmp76_ = identifier;
+#line 1014 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                               _tmp76_->toMunge = FALSE;
+#line 4332 "ScopeParser.c"
+                                       }
+#line 1009 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       _g_object_unref0 (identifier);
+#line 1009 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                                       _g_free0 (symbol);
+#line 4338 "ScopeParser.c"
+                               }
+                       }
+               }
+       }
+#line 1020 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp77_ = self->priv->ts;
+#line 1020 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp78_ = jsdoc_token_stream_nextTok (_tmp77_);
+#line 1020 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _g_object_unref0 (token);
+#line 1020 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       token = _tmp78_;
+#line 1021 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp79_ = token;
+#line 1021 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       if (_tmp79_ == NULL) {
+#line 1022 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _g_object_unref0 (args);
+#line 1022 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _g_object_unref0 (fnScope);
+#line 1022 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _g_object_unref0 (token);
+#line 1022 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               return;
+#line 4363 "ScopeParser.c"
+       }
+#line 1032 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp80_ = self->priv->ts;
+#line 1032 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp81_ = _g_object_ref0 (_tmp80_);
+#line 1032 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       outTS = _tmp81_;
+#line 4371 "ScopeParser.c"
+       {
+               GeeArrayList* _tar_list = NULL;
+               JSDOCToken* _tmp82_;
+               GeeArrayList* _tmp83_;
+               GeeArrayList* _tmp84_;
+               gint _tar_size = 0;
+               GeeArrayList* _tmp85_;
+               gint _tmp86_;
+               gint _tmp87_;
+               gint _tar_index = 0;
+#line 1033 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp82_ = token;
+#line 1033 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp83_ = _tmp82_->items;
+#line 1033 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp84_ = _g_object_ref0 (_tmp83_);
+#line 1033 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tar_list = _tmp84_;
+#line 1033 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp85_ = _tar_list;
+#line 1033 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp86_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp85_);
+#line 1033 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp87_ = _tmp86_;
+#line 1033 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tar_size = _tmp87_;
+#line 1033 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tar_index = -1;
+#line 1033 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               while (TRUE) {
+#line 4402 "ScopeParser.c"
+                       gint _tmp88_;
+                       gint _tmp89_;
+                       gint _tmp90_;
+                       GeeArrayList* tar = NULL;
+                       GeeArrayList* _tmp91_;
+                       gint _tmp92_;
+                       gpointer _tmp93_;
+                       GeeArrayList* _tmp94_;
+                       JSDOCTokenStream* _tmp95_;
+                       JSDOCScope* _tmp96_;
+#line 1033 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                       _tmp88_ = _tar_index;
+#line 1033 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                       _tar_index = _tmp88_ + 1;
+#line 1033 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                       _tmp89_ = _tar_index;
+#line 1033 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                       _tmp90_ = _tar_size;
+#line 1033 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                       if (!(_tmp89_ < _tmp90_)) {
+#line 1033 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               break;
+#line 4425 "ScopeParser.c"
+                       }
+#line 1033 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                       _tmp91_ = _tar_list;
+#line 1033 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                       _tmp92_ = _tar_index;
+#line 1033 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                       _tmp93_ = gee_abstract_list_get ((GeeAbstractList*) _tmp91_, _tmp92_);
+#line 1033 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                       tar = (GeeArrayList*) _tmp93_;
+#line 1034 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                       _tmp94_ = tar;
+#line 1034 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                       _tmp95_ = jsdoc_token_stream_new (_tmp94_);
+#line 1034 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                       _g_object_unref0 (self->priv->ts);
+#line 1034 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                       self->priv->ts = _tmp95_;
+#line 1035 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                       _tmp96_ = fnScope;
+#line 1035 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                       jsdoc_scope_parser_parseScope (self, _tmp96_);
+#line 1033 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                       _g_object_unref0 (tar);
+#line 4449 "ScopeParser.c"
+               }
+#line 1033 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _g_object_unref0 (_tar_list);
+#line 4453 "ScopeParser.c"
+       }
+#line 1041 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp97_ = outTS;
+#line 1041 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp98_ = _g_object_ref0 (_tmp97_);
+#line 1041 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _g_object_unref0 (self->priv->ts);
+#line 1041 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       self->priv->ts = _tmp98_;
+#line 945 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _g_object_unref0 (outTS);
+#line 945 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _g_object_unref0 (args);
+#line 945 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _g_object_unref0 (fnScope);
+#line 945 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _g_object_unref0 (token);
+#line 4471 "ScopeParser.c"
+}
+
+
+static void jsdoc_scope_parser_protectScopeFromObfuscation (JSDOCScopeParser* self, JSDOCScope* scope) {
+       JSDOCScope* _tmp0_;
+       JSDOCScope* _tmp1_;
+       JSDOCScope* _tmp9_;
+#line 1050 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       g_return_if_fail (self != NULL);
+#line 1050 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       g_return_if_fail (scope != NULL);
+#line 1053 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp0_ = scope;
+#line 1053 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp1_ = self->priv->globalScope;
+#line 1053 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       if (_tmp0_ == _tmp1_) {
+#line 1056 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               return;
+#line 4491 "ScopeParser.c"
+       }
+#line 1060 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       while (TRUE) {
+#line 4495 "ScopeParser.c"
+               gboolean _tmp2_ = FALSE;
+               JSDOCScope* _tmp3_;
+               JSDOCScope* _tmp7_;
+               JSDOCScope* _tmp8_;
+#line 1060 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp3_ = scope;
+#line 1060 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               if (_tmp3_ != NULL) {
+#line 4504 "ScopeParser.c"
+                       JSDOCScope* _tmp4_;
+                       JSDOCScope* _tmp5_;
+                       JSDOCScope* _tmp6_;
+#line 1060 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                       _tmp4_ = scope;
+#line 1060 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                       _tmp5_ = _tmp4_->parent;
+#line 1060 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                       _tmp6_ = self->priv->globalScope;
+#line 1060 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                       _tmp2_ = _tmp5_ != _tmp6_;
+#line 4516 "ScopeParser.c"
+               } else {
+#line 1060 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                       _tmp2_ = FALSE;
+#line 4520 "ScopeParser.c"
+               }
+#line 1060 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               if (!_tmp2_) {
+#line 1060 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                       break;
+#line 4526 "ScopeParser.c"
+               }
+#line 1061 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp7_ = scope;
+#line 1061 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp8_ = _tmp7_->parent;
+#line 1061 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               scope = _tmp8_;
+#line 4534 "ScopeParser.c"
+       }
+#line 1065 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp9_ = scope;
+#line 1065 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       jsdoc_scope_preventMunging (_tmp9_);
+#line 4540 "ScopeParser.c"
+}
+
+
+static JSDOCIdentifier* jsdoc_scope_parser_getIdentifier (JSDOCScopeParser* self, const gchar* symbol, JSDOCScope* in_scope, JSDOCToken* token) {
+       JSDOCIdentifier* result = NULL;
+       JSDOCIdentifier* identifier = NULL;
+       JSDOCScope* scope = NULL;
+       JSDOCScope* _tmp0_;
+       JSDOCScope* _tmp1_;
+#line 1068 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 1068 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       g_return_val_if_fail (symbol != NULL, NULL);
+#line 1068 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       g_return_val_if_fail (in_scope != NULL, NULL);
+#line 1068 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       g_return_val_if_fail (token != NULL, NULL);
+#line 1071 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp0_ = in_scope;
+#line 1071 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 1071 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       scope = _tmp1_;
+#line 1072 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       while (TRUE) {
+#line 4566 "ScopeParser.c"
+               JSDOCScope* _tmp2_;
+               JSDOCScope* _tmp3_;
+               const gchar* _tmp4_;
+               JSDOCToken* _tmp5_;
+               JSDOCIdentifier* _tmp6_;
+               JSDOCIdentifier* _tmp7_;
+               JSDOCScope* _tmp8_;
+               JSDOCScope* _tmp9_;
+               JSDOCScope* _tmp10_;
+#line 1072 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp2_ = scope;
+#line 1072 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               if (!(_tmp2_ != NULL)) {
+#line 1072 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                       break;
+#line 4582 "ScopeParser.c"
+               }
+#line 1073 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp3_ = scope;
+#line 1073 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp4_ = symbol;
+#line 1073 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp5_ = token;
+#line 1073 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp6_ = jsdoc_scope_getIdentifier (_tmp3_, _tmp4_, _tmp5_);
+#line 1073 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _g_object_unref0 (identifier);
+#line 1073 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               identifier = _tmp6_;
+#line 1075 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp7_ = identifier;
+#line 1075 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               if (_tmp7_ != NULL) {
+#line 1076 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                       result = identifier;
+#line 1076 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                       _g_object_unref0 (scope);
+#line 1076 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                       return result;
+#line 4606 "ScopeParser.c"
+               }
+#line 1078 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp8_ = scope;
+#line 1078 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp9_ = _tmp8_->parent;
+#line 1078 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp10_ = _g_object_ref0 (_tmp9_);
+#line 1078 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _g_object_unref0 (scope);
+#line 1078 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               scope = _tmp10_;
+#line 4618 "ScopeParser.c"
+       }
+#line 1080 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       result = NULL;
+#line 1080 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _g_object_unref0 (scope);
+#line 1080 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _g_object_unref0 (identifier);
+#line 1080 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       return result;
+#line 4628 "ScopeParser.c"
+}
+
+
+void jsdoc_scope_parser_printWarnings (JSDOCScopeParser* self) {
+#line 1082 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       g_return_if_fail (self != NULL);
+#line 4635 "ScopeParser.c"
+       {
+               GeeArrayList* _w_list = NULL;
+               GeeArrayList* _tmp0_;
+               GeeArrayList* _tmp1_;
+               gint _w_size = 0;
+               GeeArrayList* _tmp2_;
+               gint _tmp3_;
+               gint _tmp4_;
+               gint _w_index = 0;
+#line 1084 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp0_ = self->priv->warnings;
+#line 1084 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 1084 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _w_list = _tmp1_;
+#line 1084 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp2_ = _w_list;
+#line 1084 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp3_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp2_);
+#line 1084 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _tmp4_ = _tmp3_;
+#line 1084 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _w_size = _tmp4_;
+#line 1084 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _w_index = -1;
+#line 1084 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               while (TRUE) {
+#line 4663 "ScopeParser.c"
+                       gint _tmp5_;
+                       gint _tmp6_;
+                       gint _tmp7_;
+                       gchar* w = NULL;
+                       GeeArrayList* _tmp8_;
+                       gint _tmp9_;
+                       gpointer _tmp10_;
+                       const gchar* _tmp11_;
+#line 1084 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                       _tmp5_ = _w_index;
+#line 1084 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                       _w_index = _tmp5_ + 1;
+#line 1084 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                       _tmp6_ = _w_index;
+#line 1084 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                       _tmp7_ = _w_size;
+#line 1084 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                       if (!(_tmp6_ < _tmp7_)) {
+#line 1084 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                               break;
+#line 4684 "ScopeParser.c"
+                       }
+#line 1084 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                       _tmp8_ = _w_list;
+#line 1084 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                       _tmp9_ = _w_index;
+#line 1084 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                       _tmp10_ = gee_abstract_list_get ((GeeAbstractList*) _tmp8_, _tmp9_);
+#line 1084 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                       w = (gchar*) _tmp10_;
+#line 1085 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                       _tmp11_ = w;
+#line 1085 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                       g_print ("%s\n", _tmp11_);
+#line 1084 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+                       _g_free0 (w);
+#line 4700 "ScopeParser.c"
+               }
+#line 1084 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+               _g_object_unref0 (_w_list);
+#line 4704 "ScopeParser.c"
+       }
+}
+
+
+static void jsdoc_scope_parser_class_init (JSDOCScopeParserClass * klass) {
+#line 12 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       jsdoc_scope_parser_parent_class = g_type_class_peek_parent (klass);
+#line 12 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       g_type_class_add_private (klass, sizeof (JSDOCScopeParserPrivate));
+#line 12 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       G_OBJECT_CLASS (klass)->finalize = jsdoc_scope_parser_finalize;
+#line 4716 "ScopeParser.c"
+}
+
+
+static void jsdoc_scope_parser_instance_init (JSDOCScopeParser * self) {
+#line 12 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       self->priv = JSDOC_SCOPE_PARSER_GET_PRIVATE (self);
+#line 26 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       self->priv->munge = TRUE;
+#line 28 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       self->priv->expN = 0;
+#line 29 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       self->priv->braceNesting = 0;
+#line 4729 "ScopeParser.c"
+}
+
+
+static void jsdoc_scope_parser_finalize (GObject * obj) {
+       JSDOCScopeParser * self;
+#line 12 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       self = G_TYPE_CHECK_INSTANCE_CAST (obj, JSDOC_TYPE_SCOPE_PARSER, JSDOCScopeParser);
+#line 14 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _g_object_unref0 (self->priv->ts);
+#line 15 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _g_object_unref0 (self->priv->warnings);
+#line 22 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _g_object_unref0 (self->priv->globalScope);
+#line 25 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _g_object_unref0 (self->priv->indexedScopes);
+#line 108 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _g_object_unref0 (self->priv->packer);
+#line 109 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       _g_free0 (self->priv->filename);
+#line 12 "/home/alan/gitlive/roojspacker/src/jsdoc/ScopeParser.vala"
+       G_OBJECT_CLASS (jsdoc_scope_parser_parent_class)->finalize (obj);
+#line 4751 "ScopeParser.c"
+}
+
+
+GType jsdoc_scope_parser_get_type (void) {
+       static volatile gsize jsdoc_scope_parser_type_id__volatile = 0;
+       if (g_once_init_enter (&jsdoc_scope_parser_type_id__volatile)) {
+               static const GTypeInfo g_define_type_info = { sizeof (JSDOCScopeParserClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) jsdoc_scope_parser_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (JSDOCScopeParser), 0, (GInstanceInitFunc) jsdoc_scope_parser_instance_init, NULL };
+               GType jsdoc_scope_parser_type_id;
+               jsdoc_scope_parser_type_id = g_type_register_static (G_TYPE_OBJECT, "JSDOCScopeParser", &g_define_type_info, 0);
+               g_once_init_leave (&jsdoc_scope_parser_type_id__volatile, jsdoc_scope_parser_type_id);
+       }
+       return jsdoc_scope_parser_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);
+}
+
+
+
diff --git a/jsdoc/ScopeParser.vala b/jsdoc/ScopeParser.vala
new file mode 100644 (file)
index 0000000..616fd23
--- /dev/null
@@ -0,0 +1,1091 @@
+
+
+namespace JSDOC {
+
+       public enum ScopeParserMode {
+               BUILDING_SYMBOL_TREE,
+               PASS2_SYMBOL_TREE
+       }
+        
+
+       public class ScopeParser : Object {
+
+               TokenStream ts;
+               Gee.ArrayList<string> warnings;
+
+        
+               static Gee.ArrayList<string> idents;
+               static bool initialized = false;
+
+
+               Scope globalScope;
+               ScopeParserMode mode;
+               //braceNesting : 0,
+               Gee.HashMap<int,Scope> indexedScopes;
+               bool munge =  true;
+
+               int expN =  0;  
+               int braceNesting = 0;
+               
+               
+               static void init()
+               {
+                       if (ScopeParser.initialized) {
+                               return;
+                       }
+                       string[] identsar = { 
+       
+                               "break",         
+                               "case",          
+                               "continue",     
+                               "default",      
+                               "delete",       
+                               "do",            
+                               "else",         
+                               "export",       
+                               "false",        
+                               "for",          
+                               "function",     
+                               "if",           
+                               "import",       
+                               "in",           
+                               "new",          
+                               "null",         
+                               "return",       
+                               "switch",       
+                               "this",         
+                               "true",         
+                               "typeof",       
+                               "var",          
+                               "void",         
+                               "while",        
+                               "with",         
+
+                               "catch",        
+                               "class",        
+                               "const",        
+                               "debugger",     
+                               "enum",         
+                               "extends",      
+                               "finally",      
+                               "super",        
+                               "throw",         
+                               "try",          
+
+                               "abstract",     
+                               "boolean",      
+                               "byte",         
+                               "char",         
+                               "double",       
+                               "final",        
+                               "float",        
+                               "goto",         
+                               "implements", 
+                               "instanceof",
+                               "int",           
+                               "interface",     
+                               "long",          
+                               "native",       
+                               "package",      
+                               "private",      
+                               "protected",     
+                               "public",        
+                               "short",        
+                               "static",       
+                               "synchronized",  
+                               "throws",        
+                               "transient",     
+                               "include",       
+                               "undefined"
+                       };
+                       ScopeParser.idents = new Gee.ArrayList<string>();
+                       for(var i = 0 ;   i < identsar.length;i++) {
+                               ScopeParser.idents.add(identsar[i]);
+                       }
+               }
+               
+               private Packer packer;
+               string filename;
+               public ScopeParser(TokenStream ts, Packer packer, string filename) {
+                       this.ts = ts; // {TokenStream}
+                       this.packer = packer;
+                       this.filename = filename;
+                       this.warnings = new Gee.ArrayList<string>();
+
+                       this.globalScope = new  Scope(-1, null, -1, "", null);
+                       this.indexedScopes = new Gee.HashMap<int,Scope>();
+       
+                       //this.indexedg = {};
+                       //this.timer = new Date() * 1;
+               }
+
+        
+       
+       
+               /*void warn(string s) 
+               {
+                       //print('****************' + s);
+                       this.warnings.add(s);
+                       //println("WARNING:" + htmlescape(s) + "<BR>");
+               }
+       */
+       
+               // defaults should not be initialized here =- otherwise they get duped on new, rather than initalized..
+       
+         
+
+
+
+
+               public void buildSymbolTree()  
+               {
+                       //println("<PRE>");
+                       
+                       this.ts.rewind();
+                       this.braceNesting = 0;
+                       
+                  // print(JSON.stringify(this.ts.tokens, null,4));
+                       
+                       
+                       this.globalScope =new  Scope(-1, null, -1, "", null);
+                       this.indexedScopes = new Gee.HashMap<int,Scope>();
+                       this.indexedScopes.set(0, this.globalScope );
+                       
+                       this.mode = ScopeParserMode.BUILDING_SYMBOL_TREE;
+                       
+                       this.parseScope(this.globalScope);
+                       
+               //       print("---------------END PASS 1 ---------------- \n");
+                       
+               }
+       
+               public void mungeSymboltree()
+               {
+                       if (!this.munge) {
+                           return;
+                       }
+
+                       // One problem with obfuscation resides in the use of undeclared
+                       // and un-namespaced global symbols that are 3 characters or less
+                       // in length. Here is an example:
+                       //
+                       //     var declaredGlobalVar;
+                       //
+                       //     function declaredGlobalFn() {
+                       //         var localvar;
+                       //         localvar = abc; // abc is an undeclared global symbol
+                       //     }
+                       //
+                       // In the example above, there is a slim chance that localvar may be
+                       // munged to 'abc', conflicting with the undeclared global symbol
+                       // abc, creating a potential bug. The following code detects such
+                       // global symbols. This must be done AFTER the entire file has been
+                       // parsed, and BEFORE munging the symbol tree. Note that declaring
+                       // extra symbols in the global scope won't hurt.
+                       //
+                       // Note: Since we go through all the tokens to do this, we also use
+                       // the opportunity to count how many times each identifier is used.
+
+                       this.ts.rewind();
+                       this.braceNesting = 0;
+                       this.mode = ScopeParserMode.PASS2_SYMBOL_TREE;
+                       
+                       //println("MUNGING?");
+                       
+                       this.parseScope(this.globalScope);
+                       
+
+                        
+                       this.globalScope.munge();
+                       
+                       // this.globalScope.dump();
+               }
+
+       
+
+
+               void parseScope(Scope scope)   // parse a token stream..
+               {
+                       //this.timerPrint("parseScope EnterScope"); 
+                       //this.log(">>> ENTER SCOPE" + this.scopes.length);
+                
+                       var isObjectLitAr = new Gee.ArrayList<bool>();
+                       isObjectLitAr.add(false);
+                
+                       
+                  
+                       //var scopeIndent = ''; 
+                       //this.scopes.forEach(function() {
+                       //    scopeIndent += '   '; 
+                       //});
+                       //print(">> ENTER SCOPE");
+                       
+                       
+                       
+                       
+                       var token = this.ts.lookTok(1);
+                       while (token != null) {
+                         //  this.timerPrint("parseScope AFTER lookT: " + token.toString()); 
+                           //this.dumpToken(token , this.scopes, this.braceNesting);
+                           //print("SCOPE: %s\n" , token.asString());
+                           //this.log(token.data);
+                           //if (token.type == 'NAME') {
+                           //    print('*' + token.data);
+                           //}
+                           switch(token.type) {
+                           
+                                       case TokenType.KEYW:
+                                       
+                                               switch(token.name) {
+                                                       case TokenName.VAR:
+                                                       case TokenName.CONST: // not really relivant as it's only mozzy that does this.
+                                                           //print('SCOPE-VAR:' + token.toString());
+                                                            
+                                                           //this.log("parseScope GOT VAR/CONST : " + token.toString()); 
+                                                           while (true) {
+                                                               token = this.ts.nextTok();
+                                                               //!this.debug|| print( token.toString());
+                                                              // print('SCOPE-VAR-VAL:' + JSON.stringify(token, null, 4));
+                                                               if (token == null) { // can return false at EOF!
+                                                                   break;
+                                                               }
+                                                               if (token.name == TokenName.VAR || token.data == ",") { // kludge..
+                                                                   continue;
+                                                               }
+                                                               //this.logR("parseScope GOT VAR  : <B>" + token.toString() + "</B>"); 
+                                                               if (token.type != TokenType.NAME) {
+                                                                       this.ts.printRange( int.max(this.ts.cursor-10,0), this.ts.cursor);
+                                                                       this.packer.logError(
+                                                                               Packer.ResultType.err,
+                                                                               this.filename,
+                                                                               token.line,
+                                                                               "var without indent"
+                                                                       );
+                                                                   //print( "var without ident");
+                                                                   //GLib.Process.exit (0);
+                                                               }
+                                                               
+
+                                                               if (this.mode == ScopeParserMode.BUILDING_SYMBOL_TREE) {
+                                                                   var identifier = scope.getIdentifier(token.data,token) ;
+                                                                   
+                                                                   if (identifier == null) {
+                                                                       scope.declareIdentifier(token.data, token);
+                                                                   } else {
+                                                                       token.identifier = identifier;
+                                                                           this.packer.logError(
+                                                                                               Packer.ResultType.warn,
+                                                                                               this.filename,
+                                                                                               token.line,
+                                                                                               "The variable '" +token.data + "' has already been declared in the same scope"
+                                                                                       );
+                                                                   }
+                                                               }
+
+                                                               token = this.ts.nextTok();
+                                                               //!this.debug|| print(token.toString());
+                                                               /*
+                                                               assert token.getType() == Token.SEMI ||
+                                                                       token.getType() == Token.ASSIGN ||
+                                                                       token.getType() == Token.COMMA ||
+                                                                       token.getType() == Token.IN;
+                                                               */
+                                                               if (token.name == TokenName.IN) {
+                                                                   break;
+                                                               } else {
+                                                                   //var bn = this.braceNesting;
+                                                                   var bn = this.braceNesting;
+                                                                   var nts = new Gee.ArrayList<Token>();
+                                                                   while (true) {
+                                                                       if (token == null  || token.type == TokenType.VOID || token.data == ",") {
+                                                                           break;
+                                                                       }
+                                                                       nts.add(token);
+                                                                       token = this.ts.nextTok();
+                                                                   }
+                                                                   if (nts.size > 0) {
+                                                                       var TS = this.ts;
+                                                                       this.ts = new TokenStream(nts);
+                                                                       this.parseExpression(scope);
+                                                                       this.ts = TS;
+                                                                   }
+                                                                      
+                                                                   this.braceNesting = bn;
+                                                                   //this.braceNesting = bn;
+                                                                   //this.logR("parseScope DONE  : <B>ParseExpression</B> - tok is:" + this.ts.lookT(0).toString()); 
+                                                                   
+                                                                   token = this.ts.lookTok(1);
+                                                                   //!this.debug|| 
+                                                                  // print("AFTER EXP: " + token.toString());
+                                                                   if (token.data == ";") {
+                                                                       break;
+                                                                   }
+                                                               }
+                                                           }
+                                                           
+                                                           //print("VAR:")
+                                                           //this.ts.dump(vstart , this.ts.cursor);
+                                                           
+                                                           break;
+                                                           
+                                                           
+                                                       case TokenName.FUNCTION:
+                                                           //if (this.mode == 'BUILDING_SYMBOL_TREE') 
+                                                           //    print('SCOPE-FUNC:' + JSON.stringify(token,null,4));
+                                                           //println("<i>"+token.data+"</i>");
+                                                            var bn = this.braceNesting;
+                                                           this.parseFunctionDeclaration(scope);
+                                                            this.braceNesting = bn;
+                                                           break;
+
+                                                       case TokenName.WITH:
+                                                           //print('SCOPE-WITH:' + token.toString());
+                                                           //println("<i>"+token.data+"</i>");   
+                                                           if (this.mode == ScopeParserMode.BUILDING_SYMBOL_TREE) {
+                                                               // Inside a 'with' block, it is impossible to figure out
+                                                               // statically whether a symbol is a local variable or an
+                                                               // object member. As a consequence, the only thing we can
+                                                               // do is turn the obfuscation off for the highest scope
+                                                               // containing the 'with' block.
+                                                               this.protectScopeFromObfuscation(scope);
+                                                           this.packer.logError(
+                                                                               Packer.ResultType.warn,
+                                                                               this.filename,
+                                                                               token.line,
+                                                                               "Using 'with' is not recommended as it reduces the level of compression"
+                                                                       );
+                                                               
+                                                                
+                                                           }
+                                                           break;
+
+                                                       case TokenName.CATCH:
+                                                           //print('SCOPE-CATCH:' + token.toString());
+                                                           //println("<i>"+token.data+"</i>");
+                                                           this.parseCatch(scope);
+                                                           break;
+
+
+
+                                                       default:    
+                                                               // print(" KEYW = %s\n", token.asString());
+                                                                
+                                               
+                                                            if (this.mode == ScopeParserMode.BUILDING_SYMBOL_TREE) {
+                                                                       
+                                                               if (token.name == TokenName.EVAL) {
+                                                                   //print("got token eval...prefix= %s\n", token.prefix);
+                                                                   
+                                                                   //print(JSON.stringify(token, null,4));
+                                                                   // look back one and see if we can find a comment!!!
+                                                                   //var prevTok = this.ts.look(-1,true);
+                                                                   //print("prev to eval = %s\n", prevTok.asString());
+                                                                   //if (prevTok.type == TokenType.COMM) {
+                                                                       //      print("previus to eval == comment\n%s\n" , prevTok.data);
+                                                                   if (token.prefix.length > 0 && Regex.match_simple ("eval",token.prefix)) {
+                                                                       // look for eval:var:noreplace\n
+                                                                       //print("MATCH!?");
+                                                                       
+                                                                       var regex = new GLib.Regex ("eval:var:([a-z_]+)",GLib.RegexCompileFlags.CASELESS );
+                        
+                                                                       regex.replace_eval (token.prefix, token.prefix.length, 0, 0, (match_info, result) => {
+                                                                                       var a =  match_info.fetch(1);
+                                                                                       //print("protect?: %s\n", a);
+                                                                           var hi = this.getIdentifier(a, scope, token);
+                                                                                  // println("PROTECT "+a+" from munge" + (hi ? "FOUND" : "MISSING"));
+                                                                           if (hi != null) {
+                                                                               //print("PROTECT "+a+" from munge\n");
+                                                                               //print(JSON.stringify(hi,null,4));
+                                                                               hi.toMunge = false;
+                                                                           }
+                                                                           return false;
+                                                                           
+                                                                       });
+                                                                       
+                                                                       
+                                                                   } else {
+                                                                       
+                                                                   
+                                                                       this.protectScopeFromObfuscation(scope);
+                                                                       
+                                                                       this.packer.logError(
+                                                                                               Packer.ResultType.warn,
+                                                                                               this.filename,
+                                                                                               token.line,
+                                                                                               "Using 'eval' is not recommended. (use  eval:var:noreplace in comments to optimize)"
+                                                                                       );
+                                                                        
+                                                                   }
+
+                                                               }
+
+                                                       
+                                                       
+
+                                                               }
+                                                               break; //???                                                    
+                                               }
+                                               break; // end KEYW
+                                       
+                                       case TokenType.PUNC:
+                                                       
+                                                       switch(token.name) {
+                                       
+                                       
+                                                               case TokenName.LEFT_CURLY: // {
+                                                               case TokenName.LEFT_PAREN: // (    
+                                                               case TokenName.LEFT_BRACE: // [
+                                                                       //print("SCOPE-CURLY/PAREN %d / KS= %d / IT=%d \n", token.props.size ,token.keyseq.size, token.items.size);
+                                                                       //println("<i>"+token.data+"</i>");
+                                                                       var curTS = this.ts;
+                                                                       if (token.props.size > 0) {
+                                                                           
+                                                                           // { a : ... , c : .... }
+                                                                           
+                                                                           for (var i = 0;i < token.keyseq.size; i++ ){ 
+                                                                           //var iter = token.props.map_iterator();
+                                                                                       var k =  token.keyseq.get(i);
+                                                                                       
+                                                                                       TokenKeyMap val = token.props.get(k);
+                                                                                       //print("SCOPE-PROPS GET (%d/%d): %s\n", i, token.keyseq.size,k);
+                                                                               
+                                                                             //  print('SCOPE-PROPS:' + JSON.stringify(token.props[prop],null,4));
+                                                                                       if (val == null || val.vals.size < 1) {
+                                                                                               continue;
+                                                                                       }
+                                                                               if (val.vals.get(0).data == "function") {
+                                                                                   // parse a function..
+                                                                                   this.ts = new TokenStream(val.vals);
+                                                                                   this.ts.nextTok();
+                                                                                   this.parseFunctionDeclaration(scope);
+                                                                                   
+                                                                                   continue;
+                                                                               }
+                                                                               // key value..
+                                                                               
+                                                                               this.ts = new TokenStream(val.vals);
+                                                                               this.parseExpression(scope);
+                                                                               
+                                                                           }
+                                                                           this.ts = curTS;
+                                                                           
+                                                                           // it's an object literal..
+                                                                           // the values could be replaced..
+                                                                           break;
+                                                                       }
+                                                                       
+                                                                       // ( ... ) or { .... } not object literals..
+                                                                       
+                                                                       
+                                                   for (var xx =0; xx < token.items.size; xx++) {
+                                                                       var expr = token.items.get(xx);
+                                                                       //token.items.forEach(function(expr) {
+                                                                               //print(expr.toString());
+                                                                              this.ts = new TokenStream(expr);
+                                                                               //if (curTS.data == '(') {
+                                                                                   this.parseScope(scope);
+                                                                               //} else {
+                                                                                 //  _this.parseExpression(scope)
+                                                                               //}
+                                                                             
+                                                                       }  
+                                                                       this.ts = curTS;
+                                                                       //print("NOT PROPS"); Seed.quit();
+                                                                       
+                                                                       //isObjectLitAr.push(false);
+                                                                       //this.braceNesting++;
+                                                                       
+                                                                       //print(">>>>>> OBJLIT PUSH(false)" + this.braceNesting);
+                                                                       break;
+
+                                                               case TokenName.RIGHT_CURLY: // }
+                                                                       //print("<< EXIT SCOPE");
+                                                                       return;
+                                                                       
+                                                               default:
+                                                                       break;
+                                               }
+                                               break;
+                                               
+                               case TokenType.STRN:
+                             
+                                       ///case "STRN.DOUBLE_QUOTE": // used for object lit detection.. case "STRN.SINGLE_QUOTE":
+                                 //  print('SCOPE-STRING:' + token.toString());
+                                   //println("<i>"+token.data+"</i>");
+
+                                   if (this.ts.lookTok(-1).data == "{" && this.ts.lookTok(1).data == ":") {
+                                       // then we are in an object lit.. -> we need to flag the brace as such...
+                                       isObjectLitAr.remove_at(isObjectLitAr.size-1);
+                                       isObjectLitAr.add(true);
+                                       //print(">>>>>> OBJLIT REPUSH(true)");
+                                   }
+                                   var isInObjectLitAr = isObjectLitAr.get(isObjectLitAr.size-1);
+                                   
+                                   if (isInObjectLitAr &&  this.ts.lookTok(1).data == ":" &&
+                                       ( this.ts.lookTok(-1).data == "{"  ||  this.ts.lookTok(-1).data == ":" )) {
+                                       // see if we can replace..
+                                       // remove the quotes..
+                                       // should do a bit more checking!!!! (what about wierd char's in the string..
+                                       var str = token.data.substring(1,token.data.length-1);
+                                       
+                                       if (Regex.match_simple ("^[a-z_]+$", str,GLib.RegexCompileFlags.CASELESS) && ScopeParser.idents.index_of(str) < 0) {
+                                           token.outData = str;
+                                       }
+                                       
+                                        
+                                       
+                                   }
+                                   
+                                   break;
+                               
+                               case TokenType.NAME:
+                                   // print("SCOPE got NAME:%s\n" , token.asString());
+                                   //print("DEAL WITH NAME:");
+                                   // got identifier..
+                                   // look for  { ** : <- indicates obj literal.. ** this could occur with numbers ..
+                                   // skip anyting with "." before it..!!
+                                   // print("prev0 = " + this.ts.lookTok(0).asString() +"\n");
+                                   // print("prev-1 = " + this.ts.lookTok(-1).asString() +"\n");                                    
+                                   if (this.ts.lookTok(-1).name == TokenName.DOT) {
+                                       // skip, it's an object prop.
+                                       // print("prev is a .dot.\n");
+                                       //println("<i>"+token.data+"</i>");
+                                       break;
+                                   }
+                                   //print("SYMBOL: " + token.toString());
+                                   
+                                   var symbol = token.data;
+                                   if (symbol == "this") {
+                                       // print("ignore 'this'\n");
+                                       break;
+                                   }
+                                   
+                                   if (this.mode == ScopeParserMode.PASS2_SYMBOL_TREE) {
+                                       
+                                       //println("GOT IDENT: -2 : " + this.ts.lookT(-2).toString() + " <BR> ..... -1 :  " +  this.ts.lookT(-1).toString() + " <BR> "); 
+                                       
+                                       //print ("MUNGE?" + symbol);
+                                       
+                                       //println("GOT IDENT: <B>" + symbol + "</B><BR/>");
+                                            
+                                           //println("GOT IDENT (2): <B>" + symbol + "</B><BR/>");
+                                       var identifier = this.getIdentifier(symbol, scope, token);
+                                       
+                                       
+                                       if (identifier == null) {
+                                                               // BUG!find out where builtin is defined...
+                                                               // print("new identifier\n");
+                                                               if (symbol.length <= 3 &&  Scope.builtin.index_of(symbol) < 0) {
+                                                                       // Here, we found an undeclared and un-namespaced symbol that is
+                                                                       // 3 characters or less in length. Declare it in the global scope.
+                                                                       // We don't need to declare longer symbols since they won't cause
+                                                                       // any conflict with other munged symbols.
+                                                                       this.globalScope.declareIdentifier(symbol, token);
+
+                                          this.packer.logError(
+                                                                               Packer.ResultType.warn,
+                                                                               this.filename,
+                                                                               token.line,
+                                                                               "Found an undeclared symbol: " + symbol
+                                                                       );
+
+                                           }
+                                           
+                                           //println("GOT IDENT IGNORE(3): <B>" + symbol + "</B><BR/>");
+                                       } else {
+                                               // print("existing identifier\n");
+                                           token.identifier = identifier;
+                                           identifier.refcount++;
+                                       }
+                                   }   
+                                   
+                                   break;
+                                   //println("<B>SID</B>");
+                               default:
+                                   
+                                   break;
+                               
+                               
+                           } // end switch
+                           
+                           
+                           //print("parseScope TOK : " + token.toString()); 
+                           token = this.ts.nextTok();
+                           //if (this.ts.nextT()) break;
+                           
+                       }
+                       //print("<<< EXIT SCOPE");
+                       //print("<<<<<<<EXIT SCOPE ERR?" +this.scopes.length);
+               }
+
+
+       
+               void parseExpression(Scope scope) 
+               {
+
+                       // Parse the expression until we encounter a comma or a semi-colon
+                       // in the same brace nesting, bracket nesting and paren nesting.
+                       // Parse functions if any...
+                       //println("<i>EXP</i><BR/>");
+                       //!this.debug || print("PARSE EXPR");
+                       this.expN++;
+                        
+                       // for printing stuff..
+                  
+                       
+                       
+
+                       //var expressionBraceNesting = this.braceNesting + 0;
+                       //var bracketNesting = 0;
+                       //var parensNesting = 0;
+                        
+                       var isObjectLitAr = new Gee.ArrayList<bool>();
+                       isObjectLitAr.add( false);
+                       
+                       
+                       Token token;    
+                       
+                       //print(scopeIndent + ">> ENTER EXPRESSION" + this.expN);
+                       while (null != (token = this.ts.nextTok())) {
+                
+                               
+                           
+                          /*
+                           // moved out of loop?
+                          currentScope = this.scopes[this.scopes.length-1];
+                           
+                           var scopeIndent = ''; 
+                           this.scopes.forEach(function() {
+                               scopeIndent += '   '; 
+                           });
+                          */ 
+                          
+                          //this.dumpToken(token,  this.scopes, this.braceNesting );
+                           //print("EXPR %s\n" ,  token.asString());
+                           
+                           
+                           //println("<i>"+token.data+"</i>");
+                           //this.log("EXP:" + token.data);
+                           switch (token.type) {
+                               case TokenType.PUNC:
+                                   //print("EXPR-PUNC:" + token.toString());
+                                   
+                                               switch(token.data) {
+
+                                                       case ";":
+                                                       //print("<< EXIT EXPRESSION");
+                                                               break;
+
+                                                       case ",":
+
+                                                               break;
+
+
+                                                       case "(": //Token.LP:
+                                                       case "{": //Token.LC:
+                                                       case "[": //Token.LB:
+                                                               //print('SCOPE-CURLY/PAREN/BRACE:' + token.toString());
+                                                               // print('SCOPE-CURLY/PAREN/BRACE:' + JSON.stringify(token, null,4));
+                                                               //println("<i>"+token.data+"</i>");
+                                                               var curTS = this.ts;
+                                                               if (token.keyseq.size > 0) {
+
+                                                                       for (var i = 0;i < token.keyseq.size; i++ ){ 
+                                                                       //var iter = token.props.map_iterator();
+                                                                               var k =  token.keyseq.get(i);
+                                                       
+                                                                               TokenKeyMap val = token.props.get(k);
+                                                                               
+                                                                               if (val == null) {
+                                                                                       print("failed  to get %s val from token %s\n", k, token.asString());
+                                                                                       continue;                                                                               
+                                                                               }
+
+                                                                               //if (val.vals.size < 1) {
+                                                                               //print(JSON.stringify(token.props, null,4));
+                                                                               //}
+
+
+                                                                               if (val.vals.size > 0 && val.vals.get(0).data == "function") {
+                                                                                       // parse a function..
+                                                                                       this.ts = new TokenStream(val.vals);
+                                                                                       this.ts.nextTok();
+                                                                                       this.parseFunctionDeclaration(scope);
+                                                                                       continue;
+                                                                               }
+                                                                               // key value..
+
+                                                                               this.ts = new TokenStream(val.vals);
+                                                                               this.parseExpression(scope);
+
+                                                                       }
+                                                                       this.ts = curTS;
+
+                                                                       // it's an object literal..
+                                                                       // the values could be replaced..
+                                                                       break;
+                                                               }
+
+
+
+                                                               foreach(var expr in token.items) {
+
+                                                                       this.ts = new TokenStream(expr);
+                                                                       this.parseExpression(scope);
+                                                               }
+                                                               this.ts = curTS;
+
+
+
+                                                               ///print(">>>>> EXP PUSH(false)"+this.braceNesting);
+                                                               break;
+
+                                      
+                                       
+                                        
+                                           
+                                       case ")": //Token.RP:
+                                       case "]": //Token.RB:
+                                       case "}": //Token.RB:
+                                           //print("<< EXIT EXPRESSION");
+                                           return;
+                                          
+        
+                            
+                                          // parensNesting++;
+                                          // break;
+
+                                       
+                                           
+                                   }
+                                   break;
+                                   
+                               case TokenType.STRN: // used for object lit detection..
+                                   //if (this.mode == 'BUILDING_SYMBOL_TREE')    
+                                       //print("EXPR-STR:" + JSON.stringify(token, null, 4));
+                              
+                                    
+                                   break;
+                               
+                                     
+                            
+                               case TokenType.NAME:
+                                   if (this.mode == ScopeParserMode.BUILDING_SYMBOL_TREE) {
+                                       
+                                       //print("EXPR-NAME:" + JSON.stringify(token, null, 4));
+                                   } else {
+                                       //print("EXPR-NAME:" + token.toString());
+                                   }
+                                   var symbol = token.data;
+                                   //print("expression got NAME = %s \n" , symbol);
+                                   //print("in NAME 0: " + this.ts.look(0).toString());
+                                   //print("in NAME 2: " + this.ts.lookTok(2).toString());
+                                   
+                                   //print(this.ts.lookTok(-1).data);
+                                   // prefixed with '.'
+                                   if (this.ts.lookTok(-1).data == ".") {
+                                       //skip '.'
+                                       break;
+                                   }
+                                   if (symbol == "this") {
+                                       break;
+                              }
+                                   
+                                   if (this.mode == ScopeParserMode.PASS2_SYMBOL_TREE) {
+
+                                       var identifier = this.getIdentifier(symbol, scope, token);
+                                       //println("<B>??</B>");
+                                       if (identifier == null) {
+
+                                           if (symbol.length <= 3 &&  Scope.builtin.index_of(symbol) < 0) {
+                                               // Here, we found an undeclared and un-namespaced symbol that is
+                                               // 3 characters or less in length. Declare it in the global scope.
+                                               // We don't need to declare longer symbols since they won't cause
+                                               // any conflict with other munged symbols.
+                                               this.globalScope.declareIdentifier(symbol, token);
+                                               
+                                               this.packer.logError(
+                                                                               Packer.ResultType.warn,
+                                                                               this.filename,
+                                                                               token.line,
+                                                                               "Found an undeclared symbol: " + symbol
+                                                                       );
+
+                                               
+                                               
+                                                
+                                               //print("Found an undeclared symbol: " + symbol + ' (line:' + token.line + ')');
+                                               //throw "OOPS";
+                                           } else {
+                                               //print("undeclared:" + token.toString())
+                                           }
+                                           
+                                           
+                                       } else {
+                                           //println("<B>++</B>");
+                                           token.identifier = identifier;
+                                           identifier.refcount++;
+                                       }
+                                       
+                                   }
+                                   break;
+                                   
+                                   
+                                   
+                                   
+                                   //println("<B>EID</B>");
+                               case TokenType.KEYW:   
+                                   //if (this.mode == 'BUILDING_SYMBOL_TREE') 
+                                   //    print("EXPR-KEYW:" + JSON.stringify(token, null, 4));
+                                   
+                                   //print('EXPR-KEYW:' + token.toString());
+                                   if (token.name == TokenName.FUNCTION) {
+                                       
+                                       this.parseFunctionDeclaration(scope);
+                                       break;
+                                   }
+                              
+                                    
+                                   var symbol = token.data;
+                                   if (this.mode == ScopeParserMode.BUILDING_SYMBOL_TREE) {
+                                       
+                                       if (token.name == TokenName.EVAL) {
+                                       
+                                       
+                                           //print(JSON.stringify(token,null,4));
+                                           
+                                           if (token.prefix.length > 0 && Regex.match_simple ("eval:var:", token.prefix,GLib.RegexCompileFlags.CASELESS)) {
+                                               // look for eval:var:noreplace\n
+                                              // print("GOT MATCH?");
+
+                                               
+                                          var regex = new GLib.Regex ("eval:var:([a-z_]+)",GLib.RegexCompileFlags.CASELESS );
+        
+                                               regex.replace_eval (token.prefix, token.prefix.length, 0, 0, (match_info, result) => {
+                                                       var a = match_info.fetch(0);
+                                                   //print("PROTECT: " + a);
+                                                   
+                                                   
+                                                   var hi = this.getIdentifier(a, scope, token);
+                                                  //println("PROTECT "+a+" from munge" + (hi ? "FOUND" : "MISSING"));
+                                                   if (hi != null) {
+                                                     //  println("PROTECT "+a+" from munge");
+                                                       hi.toMunge = false;
+                                                   }
+                                                   return false;
+                                                   
+                                               });
+                                               
+                                           } else {
+                                               this.protectScopeFromObfuscation(scope);
+                                               
+                                               this.packer.logError(
+                                                                               Packer.ResultType.warn,
+                                                                               this.filename,
+                                                                               token.line,
+                                                                               "Using 'eval' is not recommended. use eval:var in comment before eval to enable compression " + symbol
+                                                                       );
+
+                                               
+
+                                           }
+                                           
+
+                                       }
+                                     
+                                   } 
+                              break;
+                               default:
+                                   //if (this.mode == 'BUILDING_SYMBOL_TREE') 
+                                   //    print("EXPR-SKIP:" + JSON.stringify(token, null, 4));
+                                   break;
+                           }
+                           
+                       }
+                       //print("<< EXIT EXPRESSION");
+                       this.expN--;
+               }
+
+
+               void parseCatch(Scope scope) {
+
+                       
+                       //token = getToken(-1);
+                       //assert token.getType() == Token.CATCH;
+                       var token = this.ts.nextTok();
+                       token = this.ts.nextTok();
+                       
+                       
+                       //print(JSON.stringify(this.ts,null,4));
+                       //assert token.getType() == Token.LP; (
+                       //token = this.ts.nextTok();
+                       //assert token.getType() == Token.NAME;
+                       
+                       var symbol = token.items[0][0].data;
+                       
+
+                       if (this.mode == ScopeParserMode.BUILDING_SYMBOL_TREE) {
+                           // We must declare the exception identifier in the containing function
+                           // scope to avoid errors related to the obfuscation process. No need to
+                           // display a warning if the symbol was already declared here...
+                           scope.declareIdentifier(symbol, token.items[0][0]);
+                       } else {
+                           //?? why inc the refcount?? - that should be set when building the tree???
+                           var identifier = this.getIdentifier(symbol, scope, token.items[0][0]);
+                           identifier.refcount++;
+                       }
+                       
+                       //token = this.ts.nextTok();
+                       //assert token.getType() == Token.RP; // )
+               }
+       
+               void parseFunctionDeclaration (Scope scope) 
+               {
+                       //print("PARSE FUNCTION");
+                       
+                        
+                       // var b4braceNesting = this.braceNesting + 0;
+                       
+                       //this.logR("<B>PARSING FUNCTION</B>");
+                       
+
+                       var token = this.ts.nextTok();
+                       if (token.type == TokenType.NAME) {
+                           if (this.mode == ScopeParserMode.BUILDING_SYMBOL_TREE) {
+                               // Get the name of the function and declare it in the current scope.
+                               var symbol = token.data;
+                               if (scope.getIdentifier(symbol,token) != null) {
+                               
+                                
+                        this.packer.logError(
+                                                       Packer.ResultType.warn,
+                                                       this.filename,
+                                                       token.line,
+                                                       "The function " + symbol + " has already been declared in the same scope..."
+                                               );
+
+                               
+
+                               }
+                               scope.declareIdentifier(symbol,token);
+                           }
+                           token =  this.ts.nextTok();
+                       }
+                       
+                       
+                       // return function() {.... 
+                       while (token.data != "(") {
+                           //print(token.toString());
+                           token =  this.ts.nextTok();
+                            
+                       }
+                       
+                       Scope fnScope;
+                       //assert token.getType() == Token.LP;
+                       if (this.mode == ScopeParserMode.BUILDING_SYMBOL_TREE) {
+                           fnScope = new Scope(1, scope, token.id, "", token);
+                           
+                           //println("STORING SCOPE" + this.ts.cursor);
+                           
+                           this.indexedScopes.set(token.id,fnScope);
+                           
+                       } else {
+                           //qln("FETCHING SCOPE" + this.ts.cursor);
+                           fnScope = this.indexedScopes[token.id];
+                       }
+                       //if (this.mode == 'BUILDING_SYMBOL_TREE') 
+                       //  print('FUNC-PARSE:' + JSON.stringify(token,null,4));
+                       // Parse function arguments.
+                       var args = token.items;
+                       for (var argpos =0; argpos < args.size; argpos++) {
+                            
+                           token = args.get(argpos).get(0);
+                           //print ("FUNC ARGS: " + token.toString())
+                           //assert token.getType() == Token.NAME ||
+                           //        token.getType() == Token.COMMA;
+                           if (token.type == TokenType.NAME && this.mode == ScopeParserMode.BUILDING_SYMBOL_TREE) {
+                               var symbol = token.data;
+                               var identifier = fnScope.declareIdentifier(symbol,token);
+                               if (symbol == "$super" && argpos == 0) {
+                                   // Exception for Prototype 1.6...
+                                   identifier.toMunge = false;
+                               }
+                               //argpos++;
+                           }
+                       }
+                       
+                       token = this.ts.nextTok();
+                       if (token == null) {
+                               return;
+                       }
+                       //print('FUNC-BODY:' + JSON.stringify(token.items,null,4));
+                       //Seed.quit();
+                       //print(token.toString());
+                       // assert token.getType() == Token.LC;
+                       //this.braceNesting++;
+                       
+                       //token = this.ts.nextTok();
+                       //print(token.toString());
+                       var outTS = this.ts;
+                       foreach(var tar in token.items) {
+                               this.ts = new TokenStream(tar);
+                               this.parseScope(fnScope);
+                           
+                       }
+                       
+                       //print(JSON.stringify(this.ts,null,4));
+                       //this.parseScope(fnScope);
+                       this.ts = outTS;
+                       // now pop it off the stack!!!
+                  
+                       //this.braceNesting = b4braceNesting;
+                       //print("ENDFN -1: " + this.ts.lookTok(-1).toString());
+                       //print("ENDFN 0: " + this.ts.lookTok(0).toString());
+                       //print("ENDFN 1: " + this.ts.lookTok(1).toString());
+               }
+       
+               void protectScopeFromObfuscation (Scope scope) {
+                           //assert scope != null;
+                       
+                       if (scope == this.globalScope) {
+                           // The global scope does not get obfuscated,
+                           // so we don't need to worry about it...
+                           return;
+                       }
+
+                       // Find the highest local scope containing the specified scope.
+                       while (scope != null && scope.parent != this.globalScope) {
+                           scope = scope.parent;
+                       }
+                       //assert scope.getParentScope() == globalScope;
+                       scope.preventMunging();
+               }
+        
+               Identifier? getIdentifier(string symbol, Scope in_scope, Token token) 
+               {
+                       Identifier identifier;
+                       var scope = in_scope;
+                       while (scope != null) {
+                           identifier = scope.getIdentifier(symbol, token);
+                           //println("ScopeParser.getIdentgetUsedSymbols("+symbol+")=" + scope.getUsedSymbols().join(','));
+                           if (identifier != null) {
+                               return identifier;
+                           }
+                           scope = scope.parent;
+                       }
+                       return null;
+               }
+               public void printWarnings()
+               {
+                       foreach(var w in this.warnings) {
+                               print("%s\n",w);
+                       }
+               }
+               
+       }
+}
+
diff --git a/jsdoc/Symbol.c b/jsdoc/Symbol.c
new file mode 100644 (file)
index 0000000..041d7cf
--- /dev/null
@@ -0,0 +1,6647 @@
+/* Symbol.c generated by valac 0.36.6, the Vala compiler
+ * generated from Symbol.vala, do not modify */
+
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gee.h>
+#include <stdlib.h>
+#include <string.h>
+#include <json-glib/json-glib.h>
+
+
+#define JSDOC_TYPE_SYMBOL (jsdoc_symbol_get_type ())
+#define JSDOC_SYMBOL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_SYMBOL, JSDOCSymbol))
+#define JSDOC_SYMBOL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_SYMBOL, JSDOCSymbolClass))
+#define JSDOC_IS_SYMBOL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_SYMBOL))
+#define JSDOC_IS_SYMBOL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_SYMBOL))
+#define JSDOC_SYMBOL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_SYMBOL, JSDOCSymbolClass))
+
+typedef struct _JSDOCSymbol JSDOCSymbol;
+typedef struct _JSDOCSymbolClass JSDOCSymbolClass;
+typedef struct _JSDOCSymbolPrivate JSDOCSymbolPrivate;
+
+#define JSDOC_TYPE_DOC_TAG (jsdoc_doc_tag_get_type ())
+#define JSDOC_DOC_TAG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_DOC_TAG, JSDOCDocTag))
+#define JSDOC_DOC_TAG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_DOC_TAG, JSDOCDocTagClass))
+#define JSDOC_IS_DOC_TAG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_DOC_TAG))
+#define JSDOC_IS_DOC_TAG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_DOC_TAG))
+#define JSDOC_DOC_TAG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_DOC_TAG, JSDOCDocTagClass))
+
+typedef struct _JSDOCDocTag JSDOCDocTag;
+typedef struct _JSDOCDocTagClass JSDOCDocTagClass;
+
+#define JSDOC_TYPE_DOC_COMMENT (jsdoc_doc_comment_get_type ())
+#define JSDOC_DOC_COMMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_DOC_COMMENT, JSDOCDocComment))
+#define JSDOC_DOC_COMMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_DOC_COMMENT, JSDOCDocCommentClass))
+#define JSDOC_IS_DOC_COMMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_DOC_COMMENT))
+#define JSDOC_IS_DOC_COMMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_DOC_COMMENT))
+#define JSDOC_DOC_COMMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_DOC_COMMENT, JSDOCDocCommentClass))
+
+typedef struct _JSDOCDocComment JSDOCDocComment;
+typedef struct _JSDOCDocCommentClass JSDOCDocCommentClass;
+#define _g_free0(var) (var = (g_free (var), NULL))
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+typedef struct _JSDOCDocCommentPrivate JSDOCDocCommentPrivate;
+
+#define JSDOC_TYPE_DOC_TAG_TITLE (jsdoc_doc_tag_title_get_type ())
+typedef struct _JSDOCDocTagPrivate JSDOCDocTagPrivate;
+#define _g_regex_unref0(var) ((var == NULL) ? NULL : (var = (g_regex_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 _JSDOCSymbol {
+       GObject parent_instance;
+       JSDOCSymbolPrivate * priv;
+       GeeArrayList* augments;
+       GeeArrayList* methods;
+       GeeArrayList* properties;
+       GeeArrayList* returns;
+       GeeArrayList* childClasses;
+       GeeArrayList* inheritsFrom;
+       GeeHashMap* cfgs;
+       JSDOCDocComment* comment;
+       gchar* alias;
+       gchar* desc;
+       gchar* isa;
+       gboolean isEvent;
+       gboolean isConstant;
+       gboolean isIgnored;
+       gboolean isInner;
+       gboolean isNamespace;
+       gboolean isPrivate;
+       gboolean isStatic;
+       gchar* memberOf;
+};
+
+struct _JSDOCSymbolClass {
+       GObjectClass parent_class;
+};
+
+struct _JSDOCSymbolPrivate {
+       gchar* private_string_name;
+       gchar* _assigned_name;
+       gchar* defaultValue;
+       GeeArrayList* private_doctag_params;
+       GeeArrayList* exceptions;
+       GeeArrayList* requires;
+       GeeArrayList* see;
+       gchar* addOn;
+       gchar* author;
+       gchar* classDesc;
+       gchar* deprecated;
+       gchar* example;
+       gchar* since;
+       gchar* type;
+       gchar* version;
+};
+
+struct _JSDOCDocComment {
+       GObject parent_instance;
+       JSDOCDocCommentPrivate * priv;
+       gboolean isUserComment;
+       gboolean hasTags;
+       gchar* src;
+       GeeArrayList* tags;
+};
+
+struct _JSDOCDocCommentClass {
+       GObjectClass parent_class;
+};
+
+typedef enum  {
+       JSDOC_DOC_TAG_TITLE_NO_VALUE,
+       JSDOC_DOC_TAG_TITLE_PARAM,
+       JSDOC_DOC_TAG_TITLE_PROPERTY,
+       JSDOC_DOC_TAG_TITLE_CFG,
+       JSDOC_DOC_TAG_TITLE_EXAMPLE,
+       JSDOC_DOC_TAG_TITLE_SINGLETON,
+       JSDOC_DOC_TAG_TITLE_AUTHOR,
+       JSDOC_DOC_TAG_TITLE_METHOD,
+       JSDOC_DOC_TAG_TITLE_DESC,
+       JSDOC_DOC_TAG_TITLE_OVERVIEW,
+       JSDOC_DOC_TAG_TITLE_SINCE,
+       JSDOC_DOC_TAG_TITLE_CONSTANT,
+       JSDOC_DOC_TAG_TITLE_VERSION,
+       JSDOC_DOC_TAG_TITLE_DEPRECATED,
+       JSDOC_DOC_TAG_TITLE_SEE,
+       JSDOC_DOC_TAG_TITLE_CLASS,
+       JSDOC_DOC_TAG_TITLE_NAMESPACE,
+       JSDOC_DOC_TAG_TITLE_CONSTRUCTOR,
+       JSDOC_DOC_TAG_TITLE_STATIC,
+       JSDOC_DOC_TAG_TITLE_INNER,
+       JSDOC_DOC_TAG_TITLE_FIELD,
+       JSDOC_DOC_TAG_TITLE_FUNCTION,
+       JSDOC_DOC_TAG_TITLE_EVENT,
+       JSDOC_DOC_TAG_TITLE_NAME,
+       JSDOC_DOC_TAG_TITLE_RETURN,
+       JSDOC_DOC_TAG_TITLE_THROWS,
+       JSDOC_DOC_TAG_TITLE_REQUIRES,
+       JSDOC_DOC_TAG_TITLE_TYPE,
+       JSDOC_DOC_TAG_TITLE_PRIVATE,
+       JSDOC_DOC_TAG_TITLE_IGNORE,
+       JSDOC_DOC_TAG_TITLE_ARGUMENTS,
+       JSDOC_DOC_TAG_TITLE_EXTENDS,
+       JSDOC_DOC_TAG_TITLE_DEFAULT,
+       JSDOC_DOC_TAG_TITLE_MEMBEROF,
+       JSDOC_DOC_TAG_TITLE_PUBLIC,
+       JSDOC_DOC_TAG_TITLE_SCOPE,
+       JSDOC_DOC_TAG_TITLE_SCOPEALIAS
+} JSDOCDocTagTitle;
+
+struct _JSDOCDocTag {
+       GObject parent_instance;
+       JSDOCDocTagPrivate * priv;
+       JSDOCDocTagTitle title;
+       gchar* type;
+       gchar* name;
+       gboolean isOptional;
+       gchar* defaultValue;
+       gchar* desc;
+       GeeArrayList* optvalues;
+       gchar* memberOf;
+};
+
+struct _JSDOCDocTagClass {
+       GObjectClass parent_class;
+};
+
+
+static gpointer jsdoc_symbol_parent_class = NULL;
+extern gboolean jsdoc_symbol_regex_init;
+gboolean jsdoc_symbol_regex_init = FALSE;
+extern gchar* jsdoc_symbol_srcFile;
+gchar* jsdoc_symbol_srcFile = NULL;
+extern gchar* jsdoc_doc_parser_currentSourceFile;
+
+GType jsdoc_symbol_get_type (void) G_GNUC_CONST;
+GType jsdoc_doc_tag_get_type (void) G_GNUC_CONST;
+GType jsdoc_doc_comment_get_type (void) G_GNUC_CONST;
+#define JSDOC_SYMBOL_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), JSDOC_TYPE_SYMBOL, JSDOCSymbolPrivate))
+enum  {
+       JSDOC_SYMBOL_DUMMY_PROPERTY,
+       JSDOC_SYMBOL_PRIVATE_NAME_PROPERTY,
+       JSDOC_SYMBOL_NAME_PROPERTY,
+       JSDOC_SYMBOL_PARAMS_PROPERTY
+};
+gchar* jsdoc_symbol_asString (JSDOCSymbol* self);
+const gchar* jsdoc_symbol_get_name (JSDOCSymbol* self);
+void jsdoc_symbol_initArrays (JSDOCSymbol* self);
+JSDOCDocComment* jsdoc_doc_comment_new (const gchar* comment);
+JSDOCDocComment* jsdoc_doc_comment_construct (GType object_type, const gchar* comment);
+JSDOCSymbol* jsdoc_symbol_new_new_builtin (const gchar* name);
+JSDOCSymbol* jsdoc_symbol_construct_new_builtin (GType object_type, const gchar* name);
+void jsdoc_symbol_set_private_name (JSDOCSymbol* self, const gchar* value);
+JSDOCSymbol* jsdoc_symbol_new_new_populate_with_args (const gchar* name, GeeArrayList* params, const gchar* isa, JSDOCDocComment* comment);
+JSDOCSymbol* jsdoc_symbol_construct_new_populate_with_args (GType object_type, const gchar* name, GeeArrayList* params, const gchar* isa, JSDOCDocComment* comment);
+static void jsdoc_symbol_set_private_string_params (JSDOCSymbol* self, GeeArrayList* value);
+gboolean jsdoc_symbol_is (JSDOCSymbol* self, const gchar* what);
+static void jsdoc_symbol_tagsFromComment (JSDOCSymbol* self);
+GType jsdoc_doc_tag_title_get_type (void) G_GNUC_CONST;
+GeeArrayList* jsdoc_doc_comment_getTag (JSDOCDocComment* self, JSDOCDocTagTitle tagTitle);
+static void jsdoc_symbol_set_private_params (JSDOCSymbol* self, GeeArrayList* value);
+static void jsdoc_symbol_addProperty (JSDOCSymbol* self, JSDOCSymbol* symbol);
+void jsdoc_doc_parser_addSymbol (JSDOCSymbol* symbol);
+void jsdoc_symbol_addConfig (JSDOCSymbol* self, JSDOCDocTag* docTag);
+gboolean jsdoc_symbol_isaClass (JSDOCSymbol* self);
+gboolean jsdoc_symbol_isBuiltin (JSDOCSymbol* self);
+gboolean jsdoc_symbol_set_isBuiltin (const gchar* name);
+static void jsdoc_symbol_setType (JSDOCSymbol* self, const gchar* comment, gboolean overwrite);
+gchar* jsdoc_doc_comment_unwrapComment (const gchar* comment);
+void jsdoc_symbol_inherit (JSDOCSymbol* self, JSDOCSymbol* symbol);
+static gboolean jsdoc_symbol_hasMember (JSDOCSymbol* self, const gchar* name);
+static gboolean jsdoc_symbol_hasMethod (JSDOCSymbol* self, const gchar* name);
+static gboolean jsdoc_symbol_hasProperty (JSDOCSymbol* self, const gchar* name);
+void jsdoc_symbol_addMember (JSDOCSymbol* self, JSDOCSymbol* symbol);
+static void jsdoc_symbol_addMethod (JSDOCSymbol* self, JSDOCSymbol* symbol);
+void jsdoc_symbol_addDocTag (JSDOCSymbol* self, JSDOCDocTag* docTag);
+GeeArrayList* jsdoc_symbol_configToArray (JSDOCSymbol* self);
+gchar* jsdoc_symbol_makeFuncSkel (JSDOCSymbol* self);
+GeeArrayList* jsdoc_symbol_get_params (JSDOCSymbol* self);
+gchar* jsdoc_symbol_makeMethodSkel (JSDOCSymbol* self);
+gchar* jsdoc_doc_tag_asString (JSDOCDocTag* self);
+JsonArray* jsdoc_symbol_paramsToJson (JSDOCSymbol* self);
+JsonArray* jsdoc_symbol_returnsToJson (JSDOCSymbol* self);
+JSDOCSymbol* jsdoc_symbol_new (void);
+JSDOCSymbol* jsdoc_symbol_construct (GType object_type);
+JSDOCDocTag* jsdoc_doc_tag_new (const gchar* in_src);
+JSDOCDocTag* jsdoc_doc_tag_construct (GType object_type, const gchar* in_src);
+static void jsdoc_symbol_finalize (GObject * obj);
+static void _vala_jsdoc_symbol_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
+static void _vala_jsdoc_symbol_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
+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 GRegex* _tmp_regex_0 = NULL;
+static GRegex* _tmp_regex_1 = NULL;
+static GRegex* _tmp_regex_2 = NULL;
+
+gchar* jsdoc_symbol_asString (JSDOCSymbol* self) {
+       gchar* result = NULL;
+       const gchar* _tmp0_ = NULL;
+       gboolean _tmp1_;
+       const gchar* _tmp2_ = NULL;
+       gboolean _tmp3_;
+       const gchar* _tmp4_ = NULL;
+       gboolean _tmp5_;
+       const gchar* _tmp6_ = NULL;
+       gboolean _tmp7_;
+       const gchar* _tmp8_;
+       const gchar* _tmp9_;
+       const gchar* _tmp10_;
+       const gchar* _tmp11_;
+       gchar* _tmp12_;
+#line 132 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 138 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp1_ = self->isStatic;
+#line 138 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       if (_tmp1_) {
+#line 138 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp0_ = "static";
+#line 264 "Symbol.c"
+       } else {
+#line 138 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp0_ = "";
+#line 268 "Symbol.c"
+       }
+#line 139 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp3_ = self->isEvent;
+#line 139 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       if (_tmp3_) {
+#line 139 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp2_ = "EV";
+#line 276 "Symbol.c"
+       } else {
+#line 139 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp2_ = "";
+#line 280 "Symbol.c"
+       }
+#line 140 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp5_ = self->isConstant;
+#line 140 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       if (_tmp5_) {
+#line 140 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp4_ = "CO";
+#line 288 "Symbol.c"
+       } else {
+#line 140 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp4_ = "";
+#line 292 "Symbol.c"
+       }
+#line 141 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp7_ = self->isNamespace;
+#line 141 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       if (_tmp7_) {
+#line 141 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp6_ = "NS";
+#line 300 "Symbol.c"
+       } else {
+#line 141 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp6_ = "";
+#line 304 "Symbol.c"
+       }
+#line 134 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp8_ = self->memberOf;
+#line 134 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp9_ = jsdoc_symbol_get_name (self);
+#line 134 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp10_ = _tmp9_;
+#line 134 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp11_ = self->priv->_assigned_name;
+#line 134 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp12_ = g_strdup_printf ("NAME: %s:%s   ASNAME: %s : %s%s%s%s", _tmp8_, _tmp10_, _tmp11_, _tmp0_, _tmp2_, _tmp4_, _tmp6_);
+#line 134 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       result = _tmp12_;
+#line 134 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       return result;
+#line 320 "Symbol.c"
+}
+
+
+void jsdoc_symbol_initArrays (JSDOCSymbol* self) {
+       GeeArrayList* _tmp0_;
+       gchar* _tmp1_;
+       GeeArrayList* _tmp2_;
+       GeeArrayList* _tmp3_;
+       GeeArrayList* _tmp4_;
+       GeeArrayList* _tmp5_;
+       GeeArrayList* _tmp6_;
+       GeeArrayList* _tmp7_;
+       GeeHashMap* _tmp8_;
+       GeeArrayList* _tmp9_;
+       GeeArrayList* _tmp10_;
+       JSDOCDocComment* _tmp11_;
+       JSDOCDocComment* _tmp12_;
+#line 157 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       g_return_if_fail (self != NULL);
+#line 166 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp0_ = gee_array_list_new (JSDOC_TYPE_DOC_TAG, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL);
+#line 166 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_object_unref0 (self->priv->exceptions);
+#line 166 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       self->priv->exceptions = _tmp0_;
+#line 169 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp1_ = g_strdup ("OBJECT");
+#line 169 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_free0 (self->isa);
+#line 169 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       self->isa = _tmp1_;
+#line 170 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp2_ = gee_array_list_new (JSDOC_TYPE_SYMBOL, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL);
+#line 170 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_object_unref0 (self->methods);
+#line 170 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       self->methods = _tmp2_;
+#line 172 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp3_ = gee_array_list_new (JSDOC_TYPE_SYMBOL, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL);
+#line 172 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_object_unref0 (self->properties);
+#line 172 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       self->properties = _tmp3_;
+#line 173 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp4_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL);
+#line 173 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_object_unref0 (self->priv->requires);
+#line 173 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       self->priv->requires = _tmp4_;
+#line 174 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp5_ = gee_array_list_new (JSDOC_TYPE_DOC_TAG, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL);
+#line 174 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_object_unref0 (self->returns);
+#line 174 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       self->returns = _tmp5_;
+#line 175 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp6_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL);
+#line 175 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_object_unref0 (self->priv->see);
+#line 175 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       self->priv->see = _tmp6_;
+#line 176 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp7_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL);
+#line 176 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_object_unref0 (self->augments);
+#line 176 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       self->augments = _tmp7_;
+#line 179 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp8_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, JSDOC_TYPE_DOC_TAG, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 179 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_object_unref0 (self->cfgs);
+#line 179 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       self->cfgs = _tmp8_;
+#line 181 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp9_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL);
+#line 181 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_object_unref0 (self->inheritsFrom);
+#line 181 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       self->inheritsFrom = _tmp9_;
+#line 183 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp10_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL);
+#line 183 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_object_unref0 (self->childClasses);
+#line 183 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       self->childClasses = _tmp10_;
+#line 185 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp11_ = jsdoc_doc_comment_new ("");
+#line 185 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_object_unref0 (self->comment);
+#line 185 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       self->comment = _tmp11_;
+#line 186 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp12_ = self->comment;
+#line 186 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp12_->isUserComment = FALSE;
+#line 416 "Symbol.c"
+}
+
+
+JSDOCSymbol* jsdoc_symbol_construct_new_builtin (GType object_type, const gchar* name) {
+       JSDOCSymbol * self = NULL;
+       const gchar* _tmp0_;
+       gchar* _tmp1_;
+       const gchar* _tmp2_;
+       const gchar* _tmp3_;
+       const gchar* _tmp4_;
+       gchar* _tmp5_;
+       gchar* _tmp6_;
+       JSDOCDocComment* _tmp7_;
+       JSDOCDocComment* _tmp8_;
+       gchar* _tmp9_;
+#line 191 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       g_return_val_if_fail (name != NULL, NULL);
+#line 191 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       self = (JSDOCSymbol*) g_object_new (object_type, NULL);
+#line 194 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       jsdoc_symbol_initArrays (self);
+#line 195 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp0_ = jsdoc_doc_parser_currentSourceFile;
+#line 195 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp1_ = g_strdup (_tmp0_);
+#line 195 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_free0 (jsdoc_symbol_srcFile);
+#line 195 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       jsdoc_symbol_srcFile = _tmp1_;
+#line 196 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp2_ = name;
+#line 196 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       jsdoc_symbol_set_private_name (self, _tmp2_);
+#line 197 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp3_ = jsdoc_symbol_get_name (self);
+#line 197 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp4_ = _tmp3_;
+#line 197 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp5_ = g_strdup (_tmp4_);
+#line 197 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_free0 (self->alias);
+#line 197 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       self->alias = _tmp5_;
+#line 198 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp6_ = g_strdup ("CONSTRUCTOR");
+#line 198 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_free0 (self->isa);
+#line 198 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       self->isa = _tmp6_;
+#line 199 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp7_ = jsdoc_doc_comment_new ("");
+#line 199 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_object_unref0 (self->comment);
+#line 199 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       self->comment = _tmp7_;
+#line 200 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp8_ = self->comment;
+#line 200 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp8_->isUserComment = FALSE;
+#line 201 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       self->isNamespace = FALSE;
+#line 202 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp9_ = g_strdup ("");
+#line 202 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_free0 (jsdoc_symbol_srcFile);
+#line 202 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       jsdoc_symbol_srcFile = _tmp9_;
+#line 203 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       self->isPrivate = FALSE;
+#line 191 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       return self;
+#line 488 "Symbol.c"
+}
+
+
+JSDOCSymbol* jsdoc_symbol_new_new_builtin (const gchar* name) {
+#line 191 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       return jsdoc_symbol_construct_new_builtin (JSDOC_TYPE_SYMBOL, name);
+#line 495 "Symbol.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 227 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       return self ? g_object_ref (self) : NULL;
+#line 502 "Symbol.c"
+}
+
+
+JSDOCSymbol* jsdoc_symbol_construct_new_populate_with_args (GType object_type, const gchar* name, GeeArrayList* params, const gchar* isa, JSDOCDocComment* comment) {
+       JSDOCSymbol * self = NULL;
+       const gchar* _tmp0_;
+       const gchar* _tmp1_;
+       const gchar* _tmp2_;
+       gchar* _tmp3_;
+       GeeArrayList* _tmp4_;
+       const gchar* _tmp5_ = NULL;
+       const gchar* _tmp6_;
+       gchar* _tmp8_;
+       JSDOCDocComment* _tmp9_;
+       JSDOCDocComment* _tmp10_;
+       const gchar* _tmp11_;
+       gchar* _tmp12_;
+       gboolean _tmp13_ = FALSE;
+       gboolean _tmp14_;
+#line 213 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       g_return_val_if_fail (name != NULL, NULL);
+#line 213 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       g_return_val_if_fail (params != NULL, NULL);
+#line 213 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       g_return_val_if_fail (isa != NULL, NULL);
+#line 213 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       g_return_val_if_fail (comment != NULL, NULL);
+#line 213 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       self = (JSDOCSymbol*) g_object_new (object_type, NULL);
+#line 220 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       jsdoc_symbol_initArrays (self);
+#line 223 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp0_ = name;
+#line 223 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       jsdoc_symbol_set_private_name (self, _tmp0_);
+#line 224 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp1_ = jsdoc_symbol_get_name (self);
+#line 224 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp2_ = _tmp1_;
+#line 224 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp3_ = g_strdup (_tmp2_);
+#line 224 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_free0 (self->alias);
+#line 224 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       self->alias = _tmp3_;
+#line 225 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp4_ = params;
+#line 225 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       jsdoc_symbol_set_private_string_params (self, _tmp4_);
+#line 226 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp6_ = isa;
+#line 226 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       if (g_strcmp0 (_tmp6_, "VIRTUAL") == 0) {
+#line 226 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp5_ = "OBJECT";
+#line 558 "Symbol.c"
+       } else {
+               const gchar* _tmp7_;
+#line 226 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp7_ = isa;
+#line 226 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp5_ = _tmp7_;
+#line 565 "Symbol.c"
+       }
+#line 226 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp8_ = g_strdup (_tmp5_);
+#line 226 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_free0 (self->isa);
+#line 226 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       self->isa = _tmp8_;
+#line 227 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp9_ = comment;
+#line 227 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp10_ = _g_object_ref0 (_tmp9_);
+#line 227 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_object_unref0 (self->comment);
+#line 227 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       self->comment = _tmp10_;
+#line 229 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp11_ = jsdoc_doc_parser_currentSourceFile;
+#line 229 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp12_ = g_strdup (_tmp11_);
+#line 229 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_free0 (jsdoc_symbol_srcFile);
+#line 229 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       jsdoc_symbol_srcFile = _tmp12_;
+#line 233 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp14_ = jsdoc_symbol_is (self, "FILE");
+#line 233 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       if (_tmp14_) {
+#line 593 "Symbol.c"
+               const gchar* _tmp15_;
+               gint _tmp16_;
+               gint _tmp17_;
+#line 233 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp15_ = self->alias;
+#line 233 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp16_ = strlen (_tmp15_);
+#line 233 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp17_ = _tmp16_;
+#line 233 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp13_ = _tmp17_ < 1;
+#line 605 "Symbol.c"
+       } else {
+#line 233 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp13_ = FALSE;
+#line 609 "Symbol.c"
+       }
+#line 233 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       if (_tmp13_) {
+#line 613 "Symbol.c"
+               const gchar* _tmp18_;
+               gchar* _tmp19_;
+#line 234 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp18_ = jsdoc_symbol_srcFile;
+#line 234 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp19_ = g_strdup (_tmp18_);
+#line 234 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _g_free0 (self->alias);
+#line 234 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               self->alias = _tmp19_;
+#line 624 "Symbol.c"
+       }
+#line 237 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       jsdoc_symbol_tagsFromComment (self);
+#line 213 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       return self;
+#line 630 "Symbol.c"
+}
+
+
+JSDOCSymbol* jsdoc_symbol_new_new_populate_with_args (const gchar* name, GeeArrayList* params, const gchar* isa, JSDOCDocComment* comment) {
+#line 213 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       return jsdoc_symbol_construct_new_populate_with_args (JSDOC_TYPE_SYMBOL, name, params, isa, comment);
+#line 637 "Symbol.c"
+}
+
+
+static gchar* string_strip (const gchar* self) {
+       gchar* result = NULL;
+       gchar* _result_ = NULL;
+       gchar* _tmp0_;
+       const gchar* _tmp1_;
+#line 1234 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 1235 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp0_ = g_strdup (self);
+#line 1235 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _result_ = _tmp0_;
+#line 1236 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp1_ = _result_;
+#line 1236 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       g_strstrip (_tmp1_);
+#line 1237 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       result = _result_;
+#line 1237 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       return result;
+#line 660 "Symbol.c"
+}
+
+
+static inline GRegex* _thread_safe_regex_init (GRegex** re, const gchar * pattern, GRegexMatchFlags match_options) {
+#line 668 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       if (g_once_init_enter ((volatile gsize*) re)) {
+#line 668 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               GRegex* val = g_regex_new (pattern, match_options, 0, NULL);
+#line 668 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               g_once_init_leave ((volatile gsize*) re, (gsize) val);
+#line 671 "Symbol.c"
+       }
+#line 668 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       return *re;
+#line 675 "Symbol.c"
+}
+
+
+static gpointer _g_regex_ref0 (gpointer self) {
+#line 668 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       return self ? g_regex_ref (self) : NULL;
+#line 682 "Symbol.c"
+}
+
+
+static void jsdoc_symbol_tagsFromComment (JSDOCSymbol* self) {
+       GeeArrayList* authors = NULL;
+       JSDOCDocComment* _tmp0_;
+       GeeArrayList* _tmp1_;
+       GeeArrayList* _tmp2_;
+       gint _tmp3_;
+       gint _tmp4_;
+       GeeArrayList* mth = NULL;
+       JSDOCDocComment* _tmp25_;
+       GeeArrayList* _tmp26_;
+       GeeArrayList* _tmp27_;
+       gint _tmp28_;
+       gint _tmp29_;
+       GeeArrayList* descs = NULL;
+       JSDOCDocComment* _tmp31_;
+       GeeArrayList* _tmp32_;
+       GeeArrayList* _tmp33_;
+       gint _tmp34_;
+       gint _tmp35_;
+       gboolean _tmp55_;
+       GeeArrayList* sinces = NULL;
+       JSDOCDocComment* _tmp84_;
+       GeeArrayList* _tmp85_;
+       GeeArrayList* _tmp86_;
+       gint _tmp87_;
+       gint _tmp88_;
+       JSDOCDocComment* _tmp108_;
+       GeeArrayList* _tmp109_;
+       GeeArrayList* _tmp110_;
+       gint _tmp111_;
+       gint _tmp112_;
+       gboolean _tmp113_;
+       GeeArrayList* versions = NULL;
+       JSDOCDocComment* _tmp115_;
+       GeeArrayList* _tmp116_;
+       GeeArrayList* _tmp117_;
+       gint _tmp118_;
+       gint _tmp119_;
+       GeeArrayList* deprecateds = NULL;
+       JSDOCDocComment* _tmp139_;
+       GeeArrayList* _tmp140_;
+       GeeArrayList* _tmp141_;
+       gint _tmp142_;
+       gint _tmp143_;
+       GeeArrayList* examples = NULL;
+       JSDOCDocComment* _tmp163_;
+       GeeArrayList* _tmp164_;
+       GeeArrayList* _tmp165_;
+       gint _tmp166_;
+       gint _tmp167_;
+       GeeArrayList* sees = NULL;
+       JSDOCDocComment* _tmp173_;
+       GeeArrayList* _tmp174_;
+       GeeArrayList* _tmp175_;
+       gint _tmp176_;
+       gint _tmp177_;
+       GeeArrayList* classes = NULL;
+       JSDOCDocComment* _tmp192_;
+       GeeArrayList* _tmp193_;
+       GeeArrayList* _tmp194_;
+       gint _tmp195_;
+       gint _tmp196_;
+       GeeArrayList* namespaces = NULL;
+       JSDOCDocComment* _tmp203_;
+       GeeArrayList* _tmp204_;
+       GeeArrayList* _tmp205_;
+       gint _tmp206_;
+       gint _tmp207_;
+       GeeArrayList* params = NULL;
+       JSDOCDocComment* _tmp216_;
+       GeeArrayList* _tmp217_;
+       GeeArrayList* _tmp218_;
+       gint _tmp219_;
+       gint _tmp220_;
+       JSDOCDocComment* _tmp286_;
+       GeeArrayList* _tmp287_;
+       GeeArrayList* _tmp288_;
+       gint _tmp289_;
+       gint _tmp290_;
+       gboolean _tmp291_;
+       JSDOCDocComment* _tmp293_;
+       GeeArrayList* _tmp294_;
+       GeeArrayList* _tmp295_;
+       gint _tmp296_;
+       gint _tmp297_;
+       gboolean _tmp298_;
+       JSDOCDocComment* _tmp300_;
+       GeeArrayList* _tmp301_;
+       GeeArrayList* _tmp302_;
+       gint _tmp303_;
+       gint _tmp304_;
+       gboolean _tmp305_;
+       JSDOCDocComment* _tmp306_;
+       GeeArrayList* _tmp307_;
+       GeeArrayList* _tmp308_;
+       gint _tmp309_;
+       gint _tmp310_;
+       gboolean _tmp311_;
+       JSDOCDocComment* _tmp312_;
+       GeeArrayList* _tmp313_;
+       GeeArrayList* _tmp314_;
+       gint _tmp315_;
+       gint _tmp316_;
+       gboolean _tmp317_;
+       JSDOCDocComment* _tmp319_;
+       GeeArrayList* _tmp320_;
+       GeeArrayList* _tmp321_;
+       gint _tmp322_;
+       gint _tmp323_;
+       gboolean _tmp324_;
+       gboolean _tmp326_ = FALSE;
+       JSDOCDocComment* _tmp327_;
+       GeeArrayList* _tmp328_;
+       GeeArrayList* _tmp329_;
+       gint _tmp330_;
+       gint _tmp331_;
+       gboolean _tmp332_;
+       GeeArrayList* events = NULL;
+       JSDOCDocComment* _tmp335_;
+       GeeArrayList* _tmp336_;
+       GeeArrayList* _tmp337_;
+       gint _tmp338_;
+       gint _tmp339_;
+       GeeArrayList* names = NULL;
+       JSDOCDocComment* _tmp341_;
+       GeeArrayList* _tmp342_;
+       GeeArrayList* _tmp343_;
+       gint _tmp344_;
+       gint _tmp345_;
+       GeeArrayList* properties = NULL;
+       JSDOCDocComment* _tmp352_;
+       GeeArrayList* _tmp353_;
+       GeeArrayList* _tmp354_;
+       gint _tmp355_;
+       gint _tmp356_;
+       GeeArrayList* conf = NULL;
+       JSDOCDocComment* _tmp451_;
+       GeeArrayList* _tmp452_;
+       GeeArrayList* _tmp453_;
+       gint _tmp454_;
+       gint _tmp455_;
+       GeeArrayList* returns = NULL;
+       JSDOCDocComment* _tmp466_;
+       GeeArrayList* _tmp467_;
+       GeeArrayList* _tmp468_;
+       gint _tmp469_;
+       gint _tmp470_;
+       JSDOCDocComment* _tmp493_;
+       GeeArrayList* _tmp494_;
+       GeeArrayList* requires = NULL;
+       JSDOCDocComment* _tmp495_;
+       GeeArrayList* _tmp496_;
+       GeeArrayList* _tmp497_;
+       gint _tmp498_;
+       gint _tmp499_;
+       GeeArrayList* types = NULL;
+       JSDOCDocComment* _tmp515_;
+       GeeArrayList* _tmp516_;
+       GeeArrayList* _tmp517_;
+       gint _tmp518_;
+       gint _tmp519_;
+       gboolean _tmp525_ = FALSE;
+       JSDOCDocComment* _tmp526_;
+       GeeArrayList* _tmp527_;
+       GeeArrayList* _tmp528_;
+       gint _tmp529_;
+       gint _tmp530_;
+       gboolean _tmp531_;
+       JSDOCDocComment* _tmp533_;
+       GeeArrayList* _tmp534_;
+       GeeArrayList* _tmp535_;
+       gint _tmp536_;
+       gint _tmp537_;
+       gboolean _tmp538_;
+       GeeArrayList* defaults = NULL;
+       JSDOCDocComment* _tmp567_;
+       GeeArrayList* _tmp568_;
+       GeeArrayList* _tmp569_;
+       gint _tmp570_;
+       gint _tmp571_;
+       GeeArrayList* memberOfs = NULL;
+       JSDOCDocComment* _tmp578_;
+       GeeArrayList* _tmp579_;
+       GeeArrayList* _tmp580_;
+       gint _tmp581_;
+       gint _tmp582_;
+       JSDOCDocComment* _tmp621_;
+       GeeArrayList* _tmp622_;
+       GeeArrayList* _tmp623_;
+       gint _tmp624_;
+       gint _tmp625_;
+       gboolean _tmp626_;
+       GError * _inner_error_ = NULL;
+#line 241 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       g_return_if_fail (self != NULL);
+#line 243 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp0_ = self->comment;
+#line 243 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp1_ = jsdoc_doc_comment_getTag (_tmp0_, JSDOC_DOC_TAG_TITLE_AUTHOR);
+#line 243 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       authors = _tmp1_;
+#line 244 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp2_ = authors;
+#line 244 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp3_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp2_);
+#line 244 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp4_ = _tmp3_;
+#line 244 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       if (_tmp4_ > 0) {
+#line 895 "Symbol.c"
+               gchar* _tmp5_;
+#line 246 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp5_ = g_strdup ("");
+#line 246 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _g_free0 (self->priv->author);
+#line 246 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               self->priv->author = _tmp5_;
+#line 903 "Symbol.c"
+               {
+                       GeeArrayList* _a_list = NULL;
+                       GeeArrayList* _tmp6_;
+                       GeeArrayList* _tmp7_;
+                       gint _a_size = 0;
+                       GeeArrayList* _tmp8_;
+                       gint _tmp9_;
+                       gint _tmp10_;
+                       gint _a_index = 0;
+#line 247 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp6_ = authors;
+#line 247 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp7_ = _g_object_ref0 (_tmp6_);
+#line 247 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _a_list = _tmp7_;
+#line 247 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp8_ = _a_list;
+#line 247 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp9_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp8_);
+#line 247 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp10_ = _tmp9_;
+#line 247 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _a_size = _tmp10_;
+#line 247 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _a_index = -1;
+#line 247 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       while (TRUE) {
+#line 931 "Symbol.c"
+                               gint _tmp11_;
+                               gint _tmp12_;
+                               gint _tmp13_;
+                               JSDOCDocTag* a = NULL;
+                               GeeArrayList* _tmp14_;
+                               gint _tmp15_;
+                               gpointer _tmp16_;
+                               const gchar* _tmp17_ = NULL;
+                               const gchar* _tmp18_;
+                               const gchar* _tmp19_;
+                               gchar* _tmp20_;
+                               const gchar* _tmp21_;
+                               JSDOCDocTag* _tmp22_;
+                               const gchar* _tmp23_;
+                               gchar* _tmp24_;
+#line 247 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp11_ = _a_index;
+#line 247 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _a_index = _tmp11_ + 1;
+#line 247 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp12_ = _a_index;
+#line 247 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp13_ = _a_size;
+#line 247 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               if (!(_tmp12_ < _tmp13_)) {
+#line 247 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       break;
+#line 959 "Symbol.c"
+                               }
+#line 247 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp14_ = _a_list;
+#line 247 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp15_ = _a_index;
+#line 247 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp16_ = gee_abstract_list_get ((GeeAbstractList*) _tmp14_, _tmp15_);
+#line 247 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               a = (JSDOCDocTag*) _tmp16_;
+#line 248 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp18_ = self->priv->author;
+#line 248 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               if (g_strcmp0 (_tmp18_, "") == 0) {
+#line 248 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp17_ = "";
+#line 975 "Symbol.c"
+                               } else {
+#line 248 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp17_ = ", ";
+#line 979 "Symbol.c"
+                               }
+#line 248 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp19_ = self->priv->author;
+#line 248 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp20_ = g_strconcat (_tmp19_, _tmp17_, NULL);
+#line 248 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _g_free0 (self->priv->author);
+#line 248 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               self->priv->author = _tmp20_;
+#line 249 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp21_ = self->priv->author;
+#line 249 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp22_ = a;
+#line 249 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp23_ = _tmp22_->desc;
+#line 249 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp24_ = g_strconcat (_tmp21_, _tmp23_, NULL);
+#line 249 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _g_free0 (self->priv->author);
+#line 249 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               self->priv->author = _tmp24_;
+#line 247 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _g_object_unref0 (a);
+#line 1003 "Symbol.c"
+                       }
+#line 247 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _g_object_unref0 (_a_list);
+#line 1007 "Symbol.c"
+               }
+       }
+#line 264 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp25_ = self->comment;
+#line 264 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp26_ = jsdoc_doc_comment_getTag (_tmp25_, JSDOC_DOC_TAG_TITLE_METHOD);
+#line 264 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       mth = _tmp26_;
+#line 265 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp27_ = mth;
+#line 265 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp28_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp27_);
+#line 265 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp29_ = _tmp28_;
+#line 265 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       if (_tmp29_ > 0) {
+#line 1024 "Symbol.c"
+               gchar* _tmp30_;
+#line 266 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp30_ = g_strdup ("FUNCTION");
+#line 266 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _g_free0 (self->isa);
+#line 266 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               self->isa = _tmp30_;
+#line 1032 "Symbol.c"
+       }
+#line 269 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp31_ = self->comment;
+#line 269 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp32_ = jsdoc_doc_comment_getTag (_tmp31_, JSDOC_DOC_TAG_TITLE_DESC);
+#line 269 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       descs = _tmp32_;
+#line 270 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp33_ = descs;
+#line 270 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp34_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp33_);
+#line 270 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp35_ = _tmp34_;
+#line 270 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       if (_tmp35_ > 0) {
+#line 1048 "Symbol.c"
+               gchar* _tmp36_;
+#line 271 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp36_ = g_strdup ("");
+#line 271 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _g_free0 (self->desc);
+#line 271 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               self->desc = _tmp36_;
+#line 1056 "Symbol.c"
+               {
+                       GeeArrayList* _d_list = NULL;
+                       GeeArrayList* _tmp37_;
+                       GeeArrayList* _tmp38_;
+                       gint _d_size = 0;
+                       GeeArrayList* _tmp39_;
+                       gint _tmp40_;
+                       gint _tmp41_;
+                       gint _d_index = 0;
+#line 272 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp37_ = descs;
+#line 272 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp38_ = _g_object_ref0 (_tmp37_);
+#line 272 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _d_list = _tmp38_;
+#line 272 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp39_ = _d_list;
+#line 272 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp40_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp39_);
+#line 272 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp41_ = _tmp40_;
+#line 272 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _d_size = _tmp41_;
+#line 272 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _d_index = -1;
+#line 272 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       while (TRUE) {
+#line 1084 "Symbol.c"
+                               gint _tmp42_;
+                               gint _tmp43_;
+                               gint _tmp44_;
+                               JSDOCDocTag* d = NULL;
+                               GeeArrayList* _tmp45_;
+                               gint _tmp46_;
+                               gpointer _tmp47_;
+                               const gchar* _tmp48_ = NULL;
+                               const gchar* _tmp49_;
+                               gchar* _tmp50_;
+                               const gchar* _tmp51_;
+                               JSDOCDocTag* _tmp52_;
+                               const gchar* _tmp53_;
+                               gchar* _tmp54_;
+#line 272 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp42_ = _d_index;
+#line 272 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _d_index = _tmp42_ + 1;
+#line 272 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp43_ = _d_index;
+#line 272 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp44_ = _d_size;
+#line 272 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               if (!(_tmp43_ < _tmp44_)) {
+#line 272 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       break;
+#line 1111 "Symbol.c"
+                               }
+#line 272 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp45_ = _d_list;
+#line 272 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp46_ = _d_index;
+#line 272 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp47_ = gee_abstract_list_get ((GeeAbstractList*) _tmp45_, _tmp46_);
+#line 272 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               d = (JSDOCDocTag*) _tmp47_;
+#line 273 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp49_ = self->desc;
+#line 273 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               if (g_strcmp0 (_tmp49_, "") == 0) {
+#line 273 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp48_ = "";
+#line 1127 "Symbol.c"
+                               } else {
+#line 273 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp48_ = "\n";
+#line 1131 "Symbol.c"
+                               }
+#line 273 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp50_ = g_strdup (_tmp48_);
+#line 273 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _g_free0 (self->desc);
+#line 273 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               self->desc = _tmp50_;
+#line 274 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp51_ = self->desc;
+#line 274 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp52_ = d;
+#line 274 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp53_ = _tmp52_->desc;
+#line 274 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp54_ = g_strconcat (_tmp51_, _tmp53_, NULL);
+#line 274 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _g_free0 (self->desc);
+#line 274 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               self->desc = _tmp54_;
+#line 272 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _g_object_unref0 (d);
+#line 1153 "Symbol.c"
+                       }
+#line 272 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _g_object_unref0 (_d_list);
+#line 1157 "Symbol.c"
+               }
+       }
+#line 285 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp55_ = jsdoc_symbol_is (self, "FILE");
+#line 285 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       if (_tmp55_) {
+#line 1164 "Symbol.c"
+               const gchar* _tmp56_;
+               gint _tmp57_;
+               gint _tmp58_;
+               GeeArrayList* overviews = NULL;
+               JSDOCDocComment* _tmp61_;
+               GeeArrayList* _tmp62_;
+               GeeArrayList* _tmp63_;
+               gint _tmp64_;
+               gint _tmp65_;
+#line 286 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp56_ = self->alias;
+#line 286 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp57_ = strlen (_tmp56_);
+#line 286 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp58_ = _tmp57_;
+#line 286 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               if (_tmp58_ < 1) {
+#line 1182 "Symbol.c"
+                       const gchar* _tmp59_;
+                       gchar* _tmp60_;
+#line 286 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp59_ = jsdoc_symbol_srcFile;
+#line 286 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp60_ = g_strdup (_tmp59_);
+#line 286 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _g_free0 (self->alias);
+#line 286 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       self->alias = _tmp60_;
+#line 1193 "Symbol.c"
+               }
+#line 288 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp61_ = self->comment;
+#line 288 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp62_ = jsdoc_doc_comment_getTag (_tmp61_, JSDOC_DOC_TAG_TITLE_OVERVIEW);
+#line 288 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               overviews = _tmp62_;
+#line 289 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp63_ = overviews;
+#line 289 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp64_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp63_);
+#line 289 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp65_ = _tmp64_;
+#line 289 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               if (_tmp65_ > 0) {
+#line 1209 "Symbol.c"
+                       {
+                               GeeArrayList* _d_list = NULL;
+                               GeeArrayList* _tmp66_;
+                               GeeArrayList* _tmp67_;
+                               gint _d_size = 0;
+                               GeeArrayList* _tmp68_;
+                               gint _tmp69_;
+                               gint _tmp70_;
+                               gint _d_index = 0;
+#line 290 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp66_ = overviews;
+#line 290 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp67_ = _g_object_ref0 (_tmp66_);
+#line 290 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _d_list = _tmp67_;
+#line 290 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp68_ = _d_list;
+#line 290 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp69_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp68_);
+#line 290 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp70_ = _tmp69_;
+#line 290 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _d_size = _tmp70_;
+#line 290 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _d_index = -1;
+#line 290 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               while (TRUE) {
+#line 1237 "Symbol.c"
+                                       gint _tmp71_;
+                                       gint _tmp72_;
+                                       gint _tmp73_;
+                                       JSDOCDocTag* d = NULL;
+                                       GeeArrayList* _tmp74_;
+                                       gint _tmp75_;
+                                       gpointer _tmp76_;
+                                       const gchar* _tmp77_ = NULL;
+                                       const gchar* _tmp78_;
+                                       gchar* _tmp79_;
+                                       const gchar* _tmp80_;
+                                       JSDOCDocTag* _tmp81_;
+                                       const gchar* _tmp82_;
+                                       gchar* _tmp83_;
+#line 290 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp71_ = _d_index;
+#line 290 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _d_index = _tmp71_ + 1;
+#line 290 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp72_ = _d_index;
+#line 290 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp73_ = _d_size;
+#line 290 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       if (!(_tmp72_ < _tmp73_)) {
+#line 290 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                               break;
+#line 1264 "Symbol.c"
+                                       }
+#line 290 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp74_ = _d_list;
+#line 290 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp75_ = _d_index;
+#line 290 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp76_ = gee_abstract_list_get ((GeeAbstractList*) _tmp74_, _tmp75_);
+#line 290 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       d = (JSDOCDocTag*) _tmp76_;
+#line 291 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp78_ = self->desc;
+#line 291 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       if (g_strcmp0 (_tmp78_, "") == 0) {
+#line 291 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                               _tmp77_ = "";
+#line 1280 "Symbol.c"
+                                       } else {
+#line 291 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                               _tmp77_ = "\n";
+#line 1284 "Symbol.c"
+                                       }
+#line 291 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp79_ = g_strdup (_tmp77_);
+#line 291 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _g_free0 (self->desc);
+#line 291 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       self->desc = _tmp79_;
+#line 292 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp80_ = self->desc;
+#line 292 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp81_ = d;
+#line 292 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp82_ = _tmp81_->desc;
+#line 292 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp83_ = g_strconcat (_tmp80_, _tmp82_, NULL);
+#line 292 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _g_free0 (self->desc);
+#line 292 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       self->desc = _tmp83_;
+#line 290 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _g_object_unref0 (d);
+#line 1306 "Symbol.c"
+                               }
+#line 290 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _g_object_unref0 (_d_list);
+#line 1310 "Symbol.c"
+                       }
+               }
+#line 285 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _g_object_unref0 (overviews);
+#line 1315 "Symbol.c"
+       }
+#line 303 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp84_ = self->comment;
+#line 303 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp85_ = jsdoc_doc_comment_getTag (_tmp84_, JSDOC_DOC_TAG_TITLE_SINCE);
+#line 303 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       sinces = _tmp85_;
+#line 304 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp86_ = sinces;
+#line 304 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp87_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp86_);
+#line 304 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp88_ = _tmp87_;
+#line 304 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       if (_tmp88_ > 0) {
+#line 1331 "Symbol.c"
+               gchar* _tmp89_;
+#line 305 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp89_ = g_strdup ("");
+#line 305 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _g_free0 (self->priv->since);
+#line 305 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               self->priv->since = _tmp89_;
+#line 1339 "Symbol.c"
+               {
+                       GeeArrayList* _d_list = NULL;
+                       GeeArrayList* _tmp90_;
+                       GeeArrayList* _tmp91_;
+                       gint _d_size = 0;
+                       GeeArrayList* _tmp92_;
+                       gint _tmp93_;
+                       gint _tmp94_;
+                       gint _d_index = 0;
+#line 306 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp90_ = sinces;
+#line 306 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp91_ = _g_object_ref0 (_tmp90_);
+#line 306 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _d_list = _tmp91_;
+#line 306 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp92_ = _d_list;
+#line 306 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp93_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp92_);
+#line 306 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp94_ = _tmp93_;
+#line 306 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _d_size = _tmp94_;
+#line 306 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _d_index = -1;
+#line 306 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       while (TRUE) {
+#line 1367 "Symbol.c"
+                               gint _tmp95_;
+                               gint _tmp96_;
+                               gint _tmp97_;
+                               JSDOCDocTag* d = NULL;
+                               GeeArrayList* _tmp98_;
+                               gint _tmp99_;
+                               gpointer _tmp100_;
+                               const gchar* _tmp101_ = NULL;
+                               const gchar* _tmp102_;
+                               gchar* _tmp103_;
+                               const gchar* _tmp104_;
+                               JSDOCDocTag* _tmp105_;
+                               const gchar* _tmp106_;
+                               gchar* _tmp107_;
+#line 306 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp95_ = _d_index;
+#line 306 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _d_index = _tmp95_ + 1;
+#line 306 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp96_ = _d_index;
+#line 306 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp97_ = _d_size;
+#line 306 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               if (!(_tmp96_ < _tmp97_)) {
+#line 306 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       break;
+#line 1394 "Symbol.c"
+                               }
+#line 306 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp98_ = _d_list;
+#line 306 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp99_ = _d_index;
+#line 306 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp100_ = gee_abstract_list_get ((GeeAbstractList*) _tmp98_, _tmp99_);
+#line 306 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               d = (JSDOCDocTag*) _tmp100_;
+#line 307 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp102_ = self->priv->since;
+#line 307 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               if (g_strcmp0 (_tmp102_, "") == 0) {
+#line 307 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp101_ = "";
+#line 1410 "Symbol.c"
+                               } else {
+#line 307 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp101_ = "\n";
+#line 1414 "Symbol.c"
+                               }
+#line 307 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp103_ = g_strdup (_tmp101_);
+#line 307 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _g_free0 (self->priv->since);
+#line 307 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               self->priv->since = _tmp103_;
+#line 308 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp104_ = self->priv->since;
+#line 308 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp105_ = d;
+#line 308 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp106_ = _tmp105_->desc;
+#line 308 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp107_ = g_strconcat (_tmp104_, _tmp106_, NULL);
+#line 308 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _g_free0 (self->priv->since);
+#line 308 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               self->priv->since = _tmp107_;
+#line 306 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _g_object_unref0 (d);
+#line 1436 "Symbol.c"
+                       }
+#line 306 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _g_object_unref0 (_d_list);
+#line 1440 "Symbol.c"
+               }
+       }
+#line 318 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp108_ = self->comment;
+#line 318 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp109_ = jsdoc_doc_comment_getTag (_tmp108_, JSDOC_DOC_TAG_TITLE_CONSTANT);
+#line 318 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp110_ = _tmp109_;
+#line 318 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp111_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp110_);
+#line 318 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp112_ = _tmp111_;
+#line 318 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp113_ = _tmp112_ > 0;
+#line 318 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_object_unref0 (_tmp110_);
+#line 318 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       if (_tmp113_) {
+#line 1459 "Symbol.c"
+               gchar* _tmp114_;
+#line 319 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               self->isConstant = TRUE;
+#line 320 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp114_ = g_strdup ("OBJECT");
+#line 320 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _g_free0 (self->isa);
+#line 320 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               self->isa = _tmp114_;
+#line 1469 "Symbol.c"
+       }
+#line 329 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp115_ = self->comment;
+#line 329 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp116_ = jsdoc_doc_comment_getTag (_tmp115_, JSDOC_DOC_TAG_TITLE_VERSION);
+#line 329 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       versions = _tmp116_;
+#line 330 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp117_ = versions;
+#line 330 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp118_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp117_);
+#line 330 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp119_ = _tmp118_;
+#line 330 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       if (_tmp119_ > 0) {
+#line 1485 "Symbol.c"
+               gchar* _tmp120_;
+#line 331 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp120_ = g_strdup ("");
+#line 331 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _g_free0 (self->priv->version);
+#line 331 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               self->priv->version = _tmp120_;
+#line 1493 "Symbol.c"
+               {
+                       GeeArrayList* _d_list = NULL;
+                       GeeArrayList* _tmp121_;
+                       GeeArrayList* _tmp122_;
+                       gint _d_size = 0;
+                       GeeArrayList* _tmp123_;
+                       gint _tmp124_;
+                       gint _tmp125_;
+                       gint _d_index = 0;
+#line 332 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp121_ = versions;
+#line 332 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp122_ = _g_object_ref0 (_tmp121_);
+#line 332 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _d_list = _tmp122_;
+#line 332 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp123_ = _d_list;
+#line 332 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp124_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp123_);
+#line 332 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp125_ = _tmp124_;
+#line 332 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _d_size = _tmp125_;
+#line 332 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _d_index = -1;
+#line 332 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       while (TRUE) {
+#line 1521 "Symbol.c"
+                               gint _tmp126_;
+                               gint _tmp127_;
+                               gint _tmp128_;
+                               JSDOCDocTag* d = NULL;
+                               GeeArrayList* _tmp129_;
+                               gint _tmp130_;
+                               gpointer _tmp131_;
+                               const gchar* _tmp132_ = NULL;
+                               const gchar* _tmp133_;
+                               gchar* _tmp134_;
+                               const gchar* _tmp135_;
+                               JSDOCDocTag* _tmp136_;
+                               const gchar* _tmp137_;
+                               gchar* _tmp138_;
+#line 332 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp126_ = _d_index;
+#line 332 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _d_index = _tmp126_ + 1;
+#line 332 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp127_ = _d_index;
+#line 332 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp128_ = _d_size;
+#line 332 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               if (!(_tmp127_ < _tmp128_)) {
+#line 332 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       break;
+#line 1548 "Symbol.c"
+                               }
+#line 332 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp129_ = _d_list;
+#line 332 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp130_ = _d_index;
+#line 332 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp131_ = gee_abstract_list_get ((GeeAbstractList*) _tmp129_, _tmp130_);
+#line 332 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               d = (JSDOCDocTag*) _tmp131_;
+#line 333 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp133_ = self->priv->version;
+#line 333 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               if (g_strcmp0 (_tmp133_, "") == 0) {
+#line 333 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp132_ = "";
+#line 1564 "Symbol.c"
+                               } else {
+#line 333 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp132_ = "\n";
+#line 1568 "Symbol.c"
+                               }
+#line 333 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp134_ = g_strdup (_tmp132_);
+#line 333 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _g_free0 (self->priv->version);
+#line 333 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               self->priv->version = _tmp134_;
+#line 334 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp135_ = self->priv->version;
+#line 334 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp136_ = d;
+#line 334 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp137_ = _tmp136_->desc;
+#line 334 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp138_ = g_strconcat (_tmp135_, _tmp137_, NULL);
+#line 334 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _g_free0 (self->priv->version);
+#line 334 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               self->priv->version = _tmp138_;
+#line 332 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _g_object_unref0 (d);
+#line 1590 "Symbol.c"
+                       }
+#line 332 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _g_object_unref0 (_d_list);
+#line 1594 "Symbol.c"
+               }
+       }
+#line 344 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp139_ = self->comment;
+#line 344 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp140_ = jsdoc_doc_comment_getTag (_tmp139_, JSDOC_DOC_TAG_TITLE_DEPRECATED);
+#line 344 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       deprecateds = _tmp140_;
+#line 345 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp141_ = deprecateds;
+#line 345 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp142_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp141_);
+#line 345 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp143_ = _tmp142_;
+#line 345 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       if (_tmp143_ > 0) {
+#line 1611 "Symbol.c"
+               gchar* _tmp144_;
+#line 346 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp144_ = g_strdup ("");
+#line 346 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _g_free0 (self->priv->deprecated);
+#line 346 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               self->priv->deprecated = _tmp144_;
+#line 1619 "Symbol.c"
+               {
+                       GeeArrayList* _d_list = NULL;
+                       GeeArrayList* _tmp145_;
+                       GeeArrayList* _tmp146_;
+                       gint _d_size = 0;
+                       GeeArrayList* _tmp147_;
+                       gint _tmp148_;
+                       gint _tmp149_;
+                       gint _d_index = 0;
+#line 347 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp145_ = deprecateds;
+#line 347 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp146_ = _g_object_ref0 (_tmp145_);
+#line 347 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _d_list = _tmp146_;
+#line 347 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp147_ = _d_list;
+#line 347 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp148_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp147_);
+#line 347 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp149_ = _tmp148_;
+#line 347 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _d_size = _tmp149_;
+#line 347 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _d_index = -1;
+#line 347 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       while (TRUE) {
+#line 1647 "Symbol.c"
+                               gint _tmp150_;
+                               gint _tmp151_;
+                               gint _tmp152_;
+                               JSDOCDocTag* d = NULL;
+                               GeeArrayList* _tmp153_;
+                               gint _tmp154_;
+                               gpointer _tmp155_;
+                               const gchar* _tmp156_ = NULL;
+                               const gchar* _tmp157_;
+                               gchar* _tmp158_;
+                               const gchar* _tmp159_;
+                               JSDOCDocTag* _tmp160_;
+                               const gchar* _tmp161_;
+                               gchar* _tmp162_;
+#line 347 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp150_ = _d_index;
+#line 347 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _d_index = _tmp150_ + 1;
+#line 347 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp151_ = _d_index;
+#line 347 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp152_ = _d_size;
+#line 347 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               if (!(_tmp151_ < _tmp152_)) {
+#line 347 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       break;
+#line 1674 "Symbol.c"
+                               }
+#line 347 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp153_ = _d_list;
+#line 347 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp154_ = _d_index;
+#line 347 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp155_ = gee_abstract_list_get ((GeeAbstractList*) _tmp153_, _tmp154_);
+#line 347 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               d = (JSDOCDocTag*) _tmp155_;
+#line 348 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp157_ = self->priv->deprecated;
+#line 348 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               if (g_strcmp0 (_tmp157_, "") == 0) {
+#line 348 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp156_ = "";
+#line 1690 "Symbol.c"
+                               } else {
+#line 348 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp156_ = "\n";
+#line 1694 "Symbol.c"
+                               }
+#line 348 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp158_ = g_strdup (_tmp156_);
+#line 348 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _g_free0 (self->priv->deprecated);
+#line 348 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               self->priv->deprecated = _tmp158_;
+#line 349 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp159_ = self->priv->deprecated;
+#line 349 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp160_ = d;
+#line 349 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp161_ = _tmp160_->desc;
+#line 349 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp162_ = g_strconcat (_tmp159_, _tmp161_, NULL);
+#line 349 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _g_free0 (self->priv->deprecated);
+#line 349 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               self->priv->deprecated = _tmp162_;
+#line 347 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _g_object_unref0 (d);
+#line 1716 "Symbol.c"
+                       }
+#line 347 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _g_object_unref0 (_d_list);
+#line 1720 "Symbol.c"
+               }
+       }
+#line 359 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp163_ = self->comment;
+#line 359 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp164_ = jsdoc_doc_comment_getTag (_tmp163_, JSDOC_DOC_TAG_TITLE_EXAMPLE);
+#line 359 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       examples = _tmp164_;
+#line 360 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp165_ = examples;
+#line 360 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp166_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp165_);
+#line 360 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp167_ = _tmp166_;
+#line 360 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       if (_tmp167_ > 0) {
+#line 1737 "Symbol.c"
+               GeeArrayList* _tmp168_;
+               gpointer _tmp169_;
+               JSDOCDocTag* _tmp170_;
+               const gchar* _tmp171_;
+               gchar* _tmp172_;
+#line 361 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp168_ = examples;
+#line 361 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp169_ = gee_abstract_list_get ((GeeAbstractList*) _tmp168_, 0);
+#line 361 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp170_ = (JSDOCDocTag*) _tmp169_;
+#line 361 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp171_ = _tmp170_->desc;
+#line 361 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp172_ = g_strdup (_tmp171_);
+#line 361 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _g_free0 (self->priv->example);
+#line 361 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               self->priv->example = _tmp172_;
+#line 361 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _g_object_unref0 (_tmp170_);
+#line 1759 "Symbol.c"
+       }
+#line 370 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp173_ = self->comment;
+#line 370 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp174_ = jsdoc_doc_comment_getTag (_tmp173_, JSDOC_DOC_TAG_TITLE_SEE);
+#line 370 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       sees = _tmp174_;
+#line 371 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp175_ = sees;
+#line 371 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp176_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp175_);
+#line 371 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp177_ = _tmp176_;
+#line 371 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       if (_tmp177_ > 0) {
+#line 1775 "Symbol.c"
+               {
+                       GeeArrayList* _s_list = NULL;
+                       GeeArrayList* _tmp178_;
+                       GeeArrayList* _tmp179_;
+                       gint _s_size = 0;
+                       GeeArrayList* _tmp180_;
+                       gint _tmp181_;
+                       gint _tmp182_;
+                       gint _s_index = 0;
+#line 373 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp178_ = sees;
+#line 373 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp179_ = _g_object_ref0 (_tmp178_);
+#line 373 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _s_list = _tmp179_;
+#line 373 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp180_ = _s_list;
+#line 373 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp181_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp180_);
+#line 373 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp182_ = _tmp181_;
+#line 373 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _s_size = _tmp182_;
+#line 373 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _s_index = -1;
+#line 373 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       while (TRUE) {
+#line 1803 "Symbol.c"
+                               gint _tmp183_;
+                               gint _tmp184_;
+                               gint _tmp185_;
+                               JSDOCDocTag* s = NULL;
+                               GeeArrayList* _tmp186_;
+                               gint _tmp187_;
+                               gpointer _tmp188_;
+                               GeeArrayList* _tmp189_;
+                               JSDOCDocTag* _tmp190_;
+                               const gchar* _tmp191_;
+#line 373 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp183_ = _s_index;
+#line 373 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _s_index = _tmp183_ + 1;
+#line 373 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp184_ = _s_index;
+#line 373 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp185_ = _s_size;
+#line 373 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               if (!(_tmp184_ < _tmp185_)) {
+#line 373 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       break;
+#line 1826 "Symbol.c"
+                               }
+#line 373 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp186_ = _s_list;
+#line 373 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp187_ = _s_index;
+#line 373 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp188_ = gee_abstract_list_get ((GeeAbstractList*) _tmp186_, _tmp187_);
+#line 373 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               s = (JSDOCDocTag*) _tmp188_;
+#line 374 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp189_ = self->priv->see;
+#line 374 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp190_ = s;
+#line 374 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp191_ = _tmp190_->desc;
+#line 374 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               gee_abstract_collection_add ((GeeAbstractCollection*) _tmp189_, _tmp191_);
+#line 373 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _g_object_unref0 (s);
+#line 1846 "Symbol.c"
+                       }
+#line 373 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _g_object_unref0 (_s_list);
+#line 1850 "Symbol.c"
+               }
+       }
+#line 384 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp192_ = self->comment;
+#line 384 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp193_ = jsdoc_doc_comment_getTag (_tmp192_, JSDOC_DOC_TAG_TITLE_CLASS);
+#line 384 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       classes = _tmp193_;
+#line 385 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp194_ = classes;
+#line 385 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp195_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp194_);
+#line 385 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp196_ = _tmp195_;
+#line 385 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       if (_tmp196_ > 0) {
+#line 1867 "Symbol.c"
+               gchar* _tmp197_;
+               GeeArrayList* _tmp198_;
+               gpointer _tmp199_;
+               JSDOCDocTag* _tmp200_;
+               const gchar* _tmp201_;
+               gchar* _tmp202_;
+#line 387 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp197_ = g_strdup ("CONSTRUCTOR");
+#line 387 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _g_free0 (self->isa);
+#line 387 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               self->isa = _tmp197_;
+#line 388 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp198_ = classes;
+#line 388 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp199_ = gee_abstract_list_get ((GeeAbstractList*) _tmp198_, 0);
+#line 388 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp200_ = (JSDOCDocTag*) _tmp199_;
+#line 388 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp201_ = _tmp200_->desc;
+#line 388 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp202_ = g_strdup (_tmp201_);
+#line 388 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _g_free0 (self->priv->classDesc);
+#line 388 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               self->priv->classDesc = _tmp202_;
+#line 388 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _g_object_unref0 (_tmp200_);
+#line 1896 "Symbol.c"
+       }
+#line 403 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp203_ = self->comment;
+#line 403 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp204_ = jsdoc_doc_comment_getTag (_tmp203_, JSDOC_DOC_TAG_TITLE_NAMESPACE);
+#line 403 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       namespaces = _tmp204_;
+#line 404 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp205_ = namespaces;
+#line 404 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp206_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp205_);
+#line 404 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp207_ = _tmp206_;
+#line 404 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       if (_tmp207_ > 0) {
+#line 1912 "Symbol.c"
+               GeeArrayList* _tmp208_;
+               gpointer _tmp209_;
+               JSDOCDocTag* _tmp210_;
+               const gchar* _tmp211_;
+               gchar* _tmp212_;
+               gchar* _tmp213_;
+               const gchar* _tmp214_;
+               gchar* _tmp215_;
+#line 405 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp208_ = namespaces;
+#line 405 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp209_ = gee_abstract_list_get ((GeeAbstractList*) _tmp208_, 0);
+#line 405 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp210_ = (JSDOCDocTag*) _tmp209_;
+#line 405 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp211_ = _tmp210_->desc;
+#line 405 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp212_ = g_strconcat (_tmp211_, "\n", NULL);
+#line 405 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp213_ = _tmp212_;
+#line 405 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp214_ = self->desc;
+#line 405 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp215_ = g_strconcat (_tmp213_, _tmp214_, NULL);
+#line 405 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _g_free0 (self->priv->classDesc);
+#line 405 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               self->priv->classDesc = _tmp215_;
+#line 405 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _g_free0 (_tmp213_);
+#line 405 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _g_object_unref0 (_tmp210_);
+#line 406 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               self->isNamespace = TRUE;
+#line 1947 "Symbol.c"
+       }
+#line 415 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp216_ = self->comment;
+#line 415 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp217_ = jsdoc_doc_comment_getTag (_tmp216_, JSDOC_DOC_TAG_TITLE_PARAM);
+#line 415 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       params = _tmp217_;
+#line 416 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp218_ = params;
+#line 416 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp219_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp218_);
+#line 416 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp220_ = _tmp219_;
+#line 416 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       if (_tmp220_ > 0) {
+#line 1963 "Symbol.c"
+               GeeArrayList* thisParams = NULL;
+               GeeArrayList* _tmp221_;
+               GeeArrayList* _tmp222_;
+               GeeArrayList* _tmp223_;
+               gint _tmp224_;
+               gint _tmp225_;
+#line 418 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp221_ = params;
+#line 418 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp222_ = _g_object_ref0 (_tmp221_);
+#line 418 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               thisParams = _tmp222_;
+#line 420 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp223_ = thisParams;
+#line 420 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp224_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp223_);
+#line 420 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp225_ = _tmp224_;
+#line 420 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               if (_tmp225_ == 0) {
+#line 1984 "Symbol.c"
+                       GeeArrayList* _tmp226_;
+#line 421 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp226_ = params;
+#line 421 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       jsdoc_symbol_set_private_params (self, _tmp226_);
+#line 1990 "Symbol.c"
+               } else {
+                       GeeArrayList* _tmp285_;
+                       {
+                               gint i = 0;
+                               gint l = 0;
+                               GeeArrayList* _tmp227_;
+                               gint _tmp228_;
+                               gint _tmp229_;
+#line 424 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               i = 0;
+#line 424 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp227_ = params;
+#line 424 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp228_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp227_);
+#line 424 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp229_ = _tmp228_;
+#line 424 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               l = _tmp229_;
+#line 2009 "Symbol.c"
+                               {
+                                       gboolean _tmp230_ = FALSE;
+#line 424 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp230_ = TRUE;
+#line 424 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       while (TRUE) {
+#line 2016 "Symbol.c"
+                                               gint _tmp232_;
+                                               gint _tmp233_;
+                                               GeeArrayList* _tmp234_;
+                                               gint _tmp235_;
+                                               gint _tmp236_;
+                                               gint _tmp237_;
+#line 424 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                               if (!_tmp230_) {
+#line 2025 "Symbol.c"
+                                                       gint _tmp231_;
+#line 424 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                                       _tmp231_ = i;
+#line 424 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                                       i = _tmp231_ + 1;
+#line 2031 "Symbol.c"
+                                               }
+#line 424 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                               _tmp230_ = FALSE;
+#line 424 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                               _tmp232_ = i;
+#line 424 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                               _tmp233_ = l;
+#line 424 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                               if (!(_tmp232_ < _tmp233_)) {
+#line 424 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                                       break;
+#line 2043 "Symbol.c"
+                                               }
+#line 425 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                               _tmp234_ = thisParams;
+#line 425 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                               _tmp235_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp234_);
+#line 425 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                               _tmp236_ = _tmp235_;
+#line 425 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                               _tmp237_ = i;
+#line 425 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                               if (_tmp236_ <= _tmp237_) {
+#line 2055 "Symbol.c"
+                                                       JSDOCDocTag* np = NULL;
+                                                       GeeArrayList* _tmp238_;
+                                                       gint _tmp239_;
+                                                       gpointer _tmp240_;
+                                                       JSDOCDocTag* _tmp241_;
+                                                       const gchar* _tmp242_;
+                                                       gint _tmp243_;
+                                                       gint _tmp244_;
+                                                       JSDOCDocTag* _tmp252_;
+                                                       GeeArrayList* _tmp253_;
+                                                       gint _tmp254_;
+                                                       gpointer _tmp255_;
+                                                       JSDOCDocTag* _tmp256_;
+                                                       const gchar* _tmp257_;
+                                                       gchar* _tmp258_;
+                                                       JSDOCDocTag* _tmp259_;
+                                                       GeeArrayList* _tmp260_;
+                                                       gint _tmp261_;
+                                                       gpointer _tmp262_;
+                                                       JSDOCDocTag* _tmp263_;
+                                                       const gchar* _tmp264_;
+                                                       gchar* _tmp265_;
+                                                       JSDOCDocTag* _tmp266_;
+                                                       GeeArrayList* _tmp267_;
+                                                       gint _tmp268_;
+                                                       gpointer _tmp269_;
+                                                       JSDOCDocTag* _tmp270_;
+                                                       gboolean _tmp271_;
+                                                       JSDOCDocTag* _tmp272_;
+                                                       GeeArrayList* _tmp273_;
+                                                       gint _tmp274_;
+                                                       gpointer _tmp275_;
+                                                       JSDOCDocTag* _tmp276_;
+                                                       const gchar* _tmp277_;
+                                                       gchar* _tmp278_;
+#line 426 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                                       _tmp238_ = thisParams;
+#line 426 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                                       _tmp239_ = i;
+#line 426 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                                       _tmp240_ = gee_abstract_list_get ((GeeAbstractList*) _tmp238_, _tmp239_);
+#line 426 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                                       np = (JSDOCDocTag*) _tmp240_;
+#line 428 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                                       _tmp241_ = np;
+#line 428 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                                       _tmp242_ = _tmp241_->type;
+#line 428 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                                       _tmp243_ = strlen (_tmp242_);
+#line 428 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                                       _tmp244_ = _tmp243_;
+#line 428 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                                       if (_tmp244_ > 0) {
+#line 2109 "Symbol.c"
+                                                               JSDOCDocTag* _tmp245_;
+                                                               GeeArrayList* _tmp246_;
+                                                               gint _tmp247_;
+                                                               gpointer _tmp248_;
+                                                               JSDOCDocTag* _tmp249_;
+                                                               const gchar* _tmp250_;
+                                                               gchar* _tmp251_;
+#line 428 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                                               _tmp245_ = np;
+#line 428 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                                               _tmp246_ = params;
+#line 428 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                                               _tmp247_ = i;
+#line 428 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                                               _tmp248_ = gee_abstract_list_get ((GeeAbstractList*) _tmp246_, _tmp247_);
+#line 428 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                                               _tmp249_ = (JSDOCDocTag*) _tmp248_;
+#line 428 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                                               _tmp250_ = _tmp249_->type;
+#line 428 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                                               _tmp251_ = g_strdup (_tmp250_);
+#line 428 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                                               _g_free0 (_tmp245_->type);
+#line 428 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                                               _tmp245_->type = _tmp251_;
+#line 428 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                                               _g_object_unref0 (_tmp249_);
+#line 2137 "Symbol.c"
+                                                       }
+#line 429 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                                       _tmp252_ = np;
+#line 429 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                                       _tmp253_ = params;
+#line 429 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                                       _tmp254_ = i;
+#line 429 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                                       _tmp255_ = gee_abstract_list_get ((GeeAbstractList*) _tmp253_, _tmp254_);
+#line 429 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                                       _tmp256_ = (JSDOCDocTag*) _tmp255_;
+#line 429 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                                       _tmp257_ = _tmp256_->name;
+#line 429 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                                       _tmp258_ = g_strdup (_tmp257_);
+#line 429 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                                       _g_free0 (_tmp252_->name);
+#line 429 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                                       _tmp252_->name = _tmp258_;
+#line 429 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                                       _g_object_unref0 (_tmp256_);
+#line 430 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                                       _tmp259_ = np;
+#line 430 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                                       _tmp260_ = params;
+#line 430 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                                       _tmp261_ = i;
+#line 430 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                                       _tmp262_ = gee_abstract_list_get ((GeeAbstractList*) _tmp260_, _tmp261_);
+#line 430 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                                       _tmp263_ = (JSDOCDocTag*) _tmp262_;
+#line 430 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                                       _tmp264_ = _tmp263_->desc;
+#line 430 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                                       _tmp265_ = g_strdup (_tmp264_);
+#line 430 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                                       _g_free0 (_tmp259_->desc);
+#line 430 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                                       _tmp259_->desc = _tmp265_;
+#line 430 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                                       _g_object_unref0 (_tmp263_);
+#line 431 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                                       _tmp266_ = np;
+#line 431 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                                       _tmp267_ = params;
+#line 431 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                                       _tmp268_ = i;
+#line 431 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                                       _tmp269_ = gee_abstract_list_get ((GeeAbstractList*) _tmp267_, _tmp268_);
+#line 431 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                                       _tmp270_ = (JSDOCDocTag*) _tmp269_;
+#line 431 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                                       _tmp271_ = _tmp270_->isOptional;
+#line 431 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                                       _tmp266_->isOptional = _tmp271_;
+#line 431 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                                       _g_object_unref0 (_tmp270_);
+#line 432 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                                       _tmp272_ = np;
+#line 432 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                                       _tmp273_ = params;
+#line 432 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                                       _tmp274_ = i;
+#line 432 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                                       _tmp275_ = gee_abstract_list_get ((GeeAbstractList*) _tmp273_, _tmp274_);
+#line 432 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                                       _tmp276_ = (JSDOCDocTag*) _tmp275_;
+#line 432 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                                       _tmp277_ = _tmp276_->defaultValue;
+#line 432 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                                       _tmp278_ = g_strdup (_tmp277_);
+#line 432 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                                       _g_free0 (_tmp272_->defaultValue);
+#line 432 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                                       _tmp272_->defaultValue = _tmp278_;
+#line 432 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                                       _g_object_unref0 (_tmp276_);
+#line 425 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                                       _g_object_unref0 (np);
+#line 2217 "Symbol.c"
+                                               } else {
+                                                       GeeArrayList* _tmp279_;
+                                                       gint _tmp280_;
+                                                       GeeArrayList* _tmp281_;
+                                                       gint _tmp282_;
+                                                       gpointer _tmp283_;
+                                                       JSDOCDocTag* _tmp284_;
+#line 435 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                                       _tmp279_ = thisParams;
+#line 435 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                                       _tmp280_ = i;
+#line 435 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                                       _tmp281_ = params;
+#line 435 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                                       _tmp282_ = i;
+#line 435 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                                       _tmp283_ = gee_abstract_list_get ((GeeAbstractList*) _tmp281_, _tmp282_);
+#line 435 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                                       _tmp284_ = (JSDOCDocTag*) _tmp283_;
+#line 435 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                                       gee_abstract_list_set ((GeeAbstractList*) _tmp279_, _tmp280_, _tmp284_);
+#line 435 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                                       _g_object_unref0 (_tmp284_);
+#line 2241 "Symbol.c"
+                                               }
+                                       }
+                               }
+                       }
+#line 437 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp285_ = thisParams;
+#line 437 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       jsdoc_symbol_set_private_params (self, _tmp285_);
+#line 2250 "Symbol.c"
+               }
+#line 416 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _g_object_unref0 (thisParams);
+#line 2254 "Symbol.c"
+       }
+#line 444 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp286_ = self->comment;
+#line 444 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp287_ = jsdoc_doc_comment_getTag (_tmp286_, JSDOC_DOC_TAG_TITLE_CONSTRUCTOR);
+#line 444 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp288_ = _tmp287_;
+#line 444 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp289_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp288_);
+#line 444 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp290_ = _tmp289_;
+#line 444 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp291_ = _tmp290_ > 0;
+#line 444 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_object_unref0 (_tmp288_);
+#line 444 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       if (_tmp291_) {
+#line 2272 "Symbol.c"
+               gchar* _tmp292_;
+#line 445 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp292_ = g_strdup ("CONSTRUCTOR");
+#line 445 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _g_free0 (self->isa);
+#line 445 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               self->isa = _tmp292_;
+#line 2280 "Symbol.c"
+       }
+#line 451 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp293_ = self->comment;
+#line 451 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp294_ = jsdoc_doc_comment_getTag (_tmp293_, JSDOC_DOC_TAG_TITLE_STATIC);
+#line 451 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp295_ = _tmp294_;
+#line 451 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp296_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp295_);
+#line 451 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp297_ = _tmp296_;
+#line 451 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp298_ = _tmp297_ > 0;
+#line 451 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_object_unref0 (_tmp295_);
+#line 451 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       if (_tmp298_) {
+#line 2298 "Symbol.c"
+               const gchar* _tmp299_;
+#line 452 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               self->isStatic = TRUE;
+#line 453 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp299_ = self->isa;
+#line 453 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               if (g_strcmp0 (_tmp299_, "CONSTRUCTOR") == 0) {
+#line 454 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       self->isNamespace = TRUE;
+#line 2308 "Symbol.c"
+               }
+       }
+#line 459 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp300_ = self->comment;
+#line 459 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp301_ = jsdoc_doc_comment_getTag (_tmp300_, JSDOC_DOC_TAG_TITLE_SINGLETON);
+#line 459 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp302_ = _tmp301_;
+#line 459 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp303_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp302_);
+#line 459 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp304_ = _tmp303_;
+#line 459 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp305_ = _tmp304_ > 0;
+#line 459 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_object_unref0 (_tmp302_);
+#line 459 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       if (_tmp305_) {
+#line 460 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               self->isStatic = TRUE;
+#line 2329 "Symbol.c"
+       }
+#line 470 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp306_ = self->comment;
+#line 470 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp307_ = jsdoc_doc_comment_getTag (_tmp306_, JSDOC_DOC_TAG_TITLE_INNER);
+#line 470 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp308_ = _tmp307_;
+#line 470 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp309_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp308_);
+#line 470 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp310_ = _tmp309_;
+#line 470 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp311_ = _tmp310_ > 0;
+#line 470 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_object_unref0 (_tmp308_);
+#line 470 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       if (_tmp311_) {
+#line 471 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               self->isInner = TRUE;
+#line 472 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               self->isStatic = FALSE;
+#line 2351 "Symbol.c"
+       }
+#line 477 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp312_ = self->comment;
+#line 477 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp313_ = jsdoc_doc_comment_getTag (_tmp312_, JSDOC_DOC_TAG_TITLE_FIELD);
+#line 477 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp314_ = _tmp313_;
+#line 477 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp315_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp314_);
+#line 477 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp316_ = _tmp315_;
+#line 477 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp317_ = _tmp316_ > 0;
+#line 477 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_object_unref0 (_tmp314_);
+#line 477 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       if (_tmp317_) {
+#line 2369 "Symbol.c"
+               gchar* _tmp318_;
+#line 478 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp318_ = g_strdup ("OBJECT");
+#line 478 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _g_free0 (self->isa);
+#line 478 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               self->isa = _tmp318_;
+#line 2377 "Symbol.c"
+       }
+#line 484 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp319_ = self->comment;
+#line 484 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp320_ = jsdoc_doc_comment_getTag (_tmp319_, JSDOC_DOC_TAG_TITLE_FUNCTION);
+#line 484 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp321_ = _tmp320_;
+#line 484 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp322_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp321_);
+#line 484 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp323_ = _tmp322_;
+#line 484 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp324_ = _tmp323_ > 0;
+#line 484 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_object_unref0 (_tmp321_);
+#line 484 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       if (_tmp324_) {
+#line 2395 "Symbol.c"
+               gchar* _tmp325_;
+#line 485 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp325_ = g_strdup ("FUNCTION");
+#line 485 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _g_free0 (self->isa);
+#line 485 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               self->isa = _tmp325_;
+#line 2403 "Symbol.c"
+       }
+#line 489 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp327_ = self->comment;
+#line 489 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp328_ = jsdoc_doc_comment_getTag (_tmp327_, JSDOC_DOC_TAG_TITLE_PARAM);
+#line 489 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp329_ = _tmp328_;
+#line 489 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp330_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp329_);
+#line 489 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp331_ = _tmp330_;
+#line 489 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp332_ = _tmp331_ > 0;
+#line 489 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_object_unref0 (_tmp329_);
+#line 489 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       if (_tmp332_) {
+#line 2421 "Symbol.c"
+               const gchar* _tmp333_;
+#line 489 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp333_ = self->isa;
+#line 489 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp326_ = g_strcmp0 (_tmp333_, "OBJECT") == 0;
+#line 2427 "Symbol.c"
+       } else {
+#line 489 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp326_ = FALSE;
+#line 2431 "Symbol.c"
+       }
+#line 489 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       if (_tmp326_) {
+#line 2435 "Symbol.c"
+               gchar* _tmp334_;
+#line 491 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp334_ = g_strdup ("FUNCTION");
+#line 491 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _g_free0 (self->isa);
+#line 491 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               self->isa = _tmp334_;
+#line 2443 "Symbol.c"
+       }
+#line 498 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp335_ = self->comment;
+#line 498 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp336_ = jsdoc_doc_comment_getTag (_tmp335_, JSDOC_DOC_TAG_TITLE_EVENT);
+#line 498 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       events = _tmp336_;
+#line 499 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp337_ = events;
+#line 499 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp338_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp337_);
+#line 499 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp339_ = _tmp338_;
+#line 499 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       if (_tmp339_ > 0) {
+#line 2459 "Symbol.c"
+               gchar* _tmp340_;
+#line 500 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp340_ = g_strdup ("FUNCTION");
+#line 500 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _g_free0 (self->isa);
+#line 500 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               self->isa = _tmp340_;
+#line 501 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               self->isEvent = TRUE;
+#line 2469 "Symbol.c"
+       }
+#line 507 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp341_ = self->comment;
+#line 507 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp342_ = jsdoc_doc_comment_getTag (_tmp341_, JSDOC_DOC_TAG_TITLE_NAME);
+#line 507 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       names = _tmp342_;
+#line 508 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp343_ = names;
+#line 508 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp344_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp343_);
+#line 508 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp345_ = _tmp344_;
+#line 508 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       if (_tmp345_ > 0) {
+#line 2485 "Symbol.c"
+               GeeArrayList* _tmp346_;
+               gpointer _tmp347_;
+               JSDOCDocTag* _tmp348_;
+               const gchar* _tmp349_;
+               gchar* _tmp350_;
+               gchar* _tmp351_;
+#line 509 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp346_ = names;
+#line 509 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp347_ = gee_abstract_list_get ((GeeAbstractList*) _tmp346_, 0);
+#line 509 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp348_ = (JSDOCDocTag*) _tmp347_;
+#line 509 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp349_ = _tmp348_->desc;
+#line 509 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp350_ = string_strip (_tmp349_);
+#line 509 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp351_ = _tmp350_;
+#line 509 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               jsdoc_symbol_set_private_name (self, _tmp351_);
+#line 509 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _g_free0 (_tmp351_);
+#line 509 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _g_object_unref0 (_tmp348_);
+#line 2510 "Symbol.c"
+       }
+#line 517 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp352_ = self->comment;
+#line 517 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp353_ = jsdoc_doc_comment_getTag (_tmp352_, JSDOC_DOC_TAG_TITLE_PROPERTY);
+#line 517 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       properties = _tmp353_;
+#line 518 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp354_ = properties;
+#line 518 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp355_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp354_);
+#line 518 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp356_ = _tmp355_;
+#line 518 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       if (_tmp356_ > 0) {
+#line 2526 "Symbol.c"
+               {
+                       gint i = 0;
+#line 520 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       i = 0;
+#line 2531 "Symbol.c"
+                       {
+                               gboolean _tmp357_ = FALSE;
+#line 520 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp357_ = TRUE;
+#line 520 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               while (TRUE) {
+#line 2538 "Symbol.c"
+                                       gint _tmp359_;
+                                       GeeArrayList* _tmp360_;
+                                       gint _tmp361_;
+                                       gint _tmp362_;
+                                       GeeArrayList* _tmp363_;
+                                       gint _tmp364_;
+                                       gpointer _tmp365_;
+                                       JSDOCDocTag* _tmp366_;
+                                       const gchar* _tmp367_;
+                                       gint _tmp368_;
+                                       gint _tmp369_;
+                                       gboolean _tmp370_;
+                                       JSDOCSymbol* property = NULL;
+                                       const gchar* _tmp371_;
+                                       gchar* _tmp372_;
+                                       gchar* _tmp373_;
+                                       GeeArrayList* _tmp374_;
+                                       gint _tmp375_;
+                                       gpointer _tmp376_;
+                                       JSDOCDocTag* _tmp377_;
+                                       const gchar* _tmp378_;
+                                       gchar* _tmp379_;
+                                       gchar* _tmp380_;
+                                       GeeArrayList* _tmp381_;
+                                       GeeArrayList* _tmp382_;
+                                       GeeArrayList* _tmp383_;
+                                       gint _tmp384_;
+                                       gpointer _tmp385_;
+                                       JSDOCDocTag* _tmp386_;
+                                       const gchar* _tmp387_;
+                                       gchar* _tmp388_;
+                                       gchar* _tmp389_;
+                                       gchar* _tmp390_;
+                                       gchar* _tmp391_;
+                                       GeeArrayList* _tmp392_;
+                                       gint _tmp393_;
+                                       gpointer _tmp394_;
+                                       JSDOCDocTag* _tmp395_;
+                                       const gchar* _tmp396_;
+                                       gchar* _tmp397_;
+                                       gchar* _tmp398_;
+                                       gchar* _tmp399_;
+                                       gchar* _tmp400_;
+                                       const gchar* _tmp401_;
+                                       gchar* _tmp402_;
+                                       gchar* _tmp403_;
+                                       gchar* _tmp404_;
+                                       gchar* _tmp405_;
+                                       JSDOCDocComment* _tmp406_;
+                                       JSDOCDocComment* _tmp407_;
+                                       JSDOCSymbol* _tmp408_;
+                                       JSDOCSymbol* _tmp409_;
+                                       JSDOCSymbol* _tmp410_;
+                                       GeeArrayList* _tmp411_;
+                                       gint _tmp412_;
+                                       gpointer _tmp413_;
+                                       JSDOCDocTag* _tmp414_;
+                                       const gchar* _tmp415_;
+                                       JSDOCSymbol* _tmp416_;
+                                       const gchar* _tmp417_;
+                                       gchar* _tmp418_;
+                                       GeeArrayList* _tmp419_;
+                                       gint _tmp420_;
+                                       gpointer _tmp421_;
+                                       JSDOCDocTag* _tmp422_;
+                                       const gchar* _tmp423_;
+                                       gint _tmp424_;
+                                       gint _tmp425_;
+                                       gboolean _tmp426_;
+                                       GeeArrayList* _tmp434_;
+                                       gint _tmp435_;
+                                       gpointer _tmp436_;
+                                       JSDOCDocTag* _tmp437_;
+                                       const gchar* _tmp438_;
+                                       gint _tmp439_;
+                                       gint _tmp440_;
+                                       gboolean _tmp441_;
+                                       JSDOCSymbol* _tmp449_;
+                                       JSDOCSymbol* _tmp450_;
+#line 520 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       if (!_tmp357_) {
+#line 2620 "Symbol.c"
+                                               gint _tmp358_;
+#line 520 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                               _tmp358_ = i;
+#line 520 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                               i = _tmp358_ + 1;
+#line 2626 "Symbol.c"
+                                       }
+#line 520 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp357_ = FALSE;
+#line 520 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp359_ = i;
+#line 520 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp360_ = properties;
+#line 520 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp361_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp360_);
+#line 520 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp362_ = _tmp361_;
+#line 520 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       if (!(_tmp359_ < _tmp362_)) {
+#line 520 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                               break;
+#line 2642 "Symbol.c"
+                                       }
+#line 525 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp363_ = properties;
+#line 525 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp364_ = i;
+#line 525 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp365_ = gee_abstract_list_get ((GeeAbstractList*) _tmp363_, _tmp364_);
+#line 525 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp366_ = (JSDOCDocTag*) _tmp365_;
+#line 525 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp367_ = _tmp366_->name;
+#line 525 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp368_ = strlen (_tmp367_);
+#line 525 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp369_ = _tmp368_;
+#line 525 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp370_ = _tmp369_ < 1;
+#line 525 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _g_object_unref0 (_tmp366_);
+#line 525 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       if (_tmp370_) {
+#line 526 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                               continue;
+#line 2666 "Symbol.c"
+                                       }
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp371_ = self->alias;
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp372_ = g_strconcat (_tmp371_, "#", NULL);
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp373_ = _tmp372_;
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp374_ = properties;
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp375_ = i;
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp376_ = gee_abstract_list_get ((GeeAbstractList*) _tmp374_, _tmp375_);
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp377_ = (JSDOCDocTag*) _tmp376_;
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp378_ = _tmp377_->name;
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp379_ = g_strconcat (_tmp373_, _tmp378_, NULL);
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp380_ = _tmp379_;
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp381_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL);
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp382_ = _tmp381_;
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp383_ = properties;
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp384_ = i;
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp385_ = gee_abstract_list_get ((GeeAbstractList*) _tmp383_, _tmp384_);
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp386_ = (JSDOCDocTag*) _tmp385_;
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp387_ = _tmp386_->desc;
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp388_ = g_strconcat ("/**\n", _tmp387_, NULL);
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp389_ = _tmp388_;
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp390_ = g_strconcat (_tmp389_, "\n@name ", NULL);
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp391_ = _tmp390_;
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp392_ = properties;
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp393_ = i;
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp394_ = gee_abstract_list_get ((GeeAbstractList*) _tmp392_, _tmp393_);
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp395_ = (JSDOCDocTag*) _tmp394_;
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp396_ = _tmp395_->name;
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp397_ = g_strconcat (_tmp391_, _tmp396_, NULL);
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp398_ = _tmp397_;
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp399_ = g_strconcat (_tmp398_, "\n@memberOf ", NULL);
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp400_ = _tmp399_;
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp401_ = self->alias;
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp402_ = g_strconcat (_tmp400_, _tmp401_, NULL);
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp403_ = _tmp402_;
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp404_ = g_strconcat (_tmp403_, "#*/", NULL);
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp405_ = _tmp404_;
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp406_ = jsdoc_doc_comment_new (_tmp405_);
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp407_ = _tmp406_;
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp408_ = jsdoc_symbol_new_new_populate_with_args (_tmp380_, _tmp382_, "OBJECT", _tmp407_);
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp409_ = _tmp408_;
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _g_object_unref0 (_tmp407_);
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _g_free0 (_tmp405_);
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _g_free0 (_tmp403_);
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _g_free0 (_tmp400_);
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _g_free0 (_tmp398_);
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _g_object_unref0 (_tmp395_);
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _g_free0 (_tmp391_);
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _g_free0 (_tmp389_);
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _g_object_unref0 (_tmp386_);
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _g_object_unref0 (_tmp382_);
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _g_free0 (_tmp380_);
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _g_object_unref0 (_tmp377_);
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _g_free0 (_tmp373_);
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       property = _tmp409_;
+#line 540 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp410_ = property;
+#line 540 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp411_ = properties;
+#line 540 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp412_ = i;
+#line 540 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp413_ = gee_abstract_list_get ((GeeAbstractList*) _tmp411_, _tmp412_);
+#line 540 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp414_ = (JSDOCDocTag*) _tmp413_;
+#line 540 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp415_ = _tmp414_->name;
+#line 540 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       jsdoc_symbol_set_private_name (_tmp410_, _tmp415_);
+#line 540 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _g_object_unref0 (_tmp414_);
+#line 541 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp416_ = property;
+#line 541 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp417_ = self->alias;
+#line 541 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp418_ = g_strdup (_tmp417_);
+#line 541 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _g_free0 (_tmp416_->memberOf);
+#line 541 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp416_->memberOf = _tmp418_;
+#line 542 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp419_ = properties;
+#line 542 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp420_ = i;
+#line 542 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp421_ = gee_abstract_list_get ((GeeAbstractList*) _tmp419_, _tmp420_);
+#line 542 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp422_ = (JSDOCDocTag*) _tmp421_;
+#line 542 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp423_ = _tmp422_->type;
+#line 542 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp424_ = strlen (_tmp423_);
+#line 542 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp425_ = _tmp424_;
+#line 542 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp426_ = _tmp425_ > 0;
+#line 542 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _g_object_unref0 (_tmp422_);
+#line 542 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       if (_tmp426_) {
+#line 2820 "Symbol.c"
+                                               JSDOCSymbol* _tmp427_;
+                                               GeeArrayList* _tmp428_;
+                                               gint _tmp429_;
+                                               gpointer _tmp430_;
+                                               JSDOCDocTag* _tmp431_;
+                                               const gchar* _tmp432_;
+                                               gchar* _tmp433_;
+#line 542 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                               _tmp427_ = property;
+#line 542 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                               _tmp428_ = properties;
+#line 542 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                               _tmp429_ = i;
+#line 542 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                               _tmp430_ = gee_abstract_list_get ((GeeAbstractList*) _tmp428_, _tmp429_);
+#line 542 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                               _tmp431_ = (JSDOCDocTag*) _tmp430_;
+#line 542 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                               _tmp432_ = _tmp431_->type;
+#line 542 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                               _tmp433_ = g_strdup (_tmp432_);
+#line 542 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                               _g_free0 (_tmp427_->priv->type);
+#line 542 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                               _tmp427_->priv->type = _tmp433_;
+#line 542 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                               _g_object_unref0 (_tmp431_);
+#line 2848 "Symbol.c"
+                                       }
+#line 543 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp434_ = properties;
+#line 543 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp435_ = i;
+#line 543 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp436_ = gee_abstract_list_get ((GeeAbstractList*) _tmp434_, _tmp435_);
+#line 543 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp437_ = (JSDOCDocTag*) _tmp436_;
+#line 543 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp438_ = _tmp437_->defaultValue;
+#line 543 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp439_ = strlen (_tmp438_);
+#line 543 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp440_ = _tmp439_;
+#line 543 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp441_ = _tmp440_ > 0;
+#line 543 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _g_object_unref0 (_tmp437_);
+#line 543 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       if (_tmp441_) {
+#line 2870 "Symbol.c"
+                                               JSDOCSymbol* _tmp442_;
+                                               GeeArrayList* _tmp443_;
+                                               gint _tmp444_;
+                                               gpointer _tmp445_;
+                                               JSDOCDocTag* _tmp446_;
+                                               const gchar* _tmp447_;
+                                               gchar* _tmp448_;
+#line 543 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                               _tmp442_ = property;
+#line 543 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                               _tmp443_ = properties;
+#line 543 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                               _tmp444_ = i;
+#line 543 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                               _tmp445_ = gee_abstract_list_get ((GeeAbstractList*) _tmp443_, _tmp444_);
+#line 543 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                               _tmp446_ = (JSDOCDocTag*) _tmp445_;
+#line 543 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                               _tmp447_ = _tmp446_->defaultValue;
+#line 543 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                               _tmp448_ = g_strdup (_tmp447_);
+#line 543 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                               _g_free0 (_tmp442_->priv->defaultValue);
+#line 543 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                               _tmp442_->priv->defaultValue = _tmp448_;
+#line 543 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                               _g_object_unref0 (_tmp446_);
+#line 2898 "Symbol.c"
+                                       }
+#line 544 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp449_ = property;
+#line 544 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       jsdoc_symbol_addProperty (self, _tmp449_);
+#line 545 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp450_ = property;
+#line 545 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       jsdoc_doc_parser_addSymbol (_tmp450_);
+#line 520 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _g_object_unref0 (property);
+#line 2910 "Symbol.c"
+                               }
+                       }
+               }
+       }
+#line 550 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp451_ = self->comment;
+#line 550 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp452_ = jsdoc_doc_comment_getTag (_tmp451_, JSDOC_DOC_TAG_TITLE_CFG);
+#line 550 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       conf = _tmp452_;
+#line 551 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp453_ = conf;
+#line 551 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp454_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp453_);
+#line 551 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp455_ = _tmp454_;
+#line 551 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       if (_tmp455_ > 0) {
+#line 2929 "Symbol.c"
+               {
+                       gint i = 0;
+#line 552 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       i = 0;
+#line 2934 "Symbol.c"
+                       {
+                               gboolean _tmp456_ = FALSE;
+#line 552 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp456_ = TRUE;
+#line 552 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               while (TRUE) {
+#line 2941 "Symbol.c"
+                                       gint _tmp458_;
+                                       GeeArrayList* _tmp459_;
+                                       gint _tmp460_;
+                                       gint _tmp461_;
+                                       GeeArrayList* _tmp462_;
+                                       gint _tmp463_;
+                                       gpointer _tmp464_;
+                                       JSDOCDocTag* _tmp465_;
+#line 552 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       if (!_tmp456_) {
+#line 2952 "Symbol.c"
+                                               gint _tmp457_;
+#line 552 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                               _tmp457_ = i;
+#line 552 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                               i = _tmp457_ + 1;
+#line 2958 "Symbol.c"
+                                       }
+#line 552 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp456_ = FALSE;
+#line 552 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp458_ = i;
+#line 552 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp459_ = conf;
+#line 552 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp460_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp459_);
+#line 552 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp461_ = _tmp460_;
+#line 552 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       if (!(_tmp458_ < _tmp461_)) {
+#line 552 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                               break;
+#line 2974 "Symbol.c"
+                                       }
+#line 553 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp462_ = conf;
+#line 553 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp463_ = i;
+#line 553 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp464_ = gee_abstract_list_get ((GeeAbstractList*) _tmp462_, _tmp463_);
+#line 553 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp465_ = (JSDOCDocTag*) _tmp464_;
+#line 553 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       jsdoc_symbol_addConfig (self, _tmp465_);
+#line 553 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _g_object_unref0 (_tmp465_);
+#line 2988 "Symbol.c"
+                               }
+                       }
+               }
+       }
+#line 560 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp466_ = self->comment;
+#line 560 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp467_ = jsdoc_doc_comment_getTag (_tmp466_, JSDOC_DOC_TAG_TITLE_RETURN);
+#line 560 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       returns = _tmp467_;
+#line 561 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp468_ = returns;
+#line 561 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp469_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp468_);
+#line 561 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp470_ = _tmp469_;
+#line 561 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       if (_tmp470_ > 0) {
+#line 3007 "Symbol.c"
+               GeeArrayList* _tmp471_;
+               GeeArrayList* _tmp472_;
+               gchar* _tmp473_;
+#line 562 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp471_ = returns;
+#line 562 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp472_ = _g_object_ref0 (_tmp471_);
+#line 562 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _g_object_unref0 (self->returns);
+#line 562 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               self->returns = _tmp472_;
+#line 564 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp473_ = g_strdup ("");
+#line 564 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _g_free0 (self->priv->type);
+#line 564 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               self->priv->type = _tmp473_;
+#line 3025 "Symbol.c"
+               {
+                       GeeArrayList* _r_list = NULL;
+                       GeeArrayList* _tmp474_;
+                       GeeArrayList* _tmp475_;
+                       gint _r_size = 0;
+                       GeeArrayList* _tmp476_;
+                       gint _tmp477_;
+                       gint _tmp478_;
+                       gint _r_index = 0;
+#line 565 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp474_ = returns;
+#line 565 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp475_ = _g_object_ref0 (_tmp474_);
+#line 565 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _r_list = _tmp475_;
+#line 565 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp476_ = _r_list;
+#line 565 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp477_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp476_);
+#line 565 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp478_ = _tmp477_;
+#line 565 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _r_size = _tmp478_;
+#line 565 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _r_index = -1;
+#line 565 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       while (TRUE) {
+#line 3053 "Symbol.c"
+                               gint _tmp479_;
+                               gint _tmp480_;
+                               gint _tmp481_;
+                               JSDOCDocTag* r = NULL;
+                               GeeArrayList* _tmp482_;
+                               gint _tmp483_;
+                               gpointer _tmp484_;
+                               const gchar* _tmp485_ = NULL;
+                               const gchar* _tmp486_;
+                               const gchar* _tmp487_;
+                               gchar* _tmp488_;
+                               const gchar* _tmp489_;
+                               JSDOCDocTag* _tmp490_;
+                               const gchar* _tmp491_;
+                               gchar* _tmp492_;
+#line 565 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp479_ = _r_index;
+#line 565 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _r_index = _tmp479_ + 1;
+#line 565 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp480_ = _r_index;
+#line 565 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp481_ = _r_size;
+#line 565 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               if (!(_tmp480_ < _tmp481_)) {
+#line 565 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       break;
+#line 3081 "Symbol.c"
+                               }
+#line 565 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp482_ = _r_list;
+#line 565 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp483_ = _r_index;
+#line 565 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp484_ = gee_abstract_list_get ((GeeAbstractList*) _tmp482_, _tmp483_);
+#line 565 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               r = (JSDOCDocTag*) _tmp484_;
+#line 566 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp486_ = self->priv->type;
+#line 566 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               if (g_strcmp0 (_tmp486_, "") == 0) {
+#line 566 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp485_ = "";
+#line 3097 "Symbol.c"
+                               } else {
+#line 566 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp485_ = ", ";
+#line 3101 "Symbol.c"
+                               }
+#line 566 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp487_ = self->priv->type;
+#line 566 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp488_ = g_strconcat (_tmp487_, _tmp485_, NULL);
+#line 566 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _g_free0 (self->priv->type);
+#line 566 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               self->priv->type = _tmp488_;
+#line 567 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp489_ = self->priv->type;
+#line 567 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp490_ = r;
+#line 567 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp491_ = _tmp490_->type;
+#line 567 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp492_ = g_strconcat (_tmp489_, _tmp491_, NULL);
+#line 567 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _g_free0 (self->priv->type);
+#line 567 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               self->priv->type = _tmp492_;
+#line 565 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _g_object_unref0 (r);
+#line 3125 "Symbol.c"
+                       }
+#line 565 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _g_object_unref0 (_r_list);
+#line 3129 "Symbol.c"
+               }
+       }
+#line 574 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp493_ = self->comment;
+#line 574 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp494_ = jsdoc_doc_comment_getTag (_tmp493_, JSDOC_DOC_TAG_TITLE_THROWS);
+#line 574 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_object_unref0 (self->priv->exceptions);
+#line 574 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       self->priv->exceptions = _tmp494_;
+#line 578 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp495_ = self->comment;
+#line 578 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp496_ = jsdoc_doc_comment_getTag (_tmp495_, JSDOC_DOC_TAG_TITLE_REQUIRES);
+#line 578 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       requires = _tmp496_;
+#line 579 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp497_ = requires;
+#line 579 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp498_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp497_);
+#line 579 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp499_ = _tmp498_;
+#line 579 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       if (_tmp499_ > 0) {
+#line 3154 "Symbol.c"
+               GeeArrayList* _tmp500_;
+#line 580 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp500_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL);
+#line 580 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _g_object_unref0 (self->priv->requires);
+#line 580 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               self->priv->requires = _tmp500_;
+#line 3162 "Symbol.c"
+               {
+                       GeeArrayList* _r_list = NULL;
+                       GeeArrayList* _tmp501_;
+                       GeeArrayList* _tmp502_;
+                       gint _r_size = 0;
+                       GeeArrayList* _tmp503_;
+                       gint _tmp504_;
+                       gint _tmp505_;
+                       gint _r_index = 0;
+#line 581 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp501_ = requires;
+#line 581 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp502_ = _g_object_ref0 (_tmp501_);
+#line 581 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _r_list = _tmp502_;
+#line 581 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp503_ = _r_list;
+#line 581 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp504_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp503_);
+#line 581 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp505_ = _tmp504_;
+#line 581 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _r_size = _tmp505_;
+#line 581 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _r_index = -1;
+#line 581 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       while (TRUE) {
+#line 3190 "Symbol.c"
+                               gint _tmp506_;
+                               gint _tmp507_;
+                               gint _tmp508_;
+                               JSDOCDocTag* r = NULL;
+                               GeeArrayList* _tmp509_;
+                               gint _tmp510_;
+                               gpointer _tmp511_;
+                               GeeArrayList* _tmp512_;
+                               JSDOCDocTag* _tmp513_;
+                               const gchar* _tmp514_;
+#line 581 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp506_ = _r_index;
+#line 581 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _r_index = _tmp506_ + 1;
+#line 581 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp507_ = _r_index;
+#line 581 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp508_ = _r_size;
+#line 581 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               if (!(_tmp507_ < _tmp508_)) {
+#line 581 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       break;
+#line 3213 "Symbol.c"
+                               }
+#line 581 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp509_ = _r_list;
+#line 581 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp510_ = _r_index;
+#line 581 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp511_ = gee_abstract_list_get ((GeeAbstractList*) _tmp509_, _tmp510_);
+#line 581 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               r = (JSDOCDocTag*) _tmp511_;
+#line 582 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp512_ = self->priv->requires;
+#line 582 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp513_ = r;
+#line 582 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp514_ = _tmp513_->desc;
+#line 582 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               gee_abstract_collection_add ((GeeAbstractCollection*) _tmp512_, _tmp514_);
+#line 581 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _g_object_unref0 (r);
+#line 3233 "Symbol.c"
+                       }
+#line 581 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _g_object_unref0 (_r_list);
+#line 3237 "Symbol.c"
+               }
+       }
+#line 588 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp515_ = self->comment;
+#line 588 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp516_ = jsdoc_doc_comment_getTag (_tmp515_, JSDOC_DOC_TAG_TITLE_TYPE);
+#line 588 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       types = _tmp516_;
+#line 589 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp517_ = types;
+#line 589 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp518_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp517_);
+#line 589 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp519_ = _tmp518_;
+#line 589 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       if (_tmp519_ > 0) {
+#line 3254 "Symbol.c"
+               GeeArrayList* _tmp520_;
+               gpointer _tmp521_;
+               JSDOCDocTag* _tmp522_;
+               const gchar* _tmp523_;
+               gchar* _tmp524_;
+#line 590 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp520_ = types;
+#line 590 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp521_ = gee_abstract_list_get ((GeeAbstractList*) _tmp520_, 0);
+#line 590 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp522_ = (JSDOCDocTag*) _tmp521_;
+#line 590 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp523_ = _tmp522_->desc;
+#line 590 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp524_ = g_strdup (_tmp523_);
+#line 590 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _g_free0 (self->priv->type);
+#line 590 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               self->priv->type = _tmp524_;
+#line 590 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _g_object_unref0 (_tmp522_);
+#line 3276 "Symbol.c"
+       }
+#line 596 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp526_ = self->comment;
+#line 596 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp527_ = jsdoc_doc_comment_getTag (_tmp526_, JSDOC_DOC_TAG_TITLE_PRIVATE);
+#line 596 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp528_ = _tmp527_;
+#line 596 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp529_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp528_);
+#line 596 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp530_ = _tmp529_;
+#line 596 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp531_ = _tmp530_ > 0;
+#line 596 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_object_unref0 (_tmp528_);
+#line 596 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       if (_tmp531_) {
+#line 596 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp525_ = TRUE;
+#line 3296 "Symbol.c"
+       } else {
+               gboolean _tmp532_;
+#line 596 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp532_ = self->isInner;
+#line 596 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp525_ = _tmp532_;
+#line 3303 "Symbol.c"
+       }
+#line 596 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       if (_tmp525_) {
+#line 597 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               self->isPrivate = TRUE;
+#line 3309 "Symbol.c"
+       }
+#line 601 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp533_ = self->comment;
+#line 601 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp534_ = jsdoc_doc_comment_getTag (_tmp533_, JSDOC_DOC_TAG_TITLE_IGNORE);
+#line 601 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp535_ = _tmp534_;
+#line 601 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp536_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp535_);
+#line 601 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp537_ = _tmp536_;
+#line 601 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp538_ = _tmp537_ > 0;
+#line 601 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_object_unref0 (_tmp535_);
+#line 601 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       if (_tmp538_) {
+#line 602 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               self->isIgnored = TRUE;
+#line 3329 "Symbol.c"
+       }
+       {
+               GeeArrayList* _dt_list = NULL;
+               JSDOCDocComment* _tmp539_;
+               GeeArrayList* _tmp540_;
+               gint _dt_size = 0;
+               GeeArrayList* _tmp541_;
+               gint _tmp542_;
+               gint _tmp543_;
+               gint _dt_index = 0;
+#line 642 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp539_ = self->comment;
+#line 642 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp540_ = jsdoc_doc_comment_getTag (_tmp539_, JSDOC_DOC_TAG_TITLE_ARGUMENTS);
+#line 642 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _dt_list = _tmp540_;
+#line 642 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp541_ = _dt_list;
+#line 642 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp542_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp541_);
+#line 642 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp543_ = _tmp542_;
+#line 642 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _dt_size = _tmp543_;
+#line 642 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _dt_index = -1;
+#line 642 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               while (TRUE) {
+#line 3358 "Symbol.c"
+                       gint _tmp544_;
+                       gint _tmp545_;
+                       gint _tmp546_;
+                       JSDOCDocTag* dt = NULL;
+                       GeeArrayList* _tmp547_;
+                       gint _tmp548_;
+                       gpointer _tmp549_;
+                       GeeArrayList* _tmp550_;
+                       JSDOCDocTag* _tmp551_;
+                       const gchar* _tmp552_;
+#line 642 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp544_ = _dt_index;
+#line 642 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _dt_index = _tmp544_ + 1;
+#line 642 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp545_ = _dt_index;
+#line 642 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp546_ = _dt_size;
+#line 642 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       if (!(_tmp545_ < _tmp546_)) {
+#line 642 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               break;
+#line 3381 "Symbol.c"
+                       }
+#line 642 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp547_ = _dt_list;
+#line 642 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp548_ = _dt_index;
+#line 642 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp549_ = gee_abstract_list_get ((GeeAbstractList*) _tmp547_, _tmp548_);
+#line 642 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       dt = (JSDOCDocTag*) _tmp549_;
+#line 643 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp550_ = self->augments;
+#line 643 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp551_ = dt;
+#line 643 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp552_ = _tmp551_->desc;
+#line 643 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       gee_abstract_collection_add ((GeeAbstractCollection*) _tmp550_, _tmp552_);
+#line 642 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _g_object_unref0 (dt);
+#line 3401 "Symbol.c"
+               }
+#line 642 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _g_object_unref0 (_dt_list);
+#line 3405 "Symbol.c"
+       }
+       {
+               GeeArrayList* _dt_list = NULL;
+               JSDOCDocComment* _tmp553_;
+               GeeArrayList* _tmp554_;
+               gint _dt_size = 0;
+               GeeArrayList* _tmp555_;
+               gint _tmp556_;
+               gint _tmp557_;
+               gint _dt_index = 0;
+#line 646 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp553_ = self->comment;
+#line 646 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp554_ = jsdoc_doc_comment_getTag (_tmp553_, JSDOC_DOC_TAG_TITLE_EXTENDS);
+#line 646 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _dt_list = _tmp554_;
+#line 646 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp555_ = _dt_list;
+#line 646 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp556_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp555_);
+#line 646 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp557_ = _tmp556_;
+#line 646 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _dt_size = _tmp557_;
+#line 646 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _dt_index = -1;
+#line 646 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               while (TRUE) {
+#line 3434 "Symbol.c"
+                       gint _tmp558_;
+                       gint _tmp559_;
+                       gint _tmp560_;
+                       JSDOCDocTag* dt = NULL;
+                       GeeArrayList* _tmp561_;
+                       gint _tmp562_;
+                       gpointer _tmp563_;
+                       GeeArrayList* _tmp564_;
+                       JSDOCDocTag* _tmp565_;
+                       const gchar* _tmp566_;
+#line 646 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp558_ = _dt_index;
+#line 646 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _dt_index = _tmp558_ + 1;
+#line 646 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp559_ = _dt_index;
+#line 646 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp560_ = _dt_size;
+#line 646 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       if (!(_tmp559_ < _tmp560_)) {
+#line 646 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               break;
+#line 3457 "Symbol.c"
+                       }
+#line 646 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp561_ = _dt_list;
+#line 646 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp562_ = _dt_index;
+#line 646 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp563_ = gee_abstract_list_get ((GeeAbstractList*) _tmp561_, _tmp562_);
+#line 646 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       dt = (JSDOCDocTag*) _tmp563_;
+#line 647 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp564_ = self->augments;
+#line 647 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp565_ = dt;
+#line 647 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp566_ = _tmp565_->desc;
+#line 647 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       gee_abstract_collection_add ((GeeAbstractCollection*) _tmp564_, _tmp566_);
+#line 646 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _g_object_unref0 (dt);
+#line 3477 "Symbol.c"
+               }
+#line 646 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _g_object_unref0 (_dt_list);
+#line 3481 "Symbol.c"
+       }
+#line 653 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp567_ = self->comment;
+#line 653 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp568_ = jsdoc_doc_comment_getTag (_tmp567_, JSDOC_DOC_TAG_TITLE_DEFAULT);
+#line 653 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       defaults = _tmp568_;
+#line 654 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp569_ = defaults;
+#line 654 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp570_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp569_);
+#line 654 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp571_ = _tmp570_;
+#line 654 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       if (_tmp571_ > 0) {
+#line 3497 "Symbol.c"
+               gboolean _tmp572_;
+#line 655 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp572_ = jsdoc_symbol_is (self, "OBJECT");
+#line 655 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               if (_tmp572_) {
+#line 3503 "Symbol.c"
+                       GeeArrayList* _tmp573_;
+                       gpointer _tmp574_;
+                       JSDOCDocTag* _tmp575_;
+                       const gchar* _tmp576_;
+                       gchar* _tmp577_;
+#line 656 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp573_ = defaults;
+#line 656 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp574_ = gee_abstract_list_get ((GeeAbstractList*) _tmp573_, 0);
+#line 656 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp575_ = (JSDOCDocTag*) _tmp574_;
+#line 656 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp576_ = _tmp575_->desc;
+#line 656 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp577_ = g_strdup (_tmp576_);
+#line 656 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _g_free0 (self->priv->defaultValue);
+#line 656 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       self->priv->defaultValue = _tmp577_;
+#line 656 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _g_object_unref0 (_tmp575_);
+#line 3525 "Symbol.c"
+               }
+       }
+#line 665 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp578_ = self->comment;
+#line 665 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp579_ = jsdoc_doc_comment_getTag (_tmp578_, JSDOC_DOC_TAG_TITLE_MEMBEROF);
+#line 665 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       memberOfs = _tmp579_;
+#line 666 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp580_ = memberOfs;
+#line 666 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp581_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp580_);
+#line 666 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp582_ = _tmp581_;
+#line 666 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       if (_tmp582_ > 0) {
+#line 3542 "Symbol.c"
+               GeeArrayList* _tmp583_;
+               gpointer _tmp584_;
+               JSDOCDocTag* _tmp585_;
+               const gchar* _tmp586_;
+               gchar* _tmp587_;
+               GRegex* pr_reg = NULL;
+               GRegex* _tmp588_;
+               gchar* _tmp589_ = NULL;
+               GRegex* _tmp590_;
+               const gchar* _tmp591_;
+               const gchar* _tmp592_;
+               gint _tmp593_;
+               gint _tmp594_;
+               gchar* _tmp595_;
+               gchar* _tmp596_;
+               gchar** dname = NULL;
+               const gchar* _tmp597_;
+               const gchar* _tmp598_;
+               gchar** _tmp599_;
+               gchar** _tmp600_;
+               gint dname_length1;
+               gint _dname_size_;
+               gchar* name = NULL;
+               gchar** _tmp601_;
+               gint _tmp601__length1;
+               gchar** _tmp602_;
+               gint _tmp602__length1;
+               const gchar* _tmp603_;
+               gchar* _tmp604_;
+               gchar** hname = NULL;
+               const gchar* _tmp605_;
+               gchar** _tmp606_;
+               gchar** _tmp607_;
+               gint hname_length1;
+               gint _hname_size_;
+               gchar** _tmp608_;
+               gint _tmp608__length1;
+               gchar** _tmp609_;
+               gint _tmp609__length1;
+               const gchar* _tmp610_;
+               gchar* _tmp611_;
+               const gchar* _tmp612_;
+               gchar* _tmp613_;
+               gchar* _tmp614_;
+               const gchar* _tmp615_;
+               gchar* _tmp616_;
+               gchar* _tmp617_;
+               const gchar* _tmp618_;
+               const gchar* _tmp619_;
+               gchar* _tmp620_;
+#line 667 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp583_ = memberOfs;
+#line 667 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp584_ = gee_abstract_list_get ((GeeAbstractList*) _tmp583_, 0);
+#line 667 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp585_ = (JSDOCDocTag*) _tmp584_;
+#line 667 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp586_ = _tmp585_->desc;
+#line 667 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp587_ = g_strdup (_tmp586_);
+#line 667 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _g_free0 (self->memberOf);
+#line 667 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               self->memberOf = _tmp587_;
+#line 667 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _g_object_unref0 (_tmp585_);
+#line 668 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp588_ = _g_regex_ref0 (_thread_safe_regex_init (&_tmp_regex_0, "\\.prototype\\.?", 0));
+#line 668 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               pr_reg = _tmp588_;
+#line 670 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp590_ = pr_reg;
+#line 670 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp591_ = self->memberOf;
+#line 670 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp592_ = self->memberOf;
+#line 670 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp593_ = strlen (_tmp592_);
+#line 670 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp594_ = _tmp593_;
+#line 670 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp595_ = g_regex_replace (_tmp590_, _tmp591_, (gssize) _tmp594_, 0, "#", 0, &_inner_error_);
+#line 670 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp589_ = _tmp595_;
+#line 670 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 670 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _g_regex_unref0 (pr_reg);
+#line 670 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _g_object_unref0 (memberOfs);
+#line 670 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _g_object_unref0 (defaults);
+#line 670 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _g_object_unref0 (types);
+#line 670 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _g_object_unref0 (requires);
+#line 670 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _g_object_unref0 (returns);
+#line 670 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _g_object_unref0 (conf);
+#line 670 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _g_object_unref0 (properties);
+#line 670 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _g_object_unref0 (names);
+#line 670 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _g_object_unref0 (events);
+#line 670 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _g_object_unref0 (params);
+#line 670 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _g_object_unref0 (namespaces);
+#line 670 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _g_object_unref0 (classes);
+#line 670 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _g_object_unref0 (sees);
+#line 670 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _g_object_unref0 (examples);
+#line 670 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _g_object_unref0 (deprecateds);
+#line 670 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _g_object_unref0 (versions);
+#line 670 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _g_object_unref0 (sinces);
+#line 670 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _g_object_unref0 (descs);
+#line 670 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _g_object_unref0 (mth);
+#line 670 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _g_object_unref0 (authors);
+#line 670 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       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);
+#line 670 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       g_clear_error (&_inner_error_);
+#line 670 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       return;
+#line 3677 "Symbol.c"
+               }
+#line 670 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp596_ = _tmp589_;
+#line 670 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp589_ = NULL;
+#line 670 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _g_free0 (self->memberOf);
+#line 670 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               self->memberOf = _tmp596_;
+#line 671 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp597_ = jsdoc_symbol_get_name (self);
+#line 671 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp598_ = _tmp597_;
+#line 671 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp600_ = _tmp599_ = g_strsplit (_tmp598_, ".", 0);
+#line 671 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               dname = _tmp600_;
+#line 671 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               dname_length1 = _vala_array_length (_tmp599_);
+#line 671 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _dname_size_ = dname_length1;
+#line 672 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp601_ = dname;
+#line 672 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp601__length1 = dname_length1;
+#line 672 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp602_ = dname;
+#line 672 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp602__length1 = dname_length1;
+#line 672 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp603_ = _tmp601_[_tmp602__length1 - 1];
+#line 672 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp604_ = g_strdup (_tmp603_);
+#line 672 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               name = _tmp604_;
+#line 674 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp605_ = name;
+#line 674 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp607_ = _tmp606_ = g_strsplit (_tmp605_, "#", 0);
+#line 674 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               hname = _tmp607_;
+#line 674 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               hname_length1 = _vala_array_length (_tmp606_);
+#line 674 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _hname_size_ = hname_length1;
+#line 675 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp608_ = hname;
+#line 675 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp608__length1 = hname_length1;
+#line 675 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp609_ = hname;
+#line 675 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp609__length1 = hname_length1;
+#line 675 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp610_ = _tmp608_[_tmp609__length1 - 1];
+#line 675 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp611_ = g_strdup (_tmp610_);
+#line 675 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _g_free0 (name);
+#line 675 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               name = _tmp611_;
+#line 676 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp612_ = self->memberOf;
+#line 676 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp613_ = g_strconcat (_tmp612_, ".", NULL);
+#line 676 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp614_ = _tmp613_;
+#line 676 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp615_ = name;
+#line 676 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp616_ = g_strconcat (_tmp614_, _tmp615_, NULL);
+#line 676 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp617_ = _tmp616_;
+#line 676 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               jsdoc_symbol_set_private_name (self, _tmp617_);
+#line 676 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _g_free0 (_tmp617_);
+#line 676 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _g_free0 (_tmp614_);
+#line 677 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp618_ = jsdoc_symbol_get_name (self);
+#line 677 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp619_ = _tmp618_;
+#line 677 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp620_ = g_strdup (_tmp619_);
+#line 677 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _g_free0 (self->alias);
+#line 677 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               self->alias = _tmp620_;
+#line 666 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               hname = (_vala_array_free (hname, hname_length1, (GDestroyNotify) g_free), NULL);
+#line 666 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _g_free0 (name);
+#line 666 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               dname = (_vala_array_free (dname, dname_length1, (GDestroyNotify) g_free), NULL);
+#line 666 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _g_free0 (_tmp589_);
+#line 666 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _g_regex_unref0 (pr_reg);
+#line 3777 "Symbol.c"
+       }
+#line 685 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp621_ = self->comment;
+#line 685 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp622_ = jsdoc_doc_comment_getTag (_tmp621_, JSDOC_DOC_TAG_TITLE_PUBLIC);
+#line 685 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp623_ = _tmp622_;
+#line 685 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp624_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp623_);
+#line 685 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp625_ = _tmp624_;
+#line 685 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp626_ = _tmp625_ > 0;
+#line 685 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_object_unref0 (_tmp623_);
+#line 685 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       if (_tmp626_) {
+#line 686 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               self->isPrivate = FALSE;
+#line 3797 "Symbol.c"
+       }
+#line 241 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_object_unref0 (memberOfs);
+#line 241 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_object_unref0 (defaults);
+#line 241 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_object_unref0 (types);
+#line 241 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_object_unref0 (requires);
+#line 241 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_object_unref0 (returns);
+#line 241 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_object_unref0 (conf);
+#line 241 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_object_unref0 (properties);
+#line 241 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_object_unref0 (names);
+#line 241 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_object_unref0 (events);
+#line 241 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_object_unref0 (params);
+#line 241 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_object_unref0 (namespaces);
+#line 241 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_object_unref0 (classes);
+#line 241 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_object_unref0 (sees);
+#line 241 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_object_unref0 (examples);
+#line 241 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_object_unref0 (deprecateds);
+#line 241 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_object_unref0 (versions);
+#line 241 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_object_unref0 (sinces);
+#line 241 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_object_unref0 (descs);
+#line 241 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_object_unref0 (mth);
+#line 241 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_object_unref0 (authors);
+#line 3839 "Symbol.c"
+}
+
+
+gboolean jsdoc_symbol_is (JSDOCSymbol* self, const gchar* what) {
+       gboolean result = FALSE;
+       const gchar* _tmp0_;
+       const gchar* _tmp1_;
+#line 694 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       g_return_val_if_fail (self != NULL, FALSE);
+#line 694 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       g_return_val_if_fail (what != NULL, FALSE);
+#line 695 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp0_ = self->isa;
+#line 695 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp1_ = what;
+#line 695 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       result = g_strcmp0 (_tmp0_, _tmp1_) == 0;
+#line 695 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       return result;
+#line 3859 "Symbol.c"
+}
+
+
+gboolean jsdoc_symbol_isaClass (JSDOCSymbol* self) {
+       gboolean result = FALSE;
+       gboolean _tmp0_ = FALSE;
+       gboolean _tmp1_;
+#line 697 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       g_return_val_if_fail (self != NULL, FALSE);
+#line 700 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp1_ = jsdoc_symbol_is (self, "CONSTRUCTOR");
+#line 700 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       if (_tmp1_) {
+#line 700 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp0_ = TRUE;
+#line 3875 "Symbol.c"
+       } else {
+               gboolean _tmp2_;
+#line 700 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp2_ = self->isNamespace;
+#line 700 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp0_ = _tmp2_;
+#line 3882 "Symbol.c"
+       }
+#line 700 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       result = _tmp0_;
+#line 700 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       return result;
+#line 3888 "Symbol.c"
+}
+
+
+gboolean jsdoc_symbol_isBuiltin (JSDOCSymbol* self) {
+       gboolean result = FALSE;
+       const gchar* _tmp0_;
+       gboolean _tmp1_;
+#line 704 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       g_return_val_if_fail (self != NULL, FALSE);
+#line 705 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp0_ = self->alias;
+#line 705 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp1_ = jsdoc_symbol_set_isBuiltin (_tmp0_);
+#line 705 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       result = _tmp1_;
+#line 705 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       return result;
+#line 3906 "Symbol.c"
+}
+
+
+static void jsdoc_symbol_setType (JSDOCSymbol* self, const gchar* comment, gboolean overwrite) {
+       gboolean _tmp0_ = FALSE;
+       gboolean _tmp1_;
+       gchar* typeComment = NULL;
+       const gchar* _tmp5_;
+       gchar* _tmp6_;
+       const gchar* _tmp7_;
+       gchar* _tmp8_;
+#line 708 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       g_return_if_fail (self != NULL);
+#line 708 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       g_return_if_fail (comment != NULL);
+#line 709 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp1_ = overwrite;
+#line 709 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       if (!_tmp1_) {
+#line 3926 "Symbol.c"
+               const gchar* _tmp2_;
+               gint _tmp3_;
+               gint _tmp4_;
+#line 709 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp2_ = self->priv->type;
+#line 709 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp3_ = strlen (_tmp2_);
+#line 709 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp4_ = _tmp3_;
+#line 709 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp0_ = _tmp4_ > 0;
+#line 3938 "Symbol.c"
+       } else {
+#line 709 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp0_ = FALSE;
+#line 3942 "Symbol.c"
+       }
+#line 709 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       if (_tmp0_) {
+#line 710 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               return;
+#line 3948 "Symbol.c"
+       }
+#line 712 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp5_ = comment;
+#line 712 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp6_ = jsdoc_doc_comment_unwrapComment (_tmp5_);
+#line 712 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       typeComment = _tmp6_;
+#line 713 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp7_ = typeComment;
+#line 713 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp8_ = g_strdup (_tmp7_);
+#line 713 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_free0 (self->priv->type);
+#line 713 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       self->priv->type = _tmp8_;
+#line 708 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_free0 (typeComment);
+#line 3966 "Symbol.c"
+}
+
+
+void jsdoc_symbol_inherit (JSDOCSymbol* self, JSDOCSymbol* symbol) {
+       gboolean _tmp0_ = FALSE;
+       JSDOCSymbol* _tmp1_;
+       const gchar* _tmp2_;
+       const gchar* _tmp3_;
+       gboolean _tmp4_;
+#line 716 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       g_return_if_fail (self != NULL);
+#line 716 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       g_return_if_fail (symbol != NULL);
+#line 717 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp1_ = symbol;
+#line 717 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp2_ = jsdoc_symbol_get_name (_tmp1_);
+#line 717 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp3_ = _tmp2_;
+#line 717 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp4_ = jsdoc_symbol_hasMember (self, _tmp3_);
+#line 717 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       if (!_tmp4_) {
+#line 3990 "Symbol.c"
+               JSDOCSymbol* _tmp5_;
+               gboolean _tmp6_;
+#line 717 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp5_ = symbol;
+#line 717 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp6_ = _tmp5_->isInner;
+#line 717 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp0_ = !_tmp6_;
+#line 3999 "Symbol.c"
+       } else {
+#line 717 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp0_ = FALSE;
+#line 4003 "Symbol.c"
+       }
+#line 717 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       if (_tmp0_) {
+#line 4007 "Symbol.c"
+               JSDOCSymbol* _tmp7_;
+               gboolean _tmp8_;
+#line 718 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp7_ = symbol;
+#line 718 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp8_ = jsdoc_symbol_is (_tmp7_, "FUNCTION");
+#line 718 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               if (_tmp8_) {
+#line 4016 "Symbol.c"
+                       GeeArrayList* _tmp9_;
+                       JSDOCSymbol* _tmp10_;
+#line 719 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp9_ = self->methods;
+#line 719 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp10_ = symbol;
+#line 719 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       gee_abstract_collection_add ((GeeAbstractCollection*) _tmp9_, _tmp10_);
+#line 4025 "Symbol.c"
+               } else {
+                       JSDOCSymbol* _tmp11_;
+                       gboolean _tmp12_;
+#line 720 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp11_ = symbol;
+#line 720 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp12_ = jsdoc_symbol_is (_tmp11_, "OBJECT");
+#line 720 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       if (_tmp12_) {
+#line 4035 "Symbol.c"
+                               GeeArrayList* _tmp13_;
+                               JSDOCSymbol* _tmp14_;
+#line 721 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp13_ = self->properties;
+#line 721 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp14_ = symbol;
+#line 721 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               gee_abstract_collection_add ((GeeAbstractCollection*) _tmp13_, _tmp14_);
+#line 4044 "Symbol.c"
+                       }
+               }
+       }
+}
+
+
+static gboolean jsdoc_symbol_hasMember (JSDOCSymbol* self, const gchar* name) {
+       gboolean result = FALSE;
+       gboolean _tmp0_ = FALSE;
+       const gchar* _tmp1_;
+       gboolean _tmp2_;
+#line 725 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       g_return_val_if_fail (self != NULL, FALSE);
+#line 725 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       g_return_val_if_fail (name != NULL, FALSE);
+#line 726 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp1_ = name;
+#line 726 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp2_ = jsdoc_symbol_hasMethod (self, _tmp1_);
+#line 726 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       if (_tmp2_) {
+#line 726 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp0_ = TRUE;
+#line 4068 "Symbol.c"
+       } else {
+               const gchar* _tmp3_;
+               gboolean _tmp4_;
+#line 726 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp3_ = name;
+#line 726 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp4_ = jsdoc_symbol_hasProperty (self, _tmp3_);
+#line 726 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp0_ = _tmp4_;
+#line 4078 "Symbol.c"
+       }
+#line 726 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       result = _tmp0_;
+#line 726 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       return result;
+#line 4084 "Symbol.c"
+}
+
+
+void jsdoc_symbol_addMember (JSDOCSymbol* self, JSDOCSymbol* symbol) {
+       JSDOCSymbol* _tmp0_;
+       JSDOCDocComment* _tmp1_;
+       GeeArrayList* _tmp2_;
+       GeeArrayList* _tmp3_;
+       gint _tmp4_;
+       gint _tmp5_;
+       gboolean _tmp6_;
+       JSDOCSymbol* _tmp21_;
+       gboolean _tmp22_;
+#line 729 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       g_return_if_fail (self != NULL);
+#line 729 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       g_return_if_fail (symbol != NULL);
+#line 732 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp0_ = symbol;
+#line 732 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp1_ = _tmp0_->comment;
+#line 732 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp2_ = jsdoc_doc_comment_getTag (_tmp1_, JSDOC_DOC_TAG_TITLE_CFG);
+#line 732 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp3_ = _tmp2_;
+#line 732 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp4_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp3_);
+#line 732 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp5_ = _tmp4_;
+#line 732 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp6_ = _tmp5_ == 1;
+#line 732 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_object_unref0 (_tmp3_);
+#line 732 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       if (_tmp6_) {
+#line 4120 "Symbol.c"
+               JSDOCSymbol* _tmp7_;
+               JSDOCDocComment* _tmp8_;
+               GeeArrayList* _tmp9_;
+               GeeArrayList* _tmp10_;
+               gpointer _tmp11_;
+               JSDOCDocTag* _tmp12_;
+               const gchar* _tmp13_;
+               gchar* _tmp14_;
+               JSDOCSymbol* _tmp15_;
+               JSDOCDocComment* _tmp16_;
+               GeeArrayList* _tmp17_;
+               GeeArrayList* _tmp18_;
+               gpointer _tmp19_;
+               JSDOCDocTag* _tmp20_;
+#line 733 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp7_ = symbol;
+#line 733 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp8_ = _tmp7_->comment;
+#line 733 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp9_ = jsdoc_doc_comment_getTag (_tmp8_, JSDOC_DOC_TAG_TITLE_CFG);
+#line 733 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp10_ = _tmp9_;
+#line 733 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp11_ = gee_abstract_list_get ((GeeAbstractList*) _tmp10_, 0);
+#line 733 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp12_ = (JSDOCDocTag*) _tmp11_;
+#line 733 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp13_ = self->alias;
+#line 733 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp14_ = g_strdup (_tmp13_);
+#line 733 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _g_free0 (_tmp12_->memberOf);
+#line 733 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp12_->memberOf = _tmp14_;
+#line 733 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _g_object_unref0 (_tmp12_);
+#line 733 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _g_object_unref0 (_tmp10_);
+#line 734 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp15_ = symbol;
+#line 734 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp16_ = _tmp15_->comment;
+#line 734 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp17_ = jsdoc_doc_comment_getTag (_tmp16_, JSDOC_DOC_TAG_TITLE_CFG);
+#line 734 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp18_ = _tmp17_;
+#line 734 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp19_ = gee_abstract_list_get ((GeeAbstractList*) _tmp18_, 0);
+#line 734 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp20_ = (JSDOCDocTag*) _tmp19_;
+#line 734 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               jsdoc_symbol_addConfig (self, _tmp20_);
+#line 734 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _g_object_unref0 (_tmp20_);
+#line 734 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _g_object_unref0 (_tmp18_);
+#line 735 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               return;
+#line 4179 "Symbol.c"
+       }
+#line 738 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp21_ = symbol;
+#line 738 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp22_ = jsdoc_symbol_is (_tmp21_, "FUNCTION");
+#line 738 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       if (_tmp22_) {
+#line 4187 "Symbol.c"
+               JSDOCSymbol* _tmp23_;
+#line 738 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp23_ = symbol;
+#line 738 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               jsdoc_symbol_addMethod (self, _tmp23_);
+#line 4193 "Symbol.c"
+       } else {
+               JSDOCSymbol* _tmp24_;
+               gboolean _tmp25_;
+#line 739 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp24_ = symbol;
+#line 739 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp25_ = jsdoc_symbol_is (_tmp24_, "OBJECT");
+#line 739 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               if (_tmp25_) {
+#line 4203 "Symbol.c"
+                       JSDOCSymbol* _tmp26_;
+#line 739 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp26_ = symbol;
+#line 739 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       jsdoc_symbol_addProperty (self, _tmp26_);
+#line 4209 "Symbol.c"
+               }
+       }
+}
+
+
+static gboolean jsdoc_symbol_hasMethod (JSDOCSymbol* self, const gchar* name) {
+       gboolean result = FALSE;
+       GeeArrayList* thisMethods = NULL;
+       GeeArrayList* _tmp0_;
+       GeeArrayList* _tmp1_;
+#line 742 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       g_return_val_if_fail (self != NULL, FALSE);
+#line 742 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       g_return_val_if_fail (name != NULL, FALSE);
+#line 743 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp0_ = self->methods;
+#line 743 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 743 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       thisMethods = _tmp1_;
+#line 4230 "Symbol.c"
+       {
+               gint i = 0;
+               gint l = 0;
+               GeeArrayList* _tmp2_;
+               gint _tmp3_;
+               gint _tmp4_;
+#line 744 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               i = 0;
+#line 744 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp2_ = thisMethods;
+#line 744 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp3_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp2_);
+#line 744 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp4_ = _tmp3_;
+#line 744 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               l = _tmp4_;
+#line 4247 "Symbol.c"
+               {
+                       gboolean _tmp5_ = FALSE;
+#line 744 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp5_ = TRUE;
+#line 744 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       while (TRUE) {
+#line 4254 "Symbol.c"
+                               gint _tmp7_;
+                               gint _tmp8_;
+                               GeeArrayList* _tmp9_;
+                               gint _tmp10_;
+                               gpointer _tmp11_;
+                               JSDOCSymbol* _tmp12_;
+                               const gchar* _tmp13_;
+                               const gchar* _tmp14_;
+                               const gchar* _tmp15_;
+                               gboolean _tmp16_;
+                               GeeArrayList* _tmp17_;
+                               gint _tmp18_;
+                               gpointer _tmp19_;
+                               JSDOCSymbol* _tmp20_;
+                               const gchar* _tmp21_;
+                               const gchar* _tmp22_;
+                               gboolean _tmp23_;
+#line 744 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               if (!_tmp5_) {
+#line 4274 "Symbol.c"
+                                       gint _tmp6_;
+#line 744 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp6_ = i;
+#line 744 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       i = _tmp6_ + 1;
+#line 4280 "Symbol.c"
+                               }
+#line 744 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp5_ = FALSE;
+#line 744 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp7_ = i;
+#line 744 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp8_ = l;
+#line 744 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               if (!(_tmp7_ < _tmp8_)) {
+#line 744 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       break;
+#line 4292 "Symbol.c"
+                               }
+#line 745 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp9_ = thisMethods;
+#line 745 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp10_ = i;
+#line 745 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp11_ = gee_abstract_list_get ((GeeAbstractList*) _tmp9_, _tmp10_);
+#line 745 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp12_ = (JSDOCSymbol*) _tmp11_;
+#line 745 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp13_ = jsdoc_symbol_get_name (_tmp12_);
+#line 745 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp14_ = _tmp13_;
+#line 745 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp15_ = name;
+#line 745 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp16_ = g_strcmp0 (_tmp14_, _tmp15_) == 0;
+#line 745 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _g_object_unref0 (_tmp12_);
+#line 745 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               if (_tmp16_) {
+#line 745 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       result = TRUE;
+#line 745 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _g_object_unref0 (thisMethods);
+#line 745 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       return result;
+#line 4320 "Symbol.c"
+                               }
+#line 746 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp17_ = thisMethods;
+#line 746 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp18_ = i;
+#line 746 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp19_ = gee_abstract_list_get ((GeeAbstractList*) _tmp17_, _tmp18_);
+#line 746 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp20_ = (JSDOCSymbol*) _tmp19_;
+#line 746 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp21_ = _tmp20_->alias;
+#line 746 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp22_ = name;
+#line 746 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp23_ = g_strcmp0 (_tmp21_, _tmp22_) == 0;
+#line 746 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _g_object_unref0 (_tmp20_);
+#line 746 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               if (_tmp23_) {
+#line 746 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       result = TRUE;
+#line 746 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _g_object_unref0 (thisMethods);
+#line 746 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       return result;
+#line 4346 "Symbol.c"
+                               }
+                       }
+               }
+       }
+#line 748 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       result = FALSE;
+#line 748 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_object_unref0 (thisMethods);
+#line 748 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       return result;
+#line 4357 "Symbol.c"
+}
+
+
+static void jsdoc_symbol_addMethod (JSDOCSymbol* self, JSDOCSymbol* symbol) {
+       gchar* methodAlias = NULL;
+       JSDOCSymbol* _tmp0_;
+       const gchar* _tmp1_;
+       gchar* _tmp2_;
+       GeeArrayList* thisMethods = NULL;
+       GeeArrayList* _tmp3_;
+       GeeArrayList* _tmp4_;
+       GeeArrayList* _tmp22_;
+       JSDOCSymbol* _tmp23_;
+#line 751 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       g_return_if_fail (self != NULL);
+#line 751 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       g_return_if_fail (symbol != NULL);
+#line 752 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp0_ = symbol;
+#line 752 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp1_ = _tmp0_->alias;
+#line 752 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp2_ = g_strdup (_tmp1_);
+#line 752 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       methodAlias = _tmp2_;
+#line 753 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp3_ = self->methods;
+#line 753 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp4_ = _g_object_ref0 (_tmp3_);
+#line 753 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       thisMethods = _tmp4_;
+#line 4389 "Symbol.c"
+       {
+               gint i = 0;
+               gint l = 0;
+               GeeArrayList* _tmp5_;
+               gint _tmp6_;
+               gint _tmp7_;
+#line 754 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               i = 0;
+#line 754 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp5_ = thisMethods;
+#line 754 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp6_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp5_);
+#line 754 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp7_ = _tmp6_;
+#line 754 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               l = _tmp7_;
+#line 4406 "Symbol.c"
+               {
+                       gboolean _tmp8_ = FALSE;
+#line 754 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp8_ = TRUE;
+#line 754 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       while (TRUE) {
+#line 4413 "Symbol.c"
+                               gint _tmp10_;
+                               gint _tmp11_;
+                               GeeArrayList* _tmp12_;
+                               gint _tmp13_;
+                               gpointer _tmp14_;
+                               JSDOCSymbol* _tmp15_;
+                               const gchar* _tmp16_;
+                               const gchar* _tmp17_;
+                               gboolean _tmp18_;
+#line 754 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               if (!_tmp8_) {
+#line 4425 "Symbol.c"
+                                       gint _tmp9_;
+#line 754 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp9_ = i;
+#line 754 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       i = _tmp9_ + 1;
+#line 4431 "Symbol.c"
+                               }
+#line 754 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp8_ = FALSE;
+#line 754 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp10_ = i;
+#line 754 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp11_ = l;
+#line 754 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               if (!(_tmp10_ < _tmp11_)) {
+#line 754 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       break;
+#line 4443 "Symbol.c"
+                               }
+#line 755 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp12_ = thisMethods;
+#line 755 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp13_ = i;
+#line 755 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp14_ = gee_abstract_list_get ((GeeAbstractList*) _tmp12_, _tmp13_);
+#line 755 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp15_ = (JSDOCSymbol*) _tmp14_;
+#line 755 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp16_ = _tmp15_->alias;
+#line 755 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp17_ = methodAlias;
+#line 755 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp18_ = g_strcmp0 (_tmp16_, _tmp17_) == 0;
+#line 755 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _g_object_unref0 (_tmp15_);
+#line 755 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               if (_tmp18_) {
+#line 4463 "Symbol.c"
+                                       GeeArrayList* _tmp19_;
+                                       gint _tmp20_;
+                                       JSDOCSymbol* _tmp21_;
+#line 756 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp19_ = thisMethods;
+#line 756 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp20_ = i;
+#line 756 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp21_ = symbol;
+#line 756 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       gee_abstract_list_set ((GeeAbstractList*) _tmp19_, _tmp20_, _tmp21_);
+#line 757 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _g_object_unref0 (thisMethods);
+#line 757 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _g_free0 (methodAlias);
+#line 757 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       return;
+#line 4481 "Symbol.c"
+                               }
+                       }
+               }
+       }
+#line 760 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp22_ = thisMethods;
+#line 760 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp23_ = symbol;
+#line 760 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       gee_abstract_collection_add ((GeeAbstractCollection*) _tmp22_, _tmp23_);
+#line 751 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_object_unref0 (thisMethods);
+#line 751 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_free0 (methodAlias);
+#line 4496 "Symbol.c"
+}
+
+
+static gboolean jsdoc_symbol_hasProperty (JSDOCSymbol* self, const gchar* name) {
+       gboolean result = FALSE;
+       GeeArrayList* thisProperties = NULL;
+       GeeArrayList* _tmp0_;
+       GeeArrayList* _tmp1_;
+#line 763 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       g_return_val_if_fail (self != NULL, FALSE);
+#line 763 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       g_return_val_if_fail (name != NULL, FALSE);
+#line 764 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp0_ = self->properties;
+#line 764 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 764 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       thisProperties = _tmp1_;
+#line 4515 "Symbol.c"
+       {
+               gint i = 0;
+               gint l = 0;
+               GeeArrayList* _tmp2_;
+               gint _tmp3_;
+               gint _tmp4_;
+#line 765 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               i = 0;
+#line 765 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp2_ = thisProperties;
+#line 765 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp3_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp2_);
+#line 765 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp4_ = _tmp3_;
+#line 765 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               l = _tmp4_;
+#line 4532 "Symbol.c"
+               {
+                       gboolean _tmp5_ = FALSE;
+#line 765 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp5_ = TRUE;
+#line 765 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       while (TRUE) {
+#line 4539 "Symbol.c"
+                               gint _tmp7_;
+                               gint _tmp8_;
+                               GeeArrayList* _tmp9_;
+                               gint _tmp10_;
+                               gpointer _tmp11_;
+                               JSDOCSymbol* _tmp12_;
+                               const gchar* _tmp13_;
+                               const gchar* _tmp14_;
+                               const gchar* _tmp15_;
+                               gboolean _tmp16_;
+                               GeeArrayList* _tmp17_;
+                               gint _tmp18_;
+                               gpointer _tmp19_;
+                               JSDOCSymbol* _tmp20_;
+                               const gchar* _tmp21_;
+                               const gchar* _tmp22_;
+                               gboolean _tmp23_;
+#line 765 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               if (!_tmp5_) {
+#line 4559 "Symbol.c"
+                                       gint _tmp6_;
+#line 765 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp6_ = i;
+#line 765 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       i = _tmp6_ + 1;
+#line 4565 "Symbol.c"
+                               }
+#line 765 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp5_ = FALSE;
+#line 765 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp7_ = i;
+#line 765 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp8_ = l;
+#line 765 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               if (!(_tmp7_ < _tmp8_)) {
+#line 765 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       break;
+#line 4577 "Symbol.c"
+                               }
+#line 766 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp9_ = thisProperties;
+#line 766 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp10_ = i;
+#line 766 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp11_ = gee_abstract_list_get ((GeeAbstractList*) _tmp9_, _tmp10_);
+#line 766 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp12_ = (JSDOCSymbol*) _tmp11_;
+#line 766 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp13_ = jsdoc_symbol_get_name (_tmp12_);
+#line 766 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp14_ = _tmp13_;
+#line 766 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp15_ = name;
+#line 766 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp16_ = g_strcmp0 (_tmp14_, _tmp15_) == 0;
+#line 766 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _g_object_unref0 (_tmp12_);
+#line 766 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               if (_tmp16_) {
+#line 766 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       result = TRUE;
+#line 766 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _g_object_unref0 (thisProperties);
+#line 766 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       return result;
+#line 4605 "Symbol.c"
+                               }
+#line 767 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp17_ = thisProperties;
+#line 767 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp18_ = i;
+#line 767 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp19_ = gee_abstract_list_get ((GeeAbstractList*) _tmp17_, _tmp18_);
+#line 767 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp20_ = (JSDOCSymbol*) _tmp19_;
+#line 767 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp21_ = _tmp20_->alias;
+#line 767 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp22_ = name;
+#line 767 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp23_ = g_strcmp0 (_tmp21_, _tmp22_) == 0;
+#line 767 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _g_object_unref0 (_tmp20_);
+#line 767 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               if (_tmp23_) {
+#line 767 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       result = TRUE;
+#line 767 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _g_object_unref0 (thisProperties);
+#line 767 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       return result;
+#line 4631 "Symbol.c"
+                               }
+                       }
+               }
+       }
+#line 769 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       result = FALSE;
+#line 769 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_object_unref0 (thisProperties);
+#line 769 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       return result;
+#line 4642 "Symbol.c"
+}
+
+
+static void jsdoc_symbol_addProperty (JSDOCSymbol* self, JSDOCSymbol* symbol) {
+       gchar* propertyAlias = NULL;
+       JSDOCSymbol* _tmp0_;
+       const gchar* _tmp1_;
+       gchar* _tmp2_;
+       GeeArrayList* thisProperties = NULL;
+       GeeArrayList* _tmp3_;
+       GeeArrayList* _tmp4_;
+       GeeArrayList* _tmp22_;
+       JSDOCSymbol* _tmp23_;
+#line 772 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       g_return_if_fail (self != NULL);
+#line 772 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       g_return_if_fail (symbol != NULL);
+#line 773 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp0_ = symbol;
+#line 773 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp1_ = _tmp0_->alias;
+#line 773 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp2_ = g_strdup (_tmp1_);
+#line 773 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       propertyAlias = _tmp2_;
+#line 774 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp3_ = self->properties;
+#line 774 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp4_ = _g_object_ref0 (_tmp3_);
+#line 774 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       thisProperties = _tmp4_;
+#line 4674 "Symbol.c"
+       {
+               gint i = 0;
+               gint l = 0;
+               GeeArrayList* _tmp5_;
+               gint _tmp6_;
+               gint _tmp7_;
+#line 775 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               i = 0;
+#line 775 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp5_ = thisProperties;
+#line 775 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp6_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp5_);
+#line 775 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp7_ = _tmp6_;
+#line 775 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               l = _tmp7_;
+#line 4691 "Symbol.c"
+               {
+                       gboolean _tmp8_ = FALSE;
+#line 775 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp8_ = TRUE;
+#line 775 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       while (TRUE) {
+#line 4698 "Symbol.c"
+                               gint _tmp10_;
+                               gint _tmp11_;
+                               GeeArrayList* _tmp12_;
+                               gint _tmp13_;
+                               gpointer _tmp14_;
+                               JSDOCSymbol* _tmp15_;
+                               const gchar* _tmp16_;
+                               const gchar* _tmp17_;
+                               gboolean _tmp18_;
+#line 775 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               if (!_tmp8_) {
+#line 4710 "Symbol.c"
+                                       gint _tmp9_;
+#line 775 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp9_ = i;
+#line 775 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       i = _tmp9_ + 1;
+#line 4716 "Symbol.c"
+                               }
+#line 775 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp8_ = FALSE;
+#line 775 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp10_ = i;
+#line 775 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp11_ = l;
+#line 775 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               if (!(_tmp10_ < _tmp11_)) {
+#line 775 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       break;
+#line 4728 "Symbol.c"
+                               }
+#line 776 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp12_ = thisProperties;
+#line 776 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp13_ = i;
+#line 776 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp14_ = gee_abstract_list_get ((GeeAbstractList*) _tmp12_, _tmp13_);
+#line 776 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp15_ = (JSDOCSymbol*) _tmp14_;
+#line 776 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp16_ = _tmp15_->alias;
+#line 776 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp17_ = propertyAlias;
+#line 776 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp18_ = g_strcmp0 (_tmp16_, _tmp17_) == 0;
+#line 776 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _g_object_unref0 (_tmp15_);
+#line 776 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               if (_tmp18_) {
+#line 4748 "Symbol.c"
+                                       GeeArrayList* _tmp19_;
+                                       gint _tmp20_;
+                                       JSDOCSymbol* _tmp21_;
+#line 777 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp19_ = thisProperties;
+#line 777 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp20_ = i;
+#line 777 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp21_ = symbol;
+#line 777 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       gee_abstract_list_set ((GeeAbstractList*) _tmp19_, _tmp20_, _tmp21_);
+#line 778 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _g_object_unref0 (thisProperties);
+#line 778 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _g_free0 (propertyAlias);
+#line 778 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       return;
+#line 4766 "Symbol.c"
+                               }
+                       }
+               }
+       }
+#line 782 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp22_ = thisProperties;
+#line 782 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp23_ = symbol;
+#line 782 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       gee_abstract_collection_add ((GeeAbstractCollection*) _tmp22_, _tmp23_);
+#line 772 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_object_unref0 (thisProperties);
+#line 772 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_free0 (propertyAlias);
+#line 4781 "Symbol.c"
+}
+
+
+void jsdoc_symbol_addDocTag (JSDOCSymbol* self, JSDOCDocTag* docTag) {
+       JSDOCDocComment* _tmp0_;
+       GeeArrayList* _tmp1_;
+       JSDOCDocTag* _tmp2_;
+       JSDOCDocTag* _tmp3_;
+       JSDOCDocTagTitle _tmp4_;
+#line 785 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       g_return_if_fail (self != NULL);
+#line 785 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       g_return_if_fail (docTag != NULL);
+#line 787 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp0_ = self->comment;
+#line 787 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp1_ = _tmp0_->tags;
+#line 787 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp2_ = docTag;
+#line 787 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       gee_abstract_collection_add ((GeeAbstractCollection*) _tmp1_, _tmp2_);
+#line 788 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp3_ = docTag;
+#line 788 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp4_ = _tmp3_->title;
+#line 788 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       if (_tmp4_ == JSDOC_DOC_TAG_TITLE_CFG) {
+#line 4809 "Symbol.c"
+               JSDOCDocTag* _tmp5_;
+#line 789 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp5_ = docTag;
+#line 789 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               jsdoc_symbol_addConfig (self, _tmp5_);
+#line 4815 "Symbol.c"
+       }
+}
+
+
+void jsdoc_symbol_addConfig (JSDOCSymbol* self, JSDOCDocTag* docTag) {
+       JSDOCDocTag* _tmp0_;
+       const gchar* _tmp1_;
+       GeeHashMap* _tmp5_;
+       JSDOCDocTag* _tmp6_;
+       const gchar* _tmp7_;
+       gboolean _tmp8_;
+#line 794 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       g_return_if_fail (self != NULL);
+#line 794 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       g_return_if_fail (docTag != NULL);
+#line 796 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp0_ = docTag;
+#line 796 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp1_ = _tmp0_->memberOf;
+#line 796 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       if (g_strcmp0 (_tmp1_, "") == 0) {
+#line 4837 "Symbol.c"
+               JSDOCDocTag* _tmp2_;
+               const gchar* _tmp3_;
+               gchar* _tmp4_;
+#line 800 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp2_ = docTag;
+#line 800 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp3_ = self->alias;
+#line 800 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp4_ = g_strdup (_tmp3_);
+#line 800 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _g_free0 (_tmp2_->memberOf);
+#line 800 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp2_->memberOf = _tmp4_;
+#line 4851 "Symbol.c"
+       }
+#line 802 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp5_ = self->cfgs;
+#line 802 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp6_ = docTag;
+#line 802 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp7_ = _tmp6_->name;
+#line 802 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp8_ = gee_abstract_map_has_key ((GeeAbstractMap*) _tmp5_, _tmp7_);
+#line 802 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       if (!_tmp8_) {
+#line 4863 "Symbol.c"
+               GeeHashMap* _tmp9_;
+               JSDOCDocTag* _tmp10_;
+               const gchar* _tmp11_;
+               JSDOCDocTag* _tmp12_;
+#line 803 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp9_ = self->cfgs;
+#line 803 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp10_ = docTag;
+#line 803 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp11_ = _tmp10_->name;
+#line 803 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp12_ = docTag;
+#line 803 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               gee_abstract_map_set ((GeeAbstractMap*) _tmp9_, _tmp11_, _tmp12_);
+#line 4878 "Symbol.c"
+       }
+}
+
+
+static gboolean string_contains (const gchar* self, const gchar* needle) {
+       gboolean result = FALSE;
+       const gchar* _tmp0_;
+       gchar* _tmp1_;
+#line 1403 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (self != NULL, FALSE);
+#line 1403 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (needle != NULL, FALSE);
+#line 1404 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp0_ = needle;
+#line 1404 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp1_ = strstr ((gchar*) self, (gchar*) _tmp0_);
+#line 1404 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       result = _tmp1_ != NULL;
+#line 1404 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       return result;
+#line 4899 "Symbol.c"
+}
+
+
+GeeArrayList* jsdoc_symbol_configToArray (JSDOCSymbol* self) {
+       GeeArrayList* result = NULL;
+       GeeArrayList* r = NULL;
+       GeeArrayList* _tmp0_;
+#line 808 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 810 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp0_ = gee_array_list_new (JSDOC_TYPE_DOC_TAG, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL);
+#line 810 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       r = _tmp0_;
+#line 4913 "Symbol.c"
+       {
+               GeeIterator* _ci_it = NULL;
+               GeeHashMap* _tmp1_;
+               GeeSet* _tmp2_;
+               GeeSet* _tmp3_;
+               GeeSet* _tmp4_;
+               GeeIterator* _tmp5_;
+               GeeIterator* _tmp6_;
+#line 811 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp1_ = self->cfgs;
+#line 811 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp2_ = gee_abstract_map_get_keys ((GeeAbstractMap*) _tmp1_);
+#line 811 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp3_ = _tmp2_;
+#line 811 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp4_ = _tmp3_;
+#line 811 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp5_ = gee_iterable_iterator ((GeeIterable*) _tmp4_);
+#line 811 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp6_ = _tmp5_;
+#line 811 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _g_object_unref0 (_tmp4_);
+#line 811 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _ci_it = _tmp6_;
+#line 811 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               while (TRUE) {
+#line 4940 "Symbol.c"
+                       GeeIterator* _tmp7_;
+                       gboolean _tmp8_;
+                       gchar* ci = NULL;
+                       GeeIterator* _tmp9_;
+                       gpointer _tmp10_;
+                       GeeHashMap* _tmp11_;
+                       const gchar* _tmp12_;
+                       gpointer _tmp13_;
+                       JSDOCDocTag* _tmp14_;
+                       const gchar* _tmp15_;
+                       gboolean _tmp16_;
+                       gboolean _tmp17_;
+                       GeeArrayList* _tmp18_;
+                       GeeHashMap* _tmp19_;
+                       const gchar* _tmp20_;
+                       gpointer _tmp21_;
+                       JSDOCDocTag* _tmp22_;
+#line 811 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp7_ = _ci_it;
+#line 811 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp8_ = gee_iterator_next (_tmp7_);
+#line 811 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       if (!_tmp8_) {
+#line 811 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               break;
+#line 4966 "Symbol.c"
+                       }
+#line 811 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp9_ = _ci_it;
+#line 811 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp10_ = gee_iterator_get (_tmp9_);
+#line 811 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       ci = (gchar*) _tmp10_;
+#line 813 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp11_ = self->cfgs;
+#line 813 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp12_ = ci;
+#line 813 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp13_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp11_, _tmp12_);
+#line 813 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp14_ = (JSDOCDocTag*) _tmp13_;
+#line 813 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp15_ = _tmp14_->desc;
+#line 813 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp16_ = string_contains (_tmp15_, "@hide");
+#line 813 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp17_ = _tmp16_;
+#line 813 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _g_object_unref0 (_tmp14_);
+#line 813 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       if (_tmp17_) {
+#line 814 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _g_free0 (ci);
+#line 814 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               continue;
+#line 4996 "Symbol.c"
+                       }
+#line 816 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp18_ = r;
+#line 816 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp19_ = self->cfgs;
+#line 816 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp20_ = ci;
+#line 816 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp21_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp19_, _tmp20_);
+#line 816 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp22_ = (JSDOCDocTag*) _tmp21_;
+#line 816 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       gee_abstract_collection_add ((GeeAbstractCollection*) _tmp18_, _tmp22_);
+#line 816 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _g_object_unref0 (_tmp22_);
+#line 811 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _g_free0 (ci);
+#line 5014 "Symbol.c"
+               }
+#line 811 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _g_object_unref0 (_ci_it);
+#line 5018 "Symbol.c"
+       }
+#line 819 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       result = r;
+#line 819 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       return result;
+#line 5024 "Symbol.c"
+}
+
+
+gchar* jsdoc_symbol_makeFuncSkel (JSDOCSymbol* self) {
+       gchar* result = NULL;
+       GeeArrayList* _tmp0_;
+       GeeArrayList* _tmp1_;
+       gint _tmp2_;
+       gint _tmp3_;
+       gchar* ret = NULL;
+       gchar* _tmp5_;
+       gboolean f = FALSE;
+       const gchar* _tmp32_;
+       gchar* _tmp33_;
+#line 824 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 825 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp0_ = jsdoc_symbol_get_params (self);
+#line 825 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp1_ = _tmp0_;
+#line 825 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp2_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp1_);
+#line 825 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp3_ = _tmp2_;
+#line 825 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       if (_tmp3_ < 1) {
+#line 5051 "Symbol.c"
+               gchar* _tmp4_;
+#line 825 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp4_ = g_strdup ("function ()\n{\n\n}");
+#line 825 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               result = _tmp4_;
+#line 825 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               return result;
+#line 5059 "Symbol.c"
+       }
+#line 826 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp5_ = g_strdup ("function (");
+#line 826 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       ret = _tmp5_;
+#line 827 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       f = FALSE;
+#line 5067 "Symbol.c"
+       {
+               GeeArrayList* _p_list = NULL;
+               GeeArrayList* _tmp6_;
+               GeeArrayList* _tmp7_;
+               GeeArrayList* _tmp8_;
+               gint _p_size = 0;
+               GeeArrayList* _tmp9_;
+               gint _tmp10_;
+               gint _tmp11_;
+               gint _p_index = 0;
+#line 828 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp6_ = jsdoc_symbol_get_params (self);
+#line 828 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp7_ = _tmp6_;
+#line 828 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp8_ = _g_object_ref0 (_tmp7_);
+#line 828 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _p_list = _tmp8_;
+#line 828 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp9_ = _p_list;
+#line 828 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp10_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp9_);
+#line 828 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp11_ = _tmp10_;
+#line 828 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _p_size = _tmp11_;
+#line 828 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _p_index = -1;
+#line 828 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               while (TRUE) {
+#line 5098 "Symbol.c"
+                       gint _tmp12_;
+                       gint _tmp13_;
+                       gint _tmp14_;
+                       JSDOCDocTag* p = NULL;
+                       GeeArrayList* _tmp15_;
+                       gint _tmp16_;
+                       gpointer _tmp17_;
+                       JSDOCDocTag* _tmp18_;
+                       const gchar* _tmp19_;
+                       gboolean _tmp20_;
+                       const gchar* _tmp21_ = NULL;
+                       gboolean _tmp22_;
+                       const gchar* _tmp23_;
+                       gchar* _tmp24_;
+                       const gchar* _tmp25_ = NULL;
+                       JSDOCDocTag* _tmp26_;
+                       const gchar* _tmp27_;
+                       const gchar* _tmp30_;
+                       gchar* _tmp31_;
+#line 828 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp12_ = _p_index;
+#line 828 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _p_index = _tmp12_ + 1;
+#line 828 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp13_ = _p_index;
+#line 828 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp14_ = _p_size;
+#line 828 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       if (!(_tmp13_ < _tmp14_)) {
+#line 828 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               break;
+#line 5130 "Symbol.c"
+                       }
+#line 828 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp15_ = _p_list;
+#line 828 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp16_ = _p_index;
+#line 828 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp17_ = gee_abstract_list_get ((GeeAbstractList*) _tmp15_, _tmp16_);
+#line 828 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       p = (JSDOCDocTag*) _tmp17_;
+#line 829 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp18_ = p;
+#line 829 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp19_ = _tmp18_->name;
+#line 829 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp20_ = string_contains (_tmp19_, ".");
+#line 829 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       if (_tmp20_) {
+#line 829 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _g_object_unref0 (p);
+#line 829 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               continue;
+#line 5152 "Symbol.c"
+                       }
+#line 830 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp22_ = f;
+#line 830 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       if (_tmp22_) {
+#line 830 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp21_ = ", ";
+#line 5160 "Symbol.c"
+                       } else {
+#line 830 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp21_ = "";
+#line 5164 "Symbol.c"
+                       }
+#line 830 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp23_ = ret;
+#line 830 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp24_ = g_strconcat (_tmp23_, _tmp21_, NULL);
+#line 830 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _g_free0 (ret);
+#line 830 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       ret = _tmp24_;
+#line 831 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       f = TRUE;
+#line 832 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp26_ = p;
+#line 832 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp27_ = _tmp26_->name;
+#line 832 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       if (g_strcmp0 (_tmp27_, "this") == 0) {
+#line 832 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp25_ = "_self";
+#line 5184 "Symbol.c"
+                       } else {
+                               JSDOCDocTag* _tmp28_;
+                               const gchar* _tmp29_;
+#line 832 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp28_ = p;
+#line 832 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp29_ = _tmp28_->name;
+#line 832 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp25_ = _tmp29_;
+#line 5194 "Symbol.c"
+                       }
+#line 832 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp30_ = ret;
+#line 832 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp31_ = g_strconcat (_tmp30_, _tmp25_, NULL);
+#line 832 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _g_free0 (ret);
+#line 832 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       ret = _tmp31_;
+#line 828 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _g_object_unref0 (p);
+#line 5206 "Symbol.c"
+               }
+#line 828 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _g_object_unref0 (_p_list);
+#line 5210 "Symbol.c"
+       }
+#line 834 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp32_ = ret;
+#line 834 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp33_ = g_strconcat (_tmp32_, ")\n{\n\n}", NULL);
+#line 834 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       result = _tmp33_;
+#line 834 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_free0 (ret);
+#line 834 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       return result;
+#line 5222 "Symbol.c"
+}
+
+
+gchar* jsdoc_symbol_makeMethodSkel (JSDOCSymbol* self) {
+       gchar* result = NULL;
+       GeeArrayList* _tmp0_;
+       GeeArrayList* _tmp1_;
+       gint _tmp2_;
+       gint _tmp3_;
+       gchar* ret = NULL;
+       gchar* _tmp5_;
+       gboolean f = FALSE;
+       const gchar* _tmp41_;
+       gchar* _tmp42_;
+#line 836 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 837 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp0_ = jsdoc_symbol_get_params (self);
+#line 837 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp1_ = _tmp0_;
+#line 837 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp2_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp1_);
+#line 837 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp3_ = _tmp2_;
+#line 837 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       if (_tmp3_ < 1) {
+#line 5249 "Symbol.c"
+               gchar* _tmp4_;
+#line 837 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp4_ = g_strdup ("()\n{\n\n}");
+#line 837 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               result = _tmp4_;
+#line 837 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               return result;
+#line 5257 "Symbol.c"
+       }
+#line 838 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp5_ = g_strdup ("(");
+#line 838 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       ret = _tmp5_;
+#line 839 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       f = FALSE;
+#line 5265 "Symbol.c"
+       {
+               GeeArrayList* _p_list = NULL;
+               GeeArrayList* _tmp6_;
+               GeeArrayList* _tmp7_;
+               GeeArrayList* _tmp8_;
+               gint _p_size = 0;
+               GeeArrayList* _tmp9_;
+               gint _tmp10_;
+               gint _tmp11_;
+               gint _p_index = 0;
+#line 840 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp6_ = jsdoc_symbol_get_params (self);
+#line 840 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp7_ = _tmp6_;
+#line 840 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp8_ = _g_object_ref0 (_tmp7_);
+#line 840 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _p_list = _tmp8_;
+#line 840 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp9_ = _p_list;
+#line 840 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp10_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp9_);
+#line 840 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp11_ = _tmp10_;
+#line 840 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _p_size = _tmp11_;
+#line 840 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _p_index = -1;
+#line 840 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               while (TRUE) {
+#line 5296 "Symbol.c"
+                       gint _tmp12_;
+                       gint _tmp13_;
+                       gint _tmp14_;
+                       JSDOCDocTag* p = NULL;
+                       GeeArrayList* _tmp15_;
+                       gint _tmp16_;
+                       gpointer _tmp17_;
+                       JSDOCDocTag* _tmp18_;
+                       gchar* _tmp19_;
+                       gchar* _tmp20_;
+                       JSDOCDocTag* _tmp21_;
+                       const gchar* _tmp22_;
+                       gboolean _tmp23_;
+                       const gchar* _tmp24_ = NULL;
+                       gboolean _tmp25_;
+                       const gchar* _tmp26_;
+                       gchar* _tmp27_;
+                       JSDOCDocTag* _tmp28_;
+                       const gchar* _tmp29_;
+                       const gchar* _tmp30_;
+                       GQuark _tmp32_ = 0U;
+#line 845 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       static GQuark _tmp31_label0 = 0;
+#line 845 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       static GQuark _tmp31_label1 = 0;
+#line 840 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp12_ = _p_index;
+#line 840 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _p_index = _tmp12_ + 1;
+#line 840 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp13_ = _p_index;
+#line 840 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp14_ = _p_size;
+#line 840 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       if (!(_tmp13_ < _tmp14_)) {
+#line 840 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               break;
+#line 5334 "Symbol.c"
+                       }
+#line 840 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp15_ = _p_list;
+#line 840 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp16_ = _p_index;
+#line 840 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp17_ = gee_abstract_list_get ((GeeAbstractList*) _tmp15_, _tmp16_);
+#line 840 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       p = (JSDOCDocTag*) _tmp17_;
+#line 841 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp18_ = p;
+#line 841 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp19_ = jsdoc_doc_tag_asString (_tmp18_);
+#line 841 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp20_ = _tmp19_;
+#line 841 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       g_debug ("Symbol.vala:841: got param: %s", _tmp20_);
+#line 841 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _g_free0 (_tmp20_);
+#line 842 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp21_ = p;
+#line 842 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp22_ = _tmp21_->name;
+#line 842 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp23_ = string_contains (_tmp22_, ".");
+#line 842 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       if (_tmp23_) {
+#line 842 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _g_object_unref0 (p);
+#line 842 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               continue;
+#line 5366 "Symbol.c"
+                       }
+#line 843 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp25_ = f;
+#line 843 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       if (_tmp25_) {
+#line 843 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp24_ = ", ";
+#line 5374 "Symbol.c"
+                       } else {
+#line 843 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp24_ = "";
+#line 5378 "Symbol.c"
+                       }
+#line 843 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp26_ = ret;
+#line 843 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp27_ = g_strconcat (_tmp26_, _tmp24_, NULL);
+#line 843 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _g_free0 (ret);
+#line 843 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       ret = _tmp27_;
+#line 844 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       f = TRUE;
+#line 845 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp28_ = p;
+#line 845 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp29_ = _tmp28_->name;
+#line 845 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp30_ = _tmp29_;
+#line 845 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp32_ = (NULL == _tmp30_) ? 0 : g_quark_from_string (_tmp30_);
+#line 845 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       if (_tmp32_ == ((0 != _tmp31_label0) ? _tmp31_label0 : (_tmp31_label0 = g_quark_from_static_string ("this")))) {
+#line 845 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               switch (0) {
+#line 5402 "Symbol.c"
+                                       default:
+                                       {
+                                               const gchar* _tmp33_;
+                                               gchar* _tmp34_;
+#line 846 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                               _tmp33_ = ret;
+#line 846 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                               _tmp34_ = g_strconcat (_tmp33_, "this", NULL);
+#line 846 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                               _g_free0 (ret);
+#line 846 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                               ret = _tmp34_;
+#line 846 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                               break;
+#line 5417 "Symbol.c"
+                                       }
+                               }
+                       } else if (_tmp32_ == ((0 != _tmp31_label1) ? _tmp31_label1 : (_tmp31_label1 = g_quark_from_static_string ("function")))) {
+#line 845 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               switch (0) {
+#line 5423 "Symbol.c"
+                                       default:
+                                       {
+                                               const gchar* _tmp35_;
+                                               gchar* _tmp36_;
+#line 847 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                               _tmp35_ = ret;
+#line 847 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                               _tmp36_ = g_strconcat (_tmp35_, "function() {\n\n}", NULL);
+#line 847 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                               _g_free0 (ret);
+#line 847 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                               ret = _tmp36_;
+#line 847 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                               break;
+#line 5438 "Symbol.c"
+                                       }
+                               }
+                       } else {
+#line 845 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               switch (0) {
+#line 5444 "Symbol.c"
+                                       default:
+                                       {
+                                               const gchar* _tmp37_;
+                                               JSDOCDocTag* _tmp38_;
+                                               const gchar* _tmp39_;
+                                               gchar* _tmp40_;
+#line 848 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                               _tmp37_ = ret;
+#line 848 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                               _tmp38_ = p;
+#line 848 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                               _tmp39_ = _tmp38_->name;
+#line 848 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                               _tmp40_ = g_strconcat (_tmp37_, _tmp39_, NULL);
+#line 848 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                               _g_free0 (ret);
+#line 848 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                               ret = _tmp40_;
+#line 848 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                               break;
+#line 5465 "Symbol.c"
+                                       }
+                               }
+                       }
+#line 840 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _g_object_unref0 (p);
+#line 5471 "Symbol.c"
+               }
+#line 840 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _g_object_unref0 (_p_list);
+#line 5475 "Symbol.c"
+       }
+#line 851 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp41_ = ret;
+#line 851 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp42_ = g_strconcat (_tmp41_, ")", NULL);
+#line 851 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       result = _tmp42_;
+#line 851 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_free0 (ret);
+#line 851 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       return result;
+#line 5487 "Symbol.c"
+}
+
+
+static gpointer _json_object_ref0 (gpointer self) {
+#line 865 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       return self ? json_object_ref (self) : NULL;
+#line 5494 "Symbol.c"
+}
+
+
+JsonArray* jsdoc_symbol_paramsToJson (JSDOCSymbol* self) {
+       JsonArray* result = NULL;
+       JsonArray* ret = NULL;
+       JsonArray* _tmp0_;
+#line 854 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 856 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp0_ = json_array_new ();
+#line 856 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       ret = _tmp0_;
+#line 5508 "Symbol.c"
+       {
+               GeeArrayList* _p_list = NULL;
+               GeeArrayList* _tmp1_;
+               GeeArrayList* _tmp2_;
+               GeeArrayList* _tmp3_;
+               gint _p_size = 0;
+               GeeArrayList* _tmp4_;
+               gint _tmp5_;
+               gint _tmp6_;
+               gint _p_index = 0;
+#line 857 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp1_ = jsdoc_symbol_get_params (self);
+#line 857 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp2_ = _tmp1_;
+#line 857 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp3_ = _g_object_ref0 (_tmp2_);
+#line 857 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _p_list = _tmp3_;
+#line 857 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp4_ = _p_list;
+#line 857 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp5_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp4_);
+#line 857 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp6_ = _tmp5_;
+#line 857 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _p_size = _tmp6_;
+#line 857 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _p_index = -1;
+#line 857 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               while (TRUE) {
+#line 5539 "Symbol.c"
+                       gint _tmp7_;
+                       gint _tmp8_;
+                       gint _tmp9_;
+                       JSDOCDocTag* p = NULL;
+                       GeeArrayList* _tmp10_;
+                       gint _tmp11_;
+                       gpointer _tmp12_;
+                       JSDOCDocTag* _tmp13_;
+                       const gchar* _tmp14_;
+                       gboolean _tmp15_;
+                       JsonObject* add = NULL;
+                       JsonObject* _tmp16_;
+                       JsonObject* _tmp17_;
+                       JSDOCDocTag* _tmp18_;
+                       const gchar* _tmp19_;
+                       JsonObject* _tmp20_;
+                       JSDOCDocTag* _tmp21_;
+                       const gchar* _tmp22_;
+                       JsonObject* _tmp23_;
+                       JSDOCDocTag* _tmp24_;
+                       const gchar* _tmp25_;
+                       JsonObject* _tmp26_;
+                       JSDOCDocTag* _tmp27_;
+                       gboolean _tmp28_;
+                       JsonArray* _tmp29_;
+                       JsonObject* _tmp30_;
+                       JsonObject* _tmp31_;
+#line 857 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp7_ = _p_index;
+#line 857 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _p_index = _tmp7_ + 1;
+#line 857 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp8_ = _p_index;
+#line 857 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp9_ = _p_size;
+#line 857 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       if (!(_tmp8_ < _tmp9_)) {
+#line 857 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               break;
+#line 5579 "Symbol.c"
+                       }
+#line 857 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp10_ = _p_list;
+#line 857 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp11_ = _p_index;
+#line 857 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp12_ = gee_abstract_list_get ((GeeAbstractList*) _tmp10_, _tmp11_);
+#line 857 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       p = (JSDOCDocTag*) _tmp12_;
+#line 859 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp13_ = p;
+#line 859 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp14_ = _tmp13_->name;
+#line 859 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp15_ = string_contains (_tmp14_, ".");
+#line 859 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       if (_tmp15_) {
+#line 859 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _g_object_unref0 (p);
+#line 859 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               continue;
+#line 5601 "Symbol.c"
+                       }
+#line 860 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp16_ = json_object_new ();
+#line 860 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       add = _tmp16_;
+#line 861 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp17_ = add;
+#line 861 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp18_ = p;
+#line 861 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp19_ = _tmp18_->name;
+#line 861 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       json_object_set_string_member (_tmp17_, "name", _tmp19_);
+#line 862 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp20_ = add;
+#line 862 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp21_ = p;
+#line 862 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp22_ = _tmp21_->type;
+#line 862 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       json_object_set_string_member (_tmp20_, "type", _tmp22_);
+#line 863 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp23_ = add;
+#line 863 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp24_ = p;
+#line 863 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp25_ = _tmp24_->desc;
+#line 863 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       json_object_set_string_member (_tmp23_, "desc", _tmp25_);
+#line 864 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp26_ = add;
+#line 864 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp27_ = p;
+#line 864 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp28_ = _tmp27_->isOptional;
+#line 864 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       json_object_set_boolean_member (_tmp26_, "isOptional", _tmp28_);
+#line 865 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp29_ = ret;
+#line 865 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp30_ = add;
+#line 865 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp31_ = _json_object_ref0 (_tmp30_);
+#line 865 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       json_array_add_object_element (_tmp29_, _tmp31_);
+#line 857 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _json_object_unref0 (add);
+#line 857 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _g_object_unref0 (p);
+#line 5651 "Symbol.c"
+               }
+#line 857 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _g_object_unref0 (_p_list);
+#line 5655 "Symbol.c"
+       }
+#line 868 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       result = ret;
+#line 868 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       return result;
+#line 5661 "Symbol.c"
+}
+
+
+JsonArray* jsdoc_symbol_returnsToJson (JSDOCSymbol* self) {
+       JsonArray* result = NULL;
+       JsonArray* ret = NULL;
+       JsonArray* _tmp0_;
+#line 871 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 873 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp0_ = json_array_new ();
+#line 873 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       ret = _tmp0_;
+#line 5675 "Symbol.c"
+       {
+               GeeArrayList* _p_list = NULL;
+               GeeArrayList* _tmp1_;
+               GeeArrayList* _tmp2_;
+               gint _p_size = 0;
+               GeeArrayList* _tmp3_;
+               gint _tmp4_;
+               gint _tmp5_;
+               gint _p_index = 0;
+#line 874 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp1_ = self->returns;
+#line 874 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp2_ = _g_object_ref0 (_tmp1_);
+#line 874 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _p_list = _tmp2_;
+#line 874 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp3_ = _p_list;
+#line 874 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp4_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp3_);
+#line 874 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp5_ = _tmp4_;
+#line 874 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _p_size = _tmp5_;
+#line 874 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _p_index = -1;
+#line 874 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               while (TRUE) {
+#line 5703 "Symbol.c"
+                       gint _tmp6_;
+                       gint _tmp7_;
+                       gint _tmp8_;
+                       JSDOCDocTag* p = NULL;
+                       GeeArrayList* _tmp9_;
+                       gint _tmp10_;
+                       gpointer _tmp11_;
+                       JSDOCDocTag* _tmp12_;
+                       const gchar* _tmp13_;
+                       gboolean _tmp14_;
+                       JsonObject* add = NULL;
+                       JsonObject* _tmp15_;
+                       JsonObject* _tmp16_;
+                       JSDOCDocTag* _tmp17_;
+                       const gchar* _tmp18_;
+                       JsonObject* _tmp19_;
+                       JSDOCDocTag* _tmp20_;
+                       const gchar* _tmp21_;
+                       JsonObject* _tmp22_;
+                       JSDOCDocTag* _tmp23_;
+                       const gchar* _tmp24_;
+                       JsonArray* _tmp25_;
+                       JsonObject* _tmp26_;
+                       JsonObject* _tmp27_;
+#line 874 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp6_ = _p_index;
+#line 874 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _p_index = _tmp6_ + 1;
+#line 874 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp7_ = _p_index;
+#line 874 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp8_ = _p_size;
+#line 874 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       if (!(_tmp7_ < _tmp8_)) {
+#line 874 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               break;
+#line 5740 "Symbol.c"
+                       }
+#line 874 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp9_ = _p_list;
+#line 874 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp10_ = _p_index;
+#line 874 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp11_ = gee_abstract_list_get ((GeeAbstractList*) _tmp9_, _tmp10_);
+#line 874 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       p = (JSDOCDocTag*) _tmp11_;
+#line 876 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp12_ = p;
+#line 876 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp13_ = _tmp12_->name;
+#line 876 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp14_ = string_contains (_tmp13_, ".");
+#line 876 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       if (_tmp14_) {
+#line 876 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _g_object_unref0 (p);
+#line 876 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               continue;
+#line 5762 "Symbol.c"
+                       }
+#line 877 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp15_ = json_object_new ();
+#line 877 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       add = _tmp15_;
+#line 878 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp16_ = add;
+#line 878 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp17_ = p;
+#line 878 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp18_ = _tmp17_->name;
+#line 878 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       json_object_set_string_member (_tmp16_, "name", _tmp18_);
+#line 879 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp19_ = add;
+#line 879 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp20_ = p;
+#line 879 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp21_ = _tmp20_->type;
+#line 879 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       json_object_set_string_member (_tmp19_, "type", _tmp21_);
+#line 880 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp22_ = add;
+#line 880 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp23_ = p;
+#line 880 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp24_ = _tmp23_->desc;
+#line 880 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       json_object_set_string_member (_tmp22_, "desc", _tmp24_);
+#line 882 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp25_ = ret;
+#line 882 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp26_ = add;
+#line 882 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp27_ = _json_object_ref0 (_tmp26_);
+#line 882 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       json_array_add_object_element (_tmp25_, _tmp27_);
+#line 874 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _json_object_unref0 (add);
+#line 874 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _g_object_unref0 (p);
+#line 5804 "Symbol.c"
+               }
+#line 874 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _g_object_unref0 (_p_list);
+#line 5808 "Symbol.c"
+       }
+#line 885 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       result = ret;
+#line 885 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       return result;
+#line 5814 "Symbol.c"
+}
+
+
+JSDOCSymbol* jsdoc_symbol_construct (GType object_type) {
+       JSDOCSymbol * self = NULL;
+#line 11 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       self = (JSDOCSymbol*) g_object_new (object_type, NULL);
+#line 11 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       return self;
+#line 5824 "Symbol.c"
+}
+
+
+JSDOCSymbol* jsdoc_symbol_new (void) {
+#line 11 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       return jsdoc_symbol_construct (JSDOC_TYPE_SYMBOL);
+#line 5831 "Symbol.c"
+}
+
+
+static glong string_strnlen (gchar* str, glong maxlen) {
+       glong result = 0L;
+       gchar* end = NULL;
+       gchar* _tmp0_;
+       glong _tmp1_;
+       gchar* _tmp2_;
+       gchar* _tmp3_;
+#line 1322 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp0_ = str;
+#line 1322 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp1_ = maxlen;
+#line 1322 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp2_ = memchr (_tmp0_, 0, (gsize) _tmp1_);
+#line 1322 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       end = _tmp2_;
+#line 1323 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp3_ = end;
+#line 1323 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if (_tmp3_ == NULL) {
+#line 5854 "Symbol.c"
+               glong _tmp4_;
+#line 1324 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp4_ = maxlen;
+#line 1324 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               result = _tmp4_;
+#line 1324 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               return result;
+#line 5862 "Symbol.c"
+       } else {
+               gchar* _tmp5_;
+               gchar* _tmp6_;
+#line 1326 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp5_ = end;
+#line 1326 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp6_ = str;
+#line 1326 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               result = (glong) (_tmp5_ - _tmp6_);
+#line 1326 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               return result;
+#line 5874 "Symbol.c"
+       }
+}
+
+
+static gchar* string_substring (const gchar* self, glong offset, glong len) {
+       gchar* result = NULL;
+       glong string_length = 0L;
+       gboolean _tmp0_ = FALSE;
+       glong _tmp1_;
+       glong _tmp8_;
+       glong _tmp14_;
+       glong _tmp17_;
+       glong _tmp18_;
+       glong _tmp19_;
+       glong _tmp20_;
+       glong _tmp21_;
+       gchar* _tmp22_;
+#line 1333 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 1335 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp1_ = offset;
+#line 1335 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if (_tmp1_ >= ((glong) 0)) {
+#line 5898 "Symbol.c"
+               glong _tmp2_;
+#line 1335 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp2_ = len;
+#line 1335 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp0_ = _tmp2_ >= ((glong) 0);
+#line 5904 "Symbol.c"
+       } else {
+#line 1335 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp0_ = FALSE;
+#line 5908 "Symbol.c"
+       }
+#line 1335 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if (_tmp0_) {
+#line 5912 "Symbol.c"
+               glong _tmp3_;
+               glong _tmp4_;
+               glong _tmp5_;
+#line 1337 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp3_ = offset;
+#line 1337 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp4_ = len;
+#line 1337 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp5_ = string_strnlen ((gchar*) self, _tmp3_ + _tmp4_);
+#line 1337 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               string_length = _tmp5_;
+#line 5924 "Symbol.c"
+       } else {
+               gint _tmp6_;
+               gint _tmp7_;
+#line 1339 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp6_ = strlen (self);
+#line 1339 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp7_ = _tmp6_;
+#line 1339 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               string_length = (glong) _tmp7_;
+#line 5934 "Symbol.c"
+       }
+#line 1342 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp8_ = offset;
+#line 1342 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if (_tmp8_ < ((glong) 0)) {
+#line 5940 "Symbol.c"
+               glong _tmp9_;
+               glong _tmp10_;
+               glong _tmp11_;
+#line 1343 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp9_ = string_length;
+#line 1343 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp10_ = offset;
+#line 1343 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               offset = _tmp9_ + _tmp10_;
+#line 1344 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp11_ = offset;
+#line 1344 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               g_return_val_if_fail (_tmp11_ >= ((glong) 0), NULL);
+#line 5954 "Symbol.c"
+       } else {
+               glong _tmp12_;
+               glong _tmp13_;
+#line 1346 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp12_ = offset;
+#line 1346 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp13_ = string_length;
+#line 1346 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               g_return_val_if_fail (_tmp12_ <= _tmp13_, NULL);
+#line 5964 "Symbol.c"
+       }
+#line 1348 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp14_ = len;
+#line 1348 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if (_tmp14_ < ((glong) 0)) {
+#line 5970 "Symbol.c"
+               glong _tmp15_;
+               glong _tmp16_;
+#line 1349 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp15_ = string_length;
+#line 1349 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp16_ = offset;
+#line 1349 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               len = _tmp15_ - _tmp16_;
+#line 5979 "Symbol.c"
+       }
+#line 1351 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp17_ = offset;
+#line 1351 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp18_ = len;
+#line 1351 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp19_ = string_length;
+#line 1351 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       g_return_val_if_fail ((_tmp17_ + _tmp18_) <= _tmp19_, NULL);
+#line 1352 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp20_ = offset;
+#line 1352 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp21_ = len;
+#line 1352 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp22_ = g_strndup (((gchar*) self) + _tmp20_, (gsize) _tmp21_);
+#line 1352 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       result = _tmp22_;
+#line 1352 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       return result;
+#line 5999 "Symbol.c"
+}
+
+
+void jsdoc_symbol_set_private_name (JSDOCSymbol* self, const gchar* value) {
+       const gchar* _tmp0_;
+       const gchar* _tmp1_;
+       gchar* _tmp2_;
+       gchar* n = NULL;
+       const gchar* _tmp3_;
+       const gchar* _tmp4_;
+       gint _tmp5_;
+       gint _tmp6_;
+       gchar* _tmp7_;
+       gchar* _tmp8_ = NULL;
+       const gchar* _tmp9_;
+       const gchar* _tmp10_;
+       gint _tmp11_;
+       gint _tmp12_;
+       gchar* _tmp13_;
+       gchar* _tmp14_;
+       const gchar* _tmp22_;
+       gchar* _tmp23_;
+       GError * _inner_error_ = NULL;
+#line 23 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       g_return_if_fail (self != NULL);
+#line 24 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp0_ = jsdoc_symbol_get_name (self);
+#line 24 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp1_ = _tmp0_;
+#line 24 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp2_ = g_strdup (_tmp1_);
+#line 24 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_free0 (self->priv->_assigned_name);
+#line 24 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       self->priv->_assigned_name = _tmp2_;
+#line 25 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp3_ = value;
+#line 25 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp4_ = value;
+#line 25 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp5_ = strlen (_tmp4_);
+#line 25 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp6_ = _tmp5_;
+#line 25 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp7_ = g_regex_replace (_thread_safe_regex_init (&_tmp_regex_1, "^_global_[.#-]", 0), _tmp3_, (gssize) _tmp6_, 0, "", 0, &_inner_error_);
+#line 25 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       n = _tmp7_;
+#line 25 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 25 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               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);
+#line 25 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               g_clear_error (&_inner_error_);
+#line 25 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               return;
+#line 6055 "Symbol.c"
+       }
+#line 26 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp9_ = n;
+#line 26 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp10_ = n;
+#line 26 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp11_ = strlen (_tmp10_);
+#line 26 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp12_ = _tmp11_;
+#line 26 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp13_ = g_regex_replace (_thread_safe_regex_init (&_tmp_regex_2, "\\.prototype\\.?", 0), _tmp9_, (gssize) _tmp12_, 0, "#", 0, &_inner_error_);
+#line 26 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp8_ = _tmp13_;
+#line 26 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 26 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _g_free0 (n);
+#line 26 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               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);
+#line 26 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               g_clear_error (&_inner_error_);
+#line 26 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               return;
+#line 6079 "Symbol.c"
+       }
+#line 26 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp14_ = _tmp8_;
+#line 26 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp8_ = NULL;
+#line 26 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_free0 (n);
+#line 26 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       n = _tmp14_;
+#line 27 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       while (TRUE) {
+#line 6091 "Symbol.c"
+               const gchar* _tmp15_;
+               gboolean _tmp16_;
+               const gchar* _tmp17_;
+               const gchar* _tmp18_;
+               gint _tmp19_;
+               gint _tmp20_;
+               gchar* _tmp21_;
+#line 28 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp15_ = n;
+#line 28 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp16_ = g_str_has_suffix (_tmp15_, "#");
+#line 28 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               if (!_tmp16_) {
+#line 29 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       break;
+#line 6107 "Symbol.c"
+               }
+#line 31 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp17_ = n;
+#line 31 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp18_ = n;
+#line 31 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp19_ = strlen (_tmp18_);
+#line 31 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp20_ = _tmp19_;
+#line 31 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp21_ = string_substring (_tmp17_, (glong) 0, (glong) (_tmp20_ - 1));
+#line 31 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _g_free0 (n);
+#line 31 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               n = _tmp21_;
+#line 6123 "Symbol.c"
+       }
+#line 34 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp22_ = n;
+#line 34 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp23_ = g_strdup (_tmp22_);
+#line 34 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_free0 (self->priv->private_string_name);
+#line 34 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       self->priv->private_string_name = _tmp23_;
+#line 23 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_free0 (_tmp8_);
+#line 23 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_free0 (n);
+#line 23 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       g_object_notify ((GObject *) self, "private-name");
+#line 6139 "Symbol.c"
+}
+
+
+const gchar* jsdoc_symbol_get_name (JSDOCSymbol* self) {
+       const gchar* result;
+       const gchar* _tmp0_;
+#line 40 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 40 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp0_ = self->priv->private_string_name;
+#line 40 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       result = _tmp0_;
+#line 40 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       return result;
+#line 6154 "Symbol.c"
+}
+
+
+static void jsdoc_symbol_set_private_params (JSDOCSymbol* self, GeeArrayList* value) {
+       GeeArrayList* _tmp0_;
+#line 49 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       g_return_if_fail (self != NULL);
+#line 50 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp0_ = self->priv->private_doctag_params;
+#line 50 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       if (_tmp0_ == NULL) {
+#line 6166 "Symbol.c"
+               GeeArrayList* _tmp1_;
+#line 51 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp1_ = gee_array_list_new (JSDOC_TYPE_DOC_TAG, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL);
+#line 51 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _g_object_unref0 (self->priv->private_doctag_params);
+#line 51 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               self->priv->private_doctag_params = _tmp1_;
+#line 6174 "Symbol.c"
+       }
+       {
+               gint i = 0;
+#line 53 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               i = 0;
+#line 6180 "Symbol.c"
+               {
+                       gboolean _tmp2_ = FALSE;
+#line 53 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp2_ = TRUE;
+#line 53 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       while (TRUE) {
+#line 6187 "Symbol.c"
+                               gint _tmp4_;
+                               GeeArrayList* _tmp5_;
+                               gint _tmp6_;
+                               gint _tmp7_;
+                               GeeArrayList* _tmp8_;
+                               GeeArrayList* _tmp9_;
+                               gint _tmp10_;
+                               gpointer _tmp11_;
+                               JSDOCDocTag* _tmp12_;
+#line 53 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               if (!_tmp2_) {
+#line 6199 "Symbol.c"
+                                       gint _tmp3_;
+#line 53 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp3_ = i;
+#line 53 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       i = _tmp3_ + 1;
+#line 6205 "Symbol.c"
+                               }
+#line 53 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp2_ = FALSE;
+#line 53 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp4_ = i;
+#line 53 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp5_ = value;
+#line 53 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp6_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp5_);
+#line 53 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp7_ = _tmp6_;
+#line 53 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               if (!(_tmp4_ < _tmp7_)) {
+#line 53 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       break;
+#line 6221 "Symbol.c"
+                               }
+#line 55 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp8_ = self->priv->private_doctag_params;
+#line 55 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp9_ = value;
+#line 55 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp10_ = i;
+#line 55 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp11_ = gee_abstract_list_get ((GeeAbstractList*) _tmp9_, _tmp10_);
+#line 55 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp12_ = (JSDOCDocTag*) _tmp11_;
+#line 55 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               gee_abstract_collection_add ((GeeAbstractCollection*) _tmp8_, _tmp12_);
+#line 55 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _g_object_unref0 (_tmp12_);
+#line 6237 "Symbol.c"
+                       }
+               }
+       }
+}
+
+
+static void jsdoc_symbol_set_private_string_params (JSDOCSymbol* self, GeeArrayList* value) {
+       GeeArrayList* _tmp0_;
+#line 62 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       g_return_if_fail (self != NULL);
+#line 63 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp0_ = self->priv->private_doctag_params;
+#line 63 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       if (_tmp0_ == NULL) {
+#line 6252 "Symbol.c"
+               GeeArrayList* _tmp1_;
+#line 64 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp1_ = gee_array_list_new (JSDOC_TYPE_DOC_TAG, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL);
+#line 64 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _g_object_unref0 (self->priv->private_doctag_params);
+#line 64 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               self->priv->private_doctag_params = _tmp1_;
+#line 6260 "Symbol.c"
+       }
+       {
+               gint i = 0;
+#line 66 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               i = 0;
+#line 6266 "Symbol.c"
+               {
+                       gboolean _tmp2_ = FALSE;
+#line 66 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       _tmp2_ = TRUE;
+#line 66 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                       while (TRUE) {
+#line 6273 "Symbol.c"
+                               gint _tmp4_;
+                               GeeArrayList* _tmp5_;
+                               gint _tmp6_;
+                               gint _tmp7_;
+                               GeeArrayList* _tmp8_;
+                               GeeArrayList* _tmp9_;
+                               gint _tmp10_;
+                               gpointer _tmp11_;
+                               gchar* _tmp12_;
+                               JSDOCDocTag* _tmp13_;
+                               JSDOCDocTag* _tmp14_;
+#line 66 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               if (!_tmp2_) {
+#line 6287 "Symbol.c"
+                                       gint _tmp3_;
+#line 66 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       _tmp3_ = i;
+#line 66 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       i = _tmp3_ + 1;
+#line 6293 "Symbol.c"
+                               }
+#line 66 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp2_ = FALSE;
+#line 66 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp4_ = i;
+#line 66 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp5_ = value;
+#line 66 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp6_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp5_);
+#line 66 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp7_ = _tmp6_;
+#line 66 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               if (!(_tmp4_ < _tmp7_)) {
+#line 66 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                                       break;
+#line 6309 "Symbol.c"
+                               }
+#line 69 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp8_ = self->priv->private_doctag_params;
+#line 69 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp9_ = value;
+#line 69 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp10_ = i;
+#line 69 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp11_ = gee_abstract_list_get ((GeeAbstractList*) _tmp9_, _tmp10_);
+#line 69 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp12_ = (gchar*) _tmp11_;
+#line 69 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp13_ = jsdoc_doc_tag_new (_tmp12_);
+#line 69 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _tmp14_ = _tmp13_;
+#line 69 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               gee_abstract_collection_add ((GeeAbstractCollection*) _tmp8_, _tmp14_);
+#line 69 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _g_object_unref0 (_tmp14_);
+#line 69 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+                               _g_free0 (_tmp12_);
+#line 6331 "Symbol.c"
+                       }
+               }
+       }
+}
+
+
+GeeArrayList* jsdoc_symbol_get_params (JSDOCSymbol* self) {
+       GeeArrayList* result;
+       GeeArrayList* _tmp0_;
+       GeeArrayList* _tmp2_;
+#line 78 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 79 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp0_ = self->priv->private_doctag_params;
+#line 79 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       if (_tmp0_ == NULL) {
+#line 6348 "Symbol.c"
+               GeeArrayList* _tmp1_;
+#line 80 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _tmp1_ = gee_array_list_new (JSDOC_TYPE_DOC_TAG, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL);
+#line 80 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               _g_object_unref0 (self->priv->private_doctag_params);
+#line 80 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               self->priv->private_doctag_params = _tmp1_;
+#line 6356 "Symbol.c"
+       }
+#line 82 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp2_ = self->priv->private_doctag_params;
+#line 82 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       result = _tmp2_;
+#line 82 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       return result;
+#line 6364 "Symbol.c"
+}
+
+
+static void jsdoc_symbol_class_init (JSDOCSymbolClass * klass) {
+       gchar* _tmp0_;
+#line 11 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       jsdoc_symbol_parent_class = g_type_class_peek_parent (klass);
+#line 11 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       g_type_class_add_private (klass, sizeof (JSDOCSymbolPrivate));
+#line 11 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       G_OBJECT_CLASS (klass)->get_property = _vala_jsdoc_symbol_get_property;
+#line 11 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       G_OBJECT_CLASS (klass)->set_property = _vala_jsdoc_symbol_set_property;
+#line 11 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       G_OBJECT_CLASS (klass)->finalize = jsdoc_symbol_finalize;
+#line 11 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       g_object_class_install_property (G_OBJECT_CLASS (klass), JSDOC_SYMBOL_PRIVATE_NAME_PROPERTY, g_param_spec_string ("private-name", "private-name", "private-name", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE));
+#line 11 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       g_object_class_install_property (G_OBJECT_CLASS (klass), JSDOC_SYMBOL_NAME_PROPERTY, g_param_spec_string ("name", "name", "name", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
+#line 11 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       g_object_class_install_property (G_OBJECT_CLASS (klass), JSDOC_SYMBOL_PARAMS_PROPERTY, g_param_spec_object ("params", "params", "params", GEE_TYPE_ARRAY_LIST, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
+#line 153 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp0_ = g_strdup ("");
+#line 153 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       jsdoc_symbol_srcFile = _tmp0_;
+#line 6390 "Symbol.c"
+}
+
+
+static void jsdoc_symbol_instance_init (JSDOCSymbol * self) {
+       gchar* _tmp0_;
+       gchar* _tmp1_;
+       gchar* _tmp2_;
+       gchar* _tmp3_;
+       gchar* _tmp4_;
+       gchar* _tmp5_;
+       gchar* _tmp6_;
+       gchar* _tmp7_;
+       gchar* _tmp8_;
+       gchar* _tmp9_;
+       gchar* _tmp10_;
+       gchar* _tmp11_;
+       gchar* _tmp12_;
+       gchar* _tmp13_;
+       gchar* _tmp14_;
+#line 11 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       self->priv = JSDOC_SYMBOL_GET_PRIVATE (self);
+#line 19 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp0_ = g_strdup ("");
+#line 19 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       self->priv->private_string_name = _tmp0_;
+#line 20 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp1_ = g_strdup ("");
+#line 20 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       self->priv->_assigned_name = _tmp1_;
+#line 44 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp2_ = g_strdup ("");
+#line 44 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       self->priv->defaultValue = _tmp2_;
+#line 46 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       self->priv->private_doctag_params = NULL;
+#line 108 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp3_ = g_strdup ("");
+#line 108 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       self->priv->addOn = _tmp3_;
+#line 109 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp4_ = g_strdup ("");
+#line 109 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       self->alias = _tmp4_;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp5_ = g_strdup ("");
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       self->priv->author = _tmp5_;
+#line 112 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp6_ = g_strdup ("");
+#line 112 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       self->priv->classDesc = _tmp6_;
+#line 114 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp7_ = g_strdup ("");
+#line 114 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       self->priv->deprecated = _tmp7_;
+#line 115 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp8_ = g_strdup ("");
+#line 115 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       self->desc = _tmp8_;
+#line 117 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp9_ = g_strdup ("");
+#line 117 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       self->priv->example = _tmp9_;
+#line 120 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp10_ = g_strdup ("OBJECT");
+#line 120 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       self->isa = _tmp10_;
+#line 122 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       self->isEvent = FALSE;
+#line 123 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       self->isConstant = FALSE;
+#line 124 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       self->isIgnored = FALSE;
+#line 125 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       self->isInner = FALSE;
+#line 126 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       self->isNamespace = FALSE;
+#line 127 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       self->isPrivate = FALSE;
+#line 128 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       self->isStatic = FALSE;
+#line 130 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp11_ = g_strdup ("");
+#line 130 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       self->memberOf = _tmp11_;
+#line 148 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp12_ = g_strdup ("");
+#line 148 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       self->priv->since = _tmp12_;
+#line 150 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp13_ = g_strdup ("");
+#line 150 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       self->priv->type = _tmp13_;
+#line 151 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _tmp14_ = g_strdup ("");
+#line 151 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       self->priv->version = _tmp14_;
+#line 6488 "Symbol.c"
+}
+
+
+static void jsdoc_symbol_finalize (GObject * obj) {
+       JSDOCSymbol * self;
+#line 11 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       self = G_TYPE_CHECK_INSTANCE_CAST (obj, JSDOC_TYPE_SYMBOL, JSDOCSymbol);
+#line 19 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_free0 (self->priv->private_string_name);
+#line 20 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_free0 (self->priv->_assigned_name);
+#line 44 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_free0 (self->priv->defaultValue);
+#line 46 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_object_unref0 (self->priv->private_doctag_params);
+#line 87 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_object_unref0 (self->augments);
+#line 90 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_object_unref0 (self->priv->exceptions);
+#line 93 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_object_unref0 (self->methods);
+#line 95 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_object_unref0 (self->properties);
+#line 96 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_object_unref0 (self->priv->requires);
+#line 97 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_object_unref0 (self->returns);
+#line 98 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_object_unref0 (self->priv->see);
+#line 100 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_object_unref0 (self->childClasses);
+#line 101 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_object_unref0 (self->inheritsFrom);
+#line 102 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_object_unref0 (self->cfgs);
+#line 105 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_object_unref0 (self->comment);
+#line 108 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_free0 (self->priv->addOn);
+#line 109 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_free0 (self->alias);
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_free0 (self->priv->author);
+#line 112 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_free0 (self->priv->classDesc);
+#line 114 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_free0 (self->priv->deprecated);
+#line 115 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_free0 (self->desc);
+#line 117 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_free0 (self->priv->example);
+#line 120 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_free0 (self->isa);
+#line 130 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_free0 (self->memberOf);
+#line 148 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_free0 (self->priv->since);
+#line 150 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_free0 (self->priv->type);
+#line 151 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       _g_free0 (self->priv->version);
+#line 11 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       G_OBJECT_CLASS (jsdoc_symbol_parent_class)->finalize (obj);
+#line 6552 "Symbol.c"
+}
+
+
+GType jsdoc_symbol_get_type (void) {
+       static volatile gsize jsdoc_symbol_type_id__volatile = 0;
+       if (g_once_init_enter (&jsdoc_symbol_type_id__volatile)) {
+               static const GTypeInfo g_define_type_info = { sizeof (JSDOCSymbolClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) jsdoc_symbol_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (JSDOCSymbol), 0, (GInstanceInitFunc) jsdoc_symbol_instance_init, NULL };
+               GType jsdoc_symbol_type_id;
+               jsdoc_symbol_type_id = g_type_register_static (G_TYPE_OBJECT, "JSDOCSymbol", &g_define_type_info, 0);
+               g_once_init_leave (&jsdoc_symbol_type_id__volatile, jsdoc_symbol_type_id);
+       }
+       return jsdoc_symbol_type_id__volatile;
+}
+
+
+static void _vala_jsdoc_symbol_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
+       JSDOCSymbol * self;
+       self = G_TYPE_CHECK_INSTANCE_CAST (object, JSDOC_TYPE_SYMBOL, JSDOCSymbol);
+#line 11 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       switch (property_id) {
+#line 11 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               case JSDOC_SYMBOL_NAME_PROPERTY:
+#line 11 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               g_value_set_string (value, jsdoc_symbol_get_name (self));
+#line 11 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               break;
+#line 11 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               case JSDOC_SYMBOL_PARAMS_PROPERTY:
+#line 11 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               g_value_set_object (value, jsdoc_symbol_get_params (self));
+#line 11 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               break;
+#line 6585 "Symbol.c"
+               default:
+#line 11 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+#line 11 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               break;
+#line 6591 "Symbol.c"
+       }
+}
+
+
+static void _vala_jsdoc_symbol_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
+       JSDOCSymbol * self;
+       self = G_TYPE_CHECK_INSTANCE_CAST (object, JSDOC_TYPE_SYMBOL, JSDOCSymbol);
+#line 11 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+       switch (property_id) {
+#line 11 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               case JSDOC_SYMBOL_PRIVATE_NAME_PROPERTY:
+#line 11 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               jsdoc_symbol_set_private_name (self, g_value_get_string (value));
+#line 11 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               break;
+#line 6607 "Symbol.c"
+               default:
+#line 11 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+#line 11 "/home/alan/gitlive/roojspacker/src/jsdoc/Symbol.vala"
+               break;
+#line 6613 "Symbol.c"
+       }
+}
+
+
+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;
+}
+
+
+
diff --git a/jsdoc/Symbol.vala b/jsdoc/Symbol.vala
new file mode 100644 (file)
index 0000000..216f512
--- /dev/null
@@ -0,0 +1,910 @@
+/**
+       Create a new Symbol.
+       @class Represents a symbol in the source code.
+ */
+
+namespace JSDOC {
+
+
+       public  class Symbol : Object
+       {
+               // debugging?
+               
+               
+               public static bool regex_init = false;
+               
+
+               private string private_string_name = "";
+               private string _assigned_name = "";
+               // called by symbolset...
+               public string private_name {
+               set {
+                               this._assigned_name = name;
+                               var n = /^_global_[.#-]/.replace(value, value.length, 0, "");
+                       n =  /\.prototype\.?/.replace(n,n.length, 0, "#");
+                       while (true) {
+                               if (!n.has_suffix("#")) {
+                                       break;
+                                       }
+                                       n = n.substring(0, n.length-1);
+                               }
+                       
+                       this.private_string_name = n;
+               }
+               
+               }
+                
+        public string name {
+               get { return this.private_string_name; }
+               }
+               
+      
+        string defaultValue = "";
+        
+               private Gee.ArrayList<DocTag> private_doctag_params = null;
+
+               private Gee.ArrayList<DocTag> private_params{
+                       set  {
+                               if (this.private_doctag_params == null) {
+                                       this.private_doctag_params = new Gee.ArrayList<DocTag>();
+                               }
+                               for (var i = 0; i < value.size; i++) {
+                                  
+                                   this.private_doctag_params.add(value.get(i));
+                               }
+                               //this.params = this._params;
+                       }
+               }
+     
+               Gee.ArrayList<string> private_string_params{
+                       set  {
+                               if (this.private_doctag_params == null) {
+                                       this.private_doctag_params = new Gee.ArrayList<DocTag>();
+                               }
+                               for (var i = 0; i < value.size; i++) {
+
+                                   //var ty = v[i].hasOwnProperty('type') ? v[i].type : '';
+                                   this.private_doctag_params.add( new DocTag(value.get(i)));
+                                          
+                                  //"param"+((ty)?" {"+ty+"}":"")+" "+v.get(i).name);
+                                   
+                               }
+                               
+                       }
+               }
+               public Gee.ArrayList<DocTag> params {
+                       get {
+                               if (this.private_doctag_params == null) {
+                                       this.private_doctag_params = new Gee.ArrayList<DocTag>();
+                               }
+                               return this.private_doctag_params;
+                       }
+               
+               }
+
+               public Gee.ArrayList<string>  augments ;  
+               
+
+               private Gee.ArrayList<DocTag>  exceptions ;
+
+               //public Gee.ArrayList<DocTag>  inherits; 
+               public Gee.ArrayList<Symbol>  methods;
+
+               public Gee.ArrayList<Symbol> properties;
+               private Gee.ArrayList<string> requires;
+               public Gee.ArrayList<DocTag> returns;
+               private Gee.ArrayList<string> see ;
+
+               public Gee.ArrayList<string> childClasses;
+               public Gee.ArrayList<string> inheritsFrom;
+        public Gee.HashMap<string,DocTag>cfgs;
+        
+        
+        public DocComment comment;
+                
+        //$args : [], // original arguments used when constructing.
+        string addOn = "";
+        public string alias = "";
+        
+        string author = "";
+        string classDesc = "";
+
+        string deprecated = "";
+        public string desc = "";
+        //events : false,
+        string example = "";
+        
+
+        public string isa = "OBJECT"; // OBJECT//FUNCTION
+        
+        public bool isEvent = false;
+        public bool isConstant = false;
+        public bool isIgnored = false;
+        public bool isInner = false;
+        public bool isNamespace = false;
+        public bool isPrivate = false;
+        public bool isStatic = false;
+        
+        public string memberOf = "";
+
+               public string asString()
+               {
+                       return "NAME: %s:%s   ASNAME: %s : %s%s%s%s".printf(
+                               this.memberOf,
+                               this.name,
+                               this._assigned_name,
+                               isStatic ? "static": "",
+                               isEvent ? "EV": "",
+                               isConstant ? "CO": "",
+                               isNamespace ? "NS": ""
+                       );
+                               
+               
+               }
+
+       
+        string since = "";
+
+        string type = "";
+        string version = "";
+       
+        public static string srcFile = "";
+        
+        
+        
+        public void initArrays()
+        {
+            // only initialize arrays / objects..
+
+            
+            //this.params = [];
+            //this.$args = [];
+            
+            //this.events = [];
+            this.exceptions = new Gee.ArrayList<DocTag>();
+            //this.inherits = new Gee.ArrayList<DocTag>();
+            //
+            this.isa = "OBJECT"; // OBJECT//FUNCTION
+            this.methods = new Gee.ArrayList<Symbol>();
+            //this.private_params = new Gee.ArrayList<DocTag>();
+            this.properties = new Gee.ArrayList<Symbol>();
+            this.requires = new Gee.ArrayList<string>();
+            this.returns = new Gee.ArrayList<DocTag>();
+            this.see = new Gee.ArrayList<string>();
+            this.augments = new Gee.ArrayList<string>();
+            
+            this.cfgs = new Gee.HashMap<string,DocTag>();
+            // derived later?
+            this.inheritsFrom = new Gee.ArrayList<string>();
+
+            this.childClasses = new Gee.ArrayList<string>();
+             
+            this.comment = new DocComment();
+            this.comment.isUserComment =  false;
+            
+               
+        }
+               
+               public Symbol.new_builtin(string name)
+               {
+            
+            this.initArrays();
+            this.srcFile = JSDOC.DocParser.currentSourceFile;
+                       this.private_name =  name ;
+                       this.alias = this.name;
+                       this.isa = "CONSTRUCTOR";
+                       this.comment = new DocComment("");
+                       this.comment.isUserComment =  false;
+                       this.isNamespace = false;
+                       this.srcFile = "";
+                       this.isPrivate = false;
+                       // init arrays....
+                       
+                       
+                       
+               }
+               
+
+
+        public Symbol.new_populate_with_args(
+                string  name,
+                Gee.ArrayList<string> params, // fixme???
+                string isa,
+                DocComment comment
+        ) {
+           
+            this.initArrays();
+           // this.$args = arguments;
+            //println("Symbol created: " + isa + ":" + name);
+            this.private_name = name;
+            this.alias = this.name;
+            this.private_string_params = params; 
+            this.isa = (isa == "VIRTUAL")? "OBJECT":isa;
+            this.comment =  comment;
+            
+            this.srcFile = DocParser.currentSourceFile;
+            
+           
+            
+            if (this.is("FILE") && this.alias.length < 1) { // this will never hapen???
+                       this.alias = this.srcFile;
+               }
+
+            this.tagsFromComment();
+            
+        }
+
+        void tagsFromComment() {
+            // @author
+            var authors = this.comment.getTag(DocTagTitle.AUTHOR);
+            if (authors.size > 0) {
+                       // turns author into a string....
+                       this.author = "";
+                foreach(var a in authors) {
+                    this.author += (this.author == "") ? "": ", ";
+                    this.author += a.desc;
+                }
+            }
+            
+            /*~t
+                assert("testing Symbol");
+                
+                requires("../lib/JSDOC/DocComment.js");
+                requires("../frame/String.js");
+                requires("../lib/JSDOC/DocTag.js");
+
+                var sym = new Symbol("foo", [], "OBJECT", new DocComment("/**@author Joe Smith*"+"/"));
+                assertEqual(sym.author, "Joe Smith", "@author tag, author is found.");
+            */
+            // @desc
+            var mth = this.comment.getTag(DocTagTitle.METHOD);
+            if (mth.size  > 0) {
+                this.isa = "FUNCTION";
+            }
+            // @desc
+            var descs = this.comment.getTag(DocTagTitle.DESC);
+            if (descs.size>  0) {
+                this.desc = "";
+                foreach(var d in descs) {
+                    this.desc = this.desc == "" ? "": "\n";
+                    this.desc += d.desc;
+                }
+
+            }
+            
+            /*~t
+                var sym = new Symbol("foo", [], "OBJECT", new DocComment("/**@desc This is a description.*"+"/"));
+                assertEqual(sym.desc, "This is a description.", "@desc tag, description is found.");
+            */
+            
+            // @overview
+            if (this.is("FILE")) {
+                if (this.alias.length < 1) this.alias = this.srcFile;
+                
+                var overviews = this.comment.getTag(DocTagTitle.OVERVIEW);
+                if (overviews.size > 0) {
+                    foreach(var d in overviews) {
+                        this.desc = this.desc == "" ? "": "\n";
+                        this.desc += d.desc;
+                    }
+                }
+            }
+            
+            /*~t
+                var sym = new Symbol("foo", [], "FILE", new DocComment("/**@overview This is an overview.*"+"/"));
+                assertEqual(sym.desc, "\nThis is an overview.", "@overview tag, description is found.");
+            */
+            
+            // @since
+            var sinces = this.comment.getTag(DocTagTitle.SINCE);
+            if (sinces.size > 0) {
+                this.since = "";
+                foreach(var d in sinces) {
+                    this.since = this.since == "" ? "": "\n";
+                    this.since += d.desc;
+                }
+            }
+            
+            /*~t
+                var sym = new Symbol("foo", [], "FILE", new DocComment("/**@since 1.01*"+"/"));
+                assertEqual(sym.since, "1.01", "@since tag, description is found.");
+            */
+            
+            // @constant
+            if (this.comment.getTag(DocTagTitle.CONSTANT).size > 0) {
+                this.isConstant = true;
+                this.isa = "OBJECT";
+            }
+            
+            /*~t
+                var sym = new Symbol("foo", [], "FILE", new DocComment("/**@constant*"+"/"));
+                assertEqual(sym.isConstant, true, "@constant tag, isConstant set.");
+            */
+            
+            // @version
+            var versions = this.comment.getTag(DocTagTitle.VERSION);
+            if (versions.size > 0 ) {
+                this.version = "";
+                 foreach(var d in versions) {
+                    this.version = this.version == "" ? "": "\n";
+                    this.version += d.desc;
+                }
+            }
+            
+            /*~t
+                var sym = new Symbol("foo", [], "FILE", new DocComment("/**@version 2.0x*"+"/"));
+                assertEqual(sym.version, "2.0x", "@version tag, version is found.");
+            */
+            
+            // @deprecated
+            var deprecateds = this.comment.getTag(DocTagTitle.DEPRECATED);
+            if (deprecateds.size > 0) {
+                this.deprecated = "";
+                 foreach(var d in deprecateds) {
+                    this.deprecated = this.deprecated == "" ? "": "\n";
+                    this.deprecated += d.desc;
+                }
+            }
+            
+            /*~t
+                var sym = new Symbol("foo", [], "FILE", new DocComment("/**@deprecated Use other method.*"+"/"));
+                assertEqual(sym.deprecated, "Use other method.", "@deprecated tag, desc is found.");
+            */
+            
+            // @example
+            var examples = this.comment.getTag(DocTagTitle.EXAMPLE);
+            if (examples.size > 0) {
+                this.example = examples.get(0).desc;
+            }
+            
+            /*~t
+                var sym = new Symbol("foo", [], "FILE", new DocComment("/**@example This\n  is an example.*"+"/"));
+                assertEqual(sym.example, "This\n  is an example.", "@deprecated tag, desc is found.");
+            */
+            
+            // @see
+            var sees = this.comment.getTag(DocTagTitle.SEE);
+            if (sees.size > 0) {
+                 
+                foreach(var s in sees) {
+                    this.see.add(s.desc);
+                }
+          }
+            
+            /*~t
+                var sym = new Symbol("foo", [], "FILE", new DocComment("/**@see The other thing.*"+"/"));
+                assertEqual(sym.see, "The other thing.", "@see tag, desc is found.");
+            */
+            
+            // @class
+            var classes = this.comment.getTag(DocTagTitle.CLASS);
+            if (classes.size > 0) {
+                //print(JSON.stringify(this,null,4));
+                this.isa = "CONSTRUCTOR";
+                this.classDesc = classes[0].desc; // desc can't apply to the constructor as there is none.
+                //if (!this.classDesc.leg) {
+                //    this.classDesc = this.desc;
+                //   }
+                
+                
+            }
+            
+            /*~t
+                var sym = new Symbol("foo", [], "OBJECT", new DocComment("/**@class This describes the class.*"+"/"));
+                assertEqual(sym.isa, "CONSTRUCTOR", "@class tag, makes symbol a constructor.");
+                assertEqual(sym.classDesc, "This describes the class.", "@class tag, class description is found.");
+            */
+            
+            // @namespace
+            var namespaces = this.comment.getTag(DocTagTitle.NAMESPACE);
+            if (namespaces.size > 0) {
+                this.classDesc = namespaces[0].desc+"\n"+this.desc; // desc can't apply to the constructor as there is none.
+                this.isNamespace = true;
+            }
+            
+            /*~t
+                var sym = new Symbol("foo", [], "OBJECT", new DocComment("/**@namespace This describes the namespace.*"+"/"));
+                assertEqual(sym.classDesc, "This describes the namespace.\n", "@namespace tag, class description is found.");
+            */
+            
+            // @param
+            var params = this.comment.getTag(DocTagTitle.PARAM);
+            if (params.size > 0) {
+                // user-defined params overwrite those with same name defined by the parser
+                var thisParams = params;
+
+                if (thisParams.size == 0) { // none exist yet, so just bung all these user-defined params straight in
+                    this.private_params = params;
+                }
+                else { // need to overlay these user-defined params on to existing parser-defined params
+                    for (var i = 0, l = params.size; i < l; i++) {
+                        if (thisParams.size <= i) {
+                               var np = thisParams.get(i);
+                               
+                            if (np.type.length > 0) np.type = params[i].type;
+                            np.name = params[i].name;
+                            np.desc = params[i].desc;
+                            np.isOptional = params[i].isOptional;
+                            np.defaultValue = params[i].defaultValue;
+                            //thisParams.set(i, np); ///?? needed OO ?
+                        }
+                        else thisParams.set(i, params[i]);
+                    }
+                    this.private_params = thisParams;
+                }
+            }
+            
+            
+            
+            // @constructor
+            if (this.comment.getTag(DocTagTitle.CONSTRUCTOR).size > 0) {
+                this.isa = "CONSTRUCTOR";
+            }
+            
+         
+            
+            // @static
+            if (this.comment.getTag(DocTagTitle.STATIC).size > 0) {
+                this.isStatic = true;
+                if (this.isa == "CONSTRUCTOR") {
+                    this.isNamespace = true;
+                }
+            }
+            
+                // @static
+            if (this.comment.getTag(DocTagTitle.SINGLETON).size > 0) {
+                this.isStatic = true;
+                //print('------------- got singleton ---------------' + this.isa);
+                //if (this.isa == "CONSTRUCTOR") {
+                //     this.isNamespace = true;
+                //}
+            }
+            
+            
+            
+            // @inner
+            if (this.comment.getTag(DocTagTitle.INNER).size > 0) {
+                this.isInner = true;
+                this.isStatic = false;
+            }
+            
+            
+            // @field
+            if (this.comment.getTag(DocTagTitle.FIELD).size > 0) {
+                this.isa = "OBJECT";
+            }
+            
+           
+            
+            // @function
+            if (this.comment.getTag(DocTagTitle.FUNCTION).size > 0) {
+                this.isa = "FUNCTION";
+            }
+            
+            // @param
+            if (this.comment.getTag(DocTagTitle.PARAM).size > 0 && this.isa == "OBJECT" ) {
+                // change a property to a function..
+                this.isa = "FUNCTION";
+            }
+            
+            
+             
+            
+            // @event
+            var events = this.comment.getTag(DocTagTitle.EVENT);
+            if (events.size > 0) {
+                this.isa = "FUNCTION";
+                this.isEvent = true;
+            }
+            
+            
+            
+            // @name
+            var names = this.comment.getTag(DocTagTitle.NAME);
+            if (names.size > 0) {
+                this.private_name = names.get(0).desc.strip();
+            }
+            
+            /*~t
+                // todo
+            */
+            
+            // @property
+            var properties = this.comment.getTag(DocTagTitle.PROPERTY);
+            if (properties.size > 0) {
+                //var thisProperties = this.properties;
+                for (var i = 0; i < properties.size; i++) {
+
+                                       
+                                       // if the doc tag just says @property ... but no name etc..
+                                       // then name will not be filled in..
+                                       if (properties[i].name.length < 1 ) {
+                                               continue;
+                                       }
+
+                    var property = new Symbol.new_populate_with_args(
+                        this.alias+"#"+properties[i].name,
+                         new Gee.ArrayList<string>(), 
+                        "OBJECT",
+                         new DocComment(
+                            "/**\n"+
+                               properties[i].desc+
+                               "\n@name "+ properties[i].name
+                               +"\n@memberOf "+this.alias+"#*/"
+                    ));
+                    // TODO: shouldn't the following happen in the addProperty method of Symbol?
+                    property.private_name = properties[i].name;
+                    property.memberOf = this.alias;
+                    if (properties[i].type.length > 0) property.type = properties[i].type;
+                    if (properties[i].defaultValue.length > 0) property.defaultValue = properties[i].defaultValue;
+                    this.addProperty(property);
+                    JSDOC.DocParser.addSymbol(property);
+                }
+            }
+            
+            // config..
+            var conf = this.comment.getTag(DocTagTitle.CFG);
+            if (conf.size > 0) {
+                for (var i = 0; i < conf.size; i++) {
+                    this.addConfig(conf.get(i));
+                }
+            }
+            
+          
+
+            // @return
+            var returns = this.comment.getTag(DocTagTitle.RETURN);
+            if (returns.size > 0) { // there can be many return tags in a single doclet
+                this.returns = returns;
+
+                this.type = "";
+                foreach(var r in returns) {
+                    this.type += this.type == "" ? "": ", ";
+                    this.type += r.type;
+                } 
+             }
+            
+            
+            
+            // @exception
+            this.exceptions = this.comment.getTag(DocTagTitle.THROWS);
+            
+           
+            // @requires
+            var requires = this.comment.getTag(DocTagTitle.REQUIRES);
+            if (requires.size > 0) {
+                this.requires = new Gee.ArrayList<string>();
+                foreach(var r in requires) {
+                    this.requires.add(r.desc);
+                }
+            }
+           
+            
+            // @type
+            var types = this.comment.getTag(DocTagTitle.TYPE);
+            if (types.size > 0) {
+                this.type = types.get(0).desc; //multiple type tags are ignored
+            }
+            
+            
+            
+            // @private
+            if (this.comment.getTag(DocTagTitle.PRIVATE).size > 0 || this.isInner) {
+                this.isPrivate = true;
+            }
+            
+            // @ignore
+            if (this.comment.getTag(DocTagTitle.IGNORE).size > 0) {
+                this.isIgnored = true;
+            }
+            
+            /*~t
+                // todo
+            */
+            
+            // @inherits ... as ... -- not used!!!
+            /*
+            var inherits = this.comment.getTag("inherits");
+            if (inherits.length) {
+                for (var i = 0; i < inherits.length; i++) {
+                    if (/^\s*([a-z$0-9_.#-]+)(?:\s+as\s+([a-z$0-9_.#]+))?/i.test(inherits[i].desc)) {
+                        var inAlias = RegExp.$1;
+                        var inAs = RegExp.$2 || inAlias;
+
+                        if (inAlias) inAlias = inAlias.replace(/\.prototype\.?/g, "#");
+                        
+                        if (inAs) {
+                            inAs = inAs.replace(/\.prototype\.?/g, "#");
+                            inAs = inAs.replace(/^this\.?/, "#");
+                        }
+
+                        if (inAs.indexOf(inAlias) != 0) { //not a full namepath
+                            var joiner = ".";
+                            if (this.alias.charAt(this.alias.length-1) == "#" || inAs.charAt(0) == "#") {
+                                joiner = "";
+                            }
+                            inAs = this.alias + joiner + inAs;
+                        }
+                    }
+                    this.inherits.push({alias: inAlias, as: inAs});
+                }
+            }
+            */
+            /*~t
+                // todo
+            */
+
+            // @augments
+            foreach(var dt in this.comment.getTag(DocTagTitle.ARGUMENTS)) {
+               this.augments.add(dt.desc);
+               }
+            //@extends - Ext           
+            foreach(var dt in this.comment.getTag(DocTagTitle.EXTENDS)) {
+               this.augments.add(dt.desc);
+               }
+            
+            
+            
+            // @default
+            var defaults = this.comment.getTag(DocTagTitle.DEFAULT);
+            if (defaults.size > 0) {
+                if (this.is("OBJECT")) {
+                    this.defaultValue = defaults.get(0).desc;
+                }
+            }
+            
+            /*~t
+                // todo
+            */
+            
+            // @memberOf
+            var memberOfs = this.comment.getTag(DocTagTitle.MEMBEROF);
+            if (memberOfs.size > 0) {
+                this.memberOf = memberOfs[0].desc;
+                var pr_reg = /\.prototype\.?/;
+                
+                this.memberOf = pr_reg.replace(this.memberOf, this.memberOf.length, 0, "#");
+                var dname = this.name.split(".");
+                var name = dname[dname.length-1];
+                
+                var hname = name.split("#");
+                name = hname[hname.length-1];
+                this.private_name = this.memberOf + "." + name; //?? "." ???
+                this.alias = this.name;
+            }
+
+            /*~t
+                // todo
+            */
+             
+            // @public
+            if (this.comment.getTag(DocTagTitle.PUBLIC).size > 0) {
+                this.isPrivate = false;
+            }
+            
+            /*~t
+                // todo
+            */
+        }
+
+        public bool is (string what) {
+            return this.isa == what;
+        }
+        public bool isaClass()
+        {
+        
+               return (this.is("CONSTRUCTOR") || this.isNamespace ); //|| this.isClass); 
+        }
+        
+        public bool isBuiltin() {
+            return SymbolSet.isBuiltin(this.alias);
+        }
+
+        void setType(string comment,bool overwrite) {
+            if (!overwrite && this.type.length > 0) {
+                return;
+                }
+            var typeComment = DocComment.unwrapComment(comment);
+            this.type = typeComment;
+        }
+
+        public void inherit (Symbol symbol) {
+            if (!this.hasMember(symbol.name) && !symbol.isInner) {
+                if (symbol.is("FUNCTION"))
+                    this.methods.add(symbol);
+                else if (symbol.is("OBJECT"))
+                    this.properties.add(symbol);
+            }
+        }
+
+        bool hasMember (string name) {
+            return (this.hasMethod(name) || this.hasProperty(name));
+        }
+
+        public void addMember (Symbol symbol) {
+            //println("ADDMEMBER: " + this.name +  " ++ " + symbol.name);
+            
+            if (symbol.comment.getTag(DocTagTitle.CFG).size == 1) { 
+                symbol.comment.getTag(DocTagTitle.CFG).get(0).memberOf = this.alias;
+                this.addConfig(symbol.comment.getTag(DocTagTitle.CFG).get(0));
+                return;
+            }
+            
+            if (symbol.is("FUNCTION")) { this.addMethod(symbol); }
+            else if (symbol.is("OBJECT")) { this.addProperty(symbol); }
+        }
+
+        bool hasMethod (string name) {
+            var thisMethods = this.methods;
+            for (var i = 0, l = thisMethods.size; i < l; i++) {
+                if (thisMethods.get(i).name == name) return true;
+                if (thisMethods.get(i).alias == name) return true;
+            }
+            return false;
+        }
+
+        void addMethod (Symbol symbol) {
+            var methodAlias = symbol.alias;
+            var thisMethods = this.methods;
+            for (var i = 0, l = thisMethods.size; i < l; i++) {
+                if (thisMethods.get(i).alias == methodAlias) {
+                    thisMethods.set(i, symbol); // overwriting previous method
+                    return;
+                }
+            }
+            thisMethods.add(symbol); // new method with this alias
+        }
+
+        bool hasProperty(string name) {
+            var thisProperties = this.properties;
+            for (var i = 0, l = thisProperties.size; i < l; i++) {
+                if (thisProperties.get(i).name == name) return true;
+                if (thisProperties.get(i).alias == name) return true;
+            }
+            return false;
+        }
+
+        void addProperty(Symbol symbol) {
+            var propertyAlias = symbol.alias;
+            var thisProperties = this.properties;
+            for (var i = 0, l = thisProperties.size; i < l; i++) {
+                if (thisProperties.get(i).alias == propertyAlias) {
+                    thisProperties.set(i, symbol); // overwriting previous property
+                    return;
+                }
+            }
+
+            thisProperties.add(symbol); // new property with this alias
+        }
+        
+        public void addDocTag(DocTag docTag)
+        {
+            this.comment.tags.add(docTag);
+            if (docTag.title == DocTagTitle.CFG) {
+                this.addConfig(docTag);
+            }
+             
+        }
+        
+        public void addConfig(DocTag docTag)
+        {
+            if (docTag.memberOf == "") {
+                // remove prototype data...
+                //var a = this.alias.split('#')[0];
+                //docTag.memberOf = a;
+                docTag.memberOf = this.alias;
+            }
+            if (!this.cfgs.has_key(docTag.name)) {
+                this.cfgs.set(docTag.name,  docTag);
+            }
+            
+        }
+         
+        public Gee.ArrayList<DocTag> configToArray()
+        {
+            var r = new  Gee.ArrayList<DocTag>();
+            foreach(var ci in this.cfgs.keys) {
+                // dont show hidden!!
+                if (this.cfgs.get(ci).desc.contains("@hide")) {
+                    continue;
+                }
+                r.add(this.cfgs.get(ci)); 
+               
+            }
+            return r;
+        }
+        
+       
+               
+               public string makeFuncSkel() {
+                   if (this.params.size < 1) return "function ()\n{\n\n}";
+                       var ret = "function (";
+                       var f = false;
+                       foreach(var p in this.params) {
+                               if (p.name.contains(".")) continue;
+                               ret += f ? ", " : "";
+                               f = true;
+                               ret +=  p.name == "this" ? "_self" : p.name;
+                       }
+                       return ret + ")\n{\n\n}";
+               }
+               public string makeMethodSkel() {
+                   if (this.params.size < 1) return "()\n{\n\n}";
+                       var ret = "(";
+                       var f = false;
+                       foreach(var p in this.params) {
+                               GLib.debug("got param: %s", p.asString());
+                               if (p.name.contains(".")) continue;
+                               ret += f ? ", " : "";
+                               f = true;
+                               switch(p.name) {
+                                       case "this" : ret += "this"; break;
+                                       case "function" : ret += "function() {\n\n}"; break;                                    
+                                       default : ret += p.name; break;
+                               }
+                       }
+                       return ret + ")";
+               }
+               
+               public Json.Array paramsToJson()
+               {
+                       var ret = new Json.Array();
+                       foreach(var p in this.params) {
+                               //GLib.debug("got param: %s", p.asString());
+                               if (p.name.contains(".")) continue;// ?? why?                           
+                               var add = new Json.Object();
+                               add.set_string_member("name",p.name);                           
+                               add.set_string_member("type",p.type);
+                               add.set_string_member("desc",p.desc);
+                               add.set_boolean_member("isOptional",p.isOptional);
+                               ret.add_object_element(add) ;
+                       }
+                        
+                       return ret;
+               
+               }
+       public Json.Array returnsToJson()
+               {
+                       var ret = new Json.Array();
+                       foreach(var p in this.returns) {
+                               //GLib.debug("got param: %s", p.asString());
+                               if (p.name.contains(".")) continue;// ?? why?                           
+                               var add = new Json.Object();
+                               add.set_string_member("name",p.name);                           
+                               add.set_string_member("type",p.type);
+                               add.set_string_member("desc",p.desc);
+                
+                               ret.add_object_element(add) ;
+                       }
+                        
+                       return ret;
+               
+               }
+       }
+       
+       
+       //static string[] hide = { "$args" };
+       //static string srcFile = "";
+        
+}
+
+
+/*
+Symbol.fromDump = function(t)
+{
+    var ns = new Symbol();
+    for (var i in t) {
+        if (typeof(ns[i]) == "undefined") {
+            println("ERR:no default for Symbol:"+ i);
+        }
+        ns[i] = t[i];
+    }
+    return ns;
+}
+*/
diff --git a/jsdoc/SymbolSet.c b/jsdoc/SymbolSet.c
new file mode 100644 (file)
index 0000000..6584d9b
--- /dev/null
@@ -0,0 +1,2872 @@
+/* SymbolSet.c generated by valac 0.36.6, the Vala compiler
+ * generated from SymbolSet.vala, do not modify */
+
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gee.h>
+#include <stdlib.h>
+#include <string.h>
+
+
+#define JSDOC_TYPE_SYMBOL_SET (jsdoc_symbol_set_get_type ())
+#define JSDOC_SYMBOL_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_SYMBOL_SET, JSDOCSymbolSet))
+#define JSDOC_SYMBOL_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_SYMBOL_SET, JSDOCSymbolSetClass))
+#define JSDOC_IS_SYMBOL_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_SYMBOL_SET))
+#define JSDOC_IS_SYMBOL_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_SYMBOL_SET))
+#define JSDOC_SYMBOL_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_SYMBOL_SET, JSDOCSymbolSetClass))
+
+typedef struct _JSDOCSymbolSet JSDOCSymbolSet;
+typedef struct _JSDOCSymbolSetClass JSDOCSymbolSetClass;
+typedef struct _JSDOCSymbolSetPrivate JSDOCSymbolSetPrivate;
+
+#define JSDOC_TYPE_SYMBOL (jsdoc_symbol_get_type ())
+#define JSDOC_SYMBOL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_SYMBOL, JSDOCSymbol))
+#define JSDOC_SYMBOL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_SYMBOL, JSDOCSymbolClass))
+#define JSDOC_IS_SYMBOL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_SYMBOL))
+#define JSDOC_IS_SYMBOL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_SYMBOL))
+#define JSDOC_SYMBOL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_SYMBOL, JSDOCSymbolClass))
+
+typedef struct _JSDOCSymbol JSDOCSymbol;
+typedef struct _JSDOCSymbolClass JSDOCSymbolClass;
+#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 _JSDOCSymbolPrivate JSDOCSymbolPrivate;
+
+#define JSDOC_TYPE_DOC_TAG (jsdoc_doc_tag_get_type ())
+#define JSDOC_DOC_TAG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_DOC_TAG, JSDOCDocTag))
+#define JSDOC_DOC_TAG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_DOC_TAG, JSDOCDocTagClass))
+#define JSDOC_IS_DOC_TAG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_DOC_TAG))
+#define JSDOC_IS_DOC_TAG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_DOC_TAG))
+#define JSDOC_DOC_TAG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_DOC_TAG, JSDOCDocTagClass))
+
+typedef struct _JSDOCDocTag JSDOCDocTag;
+typedef struct _JSDOCDocTagClass JSDOCDocTagClass;
+
+#define JSDOC_TYPE_DOC_COMMENT (jsdoc_doc_comment_get_type ())
+#define JSDOC_DOC_COMMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_DOC_COMMENT, JSDOCDocComment))
+#define JSDOC_DOC_COMMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_DOC_COMMENT, JSDOCDocCommentClass))
+#define JSDOC_IS_DOC_COMMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_DOC_COMMENT))
+#define JSDOC_IS_DOC_COMMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_DOC_COMMENT))
+#define JSDOC_DOC_COMMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_DOC_COMMENT, JSDOCDocCommentClass))
+
+typedef struct _JSDOCDocComment JSDOCDocComment;
+typedef struct _JSDOCDocCommentClass JSDOCDocCommentClass;
+#define _g_match_info_unref0(var) ((var == NULL) ? NULL : (var = (g_match_info_unref (var), NULL)))
+#define _g_regex_unref0(var) ((var == NULL) ? NULL : (var = (g_regex_unref (var), NULL)))
+
+struct _JSDOCSymbolSet {
+       GObject parent_instance;
+       JSDOCSymbolSetPrivate * priv;
+};
+
+struct _JSDOCSymbolSetClass {
+       GObjectClass parent_class;
+};
+
+struct _JSDOCSymbolSetPrivate {
+       GeeHashMap* __index;
+};
+
+struct _JSDOCSymbol {
+       GObject parent_instance;
+       JSDOCSymbolPrivate * priv;
+       GeeArrayList* augments;
+       GeeArrayList* methods;
+       GeeArrayList* properties;
+       GeeArrayList* returns;
+       GeeArrayList* childClasses;
+       GeeArrayList* inheritsFrom;
+       GeeHashMap* cfgs;
+       JSDOCDocComment* comment;
+       gchar* alias;
+       gchar* desc;
+       gchar* isa;
+       gboolean isEvent;
+       gboolean isConstant;
+       gboolean isIgnored;
+       gboolean isInner;
+       gboolean isNamespace;
+       gboolean isPrivate;
+       gboolean isStatic;
+       gchar* memberOf;
+};
+
+struct _JSDOCSymbolClass {
+       GObjectClass parent_class;
+};
+
+
+static gpointer jsdoc_symbol_set_parent_class = NULL;
+static gchar** jsdoc_symbol_set_coreObjects;
+static gint jsdoc_symbol_set_coreObjects_length1;
+static gchar** jsdoc_symbol_set_coreObjects = NULL;
+static gint jsdoc_symbol_set_coreObjects_length1 = 0;
+static gint _jsdoc_symbol_set_coreObjects_size_ = 0;
+
+GType jsdoc_symbol_set_get_type (void) G_GNUC_CONST;
+GType jsdoc_symbol_get_type (void) G_GNUC_CONST;
+#define JSDOC_SYMBOL_SET_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), JSDOC_TYPE_SYMBOL_SET, JSDOCSymbolSetPrivate))
+enum  {
+       JSDOC_SYMBOL_SET_DUMMY_PROPERTY
+};
+JSDOCSymbolSet* jsdoc_symbol_set_new (void);
+JSDOCSymbolSet* jsdoc_symbol_set_construct (GType object_type);
+GeeArrayList* jsdoc_symbol_set_keys (JSDOCSymbolSet* self);
+GeeHashMap* jsdoc_symbol_set_get__index (JSDOCSymbolSet* self);
+GeeArrayList* jsdoc_symbol_set_values (JSDOCSymbolSet* self);
+gboolean jsdoc_symbol_set_hasSymbol (JSDOCSymbolSet* self, const gchar* alias);
+void jsdoc_symbol_set_addSymbol (JSDOCSymbolSet* self, JSDOCSymbol* symbol);
+GType jsdoc_doc_tag_get_type (void) G_GNUC_CONST;
+GType jsdoc_doc_comment_get_type (void) G_GNUC_CONST;
+JSDOCSymbol* jsdoc_symbol_set_getSymbol (JSDOCSymbolSet* self, const gchar* alias);
+void jsdoc_symbol_set_deleteSymbol (JSDOCSymbolSet* self, const gchar* alias);
+gchar* jsdoc_symbol_set_renameSymbol (JSDOCSymbolSet* self, const gchar* oldName, const gchar* newName);
+void jsdoc_symbol_set_relate (JSDOCSymbolSet* self);
+gchar* jsdoc_symbol_asString (JSDOCSymbol* self);
+static void jsdoc_symbol_set_resolveBorrows (JSDOCSymbolSet* self);
+static void jsdoc_symbol_set_resolveMemberOf (JSDOCSymbolSet* self);
+static void jsdoc_symbol_set_resolveAugments (JSDOCSymbolSet* self);
+gboolean jsdoc_symbol_is (JSDOCSymbol* self, const gchar* what);
+void jsdoc_symbol_set_private_name (JSDOCSymbol* self, const gchar* value);
+const gchar* jsdoc_symbol_get_name (JSDOCSymbol* self);
+gboolean jsdoc_symbol_set_isBuiltin (const gchar* name);
+JSDOCSymbol* jsdoc_doc_parser_addBuiltin (const gchar* name);
+JSDOCDocComment* jsdoc_doc_comment_new (const gchar* comment);
+JSDOCDocComment* jsdoc_doc_comment_construct (GType object_type, const gchar* comment);
+JSDOCSymbol* jsdoc_symbol_new_new_populate_with_args (const gchar* name, GeeArrayList* params, const gchar* isa, JSDOCDocComment* comment);
+JSDOCSymbol* jsdoc_symbol_construct_new_populate_with_args (GType object_type, const gchar* name, GeeArrayList* params, const gchar* isa, JSDOCDocComment* comment);
+void jsdoc_symbol_addMember (JSDOCSymbol* self, JSDOCSymbol* symbol);
+static void jsdoc_symbol_set_buildAugmentsList (JSDOCSymbolSet* self, JSDOCSymbol* symbol);
+void jsdoc_symbol_inherit (JSDOCSymbol* self, JSDOCSymbol* symbol);
+void jsdoc_symbol_addConfig (JSDOCSymbol* self, JSDOCDocTag* docTag);
+static void jsdoc_symbol_set_addAugments (JSDOCSymbolSet* self, JSDOCSymbol* symbol, GeeArrayList* alist, gboolean forceit);
+static void jsdoc_symbol_set_finalize (GObject * obj);
+static void _vala_jsdoc_symbol_set_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
+
+static GRegex* _tmp_regex_0 = NULL;
+static GRegex* _tmp_regex_1 = NULL;
+static GRegex* _tmp_regex_2 = NULL;
+
+JSDOCSymbolSet* jsdoc_symbol_set_construct (GType object_type) {
+       JSDOCSymbolSet * self = NULL;
+#line 18 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       self = (JSDOCSymbolSet*) g_object_new (object_type, NULL);
+#line 18 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       return self;
+#line 158 "SymbolSet.c"
+}
+
+
+JSDOCSymbolSet* jsdoc_symbol_set_new (void) {
+#line 18 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       return jsdoc_symbol_set_construct (JSDOC_TYPE_SYMBOL_SET);
+#line 165 "SymbolSet.c"
+}
+
+
+GeeArrayList* jsdoc_symbol_set_keys (JSDOCSymbolSet* self) {
+       GeeArrayList* result = NULL;
+       GeeArrayList* r = NULL;
+       GeeArrayList* _tmp0_;
+#line 24 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 26 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp0_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL);
+#line 26 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       r = _tmp0_;
+#line 179 "SymbolSet.c"
+       {
+               GeeIterator* _k_it = NULL;
+               GeeHashMap* _tmp1_;
+               GeeHashMap* _tmp2_;
+               GeeSet* _tmp3_;
+               GeeSet* _tmp4_;
+               GeeSet* _tmp5_;
+               GeeIterator* _tmp6_;
+               GeeIterator* _tmp7_;
+#line 27 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _tmp1_ = jsdoc_symbol_set_get__index (self);
+#line 27 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _tmp2_ = _tmp1_;
+#line 27 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _tmp3_ = gee_abstract_map_get_keys ((GeeAbstractMap*) _tmp2_);
+#line 27 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _tmp4_ = _tmp3_;
+#line 27 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _tmp5_ = _tmp4_;
+#line 27 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _tmp6_ = gee_iterable_iterator ((GeeIterable*) _tmp5_);
+#line 27 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _tmp7_ = _tmp6_;
+#line 27 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _g_object_unref0 (_tmp5_);
+#line 27 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _k_it = _tmp7_;
+#line 27 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               while (TRUE) {
+#line 209 "SymbolSet.c"
+                       GeeIterator* _tmp8_;
+                       gboolean _tmp9_;
+                       gchar* k = NULL;
+                       GeeIterator* _tmp10_;
+                       gpointer _tmp11_;
+                       GeeArrayList* _tmp12_;
+                       const gchar* _tmp13_;
+#line 27 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _tmp8_ = _k_it;
+#line 27 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _tmp9_ = gee_iterator_next (_tmp8_);
+#line 27 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       if (!_tmp9_) {
+#line 27 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               break;
+#line 225 "SymbolSet.c"
+                       }
+#line 27 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _tmp10_ = _k_it;
+#line 27 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _tmp11_ = gee_iterator_get (_tmp10_);
+#line 27 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       k = (gchar*) _tmp11_;
+#line 28 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _tmp12_ = r;
+#line 28 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _tmp13_ = k;
+#line 28 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       gee_abstract_collection_add ((GeeAbstractCollection*) _tmp12_, _tmp13_);
+#line 27 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _g_free0 (k);
+#line 241 "SymbolSet.c"
+               }
+#line 27 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _g_object_unref0 (_k_it);
+#line 245 "SymbolSet.c"
+       }
+#line 30 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       result = r;
+#line 30 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       return result;
+#line 251 "SymbolSet.c"
+}
+
+
+GeeArrayList* jsdoc_symbol_set_values (JSDOCSymbolSet* self) {
+       GeeArrayList* result = NULL;
+       GeeArrayList* r = NULL;
+       GeeArrayList* _tmp0_;
+#line 33 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 35 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp0_ = gee_array_list_new (JSDOC_TYPE_SYMBOL, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL);
+#line 35 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       r = _tmp0_;
+#line 265 "SymbolSet.c"
+       {
+               GeeIterator* _k_it = NULL;
+               GeeHashMap* _tmp1_;
+               GeeHashMap* _tmp2_;
+               GeeCollection* _tmp3_;
+               GeeCollection* _tmp4_;
+               GeeCollection* _tmp5_;
+               GeeIterator* _tmp6_;
+               GeeIterator* _tmp7_;
+#line 36 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _tmp1_ = jsdoc_symbol_set_get__index (self);
+#line 36 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _tmp2_ = _tmp1_;
+#line 36 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _tmp3_ = gee_abstract_map_get_values ((GeeAbstractMap*) _tmp2_);
+#line 36 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _tmp4_ = _tmp3_;
+#line 36 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _tmp5_ = _tmp4_;
+#line 36 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _tmp6_ = gee_iterable_iterator ((GeeIterable*) _tmp5_);
+#line 36 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _tmp7_ = _tmp6_;
+#line 36 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _g_object_unref0 (_tmp5_);
+#line 36 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _k_it = _tmp7_;
+#line 36 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               while (TRUE) {
+#line 295 "SymbolSet.c"
+                       GeeIterator* _tmp8_;
+                       gboolean _tmp9_;
+                       JSDOCSymbol* k = NULL;
+                       GeeIterator* _tmp10_;
+                       gpointer _tmp11_;
+                       GeeArrayList* _tmp12_;
+                       JSDOCSymbol* _tmp13_;
+#line 36 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _tmp8_ = _k_it;
+#line 36 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _tmp9_ = gee_iterator_next (_tmp8_);
+#line 36 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       if (!_tmp9_) {
+#line 36 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               break;
+#line 311 "SymbolSet.c"
+                       }
+#line 36 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _tmp10_ = _k_it;
+#line 36 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _tmp11_ = gee_iterator_get (_tmp10_);
+#line 36 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       k = (JSDOCSymbol*) _tmp11_;
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _tmp12_ = r;
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _tmp13_ = k;
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       gee_abstract_collection_add ((GeeAbstractCollection*) _tmp12_, _tmp13_);
+#line 36 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _g_object_unref0 (k);
+#line 327 "SymbolSet.c"
+               }
+#line 36 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _g_object_unref0 (_k_it);
+#line 331 "SymbolSet.c"
+       }
+#line 39 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       result = r;
+#line 39 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       return result;
+#line 337 "SymbolSet.c"
+}
+
+
+gboolean jsdoc_symbol_set_hasSymbol (JSDOCSymbolSet* self, const gchar* alias) {
+       gboolean result = FALSE;
+       GeeHashMap* _tmp0_;
+       GeeHashMap* _tmp1_;
+       const gchar* _tmp2_;
+       gboolean _tmp3_;
+#line 43 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       g_return_val_if_fail (self != NULL, FALSE);
+#line 43 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       g_return_val_if_fail (alias != NULL, FALSE);
+#line 45 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp0_ = jsdoc_symbol_set_get__index (self);
+#line 45 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp1_ = _tmp0_;
+#line 45 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp2_ = alias;
+#line 45 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp3_ = gee_abstract_map_has_key ((GeeAbstractMap*) _tmp1_, _tmp2_);
+#line 45 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       result = _tmp3_;
+#line 45 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       return result;
+#line 363 "SymbolSet.c"
+}
+
+
+void jsdoc_symbol_set_addSymbol (JSDOCSymbolSet* self, JSDOCSymbol* symbol) {
+       JSDOCSymbol* _tmp0_;
+       const gchar* _tmp1_;
+       JSDOCSymbol* _tmp2_;
+       const gchar* _tmp3_;
+       gboolean _tmp4_;
+       GeeHashMap* _tmp7_;
+       GeeHashMap* _tmp8_;
+       JSDOCSymbol* _tmp9_;
+       const gchar* _tmp10_;
+       JSDOCSymbol* _tmp11_;
+#line 49 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       g_return_if_fail (self != NULL);
+#line 49 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       g_return_if_fail (symbol != NULL);
+#line 50 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp0_ = symbol;
+#line 50 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp1_ = _tmp0_->alias;
+#line 50 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       g_debug ("SymbolSet.vala:50: ADDING SYMBOL: %s", _tmp1_);
+#line 53 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp2_ = symbol;
+#line 53 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp3_ = _tmp2_->alias;
+#line 53 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp4_ = jsdoc_symbol_set_hasSymbol (self, _tmp3_);
+#line 53 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       if (_tmp4_) {
+#line 396 "SymbolSet.c"
+               JSDOCSymbol* _tmp5_;
+               const gchar* _tmp6_;
+#line 54 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _tmp5_ = symbol;
+#line 54 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _tmp6_ = _tmp5_->alias;
+#line 54 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               g_warning ("SymbolSet.vala:54: Overwriting symbol documentation for: %s.", _tmp6_);
+#line 405 "SymbolSet.c"
+       }
+#line 56 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp7_ = jsdoc_symbol_set_get__index (self);
+#line 56 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp8_ = _tmp7_;
+#line 56 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp9_ = symbol;
+#line 56 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp10_ = _tmp9_->alias;
+#line 56 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp11_ = symbol;
+#line 56 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       gee_abstract_map_set ((GeeAbstractMap*) _tmp8_, _tmp10_, _tmp11_);
+#line 419 "SymbolSet.c"
+}
+
+
+JSDOCSymbol* jsdoc_symbol_set_getSymbol (JSDOCSymbolSet* self, const gchar* alias) {
+       JSDOCSymbol* result = NULL;
+       const gchar* _tmp0_;
+       gboolean _tmp1_;
+#line 59 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 59 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       g_return_val_if_fail (alias != NULL, NULL);
+#line 61 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp0_ = alias;
+#line 61 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp1_ = jsdoc_symbol_set_hasSymbol (self, _tmp0_);
+#line 61 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       if (_tmp1_) {
+#line 437 "SymbolSet.c"
+               GeeHashMap* _tmp2_;
+               GeeHashMap* _tmp3_;
+               const gchar* _tmp4_;
+               gpointer _tmp5_;
+#line 61 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _tmp2_ = jsdoc_symbol_set_get__index (self);
+#line 61 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _tmp3_ = _tmp2_;
+#line 61 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _tmp4_ = alias;
+#line 61 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _tmp5_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp3_, _tmp4_);
+#line 61 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               result = (JSDOCSymbol*) _tmp5_;
+#line 61 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               return result;
+#line 454 "SymbolSet.c"
+       }
+#line 62 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       result = NULL;
+#line 62 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       return result;
+#line 460 "SymbolSet.c"
+}
+
+
+/**
+         * for serializing
+         *
+        toJSON : function() {
+            return {
+                '*object' : 'SymbolSet',
+                _index : this._index
+            };
+            
+        },
+*/
+void jsdoc_symbol_set_deleteSymbol (JSDOCSymbolSet* self, const gchar* alias) {
+       const gchar* _tmp0_;
+       gboolean _tmp1_;
+       GeeHashMap* _tmp2_;
+       GeeHashMap* _tmp3_;
+       const gchar* _tmp4_;
+#line 85 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       g_return_if_fail (self != NULL);
+#line 85 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       g_return_if_fail (alias != NULL);
+#line 86 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp0_ = alias;
+#line 86 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp1_ = jsdoc_symbol_set_hasSymbol (self, _tmp0_);
+#line 86 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       if (!_tmp1_) {
+#line 86 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               return;
+#line 493 "SymbolSet.c"
+       }
+#line 87 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp2_ = jsdoc_symbol_set_get__index (self);
+#line 87 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp3_ = _tmp2_;
+#line 87 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp4_ = alias;
+#line 87 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       gee_abstract_map_unset ((GeeAbstractMap*) _tmp3_, _tmp4_, NULL);
+#line 503 "SymbolSet.c"
+}
+
+
+gchar* jsdoc_symbol_set_renameSymbol (JSDOCSymbolSet* self, const gchar* oldName, const gchar* newName) {
+       gchar* result = NULL;
+       const gchar* _tmp0_;
+       gboolean _tmp1_;
+       GeeHashMap* _tmp12_;
+       GeeHashMap* _tmp13_;
+       const gchar* _tmp14_;
+       GeeHashMap* _tmp15_;
+       GeeHashMap* _tmp16_;
+       const gchar* _tmp17_;
+       gpointer _tmp18_;
+       JSDOCSymbol* _tmp19_;
+       const gchar* _tmp20_;
+       GeeHashMap* _tmp21_;
+       GeeHashMap* _tmp22_;
+       const gchar* _tmp23_;
+       gpointer _tmp24_;
+       JSDOCSymbol* _tmp25_;
+       const gchar* _tmp26_;
+       gchar* _tmp27_;
+       const gchar* _tmp28_;
+       gchar* _tmp29_;
+#line 90 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 90 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       g_return_val_if_fail (oldName != NULL, NULL);
+#line 90 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       g_return_val_if_fail (newName != NULL, NULL);
+#line 92 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp0_ = oldName;
+#line 92 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp1_ = jsdoc_symbol_set_hasSymbol (self, _tmp0_);
+#line 92 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       if (!_tmp1_) {
+#line 541 "SymbolSet.c"
+               const gchar* _tmp2_;
+               gchar* _tmp3_;
+               gchar* _tmp4_;
+               gchar* _tmp5_;
+               gchar* _tmp6_;
+               const gchar* _tmp7_;
+               gchar* _tmp8_;
+               gchar* _tmp9_;
+               gchar* _tmp10_;
+               gchar* _tmp11_;
+#line 93 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _tmp2_ = oldName;
+#line 93 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _tmp3_ = g_strconcat ("Cant rename ", _tmp2_, NULL);
+#line 93 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _tmp4_ = _tmp3_;
+#line 93 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _tmp5_ = g_strconcat (_tmp4_, " to ", NULL);
+#line 93 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _tmp6_ = _tmp5_;
+#line 93 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _tmp7_ = newName;
+#line 93 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _tmp8_ = g_strconcat (_tmp6_, _tmp7_, NULL);
+#line 93 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _tmp9_ = _tmp8_;
+#line 93 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _tmp10_ = g_strconcat (_tmp9_, " As it doesnt exist", NULL);
+#line 93 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _tmp11_ = _tmp10_;
+#line 93 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               g_error ("SymbolSet.vala:93: %s", _tmp11_);
+#line 93 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _g_free0 (_tmp11_);
+#line 93 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _g_free0 (_tmp9_);
+#line 93 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _g_free0 (_tmp6_);
+#line 93 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _g_free0 (_tmp4_);
+#line 582 "SymbolSet.c"
+       }
+#line 95 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp12_ = jsdoc_symbol_set_get__index (self);
+#line 95 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp13_ = _tmp12_;
+#line 95 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp14_ = newName;
+#line 95 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp15_ = jsdoc_symbol_set_get__index (self);
+#line 95 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp16_ = _tmp15_;
+#line 95 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp17_ = oldName;
+#line 95 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp18_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp16_, _tmp17_);
+#line 95 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp19_ = (JSDOCSymbol*) _tmp18_;
+#line 95 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       gee_abstract_map_set ((GeeAbstractMap*) _tmp13_, _tmp14_, _tmp19_);
+#line 95 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _g_object_unref0 (_tmp19_);
+#line 96 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp20_ = oldName;
+#line 96 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       jsdoc_symbol_set_deleteSymbol (self, _tmp20_);
+#line 97 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp21_ = jsdoc_symbol_set_get__index (self);
+#line 97 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp22_ = _tmp21_;
+#line 97 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp23_ = newName;
+#line 97 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp24_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp22_, _tmp23_);
+#line 97 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp25_ = (JSDOCSymbol*) _tmp24_;
+#line 97 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp26_ = newName;
+#line 97 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp27_ = g_strdup (_tmp26_);
+#line 97 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _g_free0 (_tmp25_->alias);
+#line 97 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp25_->alias = _tmp27_;
+#line 97 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _g_object_unref0 (_tmp25_);
+#line 98 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp28_ = newName;
+#line 98 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp29_ = g_strdup (_tmp28_);
+#line 98 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       result = _tmp29_;
+#line 98 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       return result;
+#line 636 "SymbolSet.c"
+}
+
+
+void jsdoc_symbol_set_relate (JSDOCSymbolSet* self) {
+#line 101 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       g_return_if_fail (self != NULL);
+#line 103 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       g_debug ("SymbolSet.vala:103: RELATE called");
+#line 645 "SymbolSet.c"
+       {
+               GeeIterator* _s_it = NULL;
+               GeeHashMap* _tmp0_;
+               GeeHashMap* _tmp1_;
+               GeeSet* _tmp2_;
+               GeeSet* _tmp3_;
+               GeeSet* _tmp4_;
+               GeeIterator* _tmp5_;
+               GeeIterator* _tmp6_;
+#line 104 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _tmp0_ = jsdoc_symbol_set_get__index (self);
+#line 104 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _tmp1_ = _tmp0_;
+#line 104 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _tmp2_ = gee_abstract_map_get_keys ((GeeAbstractMap*) _tmp1_);
+#line 104 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _tmp3_ = _tmp2_;
+#line 104 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _tmp4_ = _tmp3_;
+#line 104 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _tmp5_ = gee_iterable_iterator ((GeeIterable*) _tmp4_);
+#line 104 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _tmp6_ = _tmp5_;
+#line 104 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _g_object_unref0 (_tmp4_);
+#line 104 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _s_it = _tmp6_;
+#line 104 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               while (TRUE) {
+#line 675 "SymbolSet.c"
+                       GeeIterator* _tmp7_;
+                       gboolean _tmp8_;
+                       gchar* s = NULL;
+                       GeeIterator* _tmp9_;
+                       gpointer _tmp10_;
+                       GeeHashMap* _tmp11_;
+                       GeeHashMap* _tmp12_;
+                       const gchar* _tmp13_;
+                       gpointer _tmp14_;
+                       JSDOCSymbol* _tmp15_;
+                       gchar* _tmp16_;
+                       gchar* _tmp17_;
+#line 104 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _tmp7_ = _s_it;
+#line 104 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _tmp8_ = gee_iterator_next (_tmp7_);
+#line 104 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       if (!_tmp8_) {
+#line 104 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               break;
+#line 696 "SymbolSet.c"
+                       }
+#line 104 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _tmp9_ = _s_it;
+#line 104 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _tmp10_ = gee_iterator_get (_tmp9_);
+#line 104 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       s = (gchar*) _tmp10_;
+#line 105 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _tmp11_ = jsdoc_symbol_set_get__index (self);
+#line 105 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _tmp12_ = _tmp11_;
+#line 105 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _tmp13_ = s;
+#line 105 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _tmp14_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp12_, _tmp13_);
+#line 105 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _tmp15_ = (JSDOCSymbol*) _tmp14_;
+#line 105 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _tmp16_ = jsdoc_symbol_asString (_tmp15_);
+#line 105 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _tmp17_ = _tmp16_;
+#line 105 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       g_debug ("SymbolSet.vala:105: %s", _tmp17_);
+#line 105 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _g_free0 (_tmp17_);
+#line 105 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _g_object_unref0 (_tmp15_);
+#line 104 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _g_free0 (s);
+#line 726 "SymbolSet.c"
+               }
+#line 104 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _g_object_unref0 (_s_it);
+#line 730 "SymbolSet.c"
+       }
+#line 107 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       jsdoc_symbol_set_resolveBorrows (self);
+#line 108 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       jsdoc_symbol_set_resolveMemberOf (self);
+#line 109 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       jsdoc_symbol_set_resolveAugments (self);
+#line 110 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       g_debug ("SymbolSet.vala:110: AFTER RELATE called");
+#line 740 "SymbolSet.c"
+       {
+               GeeIterator* _s_it = NULL;
+               GeeHashMap* _tmp18_;
+               GeeHashMap* _tmp19_;
+               GeeSet* _tmp20_;
+               GeeSet* _tmp21_;
+               GeeSet* _tmp22_;
+               GeeIterator* _tmp23_;
+               GeeIterator* _tmp24_;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _tmp18_ = jsdoc_symbol_set_get__index (self);
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _tmp19_ = _tmp18_;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _tmp20_ = gee_abstract_map_get_keys ((GeeAbstractMap*) _tmp19_);
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _tmp21_ = _tmp20_;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _tmp22_ = _tmp21_;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _tmp23_ = gee_iterable_iterator ((GeeIterable*) _tmp22_);
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _tmp24_ = _tmp23_;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _g_object_unref0 (_tmp22_);
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _s_it = _tmp24_;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               while (TRUE) {
+#line 770 "SymbolSet.c"
+                       GeeIterator* _tmp25_;
+                       gboolean _tmp26_;
+                       gchar* s = NULL;
+                       GeeIterator* _tmp27_;
+                       gpointer _tmp28_;
+                       GeeHashMap* _tmp29_;
+                       GeeHashMap* _tmp30_;
+                       const gchar* _tmp31_;
+                       gpointer _tmp32_;
+                       JSDOCSymbol* _tmp33_;
+                       gchar* _tmp34_;
+                       gchar* _tmp35_;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _tmp25_ = _s_it;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _tmp26_ = gee_iterator_next (_tmp25_);
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       if (!_tmp26_) {
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               break;
+#line 791 "SymbolSet.c"
+                       }
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _tmp27_ = _s_it;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _tmp28_ = gee_iterator_get (_tmp27_);
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       s = (gchar*) _tmp28_;
+#line 112 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _tmp29_ = jsdoc_symbol_set_get__index (self);
+#line 112 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _tmp30_ = _tmp29_;
+#line 112 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _tmp31_ = s;
+#line 112 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _tmp32_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp30_, _tmp31_);
+#line 112 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _tmp33_ = (JSDOCSymbol*) _tmp32_;
+#line 112 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _tmp34_ = jsdoc_symbol_asString (_tmp33_);
+#line 112 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _tmp35_ = _tmp34_;
+#line 112 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       g_debug ("SymbolSet.vala:112: %s", _tmp35_);
+#line 112 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _g_free0 (_tmp35_);
+#line 112 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _g_object_unref0 (_tmp33_);
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _g_free0 (s);
+#line 821 "SymbolSet.c"
+               }
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _g_object_unref0 (_s_it);
+#line 825 "SymbolSet.c"
+       }
+}
+
+
+static void jsdoc_symbol_set_resolveBorrows (JSDOCSymbolSet* self) {
+#line 116 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       g_return_if_fail (self != NULL);
+#line 119 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       return;
+#line 835 "SymbolSet.c"
+}
+
+
+static glong string_strnlen (gchar* str, glong maxlen) {
+       glong result = 0L;
+       gchar* end = NULL;
+       gchar* _tmp0_;
+       glong _tmp1_;
+       gchar* _tmp2_;
+       gchar* _tmp3_;
+#line 1322 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp0_ = str;
+#line 1322 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp1_ = maxlen;
+#line 1322 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp2_ = memchr (_tmp0_, 0, (gsize) _tmp1_);
+#line 1322 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       end = _tmp2_;
+#line 1323 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp3_ = end;
+#line 1323 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if (_tmp3_ == NULL) {
+#line 858 "SymbolSet.c"
+               glong _tmp4_;
+#line 1324 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp4_ = maxlen;
+#line 1324 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               result = _tmp4_;
+#line 1324 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               return result;
+#line 866 "SymbolSet.c"
+       } else {
+               gchar* _tmp5_;
+               gchar* _tmp6_;
+#line 1326 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp5_ = end;
+#line 1326 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp6_ = str;
+#line 1326 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               result = (glong) (_tmp5_ - _tmp6_);
+#line 1326 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               return result;
+#line 878 "SymbolSet.c"
+       }
+}
+
+
+static gchar* string_substring (const gchar* self, glong offset, glong len) {
+       gchar* result = NULL;
+       glong string_length = 0L;
+       gboolean _tmp0_ = FALSE;
+       glong _tmp1_;
+       glong _tmp8_;
+       glong _tmp14_;
+       glong _tmp17_;
+       glong _tmp18_;
+       glong _tmp19_;
+       glong _tmp20_;
+       glong _tmp21_;
+       gchar* _tmp22_;
+#line 1333 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 1335 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp1_ = offset;
+#line 1335 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if (_tmp1_ >= ((glong) 0)) {
+#line 902 "SymbolSet.c"
+               glong _tmp2_;
+#line 1335 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp2_ = len;
+#line 1335 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp0_ = _tmp2_ >= ((glong) 0);
+#line 908 "SymbolSet.c"
+       } else {
+#line 1335 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp0_ = FALSE;
+#line 912 "SymbolSet.c"
+       }
+#line 1335 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if (_tmp0_) {
+#line 916 "SymbolSet.c"
+               glong _tmp3_;
+               glong _tmp4_;
+               glong _tmp5_;
+#line 1337 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp3_ = offset;
+#line 1337 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp4_ = len;
+#line 1337 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp5_ = string_strnlen ((gchar*) self, _tmp3_ + _tmp4_);
+#line 1337 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               string_length = _tmp5_;
+#line 928 "SymbolSet.c"
+       } else {
+               gint _tmp6_;
+               gint _tmp7_;
+#line 1339 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp6_ = strlen (self);
+#line 1339 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp7_ = _tmp6_;
+#line 1339 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               string_length = (glong) _tmp7_;
+#line 938 "SymbolSet.c"
+       }
+#line 1342 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp8_ = offset;
+#line 1342 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if (_tmp8_ < ((glong) 0)) {
+#line 944 "SymbolSet.c"
+               glong _tmp9_;
+               glong _tmp10_;
+               glong _tmp11_;
+#line 1343 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp9_ = string_length;
+#line 1343 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp10_ = offset;
+#line 1343 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               offset = _tmp9_ + _tmp10_;
+#line 1344 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp11_ = offset;
+#line 1344 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               g_return_val_if_fail (_tmp11_ >= ((glong) 0), NULL);
+#line 958 "SymbolSet.c"
+       } else {
+               glong _tmp12_;
+               glong _tmp13_;
+#line 1346 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp12_ = offset;
+#line 1346 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp13_ = string_length;
+#line 1346 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               g_return_val_if_fail (_tmp12_ <= _tmp13_, NULL);
+#line 968 "SymbolSet.c"
+       }
+#line 1348 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp14_ = len;
+#line 1348 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if (_tmp14_ < ((glong) 0)) {
+#line 974 "SymbolSet.c"
+               glong _tmp15_;
+               glong _tmp16_;
+#line 1349 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp15_ = string_length;
+#line 1349 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp16_ = offset;
+#line 1349 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               len = _tmp15_ - _tmp16_;
+#line 983 "SymbolSet.c"
+       }
+#line 1351 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp17_ = offset;
+#line 1351 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp18_ = len;
+#line 1351 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp19_ = string_length;
+#line 1351 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       g_return_val_if_fail ((_tmp17_ + _tmp18_) <= _tmp19_, NULL);
+#line 1352 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp20_ = offset;
+#line 1352 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp21_ = len;
+#line 1352 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp22_ = g_strndup (((gchar*) self) + _tmp20_, (gsize) _tmp21_);
+#line 1352 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       result = _tmp22_;
+#line 1352 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       return result;
+#line 1003 "SymbolSet.c"
+}
+
+
+static inline GRegex* _thread_safe_regex_init (GRegex** re, const gchar * pattern, GRegexMatchFlags match_options) {
+#line 190 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       if (g_once_init_enter ((volatile gsize*) re)) {
+#line 190 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               GRegex* val = g_regex_new (pattern, match_options, 0, NULL);
+#line 190 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               g_once_init_leave ((volatile gsize*) re, (gsize) val);
+#line 1014 "SymbolSet.c"
+       }
+#line 190 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       return *re;
+#line 1018 "SymbolSet.c"
+}
+
+
+static gchar string_get (const gchar* self, glong index) {
+       gchar result = '\0';
+       glong _tmp0_;
+       gchar _tmp1_;
+#line 1110 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (self != NULL, '\0');
+#line 1111 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp0_ = index;
+#line 1111 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp1_ = ((gchar*) self)[_tmp0_];
+#line 1111 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       result = _tmp1_;
+#line 1111 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       return result;
+#line 1036 "SymbolSet.c"
+}
+
+
+static void jsdoc_symbol_set_resolveMemberOf (JSDOCSymbolSet* self) {
+       GeeHashMap* _tmp0_;
+       GeeHashMap* _tmp1_;
+       GeeSet* _tmp2_;
+       GeeSet* _tmp3_;
+       GeeSet* _tmp4_;
+       gint _tmp5_;
+       gint _tmp6_;
+       gboolean _tmp7_;
+       GError * _inner_error_ = NULL;
+#line 165 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       g_return_if_fail (self != NULL);
+#line 167 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp0_ = jsdoc_symbol_set_get__index (self);
+#line 167 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp1_ = _tmp0_;
+#line 167 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp2_ = gee_abstract_map_get_keys ((GeeAbstractMap*) _tmp1_);
+#line 167 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp3_ = _tmp2_;
+#line 167 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp4_ = _tmp3_;
+#line 167 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp5_ = gee_collection_get_size ((GeeCollection*) _tmp4_);
+#line 167 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp6_ = _tmp5_;
+#line 167 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp7_ = _tmp6_ < 1;
+#line 167 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _g_object_unref0 (_tmp4_);
+#line 167 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       if (_tmp7_) {
+#line 168 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               return;
+#line 1074 "SymbolSet.c"
+       }
+       {
+               GeeArrayList* _p_list = NULL;
+               GeeArrayList* _tmp8_;
+               gint _p_size = 0;
+               GeeArrayList* _tmp9_;
+               gint _tmp10_;
+               gint _tmp11_;
+               gint _p_index = 0;
+#line 170 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _tmp8_ = jsdoc_symbol_set_keys (self);
+#line 170 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _p_list = _tmp8_;
+#line 170 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _tmp9_ = _p_list;
+#line 170 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _tmp10_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp9_);
+#line 170 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _tmp11_ = _tmp10_;
+#line 170 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _p_size = _tmp11_;
+#line 170 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _p_index = -1;
+#line 170 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               while (TRUE) {
+#line 1100 "SymbolSet.c"
+                       gint _tmp12_;
+                       gint _tmp13_;
+                       gint _tmp14_;
+                       gchar* p = NULL;
+                       GeeArrayList* _tmp15_;
+                       gint _tmp16_;
+                       gpointer _tmp17_;
+                       JSDOCSymbol* symbol = NULL;
+                       const gchar* _tmp18_;
+                       JSDOCSymbol* _tmp19_;
+                       gboolean _tmp20_ = FALSE;
+                       JSDOCSymbol* _tmp21_;
+                       gboolean _tmp22_;
+                       JSDOCSymbol* _tmp85_;
+                       const gchar* _tmp86_;
+                       gint _tmp87_;
+                       gint _tmp88_;
+                       gboolean _tmp102_ = FALSE;
+                       gboolean _tmp103_ = FALSE;
+                       JSDOCSymbol* _tmp104_;
+                       gboolean _tmp105_;
+                       JSDOCSymbol* _tmp112_;
+                       const gchar* _tmp113_;
+                       gboolean _tmp114_;
+                       JSDOCSymbol* _tmp123_;
+                       const gchar* _tmp124_;
+                       gint _tmp125_;
+                       gint _tmp126_;
+#line 170 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _tmp12_ = _p_index;
+#line 170 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _p_index = _tmp12_ + 1;
+#line 170 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _tmp13_ = _p_index;
+#line 170 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _tmp14_ = _p_size;
+#line 170 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       if (!(_tmp13_ < _tmp14_)) {
+#line 170 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               break;
+#line 1141 "SymbolSet.c"
+                       }
+#line 170 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _tmp15_ = _p_list;
+#line 170 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _tmp16_ = _p_index;
+#line 170 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _tmp17_ = gee_abstract_list_get ((GeeAbstractList*) _tmp15_, _tmp16_);
+#line 170 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       p = (gchar*) _tmp17_;
+#line 171 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _tmp18_ = p;
+#line 171 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _tmp19_ = jsdoc_symbol_set_getSymbol (self, _tmp18_);
+#line 171 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       symbol = _tmp19_;
+#line 173 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _tmp21_ = symbol;
+#line 173 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _tmp22_ = jsdoc_symbol_is (_tmp21_, "FILE");
+#line 173 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       if (_tmp22_) {
+#line 173 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp20_ = TRUE;
+#line 1165 "SymbolSet.c"
+                       } else {
+                               JSDOCSymbol* _tmp23_;
+                               gboolean _tmp24_;
+#line 173 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp23_ = symbol;
+#line 173 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp24_ = jsdoc_symbol_is (_tmp23_, "GLOBAL");
+#line 173 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp20_ = _tmp24_;
+#line 1175 "SymbolSet.c"
+                       }
+#line 173 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       if (_tmp20_) {
+#line 173 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _g_object_unref0 (symbol);
+#line 173 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _g_free0 (p);
+#line 173 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               continue;
+#line 1185 "SymbolSet.c"
+                       } else {
+                               JSDOCSymbol* _tmp25_;
+                               const gchar* _tmp26_;
+                               gint _tmp27_;
+                               gint _tmp28_;
+#line 176 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp25_ = symbol;
+#line 176 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp26_ = _tmp25_->memberOf;
+#line 176 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp27_ = strlen (_tmp26_);
+#line 176 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp28_ = _tmp27_;
+#line 176 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               if (_tmp28_ > 0) {
+#line 1201 "SymbolSet.c"
+                                       GRegex* regex = NULL;
+                                       JSDOCSymbol* _tmp29_;
+                                       const gchar* _tmp30_;
+                                       gchar* _tmp31_;
+                                       gchar* _tmp32_;
+                                       gchar* _tmp33_;
+                                       gchar* _tmp34_;
+                                       GRegex* _tmp35_;
+                                       GRegex* _tmp36_;
+                                       GMatchInfo* minfo = NULL;
+                                       gboolean parts = FALSE;
+                                       GRegex* _tmp37_;
+                                       JSDOCSymbol* _tmp38_;
+                                       const gchar* _tmp39_;
+                                       GMatchInfo* _tmp40_ = NULL;
+                                       gboolean _tmp41_;
+                                       gboolean _tmp42_;
+#line 177 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       _tmp29_ = symbol;
+#line 177 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       _tmp30_ = _tmp29_->memberOf;
+#line 177 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       _tmp31_ = g_strconcat ("^(", _tmp30_, NULL);
+#line 177 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       _tmp32_ = _tmp31_;
+#line 177 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       _tmp33_ = g_strconcat (_tmp32_, "[.#-])(.+)$", NULL);
+#line 177 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       _tmp34_ = _tmp33_;
+#line 177 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       _tmp35_ = g_regex_new (_tmp34_, 0, 0, &_inner_error_);
+#line 177 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       _tmp36_ = _tmp35_;
+#line 177 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       _g_free0 (_tmp34_);
+#line 177 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       _g_free0 (_tmp32_);
+#line 177 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       regex = _tmp36_;
+#line 177 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 177 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _g_object_unref0 (symbol);
+#line 177 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _g_free0 (p);
+#line 177 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _g_object_unref0 (_p_list);
+#line 177 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               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);
+#line 177 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               g_clear_error (&_inner_error_);
+#line 177 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               return;
+#line 1255 "SymbolSet.c"
+                                       }
+#line 179 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       _tmp37_ = regex;
+#line 179 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       _tmp38_ = symbol;
+#line 179 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       _tmp39_ = _tmp38_->alias;
+#line 179 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       _tmp41_ = g_regex_match_full (_tmp37_, _tmp39_, (gssize) -1, 0, 0, &_tmp40_, &_inner_error_);
+#line 179 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       _g_match_info_unref0 (minfo);
+#line 179 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       minfo = _tmp40_;
+#line 179 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       parts = _tmp41_;
+#line 179 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 179 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _g_match_info_unref0 (minfo);
+#line 179 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _g_regex_unref0 (regex);
+#line 179 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _g_object_unref0 (symbol);
+#line 179 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _g_free0 (p);
+#line 179 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _g_object_unref0 (_p_list);
+#line 179 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               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);
+#line 179 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               g_clear_error (&_inner_error_);
+#line 179 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               return;
+#line 1289 "SymbolSet.c"
+                                       }
+#line 182 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       _tmp42_ = parts;
+#line 182 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       if (_tmp42_) {
+#line 1295 "SymbolSet.c"
+                                               JSDOCSymbol* _tmp43_;
+                                               GMatchInfo* _tmp44_;
+                                               gchar* _tmp45_;
+                                               JSDOCSymbol* _tmp46_;
+                                               GMatchInfo* _tmp47_;
+                                               gchar* _tmp48_;
+                                               gchar* _tmp49_;
+#line 184 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _tmp43_ = symbol;
+#line 184 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _tmp44_ = minfo;
+#line 184 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _tmp45_ = g_match_info_fetch (_tmp44_, 1);
+#line 184 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _g_free0 (_tmp43_->memberOf);
+#line 184 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _tmp43_->memberOf = _tmp45_;
+#line 185 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _tmp46_ = symbol;
+#line 185 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _tmp47_ = minfo;
+#line 185 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _tmp48_ = g_match_info_fetch (_tmp47_, 2);
+#line 185 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _tmp49_ = _tmp48_;
+#line 185 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               jsdoc_symbol_set_private_name (_tmp46_, _tmp49_);
+#line 185 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _g_free0 (_tmp49_);
+#line 1325 "SymbolSet.c"
+                                       } else {
+                                               gchar* joiner = NULL;
+                                               JSDOCSymbol* _tmp50_;
+                                               const gchar* _tmp51_;
+                                               JSDOCSymbol* _tmp52_;
+                                               const gchar* _tmp53_;
+                                               gint _tmp54_;
+                                               gint _tmp55_;
+                                               gchar* _tmp56_;
+                                               const gchar* _tmp57_;
+                                               gboolean _tmp58_;
+                                               const gchar* _tmp63_;
+                                               JSDOCSymbol* _tmp64_;
+                                               const gchar* _tmp65_;
+                                               JSDOCSymbol* _tmp66_;
+                                               const gchar* _tmp67_;
+                                               const gchar* _tmp68_;
+                                               gchar* _tmp69_;
+                                               gchar* _tmp70_;
+                                               gchar* _tmp71_;
+                                               gchar* _tmp72_;
+#line 189 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _tmp50_ = symbol;
+#line 189 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _tmp51_ = _tmp50_->memberOf;
+#line 189 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _tmp52_ = symbol;
+#line 189 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _tmp53_ = _tmp52_->memberOf;
+#line 189 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _tmp54_ = strlen (_tmp53_);
+#line 189 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _tmp55_ = _tmp54_;
+#line 189 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _tmp56_ = string_substring (_tmp51_, (glong) (_tmp55_ - 1), (glong) -1);
+#line 189 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               joiner = _tmp56_;
+#line 190 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _tmp57_ = joiner;
+#line 190 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _tmp58_ = g_regex_match (_thread_safe_regex_init (&_tmp_regex_0, "[.#-]", 0), _tmp57_, 0, NULL);
+#line 190 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               if (!_tmp58_) {
+#line 1369 "SymbolSet.c"
+                                                       JSDOCSymbol* _tmp59_;
+                                                       JSDOCSymbol* _tmp60_;
+                                                       const gchar* _tmp61_;
+                                                       gchar* _tmp62_;
+#line 190 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                       _tmp59_ = symbol;
+#line 190 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                       _tmp60_ = symbol;
+#line 190 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                       _tmp61_ = _tmp60_->memberOf;
+#line 190 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                       _tmp62_ = g_strconcat (_tmp61_, ".", NULL);
+#line 190 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                       _g_free0 (_tmp60_->memberOf);
+#line 190 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                       _tmp60_->memberOf = _tmp62_;
+#line 1386 "SymbolSet.c"
+                                               }
+#line 192 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _tmp63_ = p;
+#line 192 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _tmp64_ = symbol;
+#line 192 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _tmp65_ = _tmp64_->memberOf;
+#line 192 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _tmp66_ = symbol;
+#line 192 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _tmp67_ = jsdoc_symbol_get_name (_tmp66_);
+#line 192 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _tmp68_ = _tmp67_;
+#line 192 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _tmp69_ = g_strconcat (_tmp65_, _tmp68_, NULL);
+#line 192 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _tmp70_ = _tmp69_;
+#line 192 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _tmp71_ = jsdoc_symbol_set_renameSymbol (self, _tmp63_, _tmp70_);
+#line 192 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _tmp72_ = _tmp71_;
+#line 192 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _g_free0 (_tmp72_);
+#line 192 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _g_free0 (_tmp70_);
+#line 182 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _g_free0 (joiner);
+#line 1414 "SymbolSet.c"
+                                       }
+#line 176 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       _g_match_info_unref0 (minfo);
+#line 176 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       _g_regex_unref0 (regex);
+#line 1420 "SymbolSet.c"
+                               } else {
+                                       GMatchInfo* minfo = NULL;
+                                       gboolean parts = FALSE;
+                                       JSDOCSymbol* _tmp73_;
+                                       const gchar* _tmp74_;
+                                       GMatchInfo* _tmp75_ = NULL;
+                                       gboolean _tmp76_;
+                                       gboolean _tmp77_;
+#line 198 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       _tmp73_ = symbol;
+#line 198 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       _tmp74_ = _tmp73_->alias;
+#line 198 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       _tmp76_ = g_regex_match_full (_thread_safe_regex_init (&_tmp_regex_1, "^(.*[.#-])([^.#-]+)$", 0), _tmp74_, (gssize) -1, 0, 0, &_tmp75_, &_inner_error_);
+#line 198 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       _g_match_info_unref0 (minfo);
+#line 198 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       minfo = _tmp75_;
+#line 198 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       parts = _tmp76_;
+#line 198 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 198 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _g_match_info_unref0 (minfo);
+#line 198 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _g_object_unref0 (symbol);
+#line 198 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _g_free0 (p);
+#line 198 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _g_object_unref0 (_p_list);
+#line 198 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               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);
+#line 198 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               g_clear_error (&_inner_error_);
+#line 198 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               return;
+#line 1457 "SymbolSet.c"
+                                       }
+#line 200 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       _tmp77_ = parts;
+#line 200 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       if (_tmp77_) {
+#line 1463 "SymbolSet.c"
+                                               JSDOCSymbol* _tmp78_;
+                                               GMatchInfo* _tmp79_;
+                                               gchar* _tmp80_;
+                                               JSDOCSymbol* _tmp81_;
+                                               GMatchInfo* _tmp82_;
+                                               gchar* _tmp83_;
+                                               gchar* _tmp84_;
+#line 201 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _tmp78_ = symbol;
+#line 201 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _tmp79_ = minfo;
+#line 201 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _tmp80_ = g_match_info_fetch (_tmp79_, 1);
+#line 201 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _g_free0 (_tmp78_->memberOf);
+#line 201 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _tmp78_->memberOf = _tmp80_;
+#line 202 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _tmp81_ = symbol;
+#line 202 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _tmp82_ = minfo;
+#line 202 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _tmp83_ = g_match_info_fetch (_tmp82_, 2);
+#line 202 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _tmp84_ = _tmp83_;
+#line 202 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               jsdoc_symbol_set_private_name (_tmp81_, _tmp84_);
+#line 202 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _g_free0 (_tmp84_);
+#line 1493 "SymbolSet.c"
+                                       }
+#line 176 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       _g_match_info_unref0 (minfo);
+#line 1497 "SymbolSet.c"
+                               }
+                       }
+#line 207 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _tmp85_ = symbol;
+#line 207 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _tmp86_ = _tmp85_->memberOf;
+#line 207 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _tmp87_ = strlen (_tmp86_);
+#line 207 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _tmp88_ = _tmp87_;
+#line 207 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       if (_tmp88_ > 0) {
+#line 1510 "SymbolSet.c"
+                               JSDOCSymbol* _tmp89_;
+                               const gchar* _tmp90_;
+                               JSDOCSymbol* _tmp91_;
+                               const gchar* _tmp92_;
+                               gint _tmp93_;
+                               gint _tmp94_;
+                               gchar _tmp95_;
+#line 208 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp89_ = symbol;
+#line 208 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp90_ = _tmp89_->memberOf;
+#line 208 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp91_ = symbol;
+#line 208 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp92_ = _tmp91_->memberOf;
+#line 208 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp93_ = strlen (_tmp92_);
+#line 208 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp94_ = _tmp93_;
+#line 208 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp95_ = string_get (_tmp90_, (glong) (_tmp94_ - 1));
+#line 208 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               switch (_tmp95_) {
+#line 208 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       case '#':
+#line 1536 "SymbolSet.c"
+                                       {
+                                               JSDOCSymbol* _tmp96_;
+                                               JSDOCSymbol* _tmp97_;
+#line 210 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _tmp96_ = symbol;
+#line 210 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _tmp96_->isStatic = FALSE;
+#line 211 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _tmp97_ = symbol;
+#line 211 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _tmp97_->isInner = FALSE;
+#line 212 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               break;
+#line 1550 "SymbolSet.c"
+                                       }
+#line 208 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       case '.':
+#line 1554 "SymbolSet.c"
+                                       {
+                                               JSDOCSymbol* _tmp98_;
+                                               JSDOCSymbol* _tmp99_;
+#line 215 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _tmp98_ = symbol;
+#line 215 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _tmp98_->isStatic = TRUE;
+#line 216 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _tmp99_ = symbol;
+#line 216 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _tmp99_->isInner = FALSE;
+#line 217 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               break;
+#line 1568 "SymbolSet.c"
+                                       }
+#line 208 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       case '-':
+#line 1572 "SymbolSet.c"
+                                       {
+                                               JSDOCSymbol* _tmp100_;
+                                               JSDOCSymbol* _tmp101_;
+#line 220 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _tmp100_ = symbol;
+#line 220 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _tmp100_->isStatic = FALSE;
+#line 221 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _tmp101_ = symbol;
+#line 221 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _tmp101_->isInner = TRUE;
+#line 222 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               break;
+#line 1586 "SymbolSet.c"
+                                       }
+                                       default:
+#line 208 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       break;
+#line 1591 "SymbolSet.c"
+                               }
+                       }
+#line 228 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _tmp104_ = symbol;
+#line 228 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _tmp105_ = jsdoc_symbol_is (_tmp104_, "CONSTRUCTOR");
+#line 228 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       if (!_tmp105_) {
+#line 1600 "SymbolSet.c"
+                               JSDOCSymbol* _tmp106_;
+                               gboolean _tmp107_;
+#line 228 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp106_ = symbol;
+#line 228 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp107_ = _tmp106_->isNamespace;
+#line 228 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp103_ = !_tmp107_;
+#line 1609 "SymbolSet.c"
+                       } else {
+#line 228 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp103_ = FALSE;
+#line 1613 "SymbolSet.c"
+                       }
+#line 228 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       if (_tmp103_) {
+#line 1617 "SymbolSet.c"
+                               JSDOCSymbol* _tmp108_;
+                               const gchar* _tmp109_;
+#line 228 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp108_ = symbol;
+#line 228 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp109_ = _tmp108_->memberOf;
+#line 228 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp102_ = g_strcmp0 (_tmp109_, "") == 0;
+#line 1626 "SymbolSet.c"
+                       } else {
+#line 228 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp102_ = FALSE;
+#line 1630 "SymbolSet.c"
+                       }
+#line 228 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       if (_tmp102_) {
+#line 1634 "SymbolSet.c"
+                               JSDOCSymbol* _tmp110_;
+                               gchar* _tmp111_;
+#line 229 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp110_ = symbol;
+#line 229 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp111_ = g_strdup ("_global_");
+#line 229 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _g_free0 (_tmp110_->memberOf);
+#line 229 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp110_->memberOf = _tmp111_;
+#line 1645 "SymbolSet.c"
+                       }
+#line 233 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _tmp112_ = symbol;
+#line 233 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _tmp113_ = _tmp112_->memberOf;
+#line 233 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _tmp114_ = g_regex_match (_thread_safe_regex_init (&_tmp_regex_2, "[.#-]$", 0), _tmp113_, 0, NULL);
+#line 233 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       if (_tmp114_) {
+#line 1655 "SymbolSet.c"
+                               JSDOCSymbol* _tmp115_;
+                               JSDOCSymbol* _tmp116_;
+                               const gchar* _tmp117_;
+                               JSDOCSymbol* _tmp118_;
+                               const gchar* _tmp119_;
+                               gint _tmp120_;
+                               gint _tmp121_;
+                               gchar* _tmp122_;
+#line 234 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp115_ = symbol;
+#line 234 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp116_ = symbol;
+#line 234 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp117_ = _tmp116_->memberOf;
+#line 234 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp118_ = symbol;
+#line 234 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp119_ = _tmp118_->memberOf;
+#line 234 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp120_ = strlen (_tmp119_);
+#line 234 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp121_ = _tmp120_;
+#line 234 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp122_ = string_substring (_tmp117_, (glong) 0, (glong) (_tmp121_ - 1));
+#line 234 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _g_free0 (_tmp115_->memberOf);
+#line 234 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp115_->memberOf = _tmp122_;
+#line 1684 "SymbolSet.c"
+                       }
+#line 238 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _tmp123_ = symbol;
+#line 238 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _tmp124_ = _tmp123_->memberOf;
+#line 238 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _tmp125_ = strlen (_tmp124_);
+#line 238 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _tmp126_ = _tmp125_;
+#line 238 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       if (_tmp126_ > 0) {
+#line 1696 "SymbolSet.c"
+                               JSDOCSymbol* container = NULL;
+                               JSDOCSymbol* _tmp127_;
+                               const gchar* _tmp128_;
+                               JSDOCSymbol* _tmp129_;
+                               JSDOCSymbol* _tmp130_;
+                               gboolean _tmp146_ = FALSE;
+                               JSDOCSymbol* _tmp147_;
+#line 239 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp127_ = symbol;
+#line 239 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp128_ = _tmp127_->memberOf;
+#line 239 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp129_ = jsdoc_symbol_set_getSymbol (self, _tmp128_);
+#line 239 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               container = _tmp129_;
+#line 240 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp130_ = container;
+#line 240 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               if (_tmp130_ == NULL) {
+#line 1716 "SymbolSet.c"
+                                       JSDOCSymbol* _tmp131_;
+                                       const gchar* _tmp132_;
+                                       gboolean _tmp133_;
+#line 241 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       _tmp131_ = symbol;
+#line 241 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       _tmp132_ = _tmp131_->memberOf;
+#line 241 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       _tmp133_ = jsdoc_symbol_set_isBuiltin (_tmp132_);
+#line 241 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       if (_tmp133_) {
+#line 1728 "SymbolSet.c"
+                                               JSDOCSymbol* _tmp134_;
+                                               const gchar* _tmp135_;
+                                               JSDOCSymbol* _tmp136_;
+#line 242 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _tmp134_ = symbol;
+#line 242 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _tmp135_ = _tmp134_->memberOf;
+#line 242 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _tmp136_ = jsdoc_doc_parser_addBuiltin (_tmp135_);
+#line 242 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _g_object_unref0 (container);
+#line 242 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               container = _tmp136_;
+#line 1742 "SymbolSet.c"
+                                       } else {
+                                               JSDOCSymbol* _tmp137_;
+                                               const gchar* _tmp138_;
+                                               GeeArrayList* _tmp139_;
+                                               GeeArrayList* _tmp140_;
+                                               JSDOCDocComment* _tmp141_;
+                                               JSDOCDocComment* _tmp142_;
+                                               JSDOCSymbol* _tmp143_;
+                                               JSDOCSymbol* _tmp144_;
+                                               JSDOCSymbol* _tmp145_;
+#line 248 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _tmp137_ = symbol;
+#line 248 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _tmp138_ = _tmp137_->memberOf;
+#line 248 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _tmp139_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL);
+#line 248 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _tmp140_ = _tmp139_;
+#line 248 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _tmp141_ = jsdoc_doc_comment_new ("");
+#line 248 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _tmp142_ = _tmp141_;
+#line 248 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _tmp143_ = jsdoc_symbol_new_new_populate_with_args (_tmp138_, _tmp140_, "OBJECT", _tmp142_);
+#line 248 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _g_object_unref0 (container);
+#line 248 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               container = _tmp143_;
+#line 248 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _g_object_unref0 (_tmp142_);
+#line 248 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _g_object_unref0 (_tmp140_);
+#line 251 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _tmp144_ = container;
+#line 251 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _tmp144_->isNamespace = TRUE;
+#line 252 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _tmp145_ = container;
+#line 252 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               jsdoc_symbol_set_addSymbol (self, _tmp145_);
+#line 256 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _g_object_unref0 (container);
+#line 256 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _g_object_unref0 (symbol);
+#line 256 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _g_free0 (p);
+#line 256 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               continue;
+#line 1791 "SymbolSet.c"
+                                       }
+                               }
+#line 264 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp147_ = container;
+#line 264 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               if (_tmp147_ != NULL) {
+#line 1798 "SymbolSet.c"
+                                       JSDOCSymbol* _tmp148_;
+                                       gboolean _tmp149_;
+#line 264 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       _tmp148_ = container;
+#line 264 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       _tmp149_ = _tmp148_->isNamespace;
+#line 264 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       _tmp146_ = !_tmp149_;
+#line 1807 "SymbolSet.c"
+                               } else {
+#line 264 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       _tmp146_ = FALSE;
+#line 1811 "SymbolSet.c"
+                               }
+#line 264 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               if (_tmp146_) {
+#line 1815 "SymbolSet.c"
+                                       JSDOCSymbol* _tmp150_;
+                                       JSDOCSymbol* _tmp151_;
+#line 265 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       _tmp150_ = container;
+#line 265 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       _tmp151_ = symbol;
+#line 265 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       jsdoc_symbol_addMember (_tmp150_, _tmp151_);
+#line 1824 "SymbolSet.c"
+                               }
+#line 238 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _g_object_unref0 (container);
+#line 1828 "SymbolSet.c"
+                       }
+#line 170 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _g_object_unref0 (symbol);
+#line 170 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _g_free0 (p);
+#line 1834 "SymbolSet.c"
+               }
+#line 170 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _g_object_unref0 (_p_list);
+#line 1838 "SymbolSet.c"
+       }
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 281 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       return self ? g_object_ref (self) : NULL;
+#line 1846 "SymbolSet.c"
+}
+
+
+static void jsdoc_symbol_set_resolveAugments (JSDOCSymbolSet* self) {
+#line 272 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       g_return_if_fail (self != NULL);
+#line 1853 "SymbolSet.c"
+       {
+               GeeIterator* _p_it = NULL;
+               GeeHashMap* _tmp0_;
+               GeeHashMap* _tmp1_;
+               GeeSet* _tmp2_;
+               GeeSet* _tmp3_;
+               GeeSet* _tmp4_;
+               GeeIterator* _tmp5_;
+               GeeIterator* _tmp6_;
+#line 276 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _tmp0_ = jsdoc_symbol_set_get__index (self);
+#line 276 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _tmp1_ = _tmp0_;
+#line 276 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _tmp2_ = gee_abstract_map_get_keys ((GeeAbstractMap*) _tmp1_);
+#line 276 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _tmp3_ = _tmp2_;
+#line 276 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _tmp4_ = _tmp3_;
+#line 276 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _tmp5_ = gee_iterable_iterator ((GeeIterable*) _tmp4_);
+#line 276 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _tmp6_ = _tmp5_;
+#line 276 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _g_object_unref0 (_tmp4_);
+#line 276 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _p_it = _tmp6_;
+#line 276 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               while (TRUE) {
+#line 1883 "SymbolSet.c"
+                       GeeIterator* _tmp7_;
+                       gboolean _tmp8_;
+                       gchar* p = NULL;
+                       GeeIterator* _tmp9_;
+                       gpointer _tmp10_;
+                       JSDOCSymbol* symbol = NULL;
+                       const gchar* _tmp11_;
+                       JSDOCSymbol* _tmp12_;
+                       JSDOCSymbol* _tmp13_;
+                       gboolean _tmp14_ = FALSE;
+                       JSDOCSymbol* _tmp15_;
+                       const gchar* _tmp16_;
+                       GeeArrayList* augments = NULL;
+                       JSDOCSymbol* _tmp19_;
+                       GeeArrayList* _tmp20_;
+                       GeeArrayList* _tmp21_;
+#line 276 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _tmp7_ = _p_it;
+#line 276 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _tmp8_ = gee_iterator_next (_tmp7_);
+#line 276 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       if (!_tmp8_) {
+#line 276 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               break;
+#line 1908 "SymbolSet.c"
+                       }
+#line 276 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _tmp9_ = _p_it;
+#line 276 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _tmp10_ = gee_iterator_get (_tmp9_);
+#line 276 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       p = (gchar*) _tmp10_;
+#line 277 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _tmp11_ = p;
+#line 277 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _tmp12_ = jsdoc_symbol_set_getSymbol (self, _tmp11_);
+#line 277 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       symbol = _tmp12_;
+#line 278 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _tmp13_ = symbol;
+#line 278 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       jsdoc_symbol_set_buildAugmentsList (self, _tmp13_);
+#line 279 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _tmp15_ = symbol;
+#line 279 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _tmp16_ = _tmp15_->alias;
+#line 279 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       if (g_strcmp0 (_tmp16_, "_global_") == 0) {
+#line 279 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp14_ = TRUE;
+#line 1934 "SymbolSet.c"
+                       } else {
+                               JSDOCSymbol* _tmp17_;
+                               gboolean _tmp18_;
+#line 279 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp17_ = symbol;
+#line 279 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp18_ = jsdoc_symbol_is (_tmp17_, "FILE");
+#line 279 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp14_ = _tmp18_;
+#line 1944 "SymbolSet.c"
+                       }
+#line 279 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       if (_tmp14_) {
+#line 279 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _g_object_unref0 (symbol);
+#line 279 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _g_free0 (p);
+#line 279 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               continue;
+#line 1954 "SymbolSet.c"
+                       }
+#line 281 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _tmp19_ = symbol;
+#line 281 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _tmp20_ = _tmp19_->augments;
+#line 281 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _tmp21_ = _g_object_ref0 (_tmp20_);
+#line 281 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       augments = _tmp21_;
+#line 1964 "SymbolSet.c"
+                       {
+                               gint ii = 0;
+                               gint il = 0;
+                               GeeArrayList* _tmp22_;
+                               gint _tmp23_;
+                               gint _tmp24_;
+#line 282 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               ii = 0;
+#line 282 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp22_ = augments;
+#line 282 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp23_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp22_);
+#line 282 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp24_ = _tmp23_;
+#line 282 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               il = _tmp24_;
+#line 1981 "SymbolSet.c"
+                               {
+                                       gboolean _tmp25_ = FALSE;
+#line 282 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       _tmp25_ = TRUE;
+#line 282 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       while (TRUE) {
+#line 1988 "SymbolSet.c"
+                                               gint _tmp27_;
+                                               gint _tmp28_;
+                                               JSDOCSymbol* contributer = NULL;
+                                               GeeArrayList* _tmp29_;
+                                               gint _tmp30_;
+                                               gpointer _tmp31_;
+                                               gchar* _tmp32_;
+                                               JSDOCSymbol* _tmp33_;
+                                               JSDOCSymbol* _tmp34_;
+                                               JSDOCSymbol* _tmp35_;
+#line 282 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               if (!_tmp25_) {
+#line 2001 "SymbolSet.c"
+                                                       gint _tmp26_;
+#line 282 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                       _tmp26_ = ii;
+#line 282 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                       ii = _tmp26_ + 1;
+#line 2007 "SymbolSet.c"
+                                               }
+#line 282 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _tmp25_ = FALSE;
+#line 282 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _tmp27_ = ii;
+#line 282 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _tmp28_ = il;
+#line 282 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               if (!(_tmp27_ < _tmp28_)) {
+#line 282 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                       break;
+#line 2019 "SymbolSet.c"
+                                               }
+#line 283 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _tmp29_ = augments;
+#line 283 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _tmp30_ = ii;
+#line 283 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _tmp31_ = gee_abstract_list_get ((GeeAbstractList*) _tmp29_, _tmp30_);
+#line 283 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _tmp32_ = (gchar*) _tmp31_;
+#line 283 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _tmp33_ = jsdoc_symbol_set_getSymbol (self, _tmp32_);
+#line 283 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _tmp34_ = _tmp33_;
+#line 283 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _g_free0 (_tmp32_);
+#line 283 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               contributer = _tmp34_;
+#line 286 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _tmp35_ = contributer;
+#line 286 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               if (_tmp35_ != NULL) {
+#line 2041 "SymbolSet.c"
+                                                       JSDOCSymbol* _tmp36_;
+                                                       GeeArrayList* _tmp37_;
+                                                       JSDOCSymbol* _tmp38_;
+                                                       const gchar* _tmp39_;
+                                                       JSDOCSymbol* _tmp40_;
+                                                       GeeArrayList* _tmp41_;
+                                                       JSDOCSymbol* _tmp42_;
+                                                       const gchar* _tmp43_;
+                                                       GeeArrayList* cmethods = NULL;
+                                                       JSDOCSymbol* _tmp44_;
+                                                       GeeArrayList* _tmp45_;
+                                                       GeeArrayList* _tmp46_;
+                                                       GeeArrayList* cproperties = NULL;
+                                                       JSDOCSymbol* _tmp47_;
+                                                       GeeArrayList* _tmp48_;
+                                                       GeeArrayList* _tmp49_;
+                                                       GeeHashMap* cfgs = NULL;
+                                                       JSDOCSymbol* _tmp50_;
+                                                       GeeHashMap* _tmp51_;
+                                                       GeeHashMap* _tmp52_;
+#line 287 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                       _tmp36_ = contributer;
+#line 287 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                       _tmp37_ = _tmp36_->childClasses;
+#line 287 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                       _tmp38_ = symbol;
+#line 287 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                       _tmp39_ = _tmp38_->alias;
+#line 287 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                       gee_abstract_collection_add ((GeeAbstractCollection*) _tmp37_, _tmp39_);
+#line 288 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                       _tmp40_ = symbol;
+#line 288 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                       _tmp41_ = _tmp40_->inheritsFrom;
+#line 288 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                       _tmp42_ = contributer;
+#line 288 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                       _tmp43_ = _tmp42_->alias;
+#line 288 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                       gee_abstract_collection_add ((GeeAbstractCollection*) _tmp41_, _tmp43_);
+#line 293 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                       _tmp44_ = contributer;
+#line 293 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                       _tmp45_ = _tmp44_->methods;
+#line 293 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                       _tmp46_ = _g_object_ref0 (_tmp45_);
+#line 293 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                       cmethods = _tmp46_;
+#line 294 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                       _tmp47_ = contributer;
+#line 294 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                       _tmp48_ = _tmp47_->properties;
+#line 294 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                       _tmp49_ = _g_object_ref0 (_tmp48_);
+#line 294 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                       cproperties = _tmp49_;
+#line 295 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                       _tmp50_ = contributer;
+#line 295 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                       _tmp51_ = _tmp50_->cfgs;
+#line 295 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                       _tmp52_ = _g_object_ref0 (_tmp51_);
+#line 295 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                       cfgs = _tmp52_;
+#line 2106 "SymbolSet.c"
+                                                       {
+                                                               gint ci = 0;
+                                                               gint cl = 0;
+                                                               GeeArrayList* _tmp53_;
+                                                               gint _tmp54_;
+                                                               gint _tmp55_;
+#line 296 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                               ci = 0;
+#line 296 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                               _tmp53_ = cmethods;
+#line 296 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                               _tmp54_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp53_);
+#line 296 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                               _tmp55_ = _tmp54_;
+#line 296 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                               cl = _tmp55_;
+#line 2123 "SymbolSet.c"
+                                                               {
+                                                                       gboolean _tmp56_ = FALSE;
+#line 296 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                                       _tmp56_ = TRUE;
+#line 296 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                                       while (TRUE) {
+#line 2130 "SymbolSet.c"
+                                                                               gint _tmp58_;
+                                                                               gint _tmp59_;
+                                                                               JSDOCSymbol* _tmp60_;
+                                                                               GeeArrayList* _tmp61_;
+                                                                               gint _tmp62_;
+                                                                               gpointer _tmp63_;
+                                                                               JSDOCSymbol* _tmp64_;
+#line 296 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                                               if (!_tmp56_) {
+#line 2140 "SymbolSet.c"
+                                                                                       gint _tmp57_;
+#line 296 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                                                       _tmp57_ = ci;
+#line 296 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                                                       ci = _tmp57_ + 1;
+#line 2146 "SymbolSet.c"
+                                                                               }
+#line 296 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                                               _tmp56_ = FALSE;
+#line 296 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                                               _tmp58_ = ci;
+#line 296 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                                               _tmp59_ = cl;
+#line 296 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                                               if (!(_tmp58_ < _tmp59_)) {
+#line 296 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                                                       break;
+#line 2158 "SymbolSet.c"
+                                                                               }
+#line 297 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                                               _tmp60_ = symbol;
+#line 297 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                                               _tmp61_ = cmethods;
+#line 297 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                                               _tmp62_ = ci;
+#line 297 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                                               _tmp63_ = gee_abstract_list_get ((GeeAbstractList*) _tmp61_, _tmp62_);
+#line 297 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                                               _tmp64_ = (JSDOCSymbol*) _tmp63_;
+#line 297 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                                               jsdoc_symbol_inherit (_tmp60_, _tmp64_);
+#line 297 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                                               _g_object_unref0 (_tmp64_);
+#line 2174 "SymbolSet.c"
+                                                                       }
+                                                               }
+                                                       }
+                                                       {
+                                                               gint ci = 0;
+                                                               gint cl = 0;
+                                                               GeeArrayList* _tmp65_;
+                                                               gint _tmp66_;
+                                                               gint _tmp67_;
+#line 299 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                               ci = 0;
+#line 299 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                               _tmp65_ = cproperties;
+#line 299 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                               _tmp66_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp65_);
+#line 299 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                               _tmp67_ = _tmp66_;
+#line 299 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                               cl = _tmp67_;
+#line 2194 "SymbolSet.c"
+                                                               {
+                                                                       gboolean _tmp68_ = FALSE;
+#line 299 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                                       _tmp68_ = TRUE;
+#line 299 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                                       while (TRUE) {
+#line 2201 "SymbolSet.c"
+                                                                               gint _tmp70_;
+                                                                               gint _tmp71_;
+                                                                               JSDOCSymbol* _tmp72_;
+                                                                               GeeArrayList* _tmp73_;
+                                                                               gint _tmp74_;
+                                                                               gpointer _tmp75_;
+                                                                               JSDOCSymbol* _tmp76_;
+#line 299 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                                               if (!_tmp68_) {
+#line 2211 "SymbolSet.c"
+                                                                                       gint _tmp69_;
+#line 299 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                                                       _tmp69_ = ci;
+#line 299 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                                                       ci = _tmp69_ + 1;
+#line 2217 "SymbolSet.c"
+                                                                               }
+#line 299 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                                               _tmp68_ = FALSE;
+#line 299 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                                               _tmp70_ = ci;
+#line 299 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                                               _tmp71_ = cl;
+#line 299 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                                               if (!(_tmp70_ < _tmp71_)) {
+#line 299 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                                                       break;
+#line 2229 "SymbolSet.c"
+                                                                               }
+#line 300 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                                               _tmp72_ = symbol;
+#line 300 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                                               _tmp73_ = cproperties;
+#line 300 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                                               _tmp74_ = ci;
+#line 300 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                                               _tmp75_ = gee_abstract_list_get ((GeeAbstractList*) _tmp73_, _tmp74_);
+#line 300 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                                               _tmp76_ = (JSDOCSymbol*) _tmp75_;
+#line 300 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                                               jsdoc_symbol_inherit (_tmp72_, _tmp76_);
+#line 300 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                                               _g_object_unref0 (_tmp76_);
+#line 2245 "SymbolSet.c"
+                                                                       }
+                                                               }
+                                                       }
+                                                       {
+                                                               GeeIterator* _ci_it = NULL;
+                                                               GeeHashMap* _tmp77_;
+                                                               GeeSet* _tmp78_;
+                                                               GeeSet* _tmp79_;
+                                                               GeeSet* _tmp80_;
+                                                               GeeIterator* _tmp81_;
+                                                               GeeIterator* _tmp82_;
+#line 302 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                               _tmp77_ = cfgs;
+#line 302 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                               _tmp78_ = gee_abstract_map_get_keys ((GeeAbstractMap*) _tmp77_);
+#line 302 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                               _tmp79_ = _tmp78_;
+#line 302 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                               _tmp80_ = _tmp79_;
+#line 302 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                               _tmp81_ = gee_iterable_iterator ((GeeIterable*) _tmp80_);
+#line 302 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                               _tmp82_ = _tmp81_;
+#line 302 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                               _g_object_unref0 (_tmp80_);
+#line 302 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                               _ci_it = _tmp82_;
+#line 302 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                               while (TRUE) {
+#line 2275 "SymbolSet.c"
+                                                                       GeeIterator* _tmp83_;
+                                                                       gboolean _tmp84_;
+                                                                       gchar* ci = NULL;
+                                                                       GeeIterator* _tmp85_;
+                                                                       gpointer _tmp86_;
+                                                                       JSDOCSymbol* _tmp87_;
+                                                                       GeeHashMap* _tmp88_;
+                                                                       const gchar* _tmp89_;
+                                                                       gpointer _tmp90_;
+                                                                       JSDOCDocTag* _tmp91_;
+#line 302 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                                       _tmp83_ = _ci_it;
+#line 302 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                                       _tmp84_ = gee_iterator_next (_tmp83_);
+#line 302 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                                       if (!_tmp84_) {
+#line 302 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                                               break;
+#line 2294 "SymbolSet.c"
+                                                                       }
+#line 302 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                                       _tmp85_ = _ci_it;
+#line 302 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                                       _tmp86_ = gee_iterator_get (_tmp85_);
+#line 302 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                                       ci = (gchar*) _tmp86_;
+#line 303 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                                       _tmp87_ = symbol;
+#line 303 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                                       _tmp88_ = cfgs;
+#line 303 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                                       _tmp89_ = ci;
+#line 303 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                                       _tmp90_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp88_, _tmp89_);
+#line 303 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                                       _tmp91_ = (JSDOCDocTag*) _tmp90_;
+#line 303 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                                       jsdoc_symbol_addConfig (_tmp87_, _tmp91_);
+#line 303 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                                       _g_object_unref0 (_tmp91_);
+#line 302 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                                       _g_free0 (ci);
+#line 2318 "SymbolSet.c"
+                                                               }
+#line 302 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                               _g_object_unref0 (_ci_it);
+#line 2322 "SymbolSet.c"
+                                                       }
+#line 286 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                       _g_object_unref0 (cfgs);
+#line 286 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                       _g_object_unref0 (cproperties);
+#line 286 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                       _g_object_unref0 (cmethods);
+#line 2330 "SymbolSet.c"
+                                               } else {
+                                                       GeeArrayList* _tmp92_;
+                                                       gint _tmp93_;
+                                                       gpointer _tmp94_;
+                                                       gchar* _tmp95_;
+                                                       JSDOCSymbol* _tmp96_;
+                                                       const gchar* _tmp97_;
+#line 310 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                       _tmp92_ = augments;
+#line 310 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                       _tmp93_ = ii;
+#line 310 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                       _tmp94_ = gee_abstract_list_get ((GeeAbstractList*) _tmp92_, _tmp93_);
+#line 310 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                       _tmp95_ = (gchar*) _tmp94_;
+#line 310 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                       _tmp96_ = symbol;
+#line 310 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                       _tmp97_ = _tmp96_->alias;
+#line 310 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                       g_warning ("SymbolSet.vala:310: Can't augment contributer: '%s', not found. FOR: %" \
+"s", _tmp95_, _tmp97_);
+#line 310 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                                       _g_free0 (_tmp95_);
+#line 2354 "SymbolSet.c"
+                                               }
+#line 282 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                               _g_object_unref0 (contributer);
+#line 2358 "SymbolSet.c"
+                                       }
+                               }
+                       }
+#line 276 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _g_object_unref0 (augments);
+#line 276 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _g_object_unref0 (symbol);
+#line 276 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _g_free0 (p);
+#line 2368 "SymbolSet.c"
+               }
+#line 276 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _g_object_unref0 (_p_it);
+#line 2372 "SymbolSet.c"
+       }
+}
+
+
+static void jsdoc_symbol_set_addAugments (JSDOCSymbolSet* self, JSDOCSymbol* symbol, GeeArrayList* alist, gboolean forceit) {
+       GeeArrayList* _tmp0_;
+       gint _tmp1_;
+       gint _tmp2_;
+#line 323 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       g_return_if_fail (self != NULL);
+#line 323 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       g_return_if_fail (symbol != NULL);
+#line 323 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       g_return_if_fail (alist != NULL);
+#line 325 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp0_ = alist;
+#line 325 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp1_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp0_);
+#line 325 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp2_ = _tmp1_;
+#line 325 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       if (_tmp2_ < 1) {
+#line 326 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               return;
+#line 2397 "SymbolSet.c"
+       }
+       {
+               gint ii = 0;
+#line 330 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               ii = 0;
+#line 2403 "SymbolSet.c"
+               {
+                       gboolean _tmp3_ = FALSE;
+#line 330 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _tmp3_ = TRUE;
+#line 330 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       while (TRUE) {
+#line 2410 "SymbolSet.c"
+                               gint _tmp5_;
+                               GeeArrayList* _tmp6_;
+                               gint _tmp7_;
+                               gint _tmp8_;
+                               GeeArrayList* _tmp9_;
+                               gint _tmp10_;
+                               gpointer _tmp11_;
+                               gchar* _tmp12_;
+                               JSDOCSymbol* _tmp13_;
+                               const gchar* _tmp14_;
+                               gboolean _tmp15_;
+                               JSDOCSymbol* contributer = NULL;
+                               GeeArrayList* _tmp16_;
+                               gint _tmp17_;
+                               gpointer _tmp18_;
+                               gchar* _tmp19_;
+                               JSDOCSymbol* _tmp20_;
+                               JSDOCSymbol* _tmp21_;
+                               JSDOCSymbol* _tmp22_;
+                               gboolean _tmp23_ = FALSE;
+                               gboolean _tmp24_;
+                               JSDOCSymbol* _tmp32_;
+                               GeeArrayList* _tmp33_;
+                               GeeArrayList* _tmp34_;
+                               gint _tmp35_;
+                               gpointer _tmp36_;
+                               gchar* _tmp37_;
+                               gint _tmp38_;
+                               gboolean _tmp39_;
+                               JSDOCSymbol* _tmp46_;
+                               JSDOCSymbol* _tmp47_;
+                               GeeArrayList* _tmp48_;
+#line 330 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               if (!_tmp3_) {
+#line 2445 "SymbolSet.c"
+                                       gint _tmp4_;
+#line 330 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       _tmp4_ = ii;
+#line 330 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       ii = _tmp4_ + 1;
+#line 2451 "SymbolSet.c"
+                               }
+#line 330 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp3_ = FALSE;
+#line 330 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp5_ = ii;
+#line 330 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp6_ = alist;
+#line 330 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp7_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp6_);
+#line 330 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp8_ = _tmp7_;
+#line 330 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               if (!(_tmp5_ < _tmp8_)) {
+#line 330 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       break;
+#line 2467 "SymbolSet.c"
+                               }
+#line 332 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp9_ = alist;
+#line 332 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp10_ = ii;
+#line 332 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp11_ = gee_abstract_list_get ((GeeAbstractList*) _tmp9_, _tmp10_);
+#line 332 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp12_ = (gchar*) _tmp11_;
+#line 332 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp13_ = symbol;
+#line 332 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp14_ = _tmp13_->alias;
+#line 332 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp15_ = g_strcmp0 (_tmp12_, _tmp14_) == 0;
+#line 332 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _g_free0 (_tmp12_);
+#line 332 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               if (_tmp15_) {
+#line 333 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       continue;
+#line 2489 "SymbolSet.c"
+                               }
+#line 335 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp16_ = alist;
+#line 335 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp17_ = ii;
+#line 335 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp18_ = gee_abstract_list_get ((GeeAbstractList*) _tmp16_, _tmp17_);
+#line 335 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp19_ = (gchar*) _tmp18_;
+#line 335 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp20_ = jsdoc_symbol_set_getSymbol (self, _tmp19_);
+#line 335 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp21_ = _tmp20_;
+#line 335 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _g_free0 (_tmp19_);
+#line 335 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               contributer = _tmp21_;
+#line 336 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp22_ = contributer;
+#line 336 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               if (_tmp22_ == NULL) {
+#line 337 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       _g_object_unref0 (contributer);
+#line 337 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       continue;
+#line 2515 "SymbolSet.c"
+                               }
+#line 340 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp24_ = forceit;
+#line 340 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               if (!_tmp24_) {
+#line 2521 "SymbolSet.c"
+                                       JSDOCSymbol* _tmp25_;
+                                       GeeArrayList* _tmp26_;
+                                       GeeArrayList* _tmp27_;
+                                       gint _tmp28_;
+                                       gpointer _tmp29_;
+                                       gchar* _tmp30_;
+                                       gboolean _tmp31_;
+#line 340 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       _tmp25_ = symbol;
+#line 340 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       _tmp26_ = _tmp25_->augments;
+#line 340 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       _tmp27_ = alist;
+#line 340 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       _tmp28_ = ii;
+#line 340 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       _tmp29_ = gee_abstract_list_get ((GeeAbstractList*) _tmp27_, _tmp28_);
+#line 340 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       _tmp30_ = (gchar*) _tmp29_;
+#line 340 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       _tmp31_ = gee_abstract_collection_contains ((GeeAbstractCollection*) _tmp26_, _tmp30_);
+#line 340 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       _tmp23_ = _tmp31_;
+#line 340 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       _g_free0 (_tmp30_);
+#line 2547 "SymbolSet.c"
+                               } else {
+#line 340 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       _tmp23_ = FALSE;
+#line 2551 "SymbolSet.c"
+                               }
+#line 340 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               if (_tmp23_) {
+#line 341 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       _g_object_unref0 (contributer);
+#line 341 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       continue;
+#line 2559 "SymbolSet.c"
+                               }
+#line 343 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp32_ = symbol;
+#line 343 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp33_ = _tmp32_->augments;
+#line 343 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp34_ = alist;
+#line 343 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp35_ = ii;
+#line 343 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp36_ = gee_abstract_list_get ((GeeAbstractList*) _tmp34_, _tmp35_);
+#line 343 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp37_ = (gchar*) _tmp36_;
+#line 343 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp38_ = gee_abstract_list_index_of ((GeeAbstractList*) _tmp33_, _tmp37_);
+#line 343 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp39_ = _tmp38_ < 0;
+#line 343 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _g_free0 (_tmp37_);
+#line 343 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               if (_tmp39_) {
+#line 2581 "SymbolSet.c"
+                                       JSDOCSymbol* _tmp40_;
+                                       GeeArrayList* _tmp41_;
+                                       GeeArrayList* _tmp42_;
+                                       gint _tmp43_;
+                                       gpointer _tmp44_;
+                                       gchar* _tmp45_;
+#line 344 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       _tmp40_ = symbol;
+#line 344 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       _tmp41_ = _tmp40_->augments;
+#line 344 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       _tmp42_ = alist;
+#line 344 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       _tmp43_ = ii;
+#line 344 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       _tmp44_ = gee_abstract_list_get ((GeeAbstractList*) _tmp42_, _tmp43_);
+#line 344 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       _tmp45_ = (gchar*) _tmp44_;
+#line 344 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       gee_abstract_collection_add ((GeeAbstractCollection*) _tmp41_, _tmp45_);
+#line 344 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       _g_free0 (_tmp45_);
+#line 2604 "SymbolSet.c"
+                               }
+#line 348 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp46_ = symbol;
+#line 348 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp47_ = contributer;
+#line 348 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp48_ = _tmp47_->augments;
+#line 348 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               jsdoc_symbol_set_addAugments (self, _tmp46_, _tmp48_, FALSE);
+#line 330 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _g_object_unref0 (contributer);
+#line 2616 "SymbolSet.c"
+                       }
+               }
+       }
+}
+
+
+static void jsdoc_symbol_set_buildAugmentsList (JSDOCSymbolSet* self, JSDOCSymbol* symbol) {
+       JSDOCSymbol* _tmp0_;
+       JSDOCSymbol* _tmp1_;
+       GeeArrayList* _tmp2_;
+#line 356 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       g_return_if_fail (self != NULL);
+#line 356 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       g_return_if_fail (symbol != NULL);
+#line 359 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp0_ = symbol;
+#line 359 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp1_ = symbol;
+#line 359 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp2_ = _tmp1_->augments;
+#line 359 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       jsdoc_symbol_set_addAugments (self, _tmp0_, _tmp2_, TRUE);
+#line 2639 "SymbolSet.c"
+}
+
+
+gboolean jsdoc_symbol_set_isBuiltin (const gchar* name) {
+       gboolean result = FALSE;
+#line 364 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       g_return_val_if_fail (name != NULL, FALSE);
+#line 2647 "SymbolSet.c"
+       {
+               gint i = 0;
+#line 366 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               i = 0;
+#line 2652 "SymbolSet.c"
+               {
+                       gboolean _tmp0_ = FALSE;
+#line 366 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       _tmp0_ = TRUE;
+#line 366 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                       while (TRUE) {
+#line 2659 "SymbolSet.c"
+                               gint _tmp2_;
+                               gchar** _tmp3_;
+                               gint _tmp3__length1;
+                               const gchar* _tmp4_;
+                               gchar** _tmp5_;
+                               gint _tmp5__length1;
+                               gint _tmp6_;
+                               const gchar* _tmp7_;
+#line 366 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               if (!_tmp0_) {
+#line 2670 "SymbolSet.c"
+                                       gint _tmp1_;
+#line 366 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       _tmp1_ = i;
+#line 366 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       i = _tmp1_ + 1;
+#line 2676 "SymbolSet.c"
+                               }
+#line 366 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp0_ = FALSE;
+#line 366 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp2_ = i;
+#line 366 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp3_ = jsdoc_symbol_set_coreObjects;
+#line 366 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp3__length1 = jsdoc_symbol_set_coreObjects_length1;
+#line 366 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               if (!(_tmp2_ < _tmp3__length1)) {
+#line 366 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       break;
+#line 2690 "SymbolSet.c"
+                               }
+#line 367 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp4_ = name;
+#line 367 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp5_ = jsdoc_symbol_set_coreObjects;
+#line 367 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp5__length1 = jsdoc_symbol_set_coreObjects_length1;
+#line 367 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp6_ = i;
+#line 367 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               _tmp7_ = _tmp5_[_tmp6_];
+#line 367 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                               if (g_strcmp0 (_tmp4_, _tmp7_) == 0) {
+#line 368 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       result = TRUE;
+#line 368 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+                                       return result;
+#line 2708 "SymbolSet.c"
+                               }
+                       }
+               }
+       }
+#line 371 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       result = FALSE;
+#line 371 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       return result;
+#line 2717 "SymbolSet.c"
+}
+
+
+GeeHashMap* jsdoc_symbol_set_get__index (JSDOCSymbolSet* self) {
+       GeeHashMap* result;
+       GeeHashMap* _tmp0_;
+       GeeHashMap* _tmp2_;
+#line 9 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 10 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp0_ = self->priv->__index;
+#line 10 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       if (_tmp0_ == NULL) {
+#line 2731 "SymbolSet.c"
+               GeeHashMap* _tmp1_;
+#line 11 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               g_debug ("SymbolSet.vala:11: Creating new Symbolset array");
+#line 12 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _tmp1_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, JSDOC_TYPE_SYMBOL, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 12 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               _g_object_unref0 (self->priv->__index);
+#line 12 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               self->priv->__index = _tmp1_;
+#line 2741 "SymbolSet.c"
+       }
+#line 14 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp2_ = self->priv->__index;
+#line 14 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       result = _tmp2_;
+#line 14 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       return result;
+#line 2749 "SymbolSet.c"
+}
+
+
+static void jsdoc_symbol_set_class_init (JSDOCSymbolSetClass * klass) {
+       gchar* _tmp0_;
+       gchar* _tmp1_;
+       gchar* _tmp2_;
+       gchar* _tmp3_;
+       gchar* _tmp4_;
+       gchar* _tmp5_;
+       gchar* _tmp6_;
+       gchar* _tmp7_;
+       gchar* _tmp8_;
+       gchar* _tmp9_;
+       gchar** _tmp10_;
+#line 4 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       jsdoc_symbol_set_parent_class = g_type_class_peek_parent (klass);
+#line 4 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       g_type_class_add_private (klass, sizeof (JSDOCSymbolSetPrivate));
+#line 4 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       G_OBJECT_CLASS (klass)->get_property = _vala_jsdoc_symbol_set_get_property;
+#line 4 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       G_OBJECT_CLASS (klass)->finalize = jsdoc_symbol_set_finalize;
+#line 373 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp0_ = g_strdup ("_global_");
+#line 373 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp1_ = g_strdup ("Array");
+#line 373 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp2_ = g_strdup ("Boolean");
+#line 373 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp3_ = g_strdup ("Date");
+#line 373 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp4_ = g_strdup ("Function");
+#line 373 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp5_ = g_strdup ("Math");
+#line 373 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp6_ = g_strdup ("Number");
+#line 373 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp7_ = g_strdup ("Object");
+#line 373 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp8_ = g_strdup ("RegExp");
+#line 373 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp9_ = g_strdup ("String");
+#line 373 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp10_ = g_new0 (gchar*, 10 + 1);
+#line 373 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp10_[0] = _tmp0_;
+#line 373 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp10_[1] = _tmp1_;
+#line 373 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp10_[2] = _tmp2_;
+#line 373 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp10_[3] = _tmp3_;
+#line 373 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp10_[4] = _tmp4_;
+#line 373 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp10_[5] = _tmp5_;
+#line 373 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp10_[6] = _tmp6_;
+#line 373 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp10_[7] = _tmp7_;
+#line 373 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp10_[8] = _tmp8_;
+#line 373 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _tmp10_[9] = _tmp9_;
+#line 373 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       jsdoc_symbol_set_coreObjects = _tmp10_;
+#line 373 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       jsdoc_symbol_set_coreObjects_length1 = 10;
+#line 2819 "SymbolSet.c"
+}
+
+
+static void jsdoc_symbol_set_instance_init (JSDOCSymbolSet * self) {
+#line 4 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       self->priv = JSDOC_SYMBOL_SET_GET_PRIVATE (self);
+#line 6 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       self->priv->__index = NULL;
+#line 2828 "SymbolSet.c"
+}
+
+
+static void jsdoc_symbol_set_finalize (GObject * obj) {
+       JSDOCSymbolSet * self;
+#line 4 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       self = G_TYPE_CHECK_INSTANCE_CAST (obj, JSDOC_TYPE_SYMBOL_SET, JSDOCSymbolSet);
+#line 6 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       _g_object_unref0 (self->priv->__index);
+#line 4 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       G_OBJECT_CLASS (jsdoc_symbol_set_parent_class)->finalize (obj);
+#line 2840 "SymbolSet.c"
+}
+
+
+GType jsdoc_symbol_set_get_type (void) {
+       static volatile gsize jsdoc_symbol_set_type_id__volatile = 0;
+       if (g_once_init_enter (&jsdoc_symbol_set_type_id__volatile)) {
+               static const GTypeInfo g_define_type_info = { sizeof (JSDOCSymbolSetClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) jsdoc_symbol_set_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (JSDOCSymbolSet), 0, (GInstanceInitFunc) jsdoc_symbol_set_instance_init, NULL };
+               GType jsdoc_symbol_set_type_id;
+               jsdoc_symbol_set_type_id = g_type_register_static (G_TYPE_OBJECT, "JSDOCSymbolSet", &g_define_type_info, 0);
+               g_once_init_leave (&jsdoc_symbol_set_type_id__volatile, jsdoc_symbol_set_type_id);
+       }
+       return jsdoc_symbol_set_type_id__volatile;
+}
+
+
+static void _vala_jsdoc_symbol_set_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
+       JSDOCSymbolSet * self;
+       self = G_TYPE_CHECK_INSTANCE_CAST (object, JSDOC_TYPE_SYMBOL_SET, JSDOCSymbolSet);
+#line 4 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+       switch (property_id) {
+#line 2861 "SymbolSet.c"
+               default:
+#line 4 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+#line 4 "/home/alan/gitlive/roojspacker/src/jsdoc/SymbolSet.vala"
+               break;
+#line 2867 "SymbolSet.c"
+       }
+}
+
+
+
diff --git a/jsdoc/SymbolSet.vala b/jsdoc/SymbolSet.vala
new file mode 100644 (file)
index 0000000..3e944f5
--- /dev/null
@@ -0,0 +1,382 @@
+namespace JSDOC {
+
+       public class SymbolSet  : Object {
+
+               private Gee.HashMap<string,Symbol> __index = null;
+               
+               public Gee.HashMap<string,Symbol> _index {
+                       get {
+                               if (this.__index == null) {
+                                       GLib.debug("Creating new Symbolset array");
+                                       this.__index = new Gee.HashMap<string,Symbol>();
+                               }
+                               return this.__index;
+                       }
+               }
+                
+               public SymbolSet ()
+               {
+
+               }
+                
+
+        public Gee.ArrayList<string> keys() 
+        {
+            var  r= new Gee.ArrayList<string>();
+            foreach(var k in this._index.keys) {
+               r.add(k);
+               }
+               return r;
+
+        }
+        public Gee.ArrayList<Symbol> values() 
+        {
+            var  r= new Gee.ArrayList<Symbol>();
+            foreach(var k in this._index.values) {
+               r.add(k);
+               }
+               return r;
+
+        }
+
+        public bool hasSymbol(string alias) 
+        {
+            return this._index.has_key(alias);
+            //return this.keys().indexOf(alias) > -1;
+        }
+
+        public void addSymbol (Symbol symbol) {
+             GLib.debug("ADDING SYMBOL: %s",symbol.alias);
+            
+             
+            if (this.hasSymbol(symbol.alias)) {
+                GLib.warning("Overwriting symbol documentation for: %s.",symbol.alias);
+            }
+            this._index.set(symbol.alias,  symbol);
+        }
+
+        public Symbol? getSymbol (string alias) {
+            
+            if (this.hasSymbol(alias)) return this._index.get(alias);
+            return null;
+        }
+/*/
+        toArray : function() {
+            var found = [];
+            for (var p in this._index) {
+                found.push(this._index[p]);
+            }
+            return found;
+        },
+        */
+        /**
+         * for serializing
+         *
+        toJSON : function() {
+            return {
+                '*object' : 'SymbolSet',
+                _index : this._index
+            };
+            
+        },
+*/
+
+        public void deleteSymbol  (string alias) {
+            if (!this.hasSymbol(alias)) return;
+            this._index.unset(alias);
+        } 
+
+        public string renameSymbol (string oldName, string newName) {
+            // todo: should check if oldname or newname already exist
+            if (!this.hasSymbol(oldName)) {
+                GLib.error("Cant rename " + oldName + " to " + newName + " As it doesnt exist");
+            } 
+            this._index.set(newName, this._index.get(oldName));
+            this.deleteSymbol(oldName);
+            this._index.get(newName).alias = newName;
+            return newName;
+        }
+
+        public void relate() 
+        {
+            GLib.debug("RELATE called");
+            foreach(var s in this._index.keys) {
+               GLib.debug("%s", this._index.get(s).asString());
+               }
+            this.resolveBorrows();
+            this.resolveMemberOf();
+            this.resolveAugments();
+                        GLib.debug("AFTER RELATE called");
+               foreach(var s in this._index.keys) {
+               GLib.debug("%s", this._index.get(s).asString());
+               }
+        }
+
+        void resolveBorrows() 
+        {
+
+            return; // this code is not needed- we do not use @inherits
+            /*
+            foreach (var p in this._index.keys) {
+                var symbol = this._index.get(p);
+                
+                
+                
+                if (symbol.is("FILE") || symbol.is("GLOBAL")) continue;
+                
+                var borrows = symbol.inherits;
+                for (var i = 0; i < borrows.size; i++) {
+                    var borrowed = this.getSymbol(borrows.get(i).alias);
+                    if (!borrowed) {
+                        imports.BuildDocs.Options.LOG.warn("Can't borrow undocumented "+borrows[i].alias+".");
+                        continue;
+                    }
+                    
+                    var borrowAsName = borrows[i].as;
+                    var borrowAsAlias = borrowAsName;
+                    if (!borrowAsName) {
+                        imports.BuildDocs.Options.LOG.warn("Malformed @borrow, 'as' is required.");
+                        continue;
+                    }
+                    
+                    if (borrowAsName.length > symbol.alias.length && borrowAsName.indexOf(symbol.alias) == 0) {
+                        borrowAsName = borrowAsName.replace(borrowed.alias, "");
+                    }
+                    else {
+                        var joiner = "";
+                        if (borrowAsName.charAt(0) != "#") joiner = ".";
+                        borrowAsAlias = borrowed.alias + joiner + borrowAsName;
+                    }
+                    
+                    borrowAsName = borrowAsName.replace(/^[#.]/, "");
+                            
+                    if (this.hasSymbol(borrowAsAlias)) continue;
+
+                    var clone = borrowed.clone();
+                    clone.name = borrowAsName;
+                    clone.alias = borrowAsAlias;
+                    this.addSymbol(clone);
+                }
+            }
+                       */
+        }
+
+        void resolveMemberOf () 
+        {
+            if (this._index.keys.size < 1) {
+                   return;
+            }
+            foreach (var p in this.keys()) {
+                var symbol = this.getSymbol(p);
+                
+                if (symbol.is("FILE") || symbol.is("GLOBAL")) continue;
+                
+                // the memberOf value was provided in the @memberOf tag
+                else if (symbol.memberOf.length > 0) {
+                       var regex = new GLib.Regex("^("+symbol.memberOf+"[.#-])(.+)$");
+                       GLib.MatchInfo minfo;
+                    var parts = regex.match_full(symbol.alias, -1, 0, 0 , out minfo);
+                    
+                    // like foo.bar is a memberOf foo
+                    if (parts) {                        
+                               
+                        symbol.memberOf = minfo.fetch(1);
+                        symbol.private_name = minfo.fetch(2);
+                    }
+                    // like bar is a memberOf foo
+                    else {
+                        var joiner = symbol.memberOf.substring(symbol.memberOf.length-1);
+                        if (!/[.#-]/.match(joiner)) symbol.memberOf += ".";
+                        
+                        this.renameSymbol(p, symbol.memberOf + symbol.name);
+                    }
+                }
+                // the memberOf must be calculated
+                else {
+                       GLib.MatchInfo minfo;                
+                    var parts = /^(.*[.#-])([^.#-]+)$/.match_full(symbol.alias, -1, 0, 0 , out minfo);
+
+                    if (parts) {
+                        symbol.memberOf = minfo.fetch(1);
+                        symbol.private_name = minfo.fetch(2);
+                    }
+                }
+
+                // set isStatic, isInner
+                if (symbol.memberOf.length > 0) {
+                    switch (symbol.memberOf[symbol.memberOf.length-1]) {
+                        case '#' :
+                            symbol.isStatic = false;
+                            symbol.isInner = false;
+                            break;
+                            
+                        case '.' :
+                            symbol.isStatic = true;
+                            symbol.isInner = false;
+                            break;
+                            
+                        case '-' :
+                            symbol.isStatic = false;
+                            symbol.isInner = true;
+                            break;
+                            
+                    }
+                }
+                 
+                // unowned methods and fields belong to the global object
+                if (!symbol.is("CONSTRUCTOR") && !symbol.isNamespace && symbol.memberOf == "") {
+                    symbol.memberOf = "_global_";
+                }
+                
+                // clean up
+                if (/[.#-]$/.match(symbol.memberOf)) {
+                    symbol.memberOf = symbol.memberOf.substring(0, symbol.memberOf.length-1);
+                }
+                //print("looking for memberOf: " + symbol.memberOf + " FOR " + symbol.alias);
+                // add to parent's methods or properties list
+                if (symbol.memberOf.length > 0) {
+                    var container = this.getSymbol(symbol.memberOf);
+                    if (container == null) {
+                        if (SymbolSet.isBuiltin(symbol.memberOf)) {
+                            container = DocParser.addBuiltin(symbol.memberOf);
+                        }
+                        else {
+                           // print("symbol NOT a BUILT IN - createing a container");
+                            // Eg. Ext.y.z (missing y)
+                            // we need to add in the missing symbol...
+                            container = new Symbol.new_populate_with_args(
+                               symbol.memberOf, new Gee.ArrayList<string>(), 
+                                               "OBJECT", new DocComment(""));
+                            container.isNamespace = true;
+                            this.addSymbol( container );
+                           // print(container.toSource());
+                            //container = this.getSymbol(symbol.memberOf);
+                            // fake container ... so dont ad symbols to it..
+                            continue;
+                            container = null;
+                            //LOG.warn("Can't document "+symbol.name +" as a member of undocumented symbol "+symbol.memberOf+".");
+                            //LOG.warn("We only have the following symbols: \n" + 
+                            //    this.keys.toSource());
+                        }
+                    }
+                    
+                    if (container != null && !container.isNamespace) {
+                        container.addMember(symbol);
+                        }
+                }
+            }
+
+        }
+
+        void resolveAugments () 
+       {
+            // does this sort out multiple extends???
+            
+            foreach (var p in this._index.keys) {
+                var symbol = this.getSymbol(p);
+                this.buildAugmentsList(symbol); /// build heirachy of inheritance...
+                if (symbol.alias == "_global_" || symbol.is("FILE")) continue;
+                
+                var augments = symbol.augments;
+                for(var ii = 0, il = augments.size; ii < il; ii++) {
+                    var contributer = this.getSymbol(augments[ii]);
+                    
+                     
+                    if (contributer != null) {
+                        contributer.childClasses.add(symbol.alias);
+                        symbol.inheritsFrom.add(contributer.alias);
+                        //if (!isUnique(symbol.inheritsFrom)) {
+                        //    imports.BuildDocs.Options.LOG.warn("Can't resolve augments: Circular reference: "+symbol.alias+" inherits from "+contributer.alias+" more than once.");
+                        //}
+                        //else {
+                            var cmethods = contributer.methods;
+                            var cproperties = contributer.properties;
+                            var cfgs = contributer.cfgs;
+                            for (var ci = 0, cl = cmethods.size; ci < cl; ci++) {   
+                                symbol.inherit(cmethods[ci]);
+                            } 
+                            for (var ci = 0, cl = cproperties.size; ci < cl; ci++) {
+                                symbol.inherit(cproperties[ci]);
+                            }
+                            foreach (var ci in cfgs.keys) {
+                                symbol.addConfig(cfgs[ci]);
+                            }
+                            
+                                
+                        //}
+                    }
+                    else {
+                        GLib.warning("Can't augment contributer: '%s', not found. FOR: %s",
+                               augments[ii], symbol.alias
+                        );
+                        //LOG.warn("We only have the following symbols: \n" + 
+                          //      this.keys().toSource().split(",").join(",    \n"));
+                       }
+       
+                }
+            }
+            
+        }
+
+
+                void addAugments (Symbol symbol, Gee.ArrayList<string> alist, bool forceit) 
+                { // returns number added..
+                if (alist.size < 1) {
+                    return;
+                }
+                //print("buildAugmentsList:addAugments" + alist.length);
+                //var rval = 0;
+                for(var ii = 0; ii < alist.size; ii++) {
+                    //print("getAlias:" + alist[ii]);
+                    if (alist[ii] == symbol.alias) {
+                        continue;
+                    }
+                    var contributer = this.getSymbol(alist[ii]);
+                    if (contributer == null) {
+                        continue;
+                    }
+                    
+                    if (!forceit && symbol.augments.contains(alist[ii])) {
+                        continue;
+                    }
+                    if (symbol.augments.index_of(alist[ii]) < 0) {
+                        symbol.augments.add(alist[ii]);
+                    }
+                        
+                    
+                    this.addAugments(symbol, contributer.augments,false);
+                    
+                    //rval++;
+                }
+               // print("buildAugmentsList: ADDED:" + rval);
+               // return rval;
+            }
+
+        void buildAugmentsList (Symbol symbol)
+        {
+               
+               this.addAugments(symbol, symbol.augments, true);
+               
+            
+            
+        }
+        public static bool isBuiltin(string name)
+               {
+                       for (var i =0 ; i < SymbolSet.coreObjects.length; i++ ){ 
+                               if (name ==  SymbolSet.coreObjects[i]) {
+                                       return true;
+                               }
+                       }
+                       return false;
+               }
+               static string[] coreObjects  = {
+                       "_global_", "Array" , "Boolean", "Date", "Function", 
+                           "Math", "Number", "Object", "RegExp", "String"
+               };
+         
+       }
+       
+}
+
\ No newline at end of file
diff --git a/jsdoc/TextStream.c b/jsdoc/TextStream.c
new file mode 100644 (file)
index 0000000..921dc3b
--- /dev/null
@@ -0,0 +1,629 @@
+/* TextStream.c generated by valac 0.36.6, the Vala compiler
+ * generated from TextStream.vala, do not modify */
+
+/*<script type="text/javscript">*/
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+
+
+#define JSDOC_TYPE_TEXT_STREAM_CHAR (jsdoc_text_stream_char_get_type ())
+#define JSDOC_TEXT_STREAM_CHAR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_TEXT_STREAM_CHAR, JSDOCTextStreamChar))
+#define JSDOC_TEXT_STREAM_CHAR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_TEXT_STREAM_CHAR, JSDOCTextStreamCharClass))
+#define JSDOC_IS_TEXT_STREAM_CHAR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_TEXT_STREAM_CHAR))
+#define JSDOC_IS_TEXT_STREAM_CHAR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_TEXT_STREAM_CHAR))
+#define JSDOC_TEXT_STREAM_CHAR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_TEXT_STREAM_CHAR, JSDOCTextStreamCharClass))
+
+typedef struct _JSDOCTextStreamChar JSDOCTextStreamChar;
+typedef struct _JSDOCTextStreamCharClass JSDOCTextStreamCharClass;
+typedef struct _JSDOCTextStreamCharPrivate JSDOCTextStreamCharPrivate;
+
+#define JSDOC_TYPE_TEXT_STREAM (jsdoc_text_stream_get_type ())
+#define JSDOC_TEXT_STREAM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_TEXT_STREAM, JSDOCTextStream))
+#define JSDOC_TEXT_STREAM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_TEXT_STREAM, JSDOCTextStreamClass))
+#define JSDOC_IS_TEXT_STREAM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_TEXT_STREAM))
+#define JSDOC_IS_TEXT_STREAM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_TEXT_STREAM))
+#define JSDOC_TEXT_STREAM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_TEXT_STREAM, JSDOCTextStreamClass))
+
+typedef struct _JSDOCTextStream JSDOCTextStream;
+typedef struct _JSDOCTextStreamClass JSDOCTextStreamClass;
+typedef struct _JSDOCTextStreamPrivate JSDOCTextStreamPrivate;
+#define _g_free0(var) (var = (g_free (var), NULL))
+
+struct _JSDOCTextStreamChar {
+       GObject parent_instance;
+       JSDOCTextStreamCharPrivate * priv;
+       gchar c;
+       gboolean eof;
+};
+
+struct _JSDOCTextStreamCharClass {
+       GObjectClass parent_class;
+};
+
+struct _JSDOCTextStream {
+       GObject parent_instance;
+       JSDOCTextStreamPrivate * priv;
+};
+
+struct _JSDOCTextStreamClass {
+       GObjectClass parent_class;
+};
+
+struct _JSDOCTextStreamPrivate {
+       gchar* text;
+       gint cursor;
+       gint length;
+};
+
+
+static gpointer jsdoc_text_stream_char_parent_class = NULL;
+static gpointer jsdoc_text_stream_parent_class = NULL;
+
+GType jsdoc_text_stream_char_get_type (void) G_GNUC_CONST;
+enum  {
+       JSDOC_TEXT_STREAM_CHAR_DUMMY_PROPERTY
+};
+JSDOCTextStreamChar* jsdoc_text_stream_char_new (gchar val, gboolean eof);
+JSDOCTextStreamChar* jsdoc_text_stream_char_construct (GType object_type, gchar val, gboolean eof);
+static void jsdoc_text_stream_char_finalize (GObject * obj);
+GType jsdoc_text_stream_get_type (void) G_GNUC_CONST;
+#define JSDOC_TEXT_STREAM_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), JSDOC_TYPE_TEXT_STREAM, JSDOCTextStreamPrivate))
+enum  {
+       JSDOC_TEXT_STREAM_DUMMY_PROPERTY
+};
+JSDOCTextStream* jsdoc_text_stream_new (const gchar* text);
+JSDOCTextStream* jsdoc_text_stream_construct (GType object_type, const gchar* text);
+gchar* jsdoc_text_stream_lookS (JSDOCTextStream* self, gint n);
+gchar jsdoc_text_stream_lookC (JSDOCTextStream* self, gint n);
+gboolean jsdoc_text_stream_lookEOF (JSDOCTextStream* self, gint n);
+gchar* jsdoc_text_stream_nextS (JSDOCTextStream* self, gint n);
+gchar jsdoc_text_stream_nextC (JSDOCTextStream* self);
+static void jsdoc_text_stream_finalize (GObject * obj);
+
+
+JSDOCTextStreamChar* jsdoc_text_stream_char_construct (GType object_type, gchar val, gboolean eof) {
+       JSDOCTextStreamChar * self = NULL;
+       gchar _tmp0_;
+       gboolean _tmp1_;
+#line 13 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       self = (JSDOCTextStreamChar*) g_object_new (object_type, NULL);
+#line 14 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       _tmp0_ = val;
+#line 14 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       self->c = _tmp0_;
+#line 15 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       _tmp1_ = eof;
+#line 15 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       self->eof = _tmp1_;
+#line 13 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       return self;
+#line 104 "TextStream.c"
+}
+
+
+JSDOCTextStreamChar* jsdoc_text_stream_char_new (gchar val, gboolean eof) {
+#line 13 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       return jsdoc_text_stream_char_construct (JSDOC_TYPE_TEXT_STREAM_CHAR, val, eof);
+#line 111 "TextStream.c"
+}
+
+
+static void jsdoc_text_stream_char_class_init (JSDOCTextStreamCharClass * klass) {
+#line 10 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       jsdoc_text_stream_char_parent_class = g_type_class_peek_parent (klass);
+#line 10 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       G_OBJECT_CLASS (klass)->finalize = jsdoc_text_stream_char_finalize;
+#line 120 "TextStream.c"
+}
+
+
+static void jsdoc_text_stream_char_instance_init (JSDOCTextStreamChar * self) {
+}
+
+
+static void jsdoc_text_stream_char_finalize (GObject * obj) {
+       JSDOCTextStreamChar * self;
+#line 10 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       self = G_TYPE_CHECK_INSTANCE_CAST (obj, JSDOC_TYPE_TEXT_STREAM_CHAR, JSDOCTextStreamChar);
+#line 10 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       G_OBJECT_CLASS (jsdoc_text_stream_char_parent_class)->finalize (obj);
+#line 134 "TextStream.c"
+}
+
+
+GType jsdoc_text_stream_char_get_type (void) {
+       static volatile gsize jsdoc_text_stream_char_type_id__volatile = 0;
+       if (g_once_init_enter (&jsdoc_text_stream_char_type_id__volatile)) {
+               static const GTypeInfo g_define_type_info = { sizeof (JSDOCTextStreamCharClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) jsdoc_text_stream_char_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (JSDOCTextStreamChar), 0, (GInstanceInitFunc) jsdoc_text_stream_char_instance_init, NULL };
+               GType jsdoc_text_stream_char_type_id;
+               jsdoc_text_stream_char_type_id = g_type_register_static (G_TYPE_OBJECT, "JSDOCTextStreamChar", &g_define_type_info, 0);
+               g_once_init_leave (&jsdoc_text_stream_char_type_id__volatile, jsdoc_text_stream_char_type_id);
+       }
+       return jsdoc_text_stream_char_type_id__volatile;
+}
+
+
+JSDOCTextStream* jsdoc_text_stream_construct (GType object_type, const gchar* text) {
+       JSDOCTextStream * self = NULL;
+       const gchar* _tmp0_;
+       gchar* _tmp1_;
+       const gchar* _tmp2_;
+       gint _tmp3_;
+       gint _tmp4_;
+#line 25 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       g_return_val_if_fail (text != NULL, NULL);
+#line 25 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       self = (JSDOCTextStream*) g_object_new (object_type, NULL);
+#line 29 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       _tmp0_ = text;
+#line 29 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       _tmp1_ = g_strdup (_tmp0_);
+#line 29 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       _g_free0 (self->priv->text);
+#line 29 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       self->priv->text = _tmp1_;
+#line 31 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       _tmp2_ = text;
+#line 31 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       _tmp3_ = strlen (_tmp2_);
+#line 31 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       _tmp4_ = _tmp3_;
+#line 31 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       self->priv->length = _tmp4_;
+#line 32 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       self->priv->cursor = 0;
+#line 25 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       return self;
+#line 181 "TextStream.c"
+}
+
+
+JSDOCTextStream* jsdoc_text_stream_new (const gchar* text) {
+#line 25 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       return jsdoc_text_stream_construct (JSDOC_TYPE_TEXT_STREAM, text);
+#line 188 "TextStream.c"
+}
+
+
+static gunichar string_get_char (const gchar* self, glong index) {
+       gunichar result = 0U;
+       glong _tmp0_;
+       gunichar _tmp1_;
+#line 1140 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (self != NULL, 0U);
+#line 1141 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp0_ = index;
+#line 1141 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp1_ = g_utf8_get_char (((gchar*) self) + _tmp0_);
+#line 1141 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       result = _tmp1_;
+#line 1141 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       return result;
+#line 206 "TextStream.c"
+}
+
+
+static gchar* g_unichar_to_string (gunichar self) {
+       gchar* result = NULL;
+       gchar* str = NULL;
+       gchar* _tmp0_;
+       const gchar* _tmp1_;
+#line 949 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp0_ = g_new0 (gchar, 7);
+#line 949 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       str = (gchar*) _tmp0_;
+#line 950 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp1_ = str;
+#line 950 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       g_unichar_to_utf8 (self, _tmp1_);
+#line 951 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       result = str;
+#line 951 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       return result;
+#line 227 "TextStream.c"
+}
+
+
+gchar* jsdoc_text_stream_lookS (JSDOCTextStream* self, gint n) {
+       gchar* result = NULL;
+       gboolean _tmp0_ = FALSE;
+       gint _tmp1_;
+       gint _tmp2_;
+       const gchar* _tmp7_;
+       gint _tmp8_;
+       gint _tmp9_;
+       gunichar _tmp10_;
+       gchar* _tmp11_;
+#line 35 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 38 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       _tmp1_ = self->priv->cursor;
+#line 38 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       _tmp2_ = n;
+#line 38 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       if ((_tmp1_ + _tmp2_) < 0) {
+#line 38 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+               _tmp0_ = TRUE;
+#line 251 "TextStream.c"
+       } else {
+               gint _tmp3_;
+               gint _tmp4_;
+               gint _tmp5_;
+#line 38 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+               _tmp3_ = self->priv->cursor;
+#line 38 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+               _tmp4_ = n;
+#line 38 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+               _tmp5_ = self->priv->length;
+#line 38 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+               _tmp0_ = (_tmp3_ + _tmp4_) >= _tmp5_;
+#line 264 "TextStream.c"
+       }
+#line 38 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       if (_tmp0_) {
+#line 268 "TextStream.c"
+               gchar* _tmp6_;
+#line 39 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+               _tmp6_ = g_strdup ("");
+#line 39 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+               result = _tmp6_;
+#line 39 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+               return result;
+#line 276 "TextStream.c"
+       }
+#line 41 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       _tmp7_ = self->priv->text;
+#line 41 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       _tmp8_ = self->priv->cursor;
+#line 41 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       _tmp9_ = n;
+#line 41 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       _tmp10_ = string_get_char (_tmp7_, (glong) (_tmp8_ + _tmp9_));
+#line 41 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       _tmp11_ = g_unichar_to_string (_tmp10_);
+#line 41 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       result = _tmp11_;
+#line 41 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       return result;
+#line 292 "TextStream.c"
+}
+
+
+static gchar string_get (const gchar* self, glong index) {
+       gchar result = '\0';
+       glong _tmp0_;
+       gchar _tmp1_;
+#line 1110 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (self != NULL, '\0');
+#line 1111 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp0_ = index;
+#line 1111 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp1_ = ((gchar*) self)[_tmp0_];
+#line 1111 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       result = _tmp1_;
+#line 1111 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       return result;
+#line 310 "TextStream.c"
+}
+
+
+gchar jsdoc_text_stream_lookC (JSDOCTextStream* self, gint n) {
+       gchar result = '\0';
+       gboolean _tmp0_ = FALSE;
+       gint _tmp1_;
+       gint _tmp2_;
+       const gchar* _tmp6_;
+       gint _tmp7_;
+       gint _tmp8_;
+       gchar _tmp9_;
+#line 43 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       g_return_val_if_fail (self != NULL, '\0');
+#line 46 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       _tmp1_ = self->priv->cursor;
+#line 46 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       _tmp2_ = n;
+#line 46 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       if ((_tmp1_ + _tmp2_) < 0) {
+#line 46 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+               _tmp0_ = TRUE;
+#line 333 "TextStream.c"
+       } else {
+               gint _tmp3_;
+               gint _tmp4_;
+               gint _tmp5_;
+#line 46 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+               _tmp3_ = self->priv->cursor;
+#line 46 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+               _tmp4_ = n;
+#line 46 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+               _tmp5_ = self->priv->length;
+#line 46 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+               _tmp0_ = (_tmp3_ + _tmp4_) >= _tmp5_;
+#line 346 "TextStream.c"
+       }
+#line 46 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       if (_tmp0_) {
+#line 47 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+               result = '\0';
+#line 47 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+               return result;
+#line 354 "TextStream.c"
+       }
+#line 49 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       _tmp6_ = self->priv->text;
+#line 49 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       _tmp7_ = self->priv->cursor;
+#line 49 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       _tmp8_ = n;
+#line 49 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       _tmp9_ = string_get (_tmp6_, (glong) (_tmp7_ + _tmp8_));
+#line 49 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       result = _tmp9_;
+#line 49 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       return result;
+#line 368 "TextStream.c"
+}
+
+
+gboolean jsdoc_text_stream_lookEOF (JSDOCTextStream* self, gint n) {
+       gboolean result = FALSE;
+       gboolean _tmp0_ = FALSE;
+       gint _tmp1_;
+       gint _tmp2_;
+#line 53 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       g_return_val_if_fail (self != NULL, FALSE);
+#line 55 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       _tmp1_ = self->priv->cursor;
+#line 55 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       _tmp2_ = n;
+#line 55 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       if ((_tmp1_ + _tmp2_) < 0) {
+#line 55 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+               _tmp0_ = TRUE;
+#line 387 "TextStream.c"
+       } else {
+               gint _tmp3_;
+               gint _tmp4_;
+               gint _tmp5_;
+#line 55 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+               _tmp3_ = self->priv->cursor;
+#line 55 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+               _tmp4_ = n;
+#line 55 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+               _tmp5_ = self->priv->length;
+#line 55 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+               _tmp0_ = (_tmp3_ + _tmp4_) >= _tmp5_;
+#line 400 "TextStream.c"
+       }
+#line 55 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       if (_tmp0_) {
+#line 56 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+               result = TRUE;
+#line 56 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+               return result;
+#line 408 "TextStream.c"
+       }
+#line 58 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       result = FALSE;
+#line 58 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       return result;
+#line 414 "TextStream.c"
+}
+
+
+/**
+         * @param n - number of characters to return..
+         */
+gchar* jsdoc_text_stream_nextS (JSDOCTextStream* self, gint n) {
+       gchar* result = NULL;
+       gint _tmp0_;
+       gchar* pulled = NULL;
+       gchar* _tmp2_;
+       gint i = 0;
+       gint _tmp18_;
+       const gchar* _tmp19_;
+       gint _tmp20_;
+       gint _tmp21_;
+#line 64 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 67 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       _tmp0_ = n;
+#line 67 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       if (_tmp0_ < 1) {
+#line 437 "TextStream.c"
+               gchar* _tmp1_;
+#line 68 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+               _tmp1_ = g_strdup ("");
+#line 68 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+               result = _tmp1_;
+#line 68 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+               return result;
+#line 445 "TextStream.c"
+       }
+#line 71 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       _tmp2_ = g_strdup ("");
+#line 71 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       pulled = _tmp2_;
+#line 72 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       i = 0;
+#line 73 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       while (TRUE) {
+#line 455 "TextStream.c"
+               gint _tmp3_;
+               gint _tmp4_;
+               gint _tmp5_;
+               gint _tmp6_;
+               gint _tmp7_;
+#line 73 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+               _tmp3_ = i;
+#line 73 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+               _tmp4_ = n;
+#line 73 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+               if (!(_tmp3_ < _tmp4_)) {
+#line 73 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+                       break;
+#line 469 "TextStream.c"
+               }
+#line 74 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+               _tmp5_ = self->priv->cursor;
+#line 74 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+               _tmp6_ = i;
+#line 74 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+               _tmp7_ = self->priv->length;
+#line 74 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+               if ((_tmp5_ + _tmp6_) < _tmp7_) {
+#line 479 "TextStream.c"
+                       gchar* add = NULL;
+                       const gchar* _tmp8_;
+                       gint _tmp9_;
+                       gint _tmp10_;
+                       gunichar _tmp11_;
+                       gchar* _tmp12_;
+                       const gchar* _tmp13_;
+                       const gchar* _tmp14_;
+                       gchar* _tmp15_;
+                       gint _tmp16_;
+#line 75 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+                       _tmp8_ = self->priv->text;
+#line 75 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+                       _tmp9_ = self->priv->cursor;
+#line 75 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+                       _tmp10_ = i;
+#line 75 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+                       _tmp11_ = string_get_char (_tmp8_, (glong) (_tmp9_ + _tmp10_));
+#line 75 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+                       _tmp12_ = g_unichar_to_string (_tmp11_);
+#line 75 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+                       add = _tmp12_;
+#line 76 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+                       _tmp13_ = pulled;
+#line 76 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+                       _tmp14_ = add;
+#line 76 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+                       _tmp15_ = g_strconcat (_tmp13_, _tmp14_, NULL);
+#line 76 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+                       _g_free0 (pulled);
+#line 76 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+                       pulled = _tmp15_;
+#line 77 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+                       _tmp16_ = i;
+#line 77 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+                       i = _tmp16_ + 1;
+#line 74 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+                       _g_free0 (add);
+#line 518 "TextStream.c"
+               } else {
+                       gchar* _tmp17_;
+#line 79 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+                       _tmp17_ = g_strdup ("");
+#line 79 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+                       result = _tmp17_;
+#line 79 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+                       _g_free0 (pulled);
+#line 79 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+                       return result;
+#line 529 "TextStream.c"
+               }
+       }
+#line 84 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       _tmp18_ = self->priv->cursor;
+#line 84 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       _tmp19_ = pulled;
+#line 84 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       _tmp20_ = strlen (_tmp19_);
+#line 84 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       _tmp21_ = _tmp20_;
+#line 84 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       self->priv->cursor = _tmp18_ + _tmp21_;
+#line 85 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       result = pulled;
+#line 85 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       return result;
+#line 546 "TextStream.c"
+}
+
+
+gchar jsdoc_text_stream_nextC (JSDOCTextStream* self) {
+       gchar result = '\0';
+       gint _tmp0_;
+       gint _tmp1_;
+#line 89 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       g_return_val_if_fail (self != NULL, '\0');
+#line 92 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       _tmp0_ = self->priv->cursor;
+#line 92 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       _tmp1_ = self->priv->length;
+#line 92 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       if ((_tmp0_ + 1) < _tmp1_) {
+#line 562 "TextStream.c"
+               const gchar* _tmp2_;
+               gint _tmp3_;
+               gchar _tmp4_;
+#line 93 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+               _tmp2_ = self->priv->text;
+#line 93 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+               _tmp3_ = self->priv->cursor;
+#line 93 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+               self->priv->cursor = _tmp3_ + 1;
+#line 93 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+               _tmp4_ = string_get (_tmp2_, (glong) _tmp3_);
+#line 93 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+               result = _tmp4_;
+#line 93 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+               return result;
+#line 578 "TextStream.c"
+       }
+#line 95 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       result = '\0';
+#line 95 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       return result;
+#line 584 "TextStream.c"
+}
+
+
+static void jsdoc_text_stream_class_init (JSDOCTextStreamClass * klass) {
+#line 19 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       jsdoc_text_stream_parent_class = g_type_class_peek_parent (klass);
+#line 19 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       g_type_class_add_private (klass, sizeof (JSDOCTextStreamPrivate));
+#line 19 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       G_OBJECT_CLASS (klass)->finalize = jsdoc_text_stream_finalize;
+#line 595 "TextStream.c"
+}
+
+
+static void jsdoc_text_stream_instance_init (JSDOCTextStream * self) {
+#line 19 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       self->priv = JSDOC_TEXT_STREAM_GET_PRIVATE (self);
+#line 602 "TextStream.c"
+}
+
+
+static void jsdoc_text_stream_finalize (GObject * obj) {
+       JSDOCTextStream * self;
+#line 19 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       self = G_TYPE_CHECK_INSTANCE_CAST (obj, JSDOC_TYPE_TEXT_STREAM, JSDOCTextStream);
+#line 21 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       _g_free0 (self->priv->text);
+#line 19 "/home/alan/gitlive/roojspacker/src/jsdoc/TextStream.vala"
+       G_OBJECT_CLASS (jsdoc_text_stream_parent_class)->finalize (obj);
+#line 614 "TextStream.c"
+}
+
+
+GType jsdoc_text_stream_get_type (void) {
+       static volatile gsize jsdoc_text_stream_type_id__volatile = 0;
+       if (g_once_init_enter (&jsdoc_text_stream_type_id__volatile)) {
+               static const GTypeInfo g_define_type_info = { sizeof (JSDOCTextStreamClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) jsdoc_text_stream_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (JSDOCTextStream), 0, (GInstanceInitFunc) jsdoc_text_stream_instance_init, NULL };
+               GType jsdoc_text_stream_type_id;
+               jsdoc_text_stream_type_id = g_type_register_static (G_TYPE_OBJECT, "JSDOCTextStream", &g_define_type_info, 0);
+               g_once_init_leave (&jsdoc_text_stream_type_id__volatile, jsdoc_text_stream_type_id);
+       }
+       return jsdoc_text_stream_type_id__volatile;
+}
+
+
+
diff --git a/jsdoc/TextStream.vala b/jsdoc/TextStream.vala
new file mode 100644 (file)
index 0000000..07a3a79
--- /dev/null
@@ -0,0 +1,101 @@
+//<script type="text/javscript">
+
+
+/**
+       @constructor
+*/
+namespace JSDOC {
+    
+    public class TextStreamChar : Object {
+        public char c;
+        public bool eof;
+        public TextStreamChar(char val, bool eof=false) {
+            this.c = val;
+            this.eof = eof;
+        }
+    }
+    
+    public class TextStream : Object {
+        
+        string text;
+        int cursor;
+        int length;
+        
+        public TextStream (string text = "")
+        {
+            
+            
+            this.text = text;
+            //stdout.printf ("%s", text);
+            this.length = text.length; // text.char_count(); //text.length;
+            this.cursor = 0;
+        }
+        
+        public string lookS(int n = 0)
+        {
+                 
+            if (this.cursor+n < 0 || this.cursor+n >= this.length) {
+                return "";
+            }
+            return  this.text.get_char(this.cursor+n).to_string(); // this.text[this.cursor+n]; // 
+        }
+         public char lookC(int n = 0)
+        {
+                 
+            if (this.cursor+n < 0 || this.cursor+n >= this.length) {
+                return '\0';
+            }
+            return  this.text[this.cursor+n];
+        }
+        
+        
+        public bool lookEOF(int n = 0)
+        {
+            if (this.cursor+n < 0 || this.cursor+n >= this.length) {
+                return true;
+            }
+            return  false;
+        }
+        
+        /**
+         * @param n - number of characters to return..
+         */
+        public string nextS(int n = 1)
+        {
+            
+            if (n < 1) { //?? eof???
+                return "";
+            }
+                
+            string pulled = "";
+            var i = 0;
+            while (i < n) {
+                if (this.cursor+i < this.length) {
+                    var add =  this.text.get_char(this.cursor+i).to_string(); 
+                    pulled += add;
+                    i += 1;// add.length;
+                } else {
+                    return "";
+                    
+                }
+            }
+            
+            this.cursor +=  pulled.length; // i?
+            return pulled;
+           
+        }
+        
+        public char nextC()
+        {
+            
+            if (this.cursor+1 < this.length) {
+                return this.text[this.cursor++];;
+            } 
+            return '\0';
+           
+        }
+        
+        
+    }
+}
\ No newline at end of file
diff --git a/jsdoc/Token.c b/jsdoc/Token.c
new file mode 100644 (file)
index 0000000..acf3e1d
--- /dev/null
@@ -0,0 +1,1267 @@
+/* Token.c generated by valac 0.36.6, the Vala compiler
+ * generated from Token.vala, do not modify */
+
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gee.h>
+#include <stdlib.h>
+#include <string.h>
+
+
+#define JSDOC_TYPE_TOKEN_TYPE (jsdoc_token_type_get_type ())
+
+#define JSDOC_TYPE_TOKEN_NAME (jsdoc_token_name_get_type ())
+
+#define JSDOC_TYPE_TOKEN_KEY_MAP (jsdoc_token_key_map_get_type ())
+#define JSDOC_TOKEN_KEY_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_TOKEN_KEY_MAP, JSDOCTokenKeyMap))
+#define JSDOC_TOKEN_KEY_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_TOKEN_KEY_MAP, JSDOCTokenKeyMapClass))
+#define JSDOC_IS_TOKEN_KEY_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_TOKEN_KEY_MAP))
+#define JSDOC_IS_TOKEN_KEY_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_TOKEN_KEY_MAP))
+#define JSDOC_TOKEN_KEY_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_TOKEN_KEY_MAP, JSDOCTokenKeyMapClass))
+
+typedef struct _JSDOCTokenKeyMap JSDOCTokenKeyMap;
+typedef struct _JSDOCTokenKeyMapClass JSDOCTokenKeyMapClass;
+typedef struct _JSDOCTokenKeyMapPrivate JSDOCTokenKeyMapPrivate;
+
+#define JSDOC_TYPE_TOKEN (jsdoc_token_get_type ())
+#define JSDOC_TOKEN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_TOKEN, JSDOCToken))
+#define JSDOC_TOKEN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_TOKEN, JSDOCTokenClass))
+#define JSDOC_IS_TOKEN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_TOKEN))
+#define JSDOC_IS_TOKEN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_TOKEN))
+#define JSDOC_TOKEN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_TOKEN, JSDOCTokenClass))
+
+typedef struct _JSDOCToken JSDOCToken;
+typedef struct _JSDOCTokenClass JSDOCTokenClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+typedef struct _JSDOCTokenPrivate JSDOCTokenPrivate;
+
+#define JSDOC_TYPE_IDENTIFIER (jsdoc_identifier_get_type ())
+#define JSDOC_IDENTIFIER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_IDENTIFIER, JSDOCIdentifier))
+#define JSDOC_IDENTIFIER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_IDENTIFIER, JSDOCIdentifierClass))
+#define JSDOC_IS_IDENTIFIER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_IDENTIFIER))
+#define JSDOC_IS_IDENTIFIER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_IDENTIFIER))
+#define JSDOC_IDENTIFIER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_IDENTIFIER, JSDOCIdentifierClass))
+
+typedef struct _JSDOCIdentifier JSDOCIdentifier;
+typedef struct _JSDOCIdentifierClass JSDOCIdentifierClass;
+#define _g_free0(var) (var = (g_free (var), NULL))
+
+typedef enum  {
+       JSDOC_TOKEN_TYPE_TOKN,
+       JSDOC_TOKEN_TYPE_KEYW,
+       JSDOC_TOKEN_TYPE_NAME,
+       JSDOC_TOKEN_TYPE_COMM,
+       JSDOC_TOKEN_TYPE_PUNC,
+       JSDOC_TOKEN_TYPE_WHIT,
+       JSDOC_TOKEN_TYPE_STRN,
+       JSDOC_TOKEN_TYPE_NUMB,
+       JSDOC_TOKEN_TYPE_REGX,
+       JSDOC_TOKEN_TYPE_VOID
+} JSDOCTokenType;
+
+typedef enum  {
+       JSDOC_TOKEN_NAME_UNKNOWN_TOKEN,
+       JSDOC_TOKEN_NAME_BREAK,
+       JSDOC_TOKEN_NAME_CASE,
+       JSDOC_TOKEN_NAME_CATCH,
+       JSDOC_TOKEN_NAME_CONST,
+       JSDOC_TOKEN_NAME_CONTINUE,
+       JSDOC_TOKEN_NAME_DEFAULT,
+       JSDOC_TOKEN_NAME_DELETE,
+       JSDOC_TOKEN_NAME_DO,
+       JSDOC_TOKEN_NAME_ELSE,
+       JSDOC_TOKEN_NAME_FALSE,
+       JSDOC_TOKEN_NAME_FINALLY,
+       JSDOC_TOKEN_NAME_FOR,
+       JSDOC_TOKEN_NAME_FUNCTION,
+       JSDOC_TOKEN_NAME_IF,
+       JSDOC_TOKEN_NAME_IN,
+       JSDOC_TOKEN_NAME_INSTANCEOF,
+       JSDOC_TOKEN_NAME_NEW,
+       JSDOC_TOKEN_NAME_NULL,
+       JSDOC_TOKEN_NAME_RETURN,
+       JSDOC_TOKEN_NAME_SWITCH,
+       JSDOC_TOKEN_NAME_THIS,
+       JSDOC_TOKEN_NAME_THROW,
+       JSDOC_TOKEN_NAME_TRUE,
+       JSDOC_TOKEN_NAME_TRY,
+       JSDOC_TOKEN_NAME_TYPEOF,
+       JSDOC_TOKEN_NAME_VOID,
+       JSDOC_TOKEN_NAME_WHILE,
+       JSDOC_TOKEN_NAME_WITH,
+       JSDOC_TOKEN_NAME_VAR,
+       JSDOC_TOKEN_NAME_EVAL,
+       JSDOC_TOKEN_NAME_NAME,
+       JSDOC_TOKEN_NAME_MULTI_LINE_COMM,
+       JSDOC_TOKEN_NAME_JSDOC,
+       JSDOC_TOKEN_NAME_SINGLE_LINE_COMM,
+       JSDOC_TOKEN_NAME_SEMICOLON,
+       JSDOC_TOKEN_NAME_COMMA,
+       JSDOC_TOKEN_NAME_HOOK,
+       JSDOC_TOKEN_NAME_COLON,
+       JSDOC_TOKEN_NAME_OR,
+       JSDOC_TOKEN_NAME_AND,
+       JSDOC_TOKEN_NAME_BITWISE_OR,
+       JSDOC_TOKEN_NAME_BITWISE_XOR,
+       JSDOC_TOKEN_NAME_BITWISE_AND,
+       JSDOC_TOKEN_NAME_STRICT_EQ,
+       JSDOC_TOKEN_NAME_EQ,
+       JSDOC_TOKEN_NAME_ASSIGN,
+       JSDOC_TOKEN_NAME_STRICT_NE,
+       JSDOC_TOKEN_NAME_NE,
+       JSDOC_TOKEN_NAME_LSH,
+       JSDOC_TOKEN_NAME_LE,
+       JSDOC_TOKEN_NAME_LT,
+       JSDOC_TOKEN_NAME_URSH,
+       JSDOC_TOKEN_NAME_RSH,
+       JSDOC_TOKEN_NAME_GE,
+       JSDOC_TOKEN_NAME_GT,
+       JSDOC_TOKEN_NAME_INCREMENT,
+       JSDOC_TOKEN_NAME_DECREMENT,
+       JSDOC_TOKEN_NAME_PLUS,
+       JSDOC_TOKEN_NAME_MINUS,
+       JSDOC_TOKEN_NAME_MUL,
+       JSDOC_TOKEN_NAME_DIV,
+       JSDOC_TOKEN_NAME_MOD,
+       JSDOC_TOKEN_NAME_NOT,
+       JSDOC_TOKEN_NAME_BITWISE_NOT,
+       JSDOC_TOKEN_NAME_DOT,
+       JSDOC_TOKEN_NAME_LEFT_BRACE,
+       JSDOC_TOKEN_NAME_RIGHT_BRACE,
+       JSDOC_TOKEN_NAME_LEFT_CURLY,
+       JSDOC_TOKEN_NAME_RIGHT_CURLY,
+       JSDOC_TOKEN_NAME_LEFT_PAREN,
+       JSDOC_TOKEN_NAME_RIGHT_PAREN,
+       JSDOC_TOKEN_NAME_SPACE,
+       JSDOC_TOKEN_NAME_NEWLINE,
+       JSDOC_TOKEN_NAME_DOUBLE_QUOTE,
+       JSDOC_TOKEN_NAME_SINGLE_QUOTE,
+       JSDOC_TOKEN_NAME_OCTAL,
+       JSDOC_TOKEN_NAME_DECIMAL,
+       JSDOC_TOKEN_NAME_HEX_DEC,
+       JSDOC_TOKEN_NAME_REGX,
+       JSDOC_TOKEN_NAME_START_OF_STREAM,
+       JSDOC_TOKEN_NAME_END_OF_STREAM,
+       JSDOC_TOKEN_NAME_UNKNOWN
+} JSDOCTokenName;
+
+struct _JSDOCTokenKeyMap {
+       GObject parent_instance;
+       JSDOCTokenKeyMapPrivate * priv;
+       JSDOCToken* key;
+       GeeArrayList* vals;
+};
+
+struct _JSDOCTokenKeyMapClass {
+       GObjectClass parent_class;
+};
+
+struct _JSDOCToken {
+       GObject parent_instance;
+       JSDOCTokenPrivate * priv;
+       gint id;
+       gchar* data;
+       JSDOCTokenType type;
+       JSDOCTokenName name;
+       gint line;
+       gchar* prefix;
+       gchar* outData;
+       JSDOCIdentifier* identifier;
+       GeeArrayList* items;
+       GeeHashMap* props;
+       GeeArrayList* keyseq;
+};
+
+struct _JSDOCTokenClass {
+       GObjectClass parent_class;
+};
+
+
+extern gint jsdoc_Token_id;
+gint jsdoc_Token_id = 1;
+static gpointer jsdoc_token_key_map_parent_class = NULL;
+static gpointer jsdoc_token_parent_class = NULL;
+extern gchar* jsdoc_doc_parser_currentSourceFile;
+
+GType jsdoc_token_type_get_type (void) G_GNUC_CONST;
+GType jsdoc_token_name_get_type (void) G_GNUC_CONST;
+GType jsdoc_token_key_map_get_type (void) G_GNUC_CONST;
+GType jsdoc_token_get_type (void) G_GNUC_CONST;
+enum  {
+       JSDOC_TOKEN_KEY_MAP_DUMMY_PROPERTY
+};
+JSDOCTokenKeyMap* jsdoc_token_key_map_new (void);
+JSDOCTokenKeyMap* jsdoc_token_key_map_construct (GType object_type);
+JSDOCToken* jsdoc_token_new (const gchar* data, JSDOCTokenType type, JSDOCTokenName name, gint line);
+JSDOCToken* jsdoc_token_construct (GType object_type, const gchar* data, JSDOCTokenType type, JSDOCTokenName name, gint line);
+static void jsdoc_token_key_map_finalize (GObject * obj);
+GType jsdoc_identifier_get_type (void) G_GNUC_CONST;
+enum  {
+       JSDOC_TOKEN_DUMMY_PROPERTY
+};
+gchar* jsdoc_token_asString (JSDOCToken* self);
+const gchar* jsdoc_token_type_to_string (JSDOCTokenType self);
+const gchar* jsdoc_token_name_to_string (JSDOCTokenName self);
+void jsdoc_token_dump (JSDOCToken* self, const gchar* indent);
+gchar* jsdoc_token_toRaw (JSDOCToken* self, gint lvl);
+gboolean jsdoc_token_isName (JSDOCToken* self, JSDOCTokenName what);
+gboolean jsdoc_token_isType (JSDOCToken* self, JSDOCTokenType what);
+static void jsdoc_token_finalize (GObject * obj);
+
+
+GType jsdoc_token_type_get_type (void) {
+       static volatile gsize jsdoc_token_type_type_id__volatile = 0;
+       if (g_once_init_enter (&jsdoc_token_type_type_id__volatile)) {
+               static const GEnumValue values[] = {{JSDOC_TOKEN_TYPE_TOKN, "JSDOC_TOKEN_TYPE_TOKN", "tokn"}, {JSDOC_TOKEN_TYPE_KEYW, "JSDOC_TOKEN_TYPE_KEYW", "keyw"}, {JSDOC_TOKEN_TYPE_NAME, "JSDOC_TOKEN_TYPE_NAME", "name"}, {JSDOC_TOKEN_TYPE_COMM, "JSDOC_TOKEN_TYPE_COMM", "comm"}, {JSDOC_TOKEN_TYPE_PUNC, "JSDOC_TOKEN_TYPE_PUNC", "punc"}, {JSDOC_TOKEN_TYPE_WHIT, "JSDOC_TOKEN_TYPE_WHIT", "whit"}, {JSDOC_TOKEN_TYPE_STRN, "JSDOC_TOKEN_TYPE_STRN", "strn"}, {JSDOC_TOKEN_TYPE_NUMB, "JSDOC_TOKEN_TYPE_NUMB", "numb"}, {JSDOC_TOKEN_TYPE_REGX, "JSDOC_TOKEN_TYPE_REGX", "regx"}, {JSDOC_TOKEN_TYPE_VOID, "JSDOC_TOKEN_TYPE_VOID", "void"}, {0, NULL, NULL}};
+               GType jsdoc_token_type_type_id;
+               jsdoc_token_type_type_id = g_enum_register_static ("JSDOCTokenType", values);
+               g_once_init_leave (&jsdoc_token_type_type_id__volatile, jsdoc_token_type_type_id);
+       }
+       return jsdoc_token_type_type_id__volatile;
+}
+
+
+GType jsdoc_token_name_get_type (void) {
+       static volatile gsize jsdoc_token_name_type_id__volatile = 0;
+       if (g_once_init_enter (&jsdoc_token_name_type_id__volatile)) {
+               static const GEnumValue values[] = {{JSDOC_TOKEN_NAME_UNKNOWN_TOKEN, "JSDOC_TOKEN_NAME_UNKNOWN_TOKEN", "unknown-token"}, {JSDOC_TOKEN_NAME_BREAK, "JSDOC_TOKEN_NAME_BREAK", "break"}, {JSDOC_TOKEN_NAME_CASE, "JSDOC_TOKEN_NAME_CASE", "case"}, {JSDOC_TOKEN_NAME_CATCH, "JSDOC_TOKEN_NAME_CATCH", "catch"}, {JSDOC_TOKEN_NAME_CONST, "JSDOC_TOKEN_NAME_CONST", "const"}, {JSDOC_TOKEN_NAME_CONTINUE, "JSDOC_TOKEN_NAME_CONTINUE", "continue"}, {JSDOC_TOKEN_NAME_DEFAULT, "JSDOC_TOKEN_NAME_DEFAULT", "default"}, {JSDOC_TOKEN_NAME_DELETE, "JSDOC_TOKEN_NAME_DELETE", "delete"}, {JSDOC_TOKEN_NAME_DO, "JSDOC_TOKEN_NAME_DO", "do"}, {JSDOC_TOKEN_NAME_ELSE, "JSDOC_TOKEN_NAME_ELSE", "else"}, {JSDOC_TOKEN_NAME_FALSE, "JSDOC_TOKEN_NAME_FALSE", "false"}, {JSDOC_TOKEN_NAME_FINALLY, "JSDOC_TOKEN_NAME_FINALLY", "finally"}, {JSDOC_TOKEN_NAME_FOR, "JSDOC_TOKEN_NAME_FOR", "for"}, {JSDOC_TOKEN_NAME_FUNCTION, "JSDOC_TOKEN_NAME_FUNCTION", "function"}, {JSDOC_TOKEN_NAME_IF, "JSDOC_TOKEN_NAME_IF", "if"}, {JSDOC_TOKEN_NAME_IN, "JSDOC_TOKEN_NAME_IN", "in"}, {JSDOC_TOKEN_NAME_INSTANCEOF, "JSDOC_TOKEN_NAME_INSTANCEOF", "instanceof"}, {JSDOC_TOKEN_NAME_NEW, "JSDOC_TOKEN_NAME_NEW", "new"}, {JSDOC_TOKEN_NAME_NULL, "JSDOC_TOKEN_NAME_NULL", "null"}, {JSDOC_TOKEN_NAME_RETURN, "JSDOC_TOKEN_NAME_RETURN", "return"}, {JSDOC_TOKEN_NAME_SWITCH, "JSDOC_TOKEN_NAME_SWITCH", "switch"}, {JSDOC_TOKEN_NAME_THIS, "JSDOC_TOKEN_NAME_THIS", "this"}, {JSDOC_TOKEN_NAME_THROW, "JSDOC_TOKEN_NAME_THROW", "throw"}, {JSDOC_TOKEN_NAME_TRUE, "JSDOC_TOKEN_NAME_TRUE", "true"}, {JSDOC_TOKEN_NAME_TRY, "JSDOC_TOKEN_NAME_TRY", "try"}, {JSDOC_TOKEN_NAME_TYPEOF, "JSDOC_TOKEN_NAME_TYPEOF", "typeof"}, {JSDOC_TOKEN_NAME_VOID, "JSDOC_TOKEN_NAME_VOID", "void"}, {JSDOC_TOKEN_NAME_WHILE, "JSDOC_TOKEN_NAME_WHILE", "while"}, {JSDOC_TOKEN_NAME_WITH, "JSDOC_TOKEN_NAME_WITH", "with"}, {JSDOC_TOKEN_NAME_VAR, "JSDOC_TOKEN_NAME_VAR", "var"}, {JSDOC_TOKEN_NAME_EVAL, "JSDOC_TOKEN_NAME_EVAL", "eval"}, {JSDOC_TOKEN_NAME_NAME, "JSDOC_TOKEN_NAME_NAME", "name"}, {JSDOC_TOKEN_NAME_MULTI_LINE_COMM, "JSDOC_TOKEN_NAME_MULTI_LINE_COMM", "multi-line-comm"}, {JSDOC_TOKEN_NAME_JSDOC, "JSDOC_TOKEN_NAME_JSDOC", "jsdoc"}, {JSDOC_TOKEN_NAME_SINGLE_LINE_COMM, "JSDOC_TOKEN_NAME_SINGLE_LINE_COMM", "single-line-comm"}, {JSDOC_TOKEN_NAME_SEMICOLON, "JSDOC_TOKEN_NAME_SEMICOLON", "semicolon"}, {JSDOC_TOKEN_NAME_COMMA, "JSDOC_TOKEN_NAME_COMMA", "comma"}, {JSDOC_TOKEN_NAME_HOOK, "JSDOC_TOKEN_NAME_HOOK", "hook"}, {JSDOC_TOKEN_NAME_COLON, "JSDOC_TOKEN_NAME_COLON", "colon"}, {JSDOC_TOKEN_NAME_OR, "JSDOC_TOKEN_NAME_OR", "or"}, {JSDOC_TOKEN_NAME_AND, "JSDOC_TOKEN_NAME_AND", "and"}, {JSDOC_TOKEN_NAME_BITWISE_OR, "JSDOC_TOKEN_NAME_BITWISE_OR", "bitwise-or"}, {JSDOC_TOKEN_NAME_BITWISE_XOR, "JSDOC_TOKEN_NAME_BITWISE_XOR", "bitwise-xor"}, {JSDOC_TOKEN_NAME_BITWISE_AND, "JSDOC_TOKEN_NAME_BITWISE_AND", "bitwise-and"}, {JSDOC_TOKEN_NAME_STRICT_EQ, "JSDOC_TOKEN_NAME_STRICT_EQ", "strict-eq"}, {JSDOC_TOKEN_NAME_EQ, "JSDOC_TOKEN_NAME_EQ", "eq"}, {JSDOC_TOKEN_NAME_ASSIGN, "JSDOC_TOKEN_NAME_ASSIGN", "assign"}, {JSDOC_TOKEN_NAME_STRICT_NE, "JSDOC_TOKEN_NAME_STRICT_NE", "strict-ne"}, {JSDOC_TOKEN_NAME_NE, "JSDOC_TOKEN_NAME_NE", "ne"}, {JSDOC_TOKEN_NAME_LSH, "JSDOC_TOKEN_NAME_LSH", "lsh"}, {JSDOC_TOKEN_NAME_LE, "JSDOC_TOKEN_NAME_LE", "le"}, {JSDOC_TOKEN_NAME_LT, "JSDOC_TOKEN_NAME_LT", "lt"}, {JSDOC_TOKEN_NAME_URSH, "JSDOC_TOKEN_NAME_URSH", "ursh"}, {JSDOC_TOKEN_NAME_RSH, "JSDOC_TOKEN_NAME_RSH", "rsh"}, {JSDOC_TOKEN_NAME_GE, "JSDOC_TOKEN_NAME_GE", "ge"}, {JSDOC_TOKEN_NAME_GT, "JSDOC_TOKEN_NAME_GT", "gt"}, {JSDOC_TOKEN_NAME_INCREMENT, "JSDOC_TOKEN_NAME_INCREMENT", "increment"}, {JSDOC_TOKEN_NAME_DECREMENT, "JSDOC_TOKEN_NAME_DECREMENT", "decrement"}, {JSDOC_TOKEN_NAME_PLUS, "JSDOC_TOKEN_NAME_PLUS", "plus"}, {JSDOC_TOKEN_NAME_MINUS, "JSDOC_TOKEN_NAME_MINUS", "minus"}, {JSDOC_TOKEN_NAME_MUL, "JSDOC_TOKEN_NAME_MUL", "mul"}, {JSDOC_TOKEN_NAME_DIV, "JSDOC_TOKEN_NAME_DIV", "div"}, {JSDOC_TOKEN_NAME_MOD, "JSDOC_TOKEN_NAME_MOD", "mod"}, {JSDOC_TOKEN_NAME_NOT, "JSDOC_TOKEN_NAME_NOT", "not"}, {JSDOC_TOKEN_NAME_BITWISE_NOT, "JSDOC_TOKEN_NAME_BITWISE_NOT", "bitwise-not"}, {JSDOC_TOKEN_NAME_DOT, "JSDOC_TOKEN_NAME_DOT", "dot"}, {JSDOC_TOKEN_NAME_LEFT_BRACE, "JSDOC_TOKEN_NAME_LEFT_BRACE", "left-brace"}, {JSDOC_TOKEN_NAME_RIGHT_BRACE, "JSDOC_TOKEN_NAME_RIGHT_BRACE", "right-brace"}, {JSDOC_TOKEN_NAME_LEFT_CURLY, "JSDOC_TOKEN_NAME_LEFT_CURLY", "left-curly"}, {JSDOC_TOKEN_NAME_RIGHT_CURLY, "JSDOC_TOKEN_NAME_RIGHT_CURLY", "right-curly"}, {JSDOC_TOKEN_NAME_LEFT_PAREN, "JSDOC_TOKEN_NAME_LEFT_PAREN", "left-paren"}, {JSDOC_TOKEN_NAME_RIGHT_PAREN, "JSDOC_TOKEN_NAME_RIGHT_PAREN", "right-paren"}, {JSDOC_TOKEN_NAME_SPACE, "JSDOC_TOKEN_NAME_SPACE", "space"}, {JSDOC_TOKEN_NAME_NEWLINE, "JSDOC_TOKEN_NAME_NEWLINE", "newline"}, {JSDOC_TOKEN_NAME_DOUBLE_QUOTE, "JSDOC_TOKEN_NAME_DOUBLE_QUOTE", "double-quote"}, {JSDOC_TOKEN_NAME_SINGLE_QUOTE, "JSDOC_TOKEN_NAME_SINGLE_QUOTE", "single-quote"}, {JSDOC_TOKEN_NAME_OCTAL, "JSDOC_TOKEN_NAME_OCTAL", "octal"}, {JSDOC_TOKEN_NAME_DECIMAL, "JSDOC_TOKEN_NAME_DECIMAL", "decimal"}, {JSDOC_TOKEN_NAME_HEX_DEC, "JSDOC_TOKEN_NAME_HEX_DEC", "hex-dec"}, {JSDOC_TOKEN_NAME_REGX, "JSDOC_TOKEN_NAME_REGX", "regx"}, {JSDOC_TOKEN_NAME_START_OF_STREAM, "JSDOC_TOKEN_NAME_START_OF_STREAM", "start-of-stream"}, {JSDOC_TOKEN_NAME_END_OF_STREAM, "JSDOC_TOKEN_NAME_END_OF_STREAM", "end-of-stream"}, {JSDOC_TOKEN_NAME_UNKNOWN, "JSDOC_TOKEN_NAME_UNKNOWN", "unknown"}, {0, NULL, NULL}};
+               GType jsdoc_token_name_type_id;
+               jsdoc_token_name_type_id = g_enum_register_static ("JSDOCTokenName", values);
+               g_once_init_leave (&jsdoc_token_name_type_id__volatile, jsdoc_token_name_type_id);
+       }
+       return jsdoc_token_name_type_id__volatile;
+}
+
+
+JSDOCTokenKeyMap* jsdoc_token_key_map_construct (GType object_type) {
+       JSDOCTokenKeyMap * self = NULL;
+       JSDOCToken* _tmp0_;
+       GeeArrayList* _tmp1_;
+#line 143 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       self = (JSDOCTokenKeyMap*) g_object_new (object_type, NULL);
+#line 145 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       _tmp0_ = jsdoc_token_new ("", JSDOC_TOKEN_TYPE_VOID, JSDOC_TOKEN_NAME_VOID, -1);
+#line 145 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       _g_object_unref0 (self->key);
+#line 145 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       self->key = _tmp0_;
+#line 146 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       _tmp1_ = gee_array_list_new (JSDOC_TYPE_TOKEN, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL);
+#line 146 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       _g_object_unref0 (self->vals);
+#line 146 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       self->vals = _tmp1_;
+#line 143 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       return self;
+#line 258 "Token.c"
+}
+
+
+JSDOCTokenKeyMap* jsdoc_token_key_map_new (void) {
+#line 143 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       return jsdoc_token_key_map_construct (JSDOC_TYPE_TOKEN_KEY_MAP);
+#line 265 "Token.c"
+}
+
+
+static void jsdoc_token_key_map_class_init (JSDOCTokenKeyMapClass * klass) {
+#line 139 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       jsdoc_token_key_map_parent_class = g_type_class_peek_parent (klass);
+#line 139 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       G_OBJECT_CLASS (klass)->finalize = jsdoc_token_key_map_finalize;
+#line 274 "Token.c"
+}
+
+
+static void jsdoc_token_key_map_instance_init (JSDOCTokenKeyMap * self) {
+}
+
+
+static void jsdoc_token_key_map_finalize (GObject * obj) {
+       JSDOCTokenKeyMap * self;
+#line 139 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       self = G_TYPE_CHECK_INSTANCE_CAST (obj, JSDOC_TYPE_TOKEN_KEY_MAP, JSDOCTokenKeyMap);
+#line 140 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       _g_object_unref0 (self->key);
+#line 141 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       _g_object_unref0 (self->vals);
+#line 139 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       G_OBJECT_CLASS (jsdoc_token_key_map_parent_class)->finalize (obj);
+#line 292 "Token.c"
+}
+
+
+GType jsdoc_token_key_map_get_type (void) {
+       static volatile gsize jsdoc_token_key_map_type_id__volatile = 0;
+       if (g_once_init_enter (&jsdoc_token_key_map_type_id__volatile)) {
+               static const GTypeInfo g_define_type_info = { sizeof (JSDOCTokenKeyMapClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) jsdoc_token_key_map_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (JSDOCTokenKeyMap), 0, (GInstanceInitFunc) jsdoc_token_key_map_instance_init, NULL };
+               GType jsdoc_token_key_map_type_id;
+               jsdoc_token_key_map_type_id = g_type_register_static (G_TYPE_OBJECT, "JSDOCTokenKeyMap", &g_define_type_info, 0);
+               g_once_init_leave (&jsdoc_token_key_map_type_id__volatile, jsdoc_token_key_map_type_id);
+       }
+       return jsdoc_token_key_map_type_id__volatile;
+}
+
+
+JSDOCToken* jsdoc_token_construct (GType object_type, const gchar* data, JSDOCTokenType type, JSDOCTokenName name, gint line) {
+       JSDOCToken * self = NULL;
+       const gchar* _tmp0_;
+       gchar* _tmp1_;
+       JSDOCTokenType _tmp2_;
+       JSDOCTokenName _tmp3_;
+       gint _tmp4_;
+       gchar* _tmp5_;
+       gchar* _tmp6_;
+       gint _tmp7_;
+       gboolean _tmp8_ = FALSE;
+       gboolean _tmp9_ = FALSE;
+       JSDOCTokenName _tmp10_;
+#line 176 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       g_return_val_if_fail (data != NULL, NULL);
+#line 176 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       self = (JSDOCToken*) g_object_new (object_type, NULL);
+#line 178 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       _tmp0_ = data;
+#line 178 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       _tmp1_ = g_strdup (_tmp0_);
+#line 178 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       _g_free0 (self->data);
+#line 178 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       self->data = _tmp1_;
+#line 179 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       _tmp2_ = type;
+#line 179 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       self->type = _tmp2_;
+#line 180 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       _tmp3_ = name;
+#line 180 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       self->name = _tmp3_;
+#line 181 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       _tmp4_ = line;
+#line 181 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       self->line = _tmp4_;
+#line 182 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       _tmp5_ = g_strdup ("");
+#line 182 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       _g_free0 (self->prefix);
+#line 182 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       self->prefix = _tmp5_;
+#line 183 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       _tmp6_ = g_strdup ("");
+#line 183 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       _g_free0 (self->outData);
+#line 183 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       self->outData = _tmp6_;
+#line 184 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       _g_object_unref0 (self->identifier);
+#line 184 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       self->identifier = NULL;
+#line 185 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       _tmp7_ = jsdoc_Token_id;
+#line 185 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       jsdoc_Token_id = _tmp7_ + 1;
+#line 185 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       self->id = _tmp7_;
+#line 188 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       _g_object_unref0 (self->items);
+#line 188 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       self->items = NULL;
+#line 189 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       _g_object_unref0 (self->props);
+#line 189 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       self->props = NULL;
+#line 190 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       _g_object_unref0 (self->keyseq);
+#line 190 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       self->keyseq = NULL;
+#line 191 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       _tmp10_ = name;
+#line 191 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       if (_tmp10_ == JSDOC_TOKEN_NAME_LEFT_BRACE) {
+#line 191 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+               _tmp9_ = TRUE;
+#line 385 "Token.c"
+       } else {
+               JSDOCTokenName _tmp11_;
+#line 192 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+               _tmp11_ = name;
+#line 192 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+               _tmp9_ = _tmp11_ == JSDOC_TOKEN_NAME_LEFT_CURLY;
+#line 392 "Token.c"
+       }
+#line 191 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       if (_tmp9_) {
+#line 191 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+               _tmp8_ = TRUE;
+#line 398 "Token.c"
+       } else {
+               JSDOCTokenName _tmp12_;
+#line 193 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+               _tmp12_ = name;
+#line 193 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+               _tmp8_ = _tmp12_ == JSDOC_TOKEN_NAME_LEFT_PAREN;
+#line 405 "Token.c"
+       }
+#line 191 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       if (_tmp8_) {
+#line 409 "Token.c"
+               GeeArrayList* _tmp13_;
+               GeeHashMap* _tmp14_;
+               GeeArrayList* _tmp15_;
+#line 195 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+               _tmp13_ = gee_array_list_new (GEE_TYPE_ARRAY_LIST, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL);
+#line 195 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+               _g_object_unref0 (self->items);
+#line 195 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+               self->items = _tmp13_;
+#line 196 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+               _tmp14_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, JSDOC_TYPE_TOKEN_KEY_MAP, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 196 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+               _g_object_unref0 (self->props);
+#line 196 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+               self->props = _tmp14_;
+#line 197 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+               _tmp15_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL);
+#line 197 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+               _g_object_unref0 (self->keyseq);
+#line 197 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+               self->keyseq = _tmp15_;
+#line 431 "Token.c"
+       }
+#line 176 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       return self;
+#line 435 "Token.c"
+}
+
+
+JSDOCToken* jsdoc_token_new (const gchar* data, JSDOCTokenType type, JSDOCTokenName name, gint line) {
+#line 176 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       return jsdoc_token_construct (JSDOC_TYPE_TOKEN, data, type, name, line);
+#line 442 "Token.c"
+}
+
+
+gchar* jsdoc_token_asString (JSDOCToken* self) {
+       gchar* result = NULL;
+       gboolean _tmp0_ = FALSE;
+       gboolean _tmp1_ = FALSE;
+       JSDOCTokenName _tmp2_;
+       const gchar* _tmp34_ = NULL;
+       const gchar* _tmp35_;
+       const gchar* _tmp37_ = NULL;
+       const gchar* _tmp38_;
+       gint _tmp40_;
+       gint _tmp41_;
+       JSDOCTokenType _tmp42_;
+       GEnumValue* _tmp43_;
+       const gchar* _tmp44_;
+       JSDOCTokenName _tmp45_;
+       GEnumValue* _tmp46_;
+       gchar* _tmp47_;
+#line 202 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 204 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       _tmp2_ = self->name;
+#line 204 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       if (_tmp2_ == JSDOC_TOKEN_NAME_LEFT_BRACE) {
+#line 204 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+               _tmp1_ = TRUE;
+#line 471 "Token.c"
+       } else {
+               JSDOCTokenName _tmp3_;
+#line 205 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+               _tmp3_ = self->name;
+#line 205 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+               _tmp1_ = _tmp3_ == JSDOC_TOKEN_NAME_LEFT_CURLY;
+#line 478 "Token.c"
+       }
+#line 204 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       if (_tmp1_) {
+#line 204 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+               _tmp0_ = TRUE;
+#line 484 "Token.c"
+       } else {
+               JSDOCTokenName _tmp4_;
+#line 206 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+               _tmp4_ = self->name;
+#line 206 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+               _tmp0_ = _tmp4_ == JSDOC_TOKEN_NAME_LEFT_PAREN;
+#line 491 "Token.c"
+       }
+#line 204 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       if (_tmp0_) {
+#line 495 "Token.c"
+               const gchar* _tmp5_ = NULL;
+               const gchar* _tmp6_;
+               gint _tmp8_ = 0;
+               JSDOCTokenName _tmp9_;
+               gint _tmp13_ = 0;
+               JSDOCTokenName _tmp14_;
+               gint _tmp18_ = 0;
+               JSDOCTokenName _tmp19_;
+               const gchar* _tmp23_ = NULL;
+               const gchar* _tmp24_;
+               gint _tmp26_;
+               gint _tmp27_;
+               JSDOCTokenType _tmp28_;
+               GEnumValue* _tmp29_;
+               const gchar* _tmp30_;
+               JSDOCTokenName _tmp31_;
+               GEnumValue* _tmp32_;
+               gchar* _tmp33_;
+#line 209 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+               _tmp6_ = jsdoc_doc_parser_currentSourceFile;
+#line 209 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+               if (_tmp6_ == NULL) {
+#line 209 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                       _tmp5_ = "??";
+#line 520 "Token.c"
+               } else {
+                       const gchar* _tmp7_;
+#line 209 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                       _tmp7_ = jsdoc_doc_parser_currentSourceFile;
+#line 209 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                       _tmp5_ = _tmp7_;
+#line 527 "Token.c"
+               }
+#line 213 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+               _tmp9_ = self->name;
+#line 213 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+               if (_tmp9_ == JSDOC_TOKEN_NAME_LEFT_BRACE) {
+#line 213 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                       _tmp8_ = -1;
+#line 535 "Token.c"
+               } else {
+                       GeeArrayList* _tmp10_;
+                       gint _tmp11_;
+                       gint _tmp12_;
+#line 213 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                       _tmp10_ = self->items;
+#line 213 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                       _tmp11_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp10_);
+#line 213 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                       _tmp12_ = _tmp11_;
+#line 213 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                       _tmp8_ = _tmp12_;
+#line 548 "Token.c"
+               }
+#line 214 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+               _tmp14_ = self->name;
+#line 214 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+               if (_tmp14_ == JSDOC_TOKEN_NAME_LEFT_BRACE) {
+#line 214 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                       _tmp13_ = -1;
+#line 556 "Token.c"
+               } else {
+                       GeeHashMap* _tmp15_;
+                       gint _tmp16_;
+                       gint _tmp17_;
+#line 214 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                       _tmp15_ = self->props;
+#line 214 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                       _tmp16_ = gee_abstract_map_get_size ((GeeAbstractMap*) _tmp15_);
+#line 214 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                       _tmp17_ = _tmp16_;
+#line 214 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                       _tmp13_ = _tmp17_;
+#line 569 "Token.c"
+               }
+#line 215 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+               _tmp19_ = self->name;
+#line 215 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+               if (_tmp19_ == JSDOC_TOKEN_NAME_LEFT_BRACE) {
+#line 215 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                       _tmp18_ = -1;
+#line 577 "Token.c"
+               } else {
+                       GeeArrayList* _tmp20_;
+                       gint _tmp21_;
+                       gint _tmp22_;
+#line 215 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                       _tmp20_ = self->keyseq;
+#line 215 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                       _tmp21_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp20_);
+#line 215 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                       _tmp22_ = _tmp21_;
+#line 215 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                       _tmp18_ = _tmp22_;
+#line 590 "Token.c"
+               }
+#line 218 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+               _tmp24_ = self->outData;
+#line 218 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+               if (_tmp24_ == NULL) {
+#line 218 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                       _tmp23_ = "";
+#line 598 "Token.c"
+               } else {
+                       const gchar* _tmp25_;
+#line 218 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                       _tmp25_ = self->outData;
+#line 218 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                       _tmp23_ = _tmp25_;
+#line 605 "Token.c"
+               }
+#line 208 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+               _tmp26_ = self->line;
+#line 208 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+               _tmp27_ = self->id;
+#line 208 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+               _tmp28_ = self->type;
+#line 212 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+               _tmp29_ = g_enum_get_value (g_type_class_ref (JSDOC_TYPE_TOKEN_TYPE), _tmp28_);
+#line 208 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+               _tmp30_ = self->data;
+#line 208 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+               _tmp31_ = self->name;
+#line 217 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+               _tmp32_ = g_enum_get_value (g_type_class_ref (JSDOC_TYPE_TOKEN_NAME), _tmp31_);
+#line 208 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+               _tmp33_ = g_strdup_printf ("line: %s, %d, id %d, type %s, IS=%d,PS=%d,KS=%d, data : %s,  name %s, " \
+", outData: %s", _tmp5_, _tmp26_, _tmp27_, (_tmp29_ != NULL) ? _tmp29_->value_name : NULL, _tmp8_, _tmp13_, _tmp18_, _tmp30_, (_tmp32_ != NULL) ? _tmp32_->value_name : NULL, _tmp23_);
+#line 208 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+               result = _tmp33_;
+#line 208 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+               return result;
+#line 627 "Token.c"
+       }
+#line 227 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       _tmp35_ = jsdoc_doc_parser_currentSourceFile;
+#line 227 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       if (_tmp35_ == NULL) {
+#line 227 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+               _tmp34_ = "??";
+#line 635 "Token.c"
+       } else {
+               const gchar* _tmp36_;
+#line 227 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+               _tmp36_ = jsdoc_doc_parser_currentSourceFile;
+#line 227 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+               _tmp34_ = _tmp36_;
+#line 642 "Token.c"
+       }
+#line 234 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       _tmp38_ = self->outData;
+#line 234 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       if (_tmp38_ == NULL) {
+#line 234 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+               _tmp37_ = "";
+#line 650 "Token.c"
+       } else {
+               const gchar* _tmp39_;
+#line 234 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+               _tmp39_ = self->outData;
+#line 234 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+               _tmp37_ = _tmp39_;
+#line 657 "Token.c"
+       }
+#line 226 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       _tmp40_ = self->line;
+#line 226 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       _tmp41_ = self->id;
+#line 226 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       _tmp42_ = self->type;
+#line 230 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       _tmp43_ = g_enum_get_value (g_type_class_ref (JSDOC_TYPE_TOKEN_TYPE), _tmp42_);
+#line 226 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       _tmp44_ = self->data;
+#line 226 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       _tmp45_ = self->name;
+#line 233 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       _tmp46_ = g_enum_get_value (g_type_class_ref (JSDOC_TYPE_TOKEN_NAME), _tmp45_);
+#line 226 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       _tmp47_ = g_strdup_printf ("line:%s:%d, id %d, type %s, data : %s,  name %s, , outData: %s", _tmp34_, _tmp40_, _tmp41_, (_tmp43_ != NULL) ? _tmp43_->value_name : NULL, _tmp44_, (_tmp46_ != NULL) ? _tmp46_->value_name : NULL, _tmp37_);
+#line 226 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       result = _tmp47_;
+#line 226 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       return result;
+#line 679 "Token.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 256 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       return self ? g_object_ref (self) : NULL;
+#line 686 "Token.c"
+}
+
+
+void jsdoc_token_dump (JSDOCToken* self, const gchar* indent) {
+       const gchar* _tmp0_;
+       gchar* _tmp1_;
+       gchar* _tmp2_;
+       gboolean _tmp3_ = FALSE;
+       GeeArrayList* _tmp4_;
+       gboolean _tmp36_ = FALSE;
+       GeeHashMap* _tmp37_;
+#line 240 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       g_return_if_fail (self != NULL);
+#line 240 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       g_return_if_fail (indent != NULL);
+#line 242 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       _tmp0_ = indent;
+#line 242 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       _tmp1_ = jsdoc_token_asString (self);
+#line 242 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       _tmp2_ = _tmp1_;
+#line 242 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       g_print ("%s%s\n", _tmp0_, _tmp2_);
+#line 242 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       _g_free0 (_tmp2_);
+#line 243 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       _tmp4_ = self->items;
+#line 243 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       if (_tmp4_ != NULL) {
+#line 716 "Token.c"
+               GeeArrayList* _tmp5_;
+               gint _tmp6_;
+               gint _tmp7_;
+#line 243 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+               _tmp5_ = self->items;
+#line 243 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+               _tmp6_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp5_);
+#line 243 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+               _tmp7_ = _tmp6_;
+#line 243 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+               _tmp3_ = _tmp7_ > 0;
+#line 728 "Token.c"
+       } else {
+#line 243 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+               _tmp3_ = FALSE;
+#line 732 "Token.c"
+       }
+#line 243 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       if (_tmp3_) {
+#line 736 "Token.c"
+               {
+                       gint i = 0;
+#line 245 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                       i = 0;
+#line 741 "Token.c"
+                       {
+                               gboolean _tmp8_ = FALSE;
+#line 245 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                               _tmp8_ = TRUE;
+#line 245 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                               while (TRUE) {
+#line 748 "Token.c"
+                                       gint _tmp10_;
+                                       GeeArrayList* _tmp11_;
+                                       gint _tmp12_;
+                                       gint _tmp13_;
+                                       const gchar* _tmp14_;
+                                       gint _tmp15_;
+#line 245 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                                       if (!_tmp8_) {
+#line 757 "Token.c"
+                                               gint _tmp9_;
+#line 245 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                                               _tmp9_ = i;
+#line 245 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                                               i = _tmp9_ + 1;
+#line 763 "Token.c"
+                                       }
+#line 245 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                                       _tmp8_ = FALSE;
+#line 245 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                                       _tmp10_ = i;
+#line 245 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                                       _tmp11_ = self->items;
+#line 245 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                                       _tmp12_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp11_);
+#line 245 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                                       _tmp13_ = _tmp12_;
+#line 245 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                                       if (!(_tmp10_ < _tmp13_)) {
+#line 245 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                                               break;
+#line 779 "Token.c"
+                                       }
+#line 246 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                                       _tmp14_ = indent;
+#line 246 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                                       _tmp15_ = i;
+#line 246 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                                       g_print ("%s --ITEMS[%d] [ \n", _tmp14_, _tmp15_);
+#line 787 "Token.c"
+                                       {
+                                               gint j = 0;
+#line 247 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                                               j = 0;
+#line 792 "Token.c"
+                                               {
+                                                       gboolean _tmp16_ = FALSE;
+#line 247 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                                                       _tmp16_ = TRUE;
+#line 247 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                                                       while (TRUE) {
+#line 799 "Token.c"
+                                                               gint _tmp18_;
+                                                               GeeArrayList* _tmp19_;
+                                                               gint _tmp20_;
+                                                               gpointer _tmp21_;
+                                                               GeeArrayList* _tmp22_;
+                                                               gint _tmp23_;
+                                                               gint _tmp24_;
+                                                               gboolean _tmp25_;
+                                                               GeeArrayList* _tmp26_;
+                                                               gint _tmp27_;
+                                                               gpointer _tmp28_;
+                                                               GeeArrayList* _tmp29_;
+                                                               gint _tmp30_;
+                                                               gpointer _tmp31_;
+                                                               JSDOCToken* _tmp32_;
+                                                               const gchar* _tmp33_;
+                                                               gchar* _tmp34_;
+                                                               gchar* _tmp35_;
+#line 247 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                                                               if (!_tmp16_) {
+#line 820 "Token.c"
+                                                                       gint _tmp17_;
+#line 247 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                                                                       _tmp17_ = j;
+#line 247 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                                                                       j = _tmp17_ + 1;
+#line 826 "Token.c"
+                                                               }
+#line 247 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                                                               _tmp16_ = FALSE;
+#line 247 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                                                               _tmp18_ = j;
+#line 247 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                                                               _tmp19_ = self->items;
+#line 247 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                                                               _tmp20_ = i;
+#line 247 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                                                               _tmp21_ = gee_abstract_list_get ((GeeAbstractList*) _tmp19_, _tmp20_);
+#line 247 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                                                               _tmp22_ = (GeeArrayList*) _tmp21_;
+#line 247 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                                                               _tmp23_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp22_);
+#line 247 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                                                               _tmp24_ = _tmp23_;
+#line 247 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                                                               _tmp25_ = !(_tmp18_ < _tmp24_);
+#line 247 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                                                               _g_object_unref0 (_tmp22_);
+#line 247 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                                                               if (_tmp25_) {
+#line 247 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                                                                       break;
+#line 852 "Token.c"
+                                                               }
+#line 248 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                                                               _tmp26_ = self->items;
+#line 248 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                                                               _tmp27_ = i;
+#line 248 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                                                               _tmp28_ = gee_abstract_list_get ((GeeAbstractList*) _tmp26_, _tmp27_);
+#line 248 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                                                               _tmp29_ = (GeeArrayList*) _tmp28_;
+#line 248 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                                                               _tmp30_ = j;
+#line 248 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                                                               _tmp31_ = gee_abstract_list_get ((GeeAbstractList*) _tmp29_, _tmp30_);
+#line 248 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                                                               _tmp32_ = (JSDOCToken*) _tmp31_;
+#line 248 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                                                               _tmp33_ = indent;
+#line 248 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                                                               _tmp34_ = g_strconcat (_tmp33_, "  ", NULL);
+#line 248 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                                                               _tmp35_ = _tmp34_;
+#line 248 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                                                               jsdoc_token_dump (_tmp32_, _tmp35_);
+#line 248 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                                                               _g_free0 (_tmp35_);
+#line 248 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                                                               _g_object_unref0 (_tmp32_);
+#line 248 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                                                               _g_object_unref0 (_tmp29_);
+#line 882 "Token.c"
+                                                       }
+                                               }
+                                       }
+                               }
+                       }
+               }
+       }
+#line 252 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       _tmp37_ = self->props;
+#line 252 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       if (_tmp37_ != NULL) {
+#line 894 "Token.c"
+               GeeHashMap* _tmp38_;
+               gint _tmp39_;
+               gint _tmp40_;
+#line 252 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+               _tmp38_ = self->props;
+#line 252 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+               _tmp39_ = gee_abstract_map_get_size ((GeeAbstractMap*) _tmp38_);
+#line 252 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+               _tmp40_ = _tmp39_;
+#line 252 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+               _tmp36_ = _tmp40_ > 0;
+#line 906 "Token.c"
+       } else {
+#line 252 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+               _tmp36_ = FALSE;
+#line 910 "Token.c"
+       }
+#line 252 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       if (_tmp36_) {
+#line 914 "Token.c"
+               GeeMapIterator* m = NULL;
+               GeeHashMap* _tmp41_;
+               GeeMapIterator* _tmp42_;
+#line 253 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+               _tmp41_ = self->props;
+#line 253 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+               _tmp42_ = gee_abstract_map_map_iterator ((GeeAbstractMap*) _tmp41_);
+#line 253 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+               m = _tmp42_;
+#line 254 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+               while (TRUE) {
+#line 926 "Token.c"
+                       GeeMapIterator* _tmp43_;
+                       gboolean _tmp44_;
+                       const gchar* _tmp45_;
+                       GeeMapIterator* _tmp46_;
+                       gpointer _tmp47_;
+                       gchar* _tmp48_;
+                       GeeArrayList* vals = NULL;
+                       GeeMapIterator* _tmp49_;
+                       gpointer _tmp50_;
+                       JSDOCTokenKeyMap* _tmp51_;
+                       GeeArrayList* _tmp52_;
+                       GeeArrayList* _tmp53_;
+                       GeeArrayList* _tmp54_;
+#line 254 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                       _tmp43_ = m;
+#line 254 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                       _tmp44_ = gee_map_iterator_next (_tmp43_);
+#line 254 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                       if (!_tmp44_) {
+#line 254 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                               break;
+#line 948 "Token.c"
+                       }
+#line 255 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                       _tmp45_ = indent;
+#line 255 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                       _tmp46_ = m;
+#line 255 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                       _tmp47_ = gee_map_iterator_get_key (_tmp46_);
+#line 255 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                       _tmp48_ = (gchar*) _tmp47_;
+#line 255 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                       g_print ("%s --KEY %s ::  \n", _tmp45_, _tmp48_);
+#line 255 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                       _g_free0 (_tmp48_);
+#line 256 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                       _tmp49_ = m;
+#line 256 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                       _tmp50_ = gee_map_iterator_get_value (_tmp49_);
+#line 256 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                       _tmp51_ = (JSDOCTokenKeyMap*) _tmp50_;
+#line 256 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                       _tmp52_ = _tmp51_->vals;
+#line 256 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                       _tmp53_ = _g_object_ref0 (_tmp52_);
+#line 256 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                       _tmp54_ = _tmp53_;
+#line 256 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                       _g_object_unref0 (_tmp51_);
+#line 256 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                       vals = _tmp54_;
+#line 978 "Token.c"
+                       {
+                               gint i = 0;
+#line 257 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                               i = 0;
+#line 983 "Token.c"
+                               {
+                                       gboolean _tmp55_ = FALSE;
+#line 257 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                                       _tmp55_ = TRUE;
+#line 257 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                                       while (TRUE) {
+#line 990 "Token.c"
+                                               gint _tmp57_;
+                                               GeeArrayList* _tmp58_;
+                                               gint _tmp59_;
+                                               gint _tmp60_;
+                                               GeeArrayList* _tmp61_;
+                                               gint _tmp62_;
+                                               gpointer _tmp63_;
+                                               JSDOCToken* _tmp64_;
+                                               const gchar* _tmp65_;
+                                               gchar* _tmp66_;
+                                               gchar* _tmp67_;
+#line 257 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                                               if (!_tmp55_) {
+#line 1004 "Token.c"
+                                                       gint _tmp56_;
+#line 257 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                                                       _tmp56_ = i;
+#line 257 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                                                       i = _tmp56_ + 1;
+#line 1010 "Token.c"
+                                               }
+#line 257 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                                               _tmp55_ = FALSE;
+#line 257 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                                               _tmp57_ = i;
+#line 257 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                                               _tmp58_ = vals;
+#line 257 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                                               _tmp59_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp58_);
+#line 257 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                                               _tmp60_ = _tmp59_;
+#line 257 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                                               if (!(_tmp57_ < _tmp60_)) {
+#line 257 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                                                       break;
+#line 1026 "Token.c"
+                                               }
+#line 259 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                                               _tmp61_ = vals;
+#line 259 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                                               _tmp62_ = i;
+#line 259 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                                               _tmp63_ = gee_abstract_list_get ((GeeAbstractList*) _tmp61_, _tmp62_);
+#line 259 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                                               _tmp64_ = (JSDOCToken*) _tmp63_;
+#line 259 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                                               _tmp65_ = indent;
+#line 259 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                                               _tmp66_ = g_strconcat (_tmp65_, "  ", NULL);
+#line 259 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                                               _tmp67_ = _tmp66_;
+#line 259 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                                               jsdoc_token_dump (_tmp64_, _tmp67_);
+#line 259 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                                               _g_free0 (_tmp67_);
+#line 259 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                                               _g_object_unref0 (_tmp64_);
+#line 1048 "Token.c"
+                                       }
+                               }
+                       }
+#line 254 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                       _g_object_unref0 (vals);
+#line 1054 "Token.c"
+               }
+#line 252 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+               _g_object_unref0 (m);
+#line 1058 "Token.c"
+       }
+}
+
+
+gchar* jsdoc_token_toRaw (JSDOCToken* self, gint lvl) {
+       gchar* result = NULL;
+       gchar* ret = NULL;
+       const gchar* _tmp0_;
+       gchar* _tmp1_;
+       const gchar* _tmp17_;
+       const gchar* _tmp18_;
+       gchar* _tmp19_;
+#line 269 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 273 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       _tmp0_ = self->data;
+#line 273 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       _tmp1_ = g_strdup (_tmp0_);
+#line 273 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       ret = _tmp1_;
+#line 1079 "Token.c"
+       {
+               GeeArrayList* _ai_list = NULL;
+               GeeArrayList* _tmp2_;
+               GeeArrayList* _tmp3_;
+               gint _ai_size = 0;
+               GeeArrayList* _tmp4_;
+               gint _tmp5_;
+               gint _tmp6_;
+               gint _ai_index = 0;
+#line 275 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+               _tmp2_ = self->items;
+#line 275 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+               _tmp3_ = _g_object_ref0 (_tmp2_);
+#line 275 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+               _ai_list = _tmp3_;
+#line 275 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+               _tmp4_ = _ai_list;
+#line 275 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+               _tmp5_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp4_);
+#line 275 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+               _tmp6_ = _tmp5_;
+#line 275 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+               _ai_size = _tmp6_;
+#line 275 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+               _ai_index = -1;
+#line 275 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+               while (TRUE) {
+#line 1107 "Token.c"
+                       gint _tmp7_;
+                       gint _tmp8_;
+                       gint _tmp9_;
+                       GeeArrayList* ai = NULL;
+                       GeeArrayList* _tmp10_;
+                       gint _tmp11_;
+                       gpointer _tmp12_;
+                       gchar* str = NULL;
+                       gchar* _tmp13_;
+                       const gchar* _tmp14_;
+                       const gchar* _tmp15_;
+                       gchar* _tmp16_;
+#line 275 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                       _tmp7_ = _ai_index;
+#line 275 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                       _ai_index = _tmp7_ + 1;
+#line 275 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                       _tmp8_ = _ai_index;
+#line 275 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                       _tmp9_ = _ai_size;
+#line 275 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                       if (!(_tmp8_ < _tmp9_)) {
+#line 275 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                               break;
+#line 1132 "Token.c"
+                       }
+#line 275 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                       _tmp10_ = _ai_list;
+#line 275 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                       _tmp11_ = _ai_index;
+#line 275 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                       _tmp12_ = gee_abstract_list_get ((GeeAbstractList*) _tmp10_, _tmp11_);
+#line 275 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                       ai = (GeeArrayList*) _tmp12_;
+#line 277 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                       _tmp13_ = g_strdup ("");
+#line 277 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                       str = _tmp13_;
+#line 281 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                       _tmp14_ = ret;
+#line 281 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                       _tmp15_ = str;
+#line 281 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                       _tmp16_ = g_strconcat (_tmp14_, _tmp15_, NULL);
+#line 281 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                       _g_free0 (ret);
+#line 281 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                       ret = _tmp16_;
+#line 275 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                       _g_free0 (str);
+#line 275 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+                       _g_object_unref0 (ai);
+#line 1160 "Token.c"
+               }
+#line 275 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+               _g_object_unref0 (_ai_list);
+#line 1164 "Token.c"
+       }
+#line 297 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       _tmp17_ = self->prefix;
+#line 297 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       _tmp18_ = ret;
+#line 297 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       _tmp19_ = g_strconcat (_tmp17_, _tmp18_, NULL);
+#line 297 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       result = _tmp19_;
+#line 297 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       _g_free0 (ret);
+#line 297 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       return result;
+#line 1178 "Token.c"
+}
+
+
+gboolean jsdoc_token_isName (JSDOCToken* self, JSDOCTokenName what) {
+       gboolean result = FALSE;
+       JSDOCTokenName _tmp0_;
+       JSDOCTokenName _tmp1_;
+#line 314 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       g_return_val_if_fail (self != NULL, FALSE);
+#line 315 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       _tmp0_ = self->name;
+#line 315 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       _tmp1_ = what;
+#line 315 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       result = _tmp0_ == _tmp1_;
+#line 315 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       return result;
+#line 1196 "Token.c"
+}
+
+
+gboolean jsdoc_token_isType (JSDOCToken* self, JSDOCTokenType what) {
+       gboolean result = FALSE;
+       JSDOCTokenType _tmp0_;
+       JSDOCTokenType _tmp1_;
+#line 317 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       g_return_val_if_fail (self != NULL, FALSE);
+#line 318 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       _tmp0_ = self->type;
+#line 318 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       _tmp1_ = what;
+#line 318 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       result = _tmp0_ == _tmp1_;
+#line 318 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       return result;
+#line 1214 "Token.c"
+}
+
+
+static void jsdoc_token_class_init (JSDOCTokenClass * klass) {
+#line 153 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       jsdoc_token_parent_class = g_type_class_peek_parent (klass);
+#line 153 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       G_OBJECT_CLASS (klass)->finalize = jsdoc_token_finalize;
+#line 1223 "Token.c"
+}
+
+
+static void jsdoc_token_instance_init (JSDOCToken * self) {
+}
+
+
+static void jsdoc_token_finalize (GObject * obj) {
+       JSDOCToken * self;
+#line 153 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       self = G_TYPE_CHECK_INSTANCE_CAST (obj, JSDOC_TYPE_TOKEN, JSDOCToken);
+#line 157 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       _g_free0 (self->data);
+#line 161 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       _g_free0 (self->prefix);
+#line 163 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       _g_free0 (self->outData);
+#line 165 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       _g_object_unref0 (self->identifier);
+#line 170 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       _g_object_unref0 (self->items);
+#line 172 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       _g_object_unref0 (self->props);
+#line 173 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       _g_object_unref0 (self->keyseq);
+#line 153 "/home/alan/gitlive/roojspacker/src/jsdoc/Token.vala"
+       G_OBJECT_CLASS (jsdoc_token_parent_class)->finalize (obj);
+#line 1251 "Token.c"
+}
+
+
+GType jsdoc_token_get_type (void) {
+       static volatile gsize jsdoc_token_type_id__volatile = 0;
+       if (g_once_init_enter (&jsdoc_token_type_id__volatile)) {
+               static const GTypeInfo g_define_type_info = { sizeof (JSDOCTokenClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) jsdoc_token_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (JSDOCToken), 0, (GInstanceInitFunc) jsdoc_token_instance_init, NULL };
+               GType jsdoc_token_type_id;
+               jsdoc_token_type_id = g_type_register_static (G_TYPE_OBJECT, "JSDOCToken", &g_define_type_info, 0);
+               g_once_init_leave (&jsdoc_token_type_id__volatile, jsdoc_token_type_id);
+       }
+       return jsdoc_token_type_id__volatile;
+}
+
+
+
diff --git a/jsdoc/Token.vala b/jsdoc/Token.vala
new file mode 100644 (file)
index 0000000..ea232ec
--- /dev/null
@@ -0,0 +1,323 @@
+/**
+ *     @class Token
+ * 
+ *  @prop data {String} raw value of token
+ *  @prop type {String} type of token
+ *     TOKN  (unknown)          - name is UNKNOWN_TOKEN
+ * 
+ *     KEYW  (keyword)          - name is upper case version of keyword
+ *     NAME  (name/identifier)  - name is NAME
+ *     COMM  (comment)          - name is MULTI_LINE_COMM, JSDOC, SINGLE_LINE_COMM
+ *     PUNC  (puctuation)       - name is String description of punctionan (eg LEFTPARAM)
+ *     WHIT  (white space)      - name is SPACE,NEWLINE
+ *     STRN  (string)           - name is DOBULE_QUOTE, SINGLE_QUOTE
+ *     NUMB  (number)           - name is OCTAL,DECIMAL,HEC_DEC
+ *     REGX   (reg.expression)  - name is REGX
+ *  @prop name {String} see type details above
+ *  @prop identifier {Identifier} identifier class if relivant
+ * 
+ * 
+ * 
+ * old mappings:
+ * 
+ * Script.TOKidentifier  - type == 'NAME'
+ * Script.TOKassign  = data == '='
+ * Script.TOKsemicolon data == '';
+ * 
+ * 
+ * 
+*/
+namespace JSDOC
+{
+    int Token_id = 1;
+       public enum TokenType {
+               TOKN, //  (unknown)          - name is UNKNOWN_TOKEN
+               KEYW, //  (keyword)          - name is upper case version of keyword
+               NAME, //  (name/identifier)  - name is NAME
+               COMM, //  (comment)          - name is MULTI_LINE_COMM, JSDOC, SINGLE_LINE_COMM
+               PUNC, //  (puctuation)       - name is String description of punctionan (eg LEFTPARAM)
+               WHIT, //  (white space)      - name is SPACE,NEWLINE
+               STRN, //  (string)           - name is DOBULE_QUOTE, SINGLE_QUOTE
+               NUMB, //  (number)           - name is OCTAL,DECIMAL,HEC_DEC
+               REGX, //   (reg.expression)  - name is REGX
+               
+               VOID // BAD eof 
+       }
+       
+       
+       public enum TokenName {
+               UNKNOWN_TOKEN,
+               
+               // keywords.
+                       BREAK,
+                       CASE,
+                       CATCH,
+                       CONST,
+                       CONTINUE,
+                       DEFAULT,
+                       DELETE,
+                       DO,
+                       ELSE,
+                       FALSE,
+                       FINALLY,
+                       FOR,
+                       FUNCTION,
+                       IF,
+                       IN,
+                       INSTANCEOF,
+                       NEW,
+                       NULL,
+                       RETURN,
+                       SWITCH,
+                       THIS,
+                       THROW,
+                       TRUE,
+                       TRY,
+                       TYPEOF,
+                       VOID,
+                       WHILE,
+                       WITH,
+                       VAR,
+                       EVAL,
+               
+               NAME,
+               
+       
+               MULTI_LINE_COMM, JSDOC, SINGLE_LINE_COMM,
+               // punc
+                       SEMICOLON,
+                       COMMA,
+                       HOOK,
+                       COLON,
+                       OR,
+                       AND,
+                       BITWISE_OR,
+                       BITWISE_XOR,
+                       BITWISE_AND,
+                       STRICT_EQ,
+                       EQ,
+                       ASSIGN,
+                       STRICT_NE,
+                       NE,
+                       LSH,
+                       LE,
+                       LT,
+                       URSH,
+                       RSH,
+                       GE,
+                       GT,
+                       INCREMENT,
+                       DECREMENT,
+                       PLUS,
+                       MINUS,
+                       MUL,
+                       DIV,
+                       MOD,
+                       NOT,
+                       BITWISE_NOT,
+                       DOT,
+                       LEFT_BRACE, 
+                       RIGHT_BRACE,
+                       LEFT_CURLY,
+                       RIGHT_CURLY,
+                       LEFT_PAREN, // (
+                       RIGHT_PAREN,  // )
+
+               
+               
+               SPACE,NEWLINE,
+               DOUBLE_QUOTE, SINGLE_QUOTE,
+               OCTAL,DECIMAL,HEX_DEC,
+               REGX,
+               
+               START_OF_STREAM,
+               END_OF_STREAM,
+               
+               UNKNOWN // we should change void/void to void/unknown.
+       }
+
+       public class TokenKeyMap : Object {
+               public Token key;
+               public Gee.ArrayList<Token> vals;
+               
+               public TokenKeyMap()
+               {
+                       this.key = new Token("",TokenType.VOID, TokenName.VOID); 
+                       this.vals = new  Gee.ArrayList<Token>();
+               }
+               
+               
+       }
+
+
+    public class Token : Object {
+        
+        public int id;
+        
+        public string data;
+        public TokenType type;
+        public TokenName name;
+        public int line;
+        public string prefix; // white space prefix... (when outputing with WS)
+        
+        public string outData;
+        
+        public Identifier identifier;
+        
+        
+
+         // used to stuff tokens together when building a tree..
+        public Gee.ArrayList<Gee.ArrayList<Token>> items;
+        // for a object definition, key -> array of tokens..
+           public Gee.HashMap<string,TokenKeyMap> props;
+        public Gee.ArrayList<string> keyseq;        
+        // props??? what's this???
+        
+        public Token(string data, TokenType type, TokenName name, int line = -1)
+        {
+            this.data = data;
+            this.type = type;
+            this.name = name;
+            this.line = line;
+            this.prefix = "";    
+            this.outData = ""; // used by packer/scopeparser
+            this.identifier = null; // used by scope
+            this.id = Token_id++;
+            
+            // should we initialize when needed...?? to keep the usage down..
+            this.items = null;
+            this.props = null;
+            this.keyseq = null;
+            if (name == TokenName.LEFT_BRACE || 
+                       name == TokenName.LEFT_CURLY || 
+                   name == TokenName.LEFT_PAREN ) {
+            
+                       this.items = new Gee.ArrayList<Gee.ArrayList<Token>>();
+                       this.props = new Gee.HashMap<string,TokenKeyMap>();
+                       this.keyseq =  new Gee.ArrayList<string>();
+               }
+               
+        }
+    
+        public string asString()
+        {
+            if (this.name == TokenName.LEFT_BRACE || 
+                       this.name == TokenName.LEFT_CURLY || 
+                   this.name == TokenName.LEFT_PAREN ) {
+                   
+                       return "line: %s, %d, id %d, type %s, IS=%d,PS=%d,KS=%d, data : %s,  name %s, , outData: %s".printf(
+                                       DocParser.currentSourceFile == null ? "??" : DocParser.currentSourceFile,
+                               this.line,
+                               this.id,
+                               this.type.to_string(),
+                               this.name == TokenName.LEFT_BRACE ? -1 : this.items.size,
+                               this.name == TokenName.LEFT_BRACE ? -1 : this.props.size,
+                               this.name == TokenName.LEFT_BRACE ? -1 : this.keyseq.size,
+                               this.data,
+                               this.name.to_string(),
+                               this.outData == null ? "" : this.outData
+                       );
+                               
+                   
+                       }            
+            
+            
+            
+            return "line:%s:%d, id %d, type %s, data : %s,  name %s, , outData: %s".printf(
+                       DocParser.currentSourceFile == null ? "??" : DocParser.currentSourceFile,
+                    this.line,
+                    this.id,
+                    this.type.to_string(),
+               
+                    this.data,
+                    this.name.to_string(),
+                    this.outData == null ? "" : this.outData
+            );
+            
+        }
+        
+        
+        public void dump(string indent)
+               {
+               print("%s%s\n",indent, this.asString());
+               if (this.items != null && this.items.size > 0) {
+                       
+                               for (var i = 0;i < this.items.size; i++) {
+                               print("%s --ITEMS[%d] [ \n",indent,i);
+                                       for (var j = 0;j < this.items[i].size; j++) {
+                                               this.items[i][j].dump(indent + "  ");
+                                       }
+                               }
+                       }
+                       if (this.props != null && this.props.size > 0) {
+                               var m = this.props.map_iterator();
+                               while(m.next()) {
+                               print("%s --KEY %s ::  \n",indent,m.get_key());
+                               var vals = m.get_value().vals;
+                                       for (var i = 0;i < vals.size; i++) {
+
+                                               vals[i].dump(indent + "  ");
+                                       }
+                               }
+                       
+                       
+                       }
+                       
+               }
+        
+        
+        public string toRaw(int lvl = 0)
+        {
+            
+            
+            var ret =  this.data ;
+            
+            foreach(var ai in this.items ) {
+                // supposed to iterate properties???
+                string str = "";
+                //foreach( var it in ai) {
+                 //   str += it.toRaw(lvl+1);
+               // }
+                ret += str;
+            }
+            
+            /* -- what is a prop..
+            if (this.props) {
+                for (var i in this.props) {
+                    ret += this.props[i].key.toRaw(lvl+1) + ' : ';
+                    this.props[i].val.forEach( function(e) {
+                        ret+=e.toRaw(lvl+1);
+                    })
+                    
+                }
+            }
+            
+            */
+            
+            return this.prefix +   ret;
+             
+        }
+        /*
+        toJS : function() {
+            
+            try {
+                var _tmp = '';
+                eval( "_tmp = " + this.data);
+                return _tmp;
+            } catch( e) {
+                return "ERROR unparsable" + this.data;
+            }
+        },
+        */
+                        
+
+        public bool isName(TokenName what) {
+            return this.name == what;
+        }
+        public bool isType(TokenType what) {
+            return  this.type == what;
+        }
+        
+    }
+}
+  
\ No newline at end of file
diff --git a/jsdoc/TokenReader.c b/jsdoc/TokenReader.c
new file mode 100644 (file)
index 0000000..5b48c8d
--- /dev/null
@@ -0,0 +1,5623 @@
+/* TokenReader.c generated by valac 0.36.6, the Vala compiler
+ * generated from TokenReader.vala, do not modify */
+
+/*<script type="text/javascript">*/
+/* test code*/
+/*const Token   = imports.Token.Token;*/
+/*const Lang    = imports.Lang.Lang;*/
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gee.h>
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+
+
+#define JSDOC_TYPE_TOKEN_ARRAY (jsdoc_token_array_get_type ())
+#define JSDOC_TOKEN_ARRAY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_TOKEN_ARRAY, JSDOCTokenArray))
+#define JSDOC_TOKEN_ARRAY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_TOKEN_ARRAY, JSDOCTokenArrayClass))
+#define JSDOC_IS_TOKEN_ARRAY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_TOKEN_ARRAY))
+#define JSDOC_IS_TOKEN_ARRAY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_TOKEN_ARRAY))
+#define JSDOC_TOKEN_ARRAY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_TOKEN_ARRAY, JSDOCTokenArrayClass))
+
+typedef struct _JSDOCTokenArray JSDOCTokenArray;
+typedef struct _JSDOCTokenArrayClass JSDOCTokenArrayClass;
+typedef struct _JSDOCTokenArrayPrivate JSDOCTokenArrayPrivate;
+
+#define JSDOC_TYPE_TOKEN (jsdoc_token_get_type ())
+#define JSDOC_TOKEN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_TOKEN, JSDOCToken))
+#define JSDOC_TOKEN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_TOKEN, JSDOCTokenClass))
+#define JSDOC_IS_TOKEN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_TOKEN))
+#define JSDOC_IS_TOKEN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_TOKEN))
+#define JSDOC_TOKEN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_TOKEN, JSDOCTokenClass))
+
+typedef struct _JSDOCToken JSDOCToken;
+typedef struct _JSDOCTokenClass JSDOCTokenClass;
+
+#define JSDOC_TYPE_PACKER (jsdoc_packer_get_type ())
+#define JSDOC_PACKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_PACKER, JSDOCPacker))
+#define JSDOC_PACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_PACKER, JSDOCPackerClass))
+#define JSDOC_IS_PACKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_PACKER))
+#define JSDOC_IS_PACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_PACKER))
+#define JSDOC_PACKER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_PACKER, JSDOCPackerClass))
+
+typedef struct _JSDOCPacker JSDOCPacker;
+typedef struct _JSDOCPackerClass JSDOCPackerClass;
+
+#define JSDOC_TYPE_TOKEN_READER (jsdoc_token_reader_get_type ())
+#define JSDOC_TOKEN_READER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_TOKEN_READER, JSDOCTokenReader))
+#define JSDOC_TOKEN_READER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_TOKEN_READER, JSDOCTokenReaderClass))
+#define JSDOC_IS_TOKEN_READER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_TOKEN_READER))
+#define JSDOC_IS_TOKEN_READER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_TOKEN_READER))
+#define JSDOC_TOKEN_READER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_TOKEN_READER, JSDOCTokenReaderClass))
+
+typedef struct _JSDOCTokenReader JSDOCTokenReader;
+typedef struct _JSDOCTokenReaderClass JSDOCTokenReaderClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+#define JSDOC_TYPE_TOKEN_TYPE (jsdoc_token_type_get_type ())
+
+#define JSDOC_TYPE_TOKEN_NAME (jsdoc_token_name_get_type ())
+
+#define JSDOC_PACKER_TYPE_RESULT_TYPE (jsdoc_packer_result_type_get_type ())
+typedef struct _JSDOCTokenReaderPrivate JSDOCTokenReaderPrivate;
+typedef struct _JSDOCTokenPrivate JSDOCTokenPrivate;
+
+#define JSDOC_TYPE_IDENTIFIER (jsdoc_identifier_get_type ())
+#define JSDOC_IDENTIFIER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_IDENTIFIER, JSDOCIdentifier))
+#define JSDOC_IDENTIFIER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_IDENTIFIER, JSDOCIdentifierClass))
+#define JSDOC_IS_IDENTIFIER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_IDENTIFIER))
+#define JSDOC_IS_IDENTIFIER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_IDENTIFIER))
+#define JSDOC_IDENTIFIER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_IDENTIFIER, JSDOCIdentifierClass))
+
+typedef struct _JSDOCIdentifier JSDOCIdentifier;
+typedef struct _JSDOCIdentifierClass JSDOCIdentifierClass;
+
+#define JSDOC_TYPE_TOKEN_KEY_MAP (jsdoc_token_key_map_get_type ())
+#define JSDOC_TOKEN_KEY_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_TOKEN_KEY_MAP, JSDOCTokenKeyMap))
+#define JSDOC_TOKEN_KEY_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_TOKEN_KEY_MAP, JSDOCTokenKeyMapClass))
+#define JSDOC_IS_TOKEN_KEY_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_TOKEN_KEY_MAP))
+#define JSDOC_IS_TOKEN_KEY_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_TOKEN_KEY_MAP))
+#define JSDOC_TOKEN_KEY_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_TOKEN_KEY_MAP, JSDOCTokenKeyMapClass))
+
+typedef struct _JSDOCTokenKeyMap JSDOCTokenKeyMap;
+typedef struct _JSDOCTokenKeyMapClass JSDOCTokenKeyMapClass;
+#define _g_free0(var) (var = (g_free (var), NULL))
+
+#define JSDOC_TYPE_TEXT_STREAM (jsdoc_text_stream_get_type ())
+#define JSDOC_TEXT_STREAM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_TEXT_STREAM, JSDOCTextStream))
+#define JSDOC_TEXT_STREAM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_TEXT_STREAM, JSDOCTextStreamClass))
+#define JSDOC_IS_TEXT_STREAM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_TEXT_STREAM))
+#define JSDOC_IS_TEXT_STREAM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_TEXT_STREAM))
+#define JSDOC_TEXT_STREAM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_TEXT_STREAM, JSDOCTextStreamClass))
+
+typedef struct _JSDOCTextStream JSDOCTextStream;
+typedef struct _JSDOCTextStreamClass JSDOCTextStreamClass;
+
+#define JSDOC_TYPE_LANGCLASS (jsdoc_langclass_get_type ())
+#define JSDOC_LANGCLASS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_LANGCLASS, JSDOCLang_Class))
+#define JSDOC_LANGCLASS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_LANGCLASS, JSDOCLang_ClassClass))
+#define JSDOC_IS_LANGCLASS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_LANGCLASS))
+#define JSDOC_IS_LANGCLASS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_LANGCLASS))
+#define JSDOC_LANGCLASS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_LANGCLASS, JSDOCLang_ClassClass))
+
+typedef struct _JSDOCLang_Class JSDOCLang_Class;
+typedef struct _JSDOCLang_ClassClass JSDOCLang_ClassClass;
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+#define _g_string_free0(var) ((var == NULL) ? NULL : (var = (g_string_free (var, TRUE), NULL)))
+
+struct _JSDOCTokenArray {
+       GObject parent_instance;
+       JSDOCTokenArrayPrivate * priv;
+       GeeArrayList* tokens;
+};
+
+struct _JSDOCTokenArrayClass {
+       GObjectClass parent_class;
+};
+
+struct _JSDOCTokenArrayPrivate {
+       JSDOCPacker* packer;
+       JSDOCTokenReader* reader;
+       JSDOCToken* lastAdded;
+};
+
+typedef enum  {
+       JSDOC_TOKEN_TYPE_TOKN,
+       JSDOC_TOKEN_TYPE_KEYW,
+       JSDOC_TOKEN_TYPE_NAME,
+       JSDOC_TOKEN_TYPE_COMM,
+       JSDOC_TOKEN_TYPE_PUNC,
+       JSDOC_TOKEN_TYPE_WHIT,
+       JSDOC_TOKEN_TYPE_STRN,
+       JSDOC_TOKEN_TYPE_NUMB,
+       JSDOC_TOKEN_TYPE_REGX,
+       JSDOC_TOKEN_TYPE_VOID
+} JSDOCTokenType;
+
+typedef enum  {
+       JSDOC_TOKEN_NAME_UNKNOWN_TOKEN,
+       JSDOC_TOKEN_NAME_BREAK,
+       JSDOC_TOKEN_NAME_CASE,
+       JSDOC_TOKEN_NAME_CATCH,
+       JSDOC_TOKEN_NAME_CONST,
+       JSDOC_TOKEN_NAME_CONTINUE,
+       JSDOC_TOKEN_NAME_DEFAULT,
+       JSDOC_TOKEN_NAME_DELETE,
+       JSDOC_TOKEN_NAME_DO,
+       JSDOC_TOKEN_NAME_ELSE,
+       JSDOC_TOKEN_NAME_FALSE,
+       JSDOC_TOKEN_NAME_FINALLY,
+       JSDOC_TOKEN_NAME_FOR,
+       JSDOC_TOKEN_NAME_FUNCTION,
+       JSDOC_TOKEN_NAME_IF,
+       JSDOC_TOKEN_NAME_IN,
+       JSDOC_TOKEN_NAME_INSTANCEOF,
+       JSDOC_TOKEN_NAME_NEW,
+       JSDOC_TOKEN_NAME_NULL,
+       JSDOC_TOKEN_NAME_RETURN,
+       JSDOC_TOKEN_NAME_SWITCH,
+       JSDOC_TOKEN_NAME_THIS,
+       JSDOC_TOKEN_NAME_THROW,
+       JSDOC_TOKEN_NAME_TRUE,
+       JSDOC_TOKEN_NAME_TRY,
+       JSDOC_TOKEN_NAME_TYPEOF,
+       JSDOC_TOKEN_NAME_VOID,
+       JSDOC_TOKEN_NAME_WHILE,
+       JSDOC_TOKEN_NAME_WITH,
+       JSDOC_TOKEN_NAME_VAR,
+       JSDOC_TOKEN_NAME_EVAL,
+       JSDOC_TOKEN_NAME_NAME,
+       JSDOC_TOKEN_NAME_MULTI_LINE_COMM,
+       JSDOC_TOKEN_NAME_JSDOC,
+       JSDOC_TOKEN_NAME_SINGLE_LINE_COMM,
+       JSDOC_TOKEN_NAME_SEMICOLON,
+       JSDOC_TOKEN_NAME_COMMA,
+       JSDOC_TOKEN_NAME_HOOK,
+       JSDOC_TOKEN_NAME_COLON,
+       JSDOC_TOKEN_NAME_OR,
+       JSDOC_TOKEN_NAME_AND,
+       JSDOC_TOKEN_NAME_BITWISE_OR,
+       JSDOC_TOKEN_NAME_BITWISE_XOR,
+       JSDOC_TOKEN_NAME_BITWISE_AND,
+       JSDOC_TOKEN_NAME_STRICT_EQ,
+       JSDOC_TOKEN_NAME_EQ,
+       JSDOC_TOKEN_NAME_ASSIGN,
+       JSDOC_TOKEN_NAME_STRICT_NE,
+       JSDOC_TOKEN_NAME_NE,
+       JSDOC_TOKEN_NAME_LSH,
+       JSDOC_TOKEN_NAME_LE,
+       JSDOC_TOKEN_NAME_LT,
+       JSDOC_TOKEN_NAME_URSH,
+       JSDOC_TOKEN_NAME_RSH,
+       JSDOC_TOKEN_NAME_GE,
+       JSDOC_TOKEN_NAME_GT,
+       JSDOC_TOKEN_NAME_INCREMENT,
+       JSDOC_TOKEN_NAME_DECREMENT,
+       JSDOC_TOKEN_NAME_PLUS,
+       JSDOC_TOKEN_NAME_MINUS,
+       JSDOC_TOKEN_NAME_MUL,
+       JSDOC_TOKEN_NAME_DIV,
+       JSDOC_TOKEN_NAME_MOD,
+       JSDOC_TOKEN_NAME_NOT,
+       JSDOC_TOKEN_NAME_BITWISE_NOT,
+       JSDOC_TOKEN_NAME_DOT,
+       JSDOC_TOKEN_NAME_LEFT_BRACE,
+       JSDOC_TOKEN_NAME_RIGHT_BRACE,
+       JSDOC_TOKEN_NAME_LEFT_CURLY,
+       JSDOC_TOKEN_NAME_RIGHT_CURLY,
+       JSDOC_TOKEN_NAME_LEFT_PAREN,
+       JSDOC_TOKEN_NAME_RIGHT_PAREN,
+       JSDOC_TOKEN_NAME_SPACE,
+       JSDOC_TOKEN_NAME_NEWLINE,
+       JSDOC_TOKEN_NAME_DOUBLE_QUOTE,
+       JSDOC_TOKEN_NAME_SINGLE_QUOTE,
+       JSDOC_TOKEN_NAME_OCTAL,
+       JSDOC_TOKEN_NAME_DECIMAL,
+       JSDOC_TOKEN_NAME_HEX_DEC,
+       JSDOC_TOKEN_NAME_REGX,
+       JSDOC_TOKEN_NAME_START_OF_STREAM,
+       JSDOC_TOKEN_NAME_END_OF_STREAM,
+       JSDOC_TOKEN_NAME_UNKNOWN
+} JSDOCTokenName;
+
+typedef enum  {
+       JSDOC_PACKER_RESULT_TYPE_err,
+       JSDOC_PACKER_RESULT_TYPE_warn
+} JSDOCPackerResultType;
+
+struct _JSDOCTokenReader {
+       GObject parent_instance;
+       JSDOCTokenReaderPrivate * priv;
+       gboolean collapseWhite;
+       gboolean keepDocs;
+       gboolean keepWhite;
+       gboolean keepComments;
+       gboolean sepIdents;
+       gchar* filename;
+       gboolean ignoreBadGrammer;
+};
+
+struct _JSDOCTokenReaderClass {
+       GObjectClass parent_class;
+};
+
+struct _JSDOCToken {
+       GObject parent_instance;
+       JSDOCTokenPrivate * priv;
+       gint id;
+       gchar* data;
+       JSDOCTokenType type;
+       JSDOCTokenName name;
+       gint line;
+       gchar* prefix;
+       gchar* outData;
+       JSDOCIdentifier* identifier;
+       GeeArrayList* items;
+       GeeHashMap* props;
+       GeeArrayList* keyseq;
+};
+
+struct _JSDOCTokenClass {
+       GObjectClass parent_class;
+};
+
+typedef enum  {
+       JSDOC_TOKENREADER_ERROR_ArgumentError,
+       JSDOC_TOKENREADER_ERROR_SyntaxError
+} JSDOCTokenReader_Error;
+#define JSDOC_TOKENREADER_ERROR jsdoc_tokenreader_error_quark ()
+struct _JSDOCTokenReaderPrivate {
+       gint line;
+       JSDOCPacker* packer;
+};
+
+typedef enum  {
+       JSDOC_LANG_ERROR_ArgumentError
+} JSDOCLangError;
+#define JSDOC_LANG_ERROR jsdoc_lang_error_quark ()
+
+static gpointer jsdoc_token_array_parent_class = NULL;
+static gpointer jsdoc_token_reader_parent_class = NULL;
+extern JSDOCLang_Class* jsdoc_Lang;
+
+GType jsdoc_token_array_get_type (void) G_GNUC_CONST;
+GType jsdoc_token_get_type (void) G_GNUC_CONST;
+GType jsdoc_packer_get_type (void) G_GNUC_CONST;
+GType jsdoc_token_reader_get_type (void) G_GNUC_CONST;
+#define JSDOC_TOKEN_ARRAY_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), JSDOC_TYPE_TOKEN_ARRAY, JSDOCTokenArrayPrivate))
+enum  {
+       JSDOC_TOKEN_ARRAY_DUMMY_PROPERTY,
+       JSDOC_TOKEN_ARRAY_LENGTH_PROPERTY
+};
+JSDOCTokenArray* jsdoc_token_array_new (JSDOCPacker* packer, JSDOCTokenReader* reader);
+JSDOCTokenArray* jsdoc_token_array_construct (GType object_type, JSDOCPacker* packer, JSDOCTokenReader* reader);
+JSDOCToken* jsdoc_token_array_last (JSDOCTokenArray* self);
+JSDOCToken* jsdoc_token_array_lastSym (JSDOCTokenArray* self);
+GType jsdoc_token_type_get_type (void) G_GNUC_CONST;
+gboolean jsdoc_token_isType (JSDOCToken* self, JSDOCTokenType what);
+void jsdoc_token_array_push (JSDOCTokenArray* self, JSDOCToken* t);
+GType jsdoc_token_name_get_type (void) G_GNUC_CONST;
+gboolean jsdoc_token_isName (JSDOCToken* self, JSDOCTokenName what);
+GType jsdoc_packer_result_type_get_type (void) G_GNUC_CONST;
+void jsdoc_packer_logError (JSDOCPacker* self, JSDOCPackerResultType type, const gchar* filename, gint line, const gchar* message);
+GType jsdoc_identifier_get_type (void) G_GNUC_CONST;
+GType jsdoc_token_key_map_get_type (void) G_GNUC_CONST;
+const gchar* jsdoc_token_name_to_string (JSDOCTokenName self);
+JSDOCToken* jsdoc_token_array_pop (JSDOCTokenArray* self);
+JSDOCToken* jsdoc_token_array_get (JSDOCTokenArray* self, gint i);
+void jsdoc_token_array_dump (JSDOCTokenArray* self);
+gchar* jsdoc_token_asString (JSDOCToken* self);
+gint jsdoc_token_array_get_length (JSDOCTokenArray* self);
+static void jsdoc_token_array_finalize (GObject * obj);
+static void _vala_jsdoc_token_array_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
+GQuark jsdoc_tokenreader_error_quark (void);
+#define JSDOC_TOKEN_READER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), JSDOC_TYPE_TOKEN_READER, JSDOCTokenReaderPrivate))
+enum  {
+       JSDOC_TOKEN_READER_DUMMY_PROPERTY
+};
+JSDOCTokenReader* jsdoc_token_reader_new (JSDOCPacker* packer);
+JSDOCTokenReader* jsdoc_token_reader_construct (GType object_type, JSDOCPacker* packer);
+GType jsdoc_text_stream_get_type (void) G_GNUC_CONST;
+JSDOCTokenArray* jsdoc_token_reader_tokenize (JSDOCTokenReader* self, JSDOCTextStream* stream);
+gboolean jsdoc_text_stream_lookEOF (JSDOCTextStream* self, gint n);
+gboolean jsdoc_token_reader_read_mlcomment (JSDOCTokenReader* self, JSDOCTextStream* stream, JSDOCTokenArray* tokens);
+gboolean jsdoc_token_reader_read_slcomment (JSDOCTokenReader* self, JSDOCTextStream* stream, JSDOCTokenArray* tokens);
+gboolean jsdoc_token_reader_read_dbquote (JSDOCTokenReader* self, JSDOCTextStream* stream, JSDOCTokenArray* tokens);
+gboolean jsdoc_token_reader_read_snquote (JSDOCTokenReader* self, JSDOCTextStream* stream, JSDOCTokenArray* tokens);
+gboolean jsdoc_token_reader_read_regx (JSDOCTokenReader* self, JSDOCTextStream* stream, JSDOCTokenArray* tokens);
+gboolean jsdoc_token_reader_read_numb (JSDOCTokenReader* self, JSDOCTextStream* stream, JSDOCTokenArray* tokens);
+gboolean jsdoc_token_reader_read_punc (JSDOCTokenReader* self, JSDOCTextStream* stream, JSDOCTokenArray* tokens);
+gboolean jsdoc_token_reader_read_newline (JSDOCTokenReader* self, JSDOCTextStream* stream, JSDOCTokenArray* tokens);
+gboolean jsdoc_token_reader_read_space (JSDOCTokenReader* self, JSDOCTextStream* stream, JSDOCTokenArray* tokens);
+gboolean jsdoc_token_reader_read_word (JSDOCTokenReader* self, JSDOCTextStream* stream, JSDOCTokenArray* tokens);
+gchar* jsdoc_text_stream_nextS (JSDOCTextStream* self, gint n);
+JSDOCToken* jsdoc_token_new (const gchar* data, JSDOCTokenType type, JSDOCTokenName name, gint line);
+JSDOCToken* jsdoc_token_construct (GType object_type, const gchar* data, JSDOCTokenType type, JSDOCTokenName name, gint line);
+gint jsdoc_token_reader_findPuncToken (JSDOCTokenReader* self, JSDOCTokenArray* tokens, const gchar* data, gint n);
+JSDOCToken* jsdoc_token_reader_lastSym (JSDOCTokenReader* self, JSDOCTokenArray* tokens, gint n);
+GType jsdoc_langclass_get_type (void) G_GNUC_CONST;
+gboolean jsdoc_langclass_isWordChar (JSDOCLang_Class* self, gchar c);
+gchar jsdoc_text_stream_lookC (JSDOCTextStream* self, gint n);
+gchar jsdoc_text_stream_nextC (JSDOCTextStream* self);
+GQuark jsdoc_lang_error_quark (void);
+JSDOCTokenName jsdoc_langclass_keyword (JSDOCLang_Class* self, const gchar* word, GError** error);
+JSDOCTokenName jsdoc_langclass_puncFirstString (JSDOCLang_Class* self, gchar ch);
+JSDOCTokenName jsdoc_langclass_puncString (JSDOCLang_Class* self, const gchar* ch);
+gboolean jsdoc_langclass_isSpace (JSDOCLang_Class* self, const gchar* str);
+gchar* jsdoc_text_stream_lookS (JSDOCTextStream* self, gint n);
+gboolean jsdoc_langclass_isNewline (JSDOCLang_Class* self, const gchar* str);
+gboolean jsdoc_token_reader_read_hex (JSDOCTokenReader* self, JSDOCTextStream* stream, JSDOCTokenArray* tokens);
+gboolean jsdoc_langclass_isNumber (JSDOCLang_Class* self, const gchar* str);
+gboolean jsdoc_langclass_isHexDec (JSDOCLang_Class* self, const gchar* str);
+static void jsdoc_token_reader_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 gpointer _g_object_ref0 (gpointer self) {
+#line 31 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       return self ? g_object_ref (self) : NULL;
+#line 364 "TokenReader.c"
+}
+
+
+JSDOCTokenArray* jsdoc_token_array_construct (GType object_type, JSDOCPacker* packer, JSDOCTokenReader* reader) {
+       JSDOCTokenArray * self = NULL;
+       JSDOCPacker* _tmp0_;
+       JSDOCPacker* _tmp1_;
+       JSDOCTokenReader* _tmp2_;
+       JSDOCTokenReader* _tmp3_;
+       GeeArrayList* _tmp4_;
+#line 29 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       g_return_val_if_fail (reader != NULL, NULL);
+#line 29 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       self = (JSDOCTokenArray*) g_object_new (object_type, NULL);
+#line 31 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp0_ = packer;
+#line 31 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 31 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _g_object_unref0 (self->priv->packer);
+#line 31 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       self->priv->packer = _tmp1_;
+#line 32 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp2_ = reader;
+#line 32 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp3_ = _g_object_ref0 (_tmp2_);
+#line 32 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _g_object_unref0 (self->priv->reader);
+#line 32 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       self->priv->reader = _tmp3_;
+#line 33 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp4_ = gee_array_list_new (JSDOC_TYPE_TOKEN, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL);
+#line 33 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _g_object_unref0 (self->tokens);
+#line 33 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       self->tokens = _tmp4_;
+#line 29 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       return self;
+#line 403 "TokenReader.c"
+}
+
+
+JSDOCTokenArray* jsdoc_token_array_new (JSDOCPacker* packer, JSDOCTokenReader* reader) {
+#line 29 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       return jsdoc_token_array_construct (JSDOC_TYPE_TOKEN_ARRAY, packer, reader);
+#line 410 "TokenReader.c"
+}
+
+
+JSDOCToken* jsdoc_token_array_last (JSDOCTokenArray* self) {
+       JSDOCToken* result = NULL;
+       GeeArrayList* _tmp0_;
+       gint _tmp1_;
+       gint _tmp2_;
+#line 36 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp0_ = self->tokens;
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp1_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp0_);
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp2_ = _tmp1_;
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       if (_tmp2_ > 0) {
+#line 429 "TokenReader.c"
+               GeeArrayList* _tmp3_;
+               GeeArrayList* _tmp4_;
+               gint _tmp5_;
+               gint _tmp6_;
+               gpointer _tmp7_;
+#line 38 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp3_ = self->tokens;
+#line 38 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp4_ = self->tokens;
+#line 38 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp5_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp4_);
+#line 38 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp6_ = _tmp5_;
+#line 38 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp7_ = gee_abstract_list_get ((GeeAbstractList*) _tmp3_, _tmp6_ - 1);
+#line 38 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               result = (JSDOCToken*) _tmp7_;
+#line 38 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               return result;
+#line 449 "TokenReader.c"
+       }
+#line 40 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       result = NULL;
+#line 40 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       return result;
+#line 455 "TokenReader.c"
+}
+
+
+JSDOCToken* jsdoc_token_array_lastSym (JSDOCTokenArray* self) {
+       JSDOCToken* result = NULL;
+#line 42 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 463 "TokenReader.c"
+       {
+               gint i = 0;
+               GeeArrayList* _tmp0_;
+               gint _tmp1_;
+               gint _tmp2_;
+#line 43 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp0_ = self->tokens;
+#line 43 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp1_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp0_);
+#line 43 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp2_ = _tmp1_;
+#line 43 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               i = _tmp2_ - 1;
+#line 477 "TokenReader.c"
+               {
+                       gboolean _tmp3_ = FALSE;
+#line 43 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp3_ = TRUE;
+#line 43 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       while (TRUE) {
+#line 484 "TokenReader.c"
+                               gint _tmp5_;
+                               gboolean _tmp6_ = FALSE;
+                               GeeArrayList* _tmp7_;
+                               gint _tmp8_;
+                               gpointer _tmp9_;
+                               JSDOCToken* _tmp10_;
+                               gboolean _tmp11_;
+                               gboolean _tmp12_;
+#line 43 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               if (!_tmp3_) {
+#line 495 "TokenReader.c"
+                                       gint _tmp4_;
+#line 43 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp4_ = i;
+#line 43 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       i = _tmp4_ - 1;
+#line 501 "TokenReader.c"
+                               }
+#line 43 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp3_ = FALSE;
+#line 43 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp5_ = i;
+#line 43 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               if (!(_tmp5_ >= 0)) {
+#line 43 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       break;
+#line 511 "TokenReader.c"
+                               }
+#line 44 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp7_ = self->tokens;
+#line 44 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp8_ = i;
+#line 44 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp9_ = gee_abstract_list_get ((GeeAbstractList*) _tmp7_, _tmp8_);
+#line 44 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp10_ = (JSDOCToken*) _tmp9_;
+#line 44 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp11_ = jsdoc_token_isType (_tmp10_, JSDOC_TOKEN_TYPE_WHIT);
+#line 44 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp12_ = _tmp11_;
+#line 44 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _g_object_unref0 (_tmp10_);
+#line 44 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               if (_tmp12_) {
+#line 44 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp6_ = TRUE;
+#line 531 "TokenReader.c"
+                               } else {
+                                       GeeArrayList* _tmp13_;
+                                       gint _tmp14_;
+                                       gpointer _tmp15_;
+                                       JSDOCToken* _tmp16_;
+                                       gboolean _tmp17_;
+#line 44 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp13_ = self->tokens;
+#line 44 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp14_ = i;
+#line 44 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp15_ = gee_abstract_list_get ((GeeAbstractList*) _tmp13_, _tmp14_);
+#line 44 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp16_ = (JSDOCToken*) _tmp15_;
+#line 44 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp17_ = jsdoc_token_isType (_tmp16_, JSDOC_TOKEN_TYPE_COMM);
+#line 44 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp6_ = _tmp17_;
+#line 44 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _g_object_unref0 (_tmp16_);
+#line 552 "TokenReader.c"
+                               }
+#line 44 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               if (!_tmp6_) {
+#line 556 "TokenReader.c"
+                                       GeeArrayList* _tmp18_;
+                                       gint _tmp19_;
+                                       gpointer _tmp20_;
+#line 45 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp18_ = self->tokens;
+#line 45 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp19_ = i;
+#line 45 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp20_ = gee_abstract_list_get ((GeeAbstractList*) _tmp18_, _tmp19_);
+#line 45 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       result = (JSDOCToken*) _tmp20_;
+#line 45 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       return result;
+#line 570 "TokenReader.c"
+                               }
+                       }
+               }
+       }
+#line 48 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       result = NULL;
+#line 48 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       return result;
+#line 579 "TokenReader.c"
+}
+
+
+void jsdoc_token_array_push (JSDOCTokenArray* self, JSDOCToken* t) {
+       JSDOCToken* _tmp0_;
+       GeeArrayList* _tmp111_;
+       JSDOCToken* _tmp112_;
+       gboolean _tmp113_ = FALSE;
+       JSDOCToken* _tmp114_;
+       gboolean _tmp115_;
+#line 52 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       g_return_if_fail (self != NULL);
+#line 52 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       g_return_if_fail (t != NULL);
+#line 54 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp0_ = self->priv->lastAdded;
+#line 54 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       if (_tmp0_ != NULL) {
+#line 598 "TokenReader.c"
+               gboolean _tmp1_ = FALSE;
+               gboolean _tmp2_ = FALSE;
+               gboolean _tmp3_ = FALSE;
+               gboolean _tmp4_ = FALSE;
+               JSDOCToken* _tmp5_;
+               gboolean _tmp6_;
+               gboolean _tmp62_ = FALSE;
+               gboolean _tmp63_ = FALSE;
+               JSDOCToken* _tmp64_;
+               gboolean _tmp65_;
+#line 58 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp5_ = self->priv->lastAdded;
+#line 58 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp6_ = jsdoc_token_isType (_tmp5_, JSDOC_TOKEN_TYPE_NAME);
+#line 58 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               if (_tmp6_) {
+#line 58 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp4_ = TRUE;
+#line 617 "TokenReader.c"
+               } else {
+                       JSDOCToken* _tmp7_;
+                       gboolean _tmp8_;
+#line 59 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp7_ = self->priv->lastAdded;
+#line 59 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp8_ = jsdoc_token_isType (_tmp7_, JSDOC_TOKEN_TYPE_STRN);
+#line 59 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp4_ = _tmp8_;
+#line 627 "TokenReader.c"
+               }
+#line 58 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               if (_tmp4_) {
+#line 58 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp3_ = TRUE;
+#line 633 "TokenReader.c"
+               } else {
+                       JSDOCToken* _tmp9_;
+                       gboolean _tmp10_;
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp9_ = self->priv->lastAdded;
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp10_ = jsdoc_token_isType (_tmp9_, JSDOC_TOKEN_TYPE_NUMB);
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp3_ = _tmp10_;
+#line 643 "TokenReader.c"
+               }
+#line 58 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               if (_tmp3_) {
+#line 58 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp2_ = TRUE;
+#line 649 "TokenReader.c"
+               } else {
+                       gboolean _tmp11_ = FALSE;
+                       JSDOCToken* _tmp12_;
+                       gboolean _tmp13_;
+#line 62 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp12_ = self->priv->lastAdded;
+#line 62 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp13_ = jsdoc_token_isType (_tmp12_, JSDOC_TOKEN_TYPE_KEYW);
+#line 62 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       if (_tmp13_) {
+#line 660 "TokenReader.c"
+                               gboolean _tmp14_ = FALSE;
+                               JSDOCToken* _tmp15_;
+                               gboolean _tmp16_;
+#line 64 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp15_ = self->priv->lastAdded;
+#line 64 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp16_ = jsdoc_token_isName (_tmp15_, JSDOC_TOKEN_NAME_TRUE);
+#line 64 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               if (_tmp16_) {
+#line 64 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp14_ = TRUE;
+#line 672 "TokenReader.c"
+                               } else {
+                                       JSDOCToken* _tmp17_;
+                                       gboolean _tmp18_;
+#line 64 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp17_ = self->priv->lastAdded;
+#line 64 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp18_ = jsdoc_token_isName (_tmp17_, JSDOC_TOKEN_NAME_FALSE);
+#line 64 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp14_ = _tmp18_;
+#line 682 "TokenReader.c"
+                               }
+#line 64 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp11_ = _tmp14_;
+#line 686 "TokenReader.c"
+                       } else {
+#line 62 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp11_ = FALSE;
+#line 690 "TokenReader.c"
+                       }
+#line 62 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp2_ = _tmp11_;
+#line 694 "TokenReader.c"
+               }
+#line 57 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               if (_tmp2_) {
+#line 698 "TokenReader.c"
+                       gboolean _tmp19_ = FALSE;
+                       gboolean _tmp20_ = FALSE;
+                       gboolean _tmp21_ = FALSE;
+                       JSDOCToken* _tmp22_;
+                       gboolean _tmp23_;
+#line 70 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp22_ = t;
+#line 70 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp23_ = jsdoc_token_isType (_tmp22_, JSDOC_TOKEN_TYPE_NAME);
+#line 70 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       if (_tmp23_) {
+#line 70 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp21_ = TRUE;
+#line 712 "TokenReader.c"
+                       } else {
+                               JSDOCToken* _tmp24_;
+                               gboolean _tmp25_;
+#line 71 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp24_ = t;
+#line 71 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp25_ = jsdoc_token_isType (_tmp24_, JSDOC_TOKEN_TYPE_STRN);
+#line 71 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp21_ = _tmp25_;
+#line 722 "TokenReader.c"
+                       }
+#line 70 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       if (_tmp21_) {
+#line 70 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp20_ = TRUE;
+#line 728 "TokenReader.c"
+                       } else {
+                               JSDOCToken* _tmp26_;
+                               gboolean _tmp27_;
+#line 72 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp26_ = t;
+#line 72 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp27_ = jsdoc_token_isType (_tmp26_, JSDOC_TOKEN_TYPE_NUMB);
+#line 72 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp20_ = _tmp27_;
+#line 738 "TokenReader.c"
+                       }
+#line 70 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       if (_tmp20_) {
+#line 70 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp19_ = TRUE;
+#line 744 "TokenReader.c"
+                       } else {
+                               gboolean _tmp28_ = FALSE;
+                               JSDOCToken* _tmp29_;
+                               gboolean _tmp30_;
+#line 73 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp29_ = t;
+#line 73 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp30_ = jsdoc_token_isType (_tmp29_, JSDOC_TOKEN_TYPE_KEYW);
+#line 73 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               if (_tmp30_) {
+#line 755 "TokenReader.c"
+                                       gboolean _tmp31_ = FALSE;
+                                       gboolean _tmp32_ = FALSE;
+                                       JSDOCToken* _tmp33_;
+                                       gboolean _tmp34_;
+#line 74 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp33_ = t;
+#line 74 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp34_ = jsdoc_token_isName (_tmp33_, JSDOC_TOKEN_NAME_IN);
+#line 74 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       if (_tmp34_) {
+#line 74 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                               _tmp32_ = TRUE;
+#line 768 "TokenReader.c"
+                                       } else {
+                                               JSDOCToken* _tmp35_;
+                                               gboolean _tmp36_;
+#line 74 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                               _tmp35_ = t;
+#line 74 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                               _tmp36_ = jsdoc_token_isName (_tmp35_, JSDOC_TOKEN_NAME_INSTANCEOF);
+#line 74 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                               _tmp32_ = _tmp36_;
+#line 778 "TokenReader.c"
+                                       }
+#line 74 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       if (_tmp32_) {
+#line 74 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                               _tmp31_ = TRUE;
+#line 784 "TokenReader.c"
+                                       } else {
+                                               JSDOCToken* _tmp37_;
+                                               gboolean _tmp38_;
+#line 74 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                               _tmp37_ = t;
+#line 74 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                               _tmp38_ = jsdoc_token_isName (_tmp37_, JSDOC_TOKEN_NAME_INSTANCEOF);
+#line 74 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                               _tmp31_ = _tmp38_;
+#line 794 "TokenReader.c"
+                                       }
+#line 74 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp28_ = !_tmp31_;
+#line 798 "TokenReader.c"
+                               } else {
+#line 73 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp28_ = FALSE;
+#line 802 "TokenReader.c"
+                               }
+#line 73 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp19_ = _tmp28_;
+#line 806 "TokenReader.c"
+                       }
+#line 70 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp1_ = _tmp19_;
+#line 810 "TokenReader.c"
+               } else {
+#line 58 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp1_ = FALSE;
+#line 814 "TokenReader.c"
+               }
+#line 56 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               if (_tmp1_) {
+#line 818 "TokenReader.c"
+                       JSDOCPacker* _tmp39_;
+#line 79 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp39_ = self->priv->packer;
+#line 79 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       if (_tmp39_ != NULL) {
+#line 824 "TokenReader.c"
+                               JSDOCPacker* _tmp40_;
+                               JSDOCTokenReader* _tmp41_;
+                               const gchar* _tmp42_;
+                               JSDOCToken* _tmp43_;
+                               gint _tmp44_;
+                               JSDOCToken* _tmp45_;
+                               const gchar* _tmp46_;
+                               gchar* _tmp47_;
+                               gchar* _tmp48_;
+                               gchar* _tmp49_;
+                               gchar* _tmp50_;
+                               JSDOCToken* _tmp51_;
+                               JSDOCTokenName _tmp52_;
+                               GEnumValue* _tmp53_;
+                               gchar* _tmp54_;
+                               gchar* _tmp55_;
+                               gchar* _tmp56_;
+                               gchar* _tmp57_;
+                               JSDOCToken* _tmp58_;
+                               const gchar* _tmp59_;
+                               gchar* _tmp60_;
+                               gchar* _tmp61_;
+#line 80 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp40_ = self->priv->packer;
+#line 80 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp41_ = self->priv->reader;
+#line 80 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp42_ = _tmp41_->filename;
+#line 80 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp43_ = t;
+#line 80 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp44_ = _tmp43_->line;
+#line 80 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp45_ = self->priv->lastAdded;
+#line 80 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp46_ = _tmp45_->data;
+#line 80 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp47_ = g_strconcat ("'", _tmp46_, NULL);
+#line 80 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp48_ = _tmp47_;
+#line 80 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp49_ = g_strconcat (_tmp48_, "' token followed by ", NULL);
+#line 80 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp50_ = _tmp49_;
+#line 80 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp51_ = t;
+#line 80 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp52_ = _tmp51_->name;
+#line 84 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp53_ = g_enum_get_value (g_type_class_ref (JSDOC_TYPE_TOKEN_NAME), _tmp52_);
+#line 80 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp54_ = g_strconcat (_tmp50_, (_tmp53_ != NULL) ? _tmp53_->value_name : NULL, NULL);
+#line 80 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp55_ = _tmp54_;
+#line 80 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp56_ = g_strconcat (_tmp55_, ":", NULL);
+#line 80 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp57_ = _tmp56_;
+#line 80 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp58_ = t;
+#line 80 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp59_ = _tmp58_->data;
+#line 80 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp60_ = g_strconcat (_tmp57_, _tmp59_, NULL);
+#line 80 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp61_ = _tmp60_;
+#line 80 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               jsdoc_packer_logError (_tmp40_, JSDOC_PACKER_RESULT_TYPE_err, _tmp42_, _tmp44_, _tmp61_);
+#line 80 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _g_free0 (_tmp61_);
+#line 80 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _g_free0 (_tmp57_);
+#line 80 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _g_free0 (_tmp55_);
+#line 80 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _g_free0 (_tmp50_);
+#line 80 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _g_free0 (_tmp48_);
+#line 903 "TokenReader.c"
+                       }
+               }
+#line 93 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp64_ = self->priv->lastAdded;
+#line 93 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp65_ = jsdoc_token_isName (_tmp64_, JSDOC_TOKEN_NAME_RIGHT_BRACE);
+#line 93 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               if (_tmp65_) {
+#line 93 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp63_ = TRUE;
+#line 914 "TokenReader.c"
+               } else {
+                       JSDOCToken* _tmp66_;
+                       gboolean _tmp67_;
+#line 93 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp66_ = self->priv->lastAdded;
+#line 93 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp67_ = jsdoc_token_isName (_tmp66_, JSDOC_TOKEN_NAME_RIGHT_PAREN);
+#line 93 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp63_ = _tmp67_;
+#line 924 "TokenReader.c"
+               }
+#line 93 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               if (_tmp63_) {
+#line 928 "TokenReader.c"
+                       gboolean _tmp68_ = FALSE;
+                       gboolean _tmp69_ = FALSE;
+                       gboolean _tmp70_ = FALSE;
+                       gboolean _tmp71_ = FALSE;
+                       JSDOCToken* _tmp72_;
+                       gboolean _tmp73_;
+#line 96 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp72_ = t;
+#line 96 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp73_ = jsdoc_token_isType (_tmp72_, JSDOC_TOKEN_TYPE_KEYW);
+#line 96 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       if (_tmp73_) {
+#line 941 "TokenReader.c"
+                               gboolean _tmp74_ = FALSE;
+                               gboolean _tmp75_ = FALSE;
+                               JSDOCToken* _tmp76_;
+                               gboolean _tmp77_;
+#line 97 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp76_ = t;
+#line 97 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp77_ = jsdoc_token_isName (_tmp76_, JSDOC_TOKEN_NAME_IN);
+#line 97 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               if (_tmp77_) {
+#line 97 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp75_ = TRUE;
+#line 954 "TokenReader.c"
+                               } else {
+                                       JSDOCToken* _tmp78_;
+                                       gboolean _tmp79_;
+#line 97 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp78_ = t;
+#line 97 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp79_ = jsdoc_token_isName (_tmp78_, JSDOC_TOKEN_NAME_INSTANCEOF);
+#line 97 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp75_ = _tmp79_;
+#line 964 "TokenReader.c"
+                               }
+#line 97 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               if (_tmp75_) {
+#line 97 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp74_ = TRUE;
+#line 970 "TokenReader.c"
+                               } else {
+                                       JSDOCToken* _tmp80_;
+                                       gboolean _tmp81_;
+#line 97 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp80_ = t;
+#line 97 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp81_ = jsdoc_token_isName (_tmp80_, JSDOC_TOKEN_NAME_INSTANCEOF);
+#line 97 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp74_ = _tmp81_;
+#line 980 "TokenReader.c"
+                               }
+#line 97 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp71_ = !_tmp74_;
+#line 984 "TokenReader.c"
+                       } else {
+#line 96 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp71_ = FALSE;
+#line 988 "TokenReader.c"
+                       }
+#line 96 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       if (_tmp71_) {
+#line 96 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp70_ = TRUE;
+#line 994 "TokenReader.c"
+                       } else {
+                               JSDOCToken* _tmp82_;
+                               gboolean _tmp83_;
+#line 99 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp82_ = t;
+#line 99 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp83_ = jsdoc_token_isType (_tmp82_, JSDOC_TOKEN_TYPE_NAME);
+#line 99 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp70_ = _tmp83_;
+#line 1004 "TokenReader.c"
+                       }
+#line 96 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       if (_tmp70_) {
+#line 96 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp69_ = TRUE;
+#line 1010 "TokenReader.c"
+                       } else {
+                               JSDOCToken* _tmp84_;
+                               gboolean _tmp85_;
+#line 100 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp84_ = t;
+#line 100 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp85_ = jsdoc_token_isType (_tmp84_, JSDOC_TOKEN_TYPE_STRN);
+#line 100 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp69_ = _tmp85_;
+#line 1020 "TokenReader.c"
+                       }
+#line 96 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       if (_tmp69_) {
+#line 96 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp68_ = TRUE;
+#line 1026 "TokenReader.c"
+                       } else {
+                               JSDOCToken* _tmp86_;
+                               gboolean _tmp87_;
+#line 101 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp86_ = t;
+#line 101 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp87_ = jsdoc_token_isType (_tmp86_, JSDOC_TOKEN_TYPE_NUMB);
+#line 101 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp68_ = _tmp87_;
+#line 1036 "TokenReader.c"
+                       }
+#line 96 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp62_ = _tmp68_;
+#line 1040 "TokenReader.c"
+               } else {
+#line 93 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp62_ = FALSE;
+#line 1044 "TokenReader.c"
+               }
+#line 92 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               if (_tmp62_) {
+#line 1048 "TokenReader.c"
+                       JSDOCPacker* _tmp88_;
+#line 104 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp88_ = self->priv->packer;
+#line 104 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       if (_tmp88_ != NULL) {
+#line 1054 "TokenReader.c"
+                               JSDOCPacker* _tmp89_;
+                               JSDOCTokenReader* _tmp90_;
+                               const gchar* _tmp91_;
+                               JSDOCToken* _tmp92_;
+                               gint _tmp93_;
+                               JSDOCToken* _tmp94_;
+                               const gchar* _tmp95_;
+                               gchar* _tmp96_;
+                               gchar* _tmp97_;
+                               gchar* _tmp98_;
+                               gchar* _tmp99_;
+                               JSDOCToken* _tmp100_;
+                               JSDOCTokenName _tmp101_;
+                               GEnumValue* _tmp102_;
+                               gchar* _tmp103_;
+                               gchar* _tmp104_;
+                               gchar* _tmp105_;
+                               gchar* _tmp106_;
+                               JSDOCToken* _tmp107_;
+                               const gchar* _tmp108_;
+                               gchar* _tmp109_;
+                               gchar* _tmp110_;
+#line 106 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp89_ = self->priv->packer;
+#line 106 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp90_ = self->priv->reader;
+#line 106 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp91_ = _tmp90_->filename;
+#line 106 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp92_ = t;
+#line 106 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp93_ = _tmp92_->line;
+#line 106 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp94_ = self->priv->lastAdded;
+#line 106 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp95_ = _tmp94_->data;
+#line 106 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp96_ = g_strconcat ("'", _tmp95_, NULL);
+#line 106 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp97_ = _tmp96_;
+#line 106 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp98_ = g_strconcat (_tmp97_, "' token followed by ", NULL);
+#line 106 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp99_ = _tmp98_;
+#line 106 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp100_ = t;
+#line 106 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp101_ = _tmp100_->name;
+#line 110 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp102_ = g_enum_get_value (g_type_class_ref (JSDOC_TYPE_TOKEN_NAME), _tmp101_);
+#line 106 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp103_ = g_strconcat (_tmp99_, (_tmp102_ != NULL) ? _tmp102_->value_name : NULL, NULL);
+#line 106 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp104_ = _tmp103_;
+#line 106 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp105_ = g_strconcat (_tmp104_, ":", NULL);
+#line 106 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp106_ = _tmp105_;
+#line 106 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp107_ = t;
+#line 106 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp108_ = _tmp107_->data;
+#line 106 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp109_ = g_strconcat (_tmp106_, _tmp108_, NULL);
+#line 106 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp110_ = _tmp109_;
+#line 106 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               jsdoc_packer_logError (_tmp89_, JSDOC_PACKER_RESULT_TYPE_err, _tmp91_, _tmp93_, _tmp110_);
+#line 106 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _g_free0 (_tmp110_);
+#line 106 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _g_free0 (_tmp106_);
+#line 106 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _g_free0 (_tmp104_);
+#line 106 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _g_free0 (_tmp99_);
+#line 106 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _g_free0 (_tmp97_);
+#line 1133 "TokenReader.c"
+                       }
+               }
+       }
+#line 118 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp111_ = self->tokens;
+#line 118 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp112_ = t;
+#line 118 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       gee_abstract_collection_add ((GeeAbstractCollection*) _tmp111_, _tmp112_);
+#line 120 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp114_ = t;
+#line 120 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp115_ = jsdoc_token_isType (_tmp114_, JSDOC_TOKEN_TYPE_WHIT);
+#line 120 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       if (_tmp115_) {
+#line 120 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp113_ = TRUE;
+#line 1151 "TokenReader.c"
+       } else {
+               JSDOCToken* _tmp116_;
+               gboolean _tmp117_;
+#line 120 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp116_ = t;
+#line 120 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp117_ = jsdoc_token_isType (_tmp116_, JSDOC_TOKEN_TYPE_COMM);
+#line 120 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp113_ = _tmp117_;
+#line 1161 "TokenReader.c"
+       }
+#line 120 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       if (_tmp113_) {
+#line 1165 "TokenReader.c"
+       } else {
+               JSDOCToken* _tmp118_;
+               JSDOCToken* _tmp119_;
+#line 123 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp118_ = t;
+#line 123 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp119_ = _g_object_ref0 (_tmp118_);
+#line 123 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _g_object_unref0 (self->priv->lastAdded);
+#line 123 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               self->priv->lastAdded = _tmp119_;
+#line 1177 "TokenReader.c"
+       }
+}
+
+
+JSDOCToken* jsdoc_token_array_pop (JSDOCTokenArray* self) {
+       JSDOCToken* result = NULL;
+       GeeArrayList* _tmp0_;
+       gint _tmp1_;
+       gint _tmp2_;
+#line 127 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 129 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp0_ = self->tokens;
+#line 129 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp1_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp0_);
+#line 129 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp2_ = _tmp1_;
+#line 129 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       if (_tmp2_ > 0) {
+#line 1197 "TokenReader.c"
+               GeeArrayList* _tmp3_;
+               GeeArrayList* _tmp4_;
+               gint _tmp5_;
+               gint _tmp6_;
+               gpointer _tmp7_;
+#line 130 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp3_ = self->tokens;
+#line 130 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp4_ = self->tokens;
+#line 130 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp5_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp4_);
+#line 130 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp6_ = _tmp5_;
+#line 130 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp7_ = gee_abstract_list_remove_at ((GeeAbstractList*) _tmp3_, _tmp6_ - 1);
+#line 130 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               result = (JSDOCToken*) _tmp7_;
+#line 130 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               return result;
+#line 1217 "TokenReader.c"
+       }
+#line 132 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       result = NULL;
+#line 132 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       return result;
+#line 1223 "TokenReader.c"
+}
+
+
+JSDOCToken* jsdoc_token_array_get (JSDOCTokenArray* self, gint i) {
+       JSDOCToken* result = NULL;
+       GeeArrayList* _tmp0_;
+       gint _tmp1_;
+       gpointer _tmp2_;
+#line 135 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 136 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp0_ = self->tokens;
+#line 136 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp1_ = i;
+#line 136 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp2_ = gee_abstract_list_get ((GeeAbstractList*) _tmp0_, _tmp1_);
+#line 136 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       result = (JSDOCToken*) _tmp2_;
+#line 136 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       return result;
+#line 1244 "TokenReader.c"
+}
+
+
+void jsdoc_token_array_dump (JSDOCTokenArray* self) {
+       gint line = 0;
+#line 138 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       g_return_if_fail (self != NULL);
+#line 140 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       line = 0;
+#line 1254 "TokenReader.c"
+       {
+               GeeArrayList* _token_list = NULL;
+               GeeArrayList* _tmp0_;
+               GeeArrayList* _tmp1_;
+               gint _token_size = 0;
+               GeeArrayList* _tmp2_;
+               gint _tmp3_;
+               gint _tmp4_;
+               gint _token_index = 0;
+#line 141 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp0_ = self->tokens;
+#line 141 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 141 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _token_list = _tmp1_;
+#line 141 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp2_ = _token_list;
+#line 141 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp3_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp2_);
+#line 141 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp4_ = _tmp3_;
+#line 141 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _token_size = _tmp4_;
+#line 141 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _token_index = -1;
+#line 141 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               while (TRUE) {
+#line 1282 "TokenReader.c"
+                       gint _tmp5_;
+                       gint _tmp6_;
+                       gint _tmp7_;
+                       JSDOCToken* token = NULL;
+                       GeeArrayList* _tmp8_;
+                       gint _tmp9_;
+                       gpointer _tmp10_;
+                       JSDOCToken* _tmp11_;
+                       gint _tmp12_;
+                       gint _tmp13_;
+                       JSDOCToken* _tmp18_;
+                       const gchar* _tmp19_;
+#line 141 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp5_ = _token_index;
+#line 141 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _token_index = _tmp5_ + 1;
+#line 141 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp6_ = _token_index;
+#line 141 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp7_ = _token_size;
+#line 141 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       if (!(_tmp6_ < _tmp7_)) {
+#line 141 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               break;
+#line 1307 "TokenReader.c"
+                       }
+#line 141 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp8_ = _token_list;
+#line 141 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp9_ = _token_index;
+#line 141 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp10_ = gee_abstract_list_get ((GeeAbstractList*) _tmp8_, _tmp9_);
+#line 141 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       token = (JSDOCToken*) _tmp10_;
+#line 142 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp11_ = token;
+#line 142 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp12_ = _tmp11_->line;
+#line 142 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp13_ = line;
+#line 142 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       if (_tmp12_ != _tmp13_) {
+#line 1325 "TokenReader.c"
+                               JSDOCToken* _tmp14_;
+                               gint _tmp15_;
+                               JSDOCToken* _tmp16_;
+                               gint _tmp17_;
+#line 143 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp14_ = token;
+#line 143 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp15_ = _tmp14_->line;
+#line 143 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               g_print ("%d: ", _tmp15_);
+#line 144 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp16_ = token;
+#line 144 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp17_ = _tmp16_->line;
+#line 144 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               line = _tmp17_;
+#line 1342 "TokenReader.c"
+                       }
+#line 146 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp18_ = token;
+#line 146 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp19_ = _tmp18_->data;
+#line 146 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       g_print ("%s", _tmp19_);
+#line 141 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _g_object_unref0 (token);
+#line 1352 "TokenReader.c"
+               }
+#line 141 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _g_object_unref0 (_token_list);
+#line 1356 "TokenReader.c"
+       }
+#line 148 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       g_print ("\n----\n");
+#line 1360 "TokenReader.c"
+       {
+               GeeArrayList* _token_list = NULL;
+               GeeArrayList* _tmp20_;
+               GeeArrayList* _tmp21_;
+               gint _token_size = 0;
+               GeeArrayList* _tmp22_;
+               gint _tmp23_;
+               gint _tmp24_;
+               gint _token_index = 0;
+#line 149 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp20_ = self->tokens;
+#line 149 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp21_ = _g_object_ref0 (_tmp20_);
+#line 149 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _token_list = _tmp21_;
+#line 149 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp22_ = _token_list;
+#line 149 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp23_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp22_);
+#line 149 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp24_ = _tmp23_;
+#line 149 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _token_size = _tmp24_;
+#line 149 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _token_index = -1;
+#line 149 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               while (TRUE) {
+#line 1388 "TokenReader.c"
+                       gint _tmp25_;
+                       gint _tmp26_;
+                       gint _tmp27_;
+                       JSDOCToken* token = NULL;
+                       GeeArrayList* _tmp28_;
+                       gint _tmp29_;
+                       gpointer _tmp30_;
+                       FILE* _tmp31_;
+                       JSDOCToken* _tmp32_;
+                       gchar* _tmp33_;
+                       gchar* _tmp34_;
+#line 149 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp25_ = _token_index;
+#line 149 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _token_index = _tmp25_ + 1;
+#line 149 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp26_ = _token_index;
+#line 149 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp27_ = _token_size;
+#line 149 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       if (!(_tmp26_ < _tmp27_)) {
+#line 149 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               break;
+#line 1412 "TokenReader.c"
+                       }
+#line 149 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp28_ = _token_list;
+#line 149 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp29_ = _token_index;
+#line 149 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp30_ = gee_abstract_list_get ((GeeAbstractList*) _tmp28_, _tmp29_);
+#line 149 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       token = (JSDOCToken*) _tmp30_;
+#line 150 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp31_ = stdout;
+#line 150 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp32_ = token;
+#line 150 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp33_ = jsdoc_token_asString (_tmp32_);
+#line 150 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp34_ = _tmp33_;
+#line 150 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       fprintf (_tmp31_, "%s\n", _tmp34_);
+#line 150 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _g_free0 (_tmp34_);
+#line 149 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _g_object_unref0 (token);
+#line 1436 "TokenReader.c"
+               }
+#line 149 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _g_object_unref0 (_token_list);
+#line 1440 "TokenReader.c"
+       }
+}
+
+
+gint jsdoc_token_array_get_length (JSDOCTokenArray* self) {
+       gint result;
+       GeeArrayList* _tmp0_;
+       gint _tmp1_;
+       gint _tmp2_;
+#line 26 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       g_return_val_if_fail (self != NULL, 0);
+#line 26 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp0_ = self->tokens;
+#line 26 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp1_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp0_);
+#line 26 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp2_ = _tmp1_;
+#line 26 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       result = _tmp2_;
+#line 26 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       return result;
+#line 1462 "TokenReader.c"
+}
+
+
+static void jsdoc_token_array_class_init (JSDOCTokenArrayClass * klass) {
+#line 17 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       jsdoc_token_array_parent_class = g_type_class_peek_parent (klass);
+#line 17 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       g_type_class_add_private (klass, sizeof (JSDOCTokenArrayPrivate));
+#line 17 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       G_OBJECT_CLASS (klass)->get_property = _vala_jsdoc_token_array_get_property;
+#line 17 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       G_OBJECT_CLASS (klass)->finalize = jsdoc_token_array_finalize;
+#line 17 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       g_object_class_install_property (G_OBJECT_CLASS (klass), JSDOC_TOKEN_ARRAY_LENGTH_PROPERTY, g_param_spec_int ("length", "length", "length", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
+#line 1477 "TokenReader.c"
+}
+
+
+static void jsdoc_token_array_instance_init (JSDOCTokenArray * self) {
+#line 17 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       self->priv = JSDOC_TOKEN_ARRAY_GET_PRIVATE (self);
+#line 23 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       self->priv->lastAdded = NULL;
+#line 1486 "TokenReader.c"
+}
+
+
+static void jsdoc_token_array_finalize (GObject * obj) {
+       JSDOCTokenArray * self;
+#line 17 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       self = G_TYPE_CHECK_INSTANCE_CAST (obj, JSDOC_TYPE_TOKEN_ARRAY, JSDOCTokenArray);
+#line 19 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _g_object_unref0 (self->priv->packer);
+#line 20 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _g_object_unref0 (self->priv->reader);
+#line 22 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _g_object_unref0 (self->tokens);
+#line 23 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _g_object_unref0 (self->priv->lastAdded);
+#line 17 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       G_OBJECT_CLASS (jsdoc_token_array_parent_class)->finalize (obj);
+#line 1504 "TokenReader.c"
+}
+
+
+GType jsdoc_token_array_get_type (void) {
+       static volatile gsize jsdoc_token_array_type_id__volatile = 0;
+       if (g_once_init_enter (&jsdoc_token_array_type_id__volatile)) {
+               static const GTypeInfo g_define_type_info = { sizeof (JSDOCTokenArrayClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) jsdoc_token_array_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (JSDOCTokenArray), 0, (GInstanceInitFunc) jsdoc_token_array_instance_init, NULL };
+               GType jsdoc_token_array_type_id;
+               jsdoc_token_array_type_id = g_type_register_static (G_TYPE_OBJECT, "JSDOCTokenArray", &g_define_type_info, 0);
+               g_once_init_leave (&jsdoc_token_array_type_id__volatile, jsdoc_token_array_type_id);
+       }
+       return jsdoc_token_array_type_id__volatile;
+}
+
+
+static void _vala_jsdoc_token_array_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
+       JSDOCTokenArray * self;
+       self = G_TYPE_CHECK_INSTANCE_CAST (object, JSDOC_TYPE_TOKEN_ARRAY, JSDOCTokenArray);
+#line 17 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       switch (property_id) {
+#line 17 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               case JSDOC_TOKEN_ARRAY_LENGTH_PROPERTY:
+#line 17 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               g_value_set_int (value, jsdoc_token_array_get_length (self));
+#line 17 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               break;
+#line 1531 "TokenReader.c"
+               default:
+#line 17 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+#line 17 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               break;
+#line 1537 "TokenReader.c"
+       }
+}
+
+
+GQuark jsdoc_tokenreader_error_quark (void) {
+       return g_quark_from_static_string ("jsdoc_tokenreader_error-quark");
+}
+
+
+JSDOCTokenReader* jsdoc_token_reader_construct (GType object_type, JSDOCPacker* packer) {
+       JSDOCTokenReader * self = NULL;
+       JSDOCPacker* _tmp0_;
+       JSDOCPacker* _tmp1_;
+#line 192 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       self = (JSDOCTokenReader*) g_object_new (object_type, NULL);
+#line 194 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp0_ = packer;
+#line 194 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 194 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _g_object_unref0 (self->priv->packer);
+#line 194 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       self->priv->packer = _tmp1_;
+#line 192 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       return self;
+#line 1563 "TokenReader.c"
+}
+
+
+JSDOCTokenReader* jsdoc_token_reader_new (JSDOCPacker* packer) {
+#line 192 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       return jsdoc_token_reader_construct (JSDOC_TYPE_TOKEN_READER, packer);
+#line 1570 "TokenReader.c"
+}
+
+
+/**
+         * tokenize a stream
+         * @return {Array} of tokens
+         * 
+         * ts = new TextStream(File.read(str));
+         * tr = TokenReader({ keepComments : true, keepWhite : true });
+         * tr.tokenize(ts)
+         * 
+         */
+JSDOCTokenArray* jsdoc_token_reader_tokenize (JSDOCTokenReader* self, JSDOCTextStream* stream) {
+       JSDOCTokenArray* result = NULL;
+       JSDOCTokenArray* tokens = NULL;
+       JSDOCPacker* _tmp0_;
+       JSDOCTokenArray* _tmp1_;
+#line 206 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 206 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       g_return_val_if_fail (stream != NULL, NULL);
+#line 208 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       self->priv->line = 1;
+#line 209 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp0_ = self->priv->packer;
+#line 209 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp1_ = jsdoc_token_array_new (_tmp0_, self);
+#line 209 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       tokens = _tmp1_;
+#line 212 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       while (TRUE) {
+#line 1602 "TokenReader.c"
+               JSDOCTextStream* _tmp2_;
+               gboolean _tmp3_;
+               JSDOCTextStream* _tmp4_;
+               JSDOCTokenArray* _tmp5_;
+               gboolean _tmp6_;
+               JSDOCTextStream* _tmp7_;
+               JSDOCTokenArray* _tmp8_;
+               gboolean _tmp9_;
+               JSDOCTextStream* _tmp10_;
+               JSDOCTokenArray* _tmp11_;
+               gboolean _tmp12_;
+               JSDOCTextStream* _tmp13_;
+               JSDOCTokenArray* _tmp14_;
+               gboolean _tmp15_;
+               JSDOCTextStream* _tmp16_;
+               JSDOCTokenArray* _tmp17_;
+               gboolean _tmp18_;
+               JSDOCTextStream* _tmp19_;
+               JSDOCTokenArray* _tmp20_;
+               gboolean _tmp21_;
+               JSDOCTextStream* _tmp22_;
+               JSDOCTokenArray* _tmp23_;
+               gboolean _tmp24_;
+               JSDOCTextStream* _tmp25_;
+               JSDOCTokenArray* _tmp26_;
+               gboolean _tmp27_;
+               JSDOCTextStream* _tmp28_;
+               JSDOCTokenArray* _tmp29_;
+               gboolean _tmp30_;
+               JSDOCTextStream* _tmp31_;
+               JSDOCTokenArray* _tmp32_;
+               gboolean _tmp33_;
+               JSDOCTokenArray* _tmp34_;
+               JSDOCTextStream* _tmp35_;
+               gchar* _tmp36_;
+               gchar* _tmp37_;
+               gint _tmp38_;
+               JSDOCToken* _tmp39_;
+               JSDOCToken* _tmp40_;
+#line 212 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp2_ = stream;
+#line 212 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp3_ = jsdoc_text_stream_lookEOF (_tmp2_, 0);
+#line 212 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               if (!(!_tmp3_)) {
+#line 212 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       break;
+#line 1650 "TokenReader.c"
+               }
+#line 215 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp4_ = stream;
+#line 215 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp5_ = tokens;
+#line 215 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp6_ = jsdoc_token_reader_read_mlcomment (self, _tmp4_, _tmp5_);
+#line 215 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               if (_tmp6_) {
+#line 215 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       continue;
+#line 1662 "TokenReader.c"
+               }
+#line 216 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp7_ = stream;
+#line 216 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp8_ = tokens;
+#line 216 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp9_ = jsdoc_token_reader_read_slcomment (self, _tmp7_, _tmp8_);
+#line 216 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               if (_tmp9_) {
+#line 216 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       continue;
+#line 1674 "TokenReader.c"
+               }
+#line 217 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp10_ = stream;
+#line 217 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp11_ = tokens;
+#line 217 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp12_ = jsdoc_token_reader_read_dbquote (self, _tmp10_, _tmp11_);
+#line 217 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               if (_tmp12_) {
+#line 217 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       continue;
+#line 1686 "TokenReader.c"
+               }
+#line 218 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp13_ = stream;
+#line 218 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp14_ = tokens;
+#line 218 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp15_ = jsdoc_token_reader_read_snquote (self, _tmp13_, _tmp14_);
+#line 218 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               if (_tmp15_) {
+#line 218 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       continue;
+#line 1698 "TokenReader.c"
+               }
+#line 219 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp16_ = stream;
+#line 219 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp17_ = tokens;
+#line 219 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp18_ = jsdoc_token_reader_read_regx (self, _tmp16_, _tmp17_);
+#line 219 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               if (_tmp18_) {
+#line 219 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       continue;
+#line 1710 "TokenReader.c"
+               }
+#line 220 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp19_ = stream;
+#line 220 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp20_ = tokens;
+#line 220 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp21_ = jsdoc_token_reader_read_numb (self, _tmp19_, _tmp20_);
+#line 220 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               if (_tmp21_) {
+#line 220 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       continue;
+#line 1722 "TokenReader.c"
+               }
+#line 221 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp22_ = stream;
+#line 221 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp23_ = tokens;
+#line 221 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp24_ = jsdoc_token_reader_read_punc (self, _tmp22_, _tmp23_);
+#line 221 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               if (_tmp24_) {
+#line 221 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       continue;
+#line 1734 "TokenReader.c"
+               }
+#line 222 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp25_ = stream;
+#line 222 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp26_ = tokens;
+#line 222 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp27_ = jsdoc_token_reader_read_newline (self, _tmp25_, _tmp26_);
+#line 222 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               if (_tmp27_) {
+#line 222 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       continue;
+#line 1746 "TokenReader.c"
+               }
+#line 223 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp28_ = stream;
+#line 223 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp29_ = tokens;
+#line 223 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp30_ = jsdoc_token_reader_read_space (self, _tmp28_, _tmp29_);
+#line 223 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               if (_tmp30_) {
+#line 223 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       continue;
+#line 1758 "TokenReader.c"
+               }
+#line 224 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp31_ = stream;
+#line 224 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp32_ = tokens;
+#line 224 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp33_ = jsdoc_token_reader_read_word (self, _tmp31_, _tmp32_);
+#line 224 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               if (_tmp33_) {
+#line 224 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       continue;
+#line 1770 "TokenReader.c"
+               }
+#line 227 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp34_ = tokens;
+#line 227 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp35_ = stream;
+#line 227 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp36_ = jsdoc_text_stream_nextS (_tmp35_, 1);
+#line 227 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp37_ = _tmp36_;
+#line 227 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp38_ = self->priv->line;
+#line 227 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp39_ = jsdoc_token_new (_tmp37_, JSDOC_TOKEN_TYPE_TOKN, JSDOC_TOKEN_NAME_UNKNOWN_TOKEN, _tmp38_);
+#line 227 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp40_ = _tmp39_;
+#line 227 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               jsdoc_token_array_push (_tmp34_, _tmp40_);
+#line 227 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _g_object_unref0 (_tmp40_);
+#line 227 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _g_free0 (_tmp37_);
+#line 1792 "TokenReader.c"
+       }
+#line 234 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       result = tokens;
+#line 234 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       return result;
+#line 1798 "TokenReader.c"
+}
+
+
+/**
+         * findPuncToken - find the id of a token (previous to current)
+         * need to back check syntax..
+         * 
+         * @arg {Array} tokens the array of tokens.
+         * @arg {String} token data (eg. '(')
+         * @arg {Number} offset where to start reading from
+         * @return {Number} position of token
+         */
+gint jsdoc_token_reader_findPuncToken (JSDOCTokenReader* self, JSDOCTokenArray* tokens, const gchar* data, gint n) {
+       gint result = 0;
+       gint _tmp0_ = 0;
+       gint _tmp1_;
+       gint stack = 0;
+#line 246 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       g_return_val_if_fail (self != NULL, 0);
+#line 246 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       g_return_val_if_fail (tokens != NULL, 0);
+#line 246 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       g_return_val_if_fail (data != NULL, 0);
+#line 248 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp1_ = n;
+#line 248 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       if (_tmp1_ > 0) {
+#line 1826 "TokenReader.c"
+               gint _tmp2_;
+#line 248 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp2_ = n;
+#line 248 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp0_ = _tmp2_;
+#line 1832 "TokenReader.c"
+       } else {
+               JSDOCTokenArray* _tmp3_;
+               gint _tmp4_;
+               gint _tmp5_;
+#line 248 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp3_ = tokens;
+#line 248 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp4_ = jsdoc_token_array_get_length (_tmp3_);
+#line 248 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp5_ = _tmp4_;
+#line 248 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp0_ = _tmp5_ - 1;
+#line 1845 "TokenReader.c"
+       }
+#line 248 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       n = _tmp0_;
+#line 249 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       stack = 0;
+#line 250 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       while (TRUE) {
+#line 1853 "TokenReader.c"
+               gint _tmp6_;
+               gboolean _tmp7_ = FALSE;
+               gint _tmp8_;
+               gboolean _tmp16_ = FALSE;
+               JSDOCTokenArray* _tmp17_;
+               gint _tmp18_;
+               JSDOCToken* _tmp19_;
+               JSDOCToken* _tmp20_;
+               const gchar* _tmp21_;
+               gboolean _tmp22_;
+               gboolean _tmp30_ = FALSE;
+               gint _tmp31_;
+               gint _tmp46_;
+#line 250 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp6_ = n;
+#line 250 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               if (!(_tmp6_ > -1)) {
+#line 250 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       break;
+#line 1873 "TokenReader.c"
+               }
+#line 252 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp8_ = stack;
+#line 252 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               if (_tmp8_ < 1) {
+#line 1879 "TokenReader.c"
+                       JSDOCTokenArray* _tmp9_;
+                       gint _tmp10_;
+                       JSDOCToken* _tmp11_;
+                       JSDOCToken* _tmp12_;
+                       const gchar* _tmp13_;
+                       const gchar* _tmp14_;
+#line 252 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp9_ = tokens;
+#line 252 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp10_ = n;
+#line 252 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp11_ = jsdoc_token_array_get (_tmp9_, _tmp10_);
+#line 252 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp12_ = _tmp11_;
+#line 252 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp13_ = _tmp12_->data;
+#line 252 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp14_ = data;
+#line 252 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp7_ = g_strcmp0 (_tmp13_, _tmp14_) == 0;
+#line 252 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _g_object_unref0 (_tmp12_);
+#line 1902 "TokenReader.c"
+               } else {
+#line 252 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp7_ = FALSE;
+#line 1906 "TokenReader.c"
+               }
+#line 252 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               if (_tmp7_) {
+#line 1910 "TokenReader.c"
+                       gint _tmp15_;
+#line 253 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp15_ = n;
+#line 253 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       result = _tmp15_;
+#line 253 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       return result;
+#line 1918 "TokenReader.c"
+               }
+#line 256 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp17_ = tokens;
+#line 256 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp18_ = n;
+#line 256 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp19_ = jsdoc_token_array_get (_tmp17_, _tmp18_);
+#line 256 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp20_ = _tmp19_;
+#line 256 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp21_ = _tmp20_->data;
+#line 256 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp22_ = g_strcmp0 (_tmp21_, ")") == 0;
+#line 256 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _g_object_unref0 (_tmp20_);
+#line 256 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               if (_tmp22_) {
+#line 256 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp16_ = TRUE;
+#line 1938 "TokenReader.c"
+               } else {
+                       JSDOCTokenArray* _tmp23_;
+                       gint _tmp24_;
+                       JSDOCToken* _tmp25_;
+                       JSDOCToken* _tmp26_;
+                       const gchar* _tmp27_;
+#line 256 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp23_ = tokens;
+#line 256 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp24_ = n;
+#line 256 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp25_ = jsdoc_token_array_get (_tmp23_, _tmp24_);
+#line 256 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp26_ = _tmp25_;
+#line 256 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp27_ = _tmp26_->data;
+#line 256 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp16_ = g_strcmp0 (_tmp27_, "}") == 0;
+#line 256 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _g_object_unref0 (_tmp26_);
+#line 1959 "TokenReader.c"
+               }
+#line 256 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               if (_tmp16_) {
+#line 1963 "TokenReader.c"
+                       gint _tmp28_;
+                       gint _tmp29_;
+#line 257 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp28_ = stack;
+#line 257 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       stack = _tmp28_ + 1;
+#line 258 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp29_ = n;
+#line 258 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       n = _tmp29_ - 1;
+#line 259 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       continue;
+#line 1976 "TokenReader.c"
+               }
+#line 261 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp31_ = stack;
+#line 261 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               if (_tmp31_ > 0) {
+#line 1982 "TokenReader.c"
+                       gboolean _tmp32_ = FALSE;
+                       JSDOCTokenArray* _tmp33_;
+                       gint _tmp34_;
+                       JSDOCToken* _tmp35_;
+                       JSDOCToken* _tmp36_;
+                       const gchar* _tmp37_;
+                       gboolean _tmp38_;
+#line 261 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp33_ = tokens;
+#line 261 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp34_ = n;
+#line 261 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp35_ = jsdoc_token_array_get (_tmp33_, _tmp34_);
+#line 261 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp36_ = _tmp35_;
+#line 261 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp37_ = _tmp36_->data;
+#line 261 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp38_ = g_strcmp0 (_tmp37_, "{") == 0;
+#line 261 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _g_object_unref0 (_tmp36_);
+#line 261 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       if (_tmp38_) {
+#line 261 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp32_ = TRUE;
+#line 2008 "TokenReader.c"
+                       } else {
+                               JSDOCTokenArray* _tmp39_;
+                               gint _tmp40_;
+                               JSDOCToken* _tmp41_;
+                               JSDOCToken* _tmp42_;
+                               const gchar* _tmp43_;
+#line 261 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp39_ = tokens;
+#line 261 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp40_ = n;
+#line 261 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp41_ = jsdoc_token_array_get (_tmp39_, _tmp40_);
+#line 261 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp42_ = _tmp41_;
+#line 261 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp43_ = _tmp42_->data;
+#line 261 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp32_ = g_strcmp0 (_tmp43_, "(") == 0;
+#line 261 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _g_object_unref0 (_tmp42_);
+#line 2029 "TokenReader.c"
+                       }
+#line 261 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp30_ = _tmp32_;
+#line 2033 "TokenReader.c"
+               } else {
+#line 261 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp30_ = FALSE;
+#line 2037 "TokenReader.c"
+               }
+#line 261 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               if (_tmp30_) {
+#line 2041 "TokenReader.c"
+                       gint _tmp44_;
+                       gint _tmp45_;
+#line 262 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp44_ = stack;
+#line 262 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       stack = _tmp44_ - 1;
+#line 263 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp45_ = n;
+#line 263 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       n = _tmp45_ - 1;
+#line 264 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       continue;
+#line 2054 "TokenReader.c"
+               }
+#line 268 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp46_ = n;
+#line 268 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               n = _tmp46_ - 1;
+#line 2060 "TokenReader.c"
+       }
+#line 270 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       result = -1;
+#line 270 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       return result;
+#line 2066 "TokenReader.c"
+}
+
+
+/**
+         * lastSym - find the last token symbol
+         * need to back check syntax..
+         * 
+         * @arg {Array} tokens the array of tokens.
+         * @arg {Number} offset where to start..
+         * @return {Token} the token
+         */
+JSDOCToken* jsdoc_token_reader_lastSym (JSDOCTokenReader* self, JSDOCTokenArray* tokens, gint n) {
+       JSDOCToken* result = NULL;
+#line 280 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 280 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       g_return_val_if_fail (tokens != NULL, NULL);
+#line 2084 "TokenReader.c"
+       {
+               gint i = 0;
+               gint _tmp0_;
+#line 282 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp0_ = n;
+#line 282 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               i = _tmp0_ - 1;
+#line 2092 "TokenReader.c"
+               {
+                       gboolean _tmp1_ = FALSE;
+#line 282 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp1_ = TRUE;
+#line 282 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       while (TRUE) {
+#line 2099 "TokenReader.c"
+                               gint _tmp3_;
+                               gboolean _tmp4_ = FALSE;
+                               JSDOCTokenArray* _tmp5_;
+                               gint _tmp6_;
+                               JSDOCToken* _tmp7_;
+                               JSDOCToken* _tmp8_;
+                               gboolean _tmp9_;
+                               gboolean _tmp10_;
+#line 282 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               if (!_tmp1_) {
+#line 2110 "TokenReader.c"
+                                       gint _tmp2_;
+#line 282 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp2_ = i;
+#line 282 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       i = _tmp2_ - 1;
+#line 2116 "TokenReader.c"
+                               }
+#line 282 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp1_ = FALSE;
+#line 282 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp3_ = i;
+#line 282 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               if (!(_tmp3_ >= 0)) {
+#line 282 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       break;
+#line 2126 "TokenReader.c"
+                               }
+#line 283 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp5_ = tokens;
+#line 283 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp6_ = i;
+#line 283 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp7_ = jsdoc_token_array_get (_tmp5_, _tmp6_);
+#line 283 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp8_ = _tmp7_;
+#line 283 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp9_ = jsdoc_token_isType (_tmp8_, JSDOC_TOKEN_TYPE_WHIT);
+#line 283 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp10_ = _tmp9_;
+#line 283 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _g_object_unref0 (_tmp8_);
+#line 283 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               if (_tmp10_) {
+#line 283 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp4_ = TRUE;
+#line 2146 "TokenReader.c"
+                               } else {
+                                       JSDOCTokenArray* _tmp11_;
+                                       gint _tmp12_;
+                                       JSDOCToken* _tmp13_;
+                                       JSDOCToken* _tmp14_;
+                                       gboolean _tmp15_;
+#line 283 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp11_ = tokens;
+#line 283 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp12_ = i;
+#line 283 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp13_ = jsdoc_token_array_get (_tmp11_, _tmp12_);
+#line 283 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp14_ = _tmp13_;
+#line 283 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp15_ = jsdoc_token_isType (_tmp14_, JSDOC_TOKEN_TYPE_COMM);
+#line 283 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp4_ = _tmp15_;
+#line 283 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _g_object_unref0 (_tmp14_);
+#line 2167 "TokenReader.c"
+                               }
+#line 283 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               if (!_tmp4_) {
+#line 2171 "TokenReader.c"
+                                       JSDOCTokenArray* _tmp16_;
+                                       gint _tmp17_;
+                                       JSDOCToken* _tmp18_;
+#line 284 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp16_ = tokens;
+#line 284 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp17_ = i;
+#line 284 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp18_ = jsdoc_token_array_get (_tmp16_, _tmp17_);
+#line 284 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       result = _tmp18_;
+#line 284 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       return result;
+#line 2185 "TokenReader.c"
+                               }
+                       }
+               }
+       }
+#line 287 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       result = NULL;
+#line 287 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       return result;
+#line 2194 "TokenReader.c"
+}
+
+
+/**
+            @returns {Boolean} Was the token found?
+         */
+static gint string_index_of (const gchar* self, const gchar* needle, gint start_index) {
+       gint result = 0;
+       gchar* _result_ = NULL;
+       gint _tmp0_;
+       const gchar* _tmp1_;
+       gchar* _tmp2_;
+       gchar* _tmp3_;
+#line 1011 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (self != NULL, 0);
+#line 1011 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (needle != NULL, 0);
+#line 1012 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp0_ = start_index;
+#line 1012 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp1_ = needle;
+#line 1012 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp2_ = strstr (((gchar*) self) + _tmp0_, (gchar*) _tmp1_);
+#line 1012 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _result_ = _tmp2_;
+#line 1014 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp3_ = _result_;
+#line 1014 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if (_tmp3_ != NULL) {
+#line 2224 "TokenReader.c"
+               gchar* _tmp4_;
+#line 1015 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp4_ = _result_;
+#line 1015 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               result = (gint) (_tmp4_ - ((gchar*) self));
+#line 1015 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               return result;
+#line 2232 "TokenReader.c"
+       } else {
+#line 1017 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               result = -1;
+#line 1017 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               return result;
+#line 2238 "TokenReader.c"
+       }
+}
+
+
+gboolean jsdoc_token_reader_read_word (JSDOCTokenReader* self, JSDOCTextStream* stream, JSDOCTokenArray* tokens) {
+       gboolean result = FALSE;
+       gchar* found = NULL;
+       gchar* _tmp0_;
+       const gchar* _tmp14_;
+       JSDOCTokenName name = 0;
+       gboolean _tmp27_ = FALSE;
+       gboolean _tmp28_;
+       gchar** n = NULL;
+       const gchar* _tmp36_;
+       gchar** _tmp37_;
+       gchar** _tmp38_;
+       gint n_length1;
+       gint _n_size_;
+       gboolean p = FALSE;
+       gchar** _tmp39_;
+       gint _tmp39__length1;
+       GError * _inner_error_ = NULL;
+#line 295 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       g_return_val_if_fail (self != NULL, FALSE);
+#line 295 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       g_return_val_if_fail (stream != NULL, FALSE);
+#line 295 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       g_return_val_if_fail (tokens != NULL, FALSE);
+#line 297 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp0_ = g_strdup ("");
+#line 297 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       found = _tmp0_;
+#line 298 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       while (TRUE) {
+#line 2273 "TokenReader.c"
+               gboolean _tmp1_ = FALSE;
+               JSDOCTextStream* _tmp2_;
+               gboolean _tmp3_;
+               const gchar* _tmp8_;
+               JSDOCTextStream* _tmp9_;
+               gchar _tmp10_;
+               gchar* _tmp11_;
+               gchar* _tmp12_;
+               gchar* _tmp13_;
+#line 298 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp2_ = stream;
+#line 298 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp3_ = jsdoc_text_stream_lookEOF (_tmp2_, 0);
+#line 298 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               if (!_tmp3_) {
+#line 2289 "TokenReader.c"
+                       JSDOCLang_Class* _tmp4_;
+                       JSDOCTextStream* _tmp5_;
+                       gchar _tmp6_;
+                       gboolean _tmp7_;
+#line 298 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp4_ = jsdoc_Lang;
+#line 298 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp5_ = stream;
+#line 298 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp6_ = jsdoc_text_stream_lookC (_tmp5_, 0);
+#line 298 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp7_ = jsdoc_langclass_isWordChar (_tmp4_, _tmp6_);
+#line 298 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp1_ = _tmp7_;
+#line 2304 "TokenReader.c"
+               } else {
+#line 298 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp1_ = FALSE;
+#line 2308 "TokenReader.c"
+               }
+#line 298 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               if (!_tmp1_) {
+#line 298 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       break;
+#line 2314 "TokenReader.c"
+               }
+#line 299 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp8_ = found;
+#line 299 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp9_ = stream;
+#line 299 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp10_ = jsdoc_text_stream_nextC (_tmp9_);
+#line 299 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp11_ = g_strdup_printf ("%c", _tmp10_);
+#line 299 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp12_ = _tmp11_;
+#line 299 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp13_ = g_strconcat (_tmp8_, _tmp12_, NULL);
+#line 299 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _g_free0 (found);
+#line 299 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               found = _tmp13_;
+#line 299 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _g_free0 (_tmp12_);
+#line 2334 "TokenReader.c"
+       }
+#line 302 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp14_ = found;
+#line 302 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       if (g_strcmp0 (_tmp14_, "") == 0) {
+#line 303 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               result = FALSE;
+#line 303 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _g_free0 (found);
+#line 303 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               return result;
+#line 2346 "TokenReader.c"
+       }
+       {
+               JSDOCTokenName _tmp15_ = 0;
+               JSDOCLang_Class* _tmp16_;
+               const gchar* _tmp17_;
+               JSDOCTokenName _tmp18_;
+               JSDOCTokenArray* _tmp20_;
+               const gchar* _tmp21_;
+               JSDOCTokenName _tmp22_;
+               gint _tmp23_;
+               JSDOCToken* _tmp24_;
+               JSDOCToken* _tmp25_;
+#line 307 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp16_ = jsdoc_Lang;
+#line 307 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp17_ = found;
+#line 307 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp18_ = jsdoc_langclass_keyword (_tmp16_, _tmp17_, &_inner_error_);
+#line 307 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp15_ = _tmp18_;
+#line 307 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2369 "TokenReader.c"
+                       gboolean _tmp19_ = FALSE;
+#line 307 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       if (_inner_error_->domain == JSDOC_LANG_ERROR) {
+#line 2373 "TokenReader.c"
+                               goto __catch2_jsdoc_lang_error;
+                       }
+#line 307 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _g_free0 (found);
+#line 307 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       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);
+#line 307 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       g_clear_error (&_inner_error_);
+#line 307 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       return _tmp19_;
+#line 2384 "TokenReader.c"
+               }
+#line 307 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               name = _tmp15_;
+#line 308 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp20_ = tokens;
+#line 308 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp21_ = found;
+#line 308 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp22_ = name;
+#line 308 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp23_ = self->priv->line;
+#line 308 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp24_ = jsdoc_token_new (_tmp21_, JSDOC_TOKEN_TYPE_KEYW, _tmp22_, _tmp23_);
+#line 308 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp25_ = _tmp24_;
+#line 308 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               jsdoc_token_array_push (_tmp20_, _tmp25_);
+#line 308 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _g_object_unref0 (_tmp25_);
+#line 309 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               result = TRUE;
+#line 309 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _g_free0 (found);
+#line 309 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               return result;
+#line 2410 "TokenReader.c"
+       }
+       goto __finally2;
+       __catch2_jsdoc_lang_error:
+       {
+               GError* e = NULL;
+#line 306 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               e = _inner_error_;
+#line 306 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _inner_error_ = NULL;
+#line 306 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _g_error_free0 (e);
+#line 2422 "TokenReader.c"
+       }
+       __finally2:
+#line 306 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2427 "TokenReader.c"
+               gboolean _tmp26_ = FALSE;
+#line 306 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _g_free0 (found);
+#line 306 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               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);
+#line 306 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               g_clear_error (&_inner_error_);
+#line 306 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               return _tmp26_;
+#line 2437 "TokenReader.c"
+       }
+#line 347 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp28_ = self->sepIdents;
+#line 347 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       if (!_tmp28_) {
+#line 347 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp27_ = TRUE;
+#line 2445 "TokenReader.c"
+       } else {
+               const gchar* _tmp29_;
+               gint _tmp30_;
+#line 347 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp29_ = found;
+#line 347 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp30_ = string_index_of (_tmp29_, ".", 0);
+#line 347 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp27_ = _tmp30_ < 0;
+#line 2455 "TokenReader.c"
+       }
+#line 347 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       if (_tmp27_) {
+#line 2459 "TokenReader.c"
+               JSDOCTokenArray* _tmp31_;
+               const gchar* _tmp32_;
+               gint _tmp33_;
+               JSDOCToken* _tmp34_;
+               JSDOCToken* _tmp35_;
+#line 348 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp31_ = tokens;
+#line 348 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp32_ = found;
+#line 348 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp33_ = self->priv->line;
+#line 348 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp34_ = jsdoc_token_new (_tmp32_, JSDOC_TOKEN_TYPE_NAME, JSDOC_TOKEN_NAME_NAME, _tmp33_);
+#line 348 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp35_ = _tmp34_;
+#line 348 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               jsdoc_token_array_push (_tmp31_, _tmp35_);
+#line 348 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _g_object_unref0 (_tmp35_);
+#line 349 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               result = TRUE;
+#line 349 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _g_free0 (found);
+#line 349 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               return result;
+#line 2485 "TokenReader.c"
+       }
+#line 351 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp36_ = found;
+#line 351 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp38_ = _tmp37_ = g_strsplit (_tmp36_, ".", 0);
+#line 351 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       n = _tmp38_;
+#line 351 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       n_length1 = _vala_array_length (_tmp37_);
+#line 351 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _n_size_ = n_length1;
+#line 352 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       p = FALSE;
+#line 353 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp39_ = n;
+#line 353 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp39__length1 = n_length1;
+#line 2503 "TokenReader.c"
+       {
+               gchar** nm_collection = NULL;
+               gint nm_collection_length1 = 0;
+               gint _nm_collection_size_ = 0;
+               gint nm_it = 0;
+#line 353 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               nm_collection = _tmp39_;
+#line 353 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               nm_collection_length1 = _tmp39__length1;
+#line 353 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               for (nm_it = 0; nm_it < _tmp39__length1; nm_it = nm_it + 1) {
+#line 2515 "TokenReader.c"
+                       const gchar* nm = NULL;
+#line 353 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       nm = nm_collection[nm_it];
+#line 2519 "TokenReader.c"
+                       {
+                               gboolean _tmp40_;
+                               const gchar* _tmp45_;
+                               gint _tmp46_;
+                               gint _tmp47_;
+                               JSDOCTokenArray* _tmp48_;
+                               const gchar* _tmp49_;
+                               gint _tmp50_;
+                               JSDOCToken* _tmp51_;
+                               JSDOCToken* _tmp52_;
+#line 355 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp40_ = p;
+#line 355 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               if (_tmp40_) {
+#line 2534 "TokenReader.c"
+                                       JSDOCTokenArray* _tmp41_;
+                                       gint _tmp42_;
+                                       JSDOCToken* _tmp43_;
+                                       JSDOCToken* _tmp44_;
+#line 356 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp41_ = tokens;
+#line 356 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp42_ = self->priv->line;
+#line 356 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp43_ = jsdoc_token_new (".", JSDOC_TOKEN_TYPE_PUNC, JSDOC_TOKEN_NAME_DOT, _tmp42_);
+#line 356 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp44_ = _tmp43_;
+#line 356 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       jsdoc_token_array_push (_tmp41_, _tmp44_);
+#line 356 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _g_object_unref0 (_tmp44_);
+#line 2551 "TokenReader.c"
+                               }
+#line 358 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               p = TRUE;
+#line 359 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp45_ = nm;
+#line 359 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp46_ = strlen (_tmp45_);
+#line 359 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp47_ = _tmp46_;
+#line 359 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               if (_tmp47_ < 1) {
+#line 360 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       continue;
+#line 2565 "TokenReader.c"
+                               }
+#line 362 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp48_ = tokens;
+#line 362 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp49_ = nm;
+#line 362 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp50_ = self->priv->line;
+#line 362 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp51_ = jsdoc_token_new (_tmp49_, JSDOC_TOKEN_TYPE_NAME, JSDOC_TOKEN_NAME_NAME, _tmp50_);
+#line 362 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp52_ = _tmp51_;
+#line 362 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               jsdoc_token_array_push (_tmp48_, _tmp52_);
+#line 362 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _g_object_unref0 (_tmp52_);
+#line 2581 "TokenReader.c"
+                       }
+               }
+       }
+#line 364 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       result = TRUE;
+#line 364 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       n = (_vala_array_free (n, n_length1, (GDestroyNotify) g_free), NULL);
+#line 364 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _g_free0 (found);
+#line 364 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       return result;
+#line 2593 "TokenReader.c"
+}
+
+
+/**
+            @returns {Boolean} Was the token found?
+         */
+gboolean jsdoc_token_reader_read_punc (JSDOCTokenReader* self, JSDOCTextStream* stream, JSDOCTokenArray* tokens) {
+       gboolean result = FALSE;
+       gchar* found = NULL;
+       gchar* _tmp0_;
+       gint pos = 0;
+       JSDOCTokenName tokname = 0;
+       JSDOCTokenName _tmp32_;
+       JSDOCToken* ls = NULL;
+       JSDOCTokenArray* _tmp33_;
+       JSDOCToken* _tmp34_;
+       gboolean _tmp35_ = FALSE;
+       gboolean _tmp36_ = FALSE;
+       gboolean _tmp37_ = FALSE;
+       const gchar* _tmp38_;
+       JSDOCTokenArray* _tmp52_;
+       const gchar* _tmp53_;
+       JSDOCTokenName _tmp54_;
+       gint _tmp55_;
+       JSDOCToken* _tmp56_;
+       JSDOCToken* _tmp57_;
+#line 372 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       g_return_val_if_fail (self != NULL, FALSE);
+#line 372 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       g_return_val_if_fail (stream != NULL, FALSE);
+#line 372 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       g_return_val_if_fail (tokens != NULL, FALSE);
+#line 374 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp0_ = g_strdup ("");
+#line 374 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       found = _tmp0_;
+#line 375 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       pos = 0;
+#line 376 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       tokname = JSDOC_TOKEN_NAME_UNKNOWN;
+#line 377 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       while (TRUE) {
+#line 2636 "TokenReader.c"
+               JSDOCTextStream* _tmp1_;
+               gboolean _tmp2_;
+               gchar ns = '\0';
+               JSDOCTextStream* _tmp3_;
+               gchar _tmp4_;
+               gint _tmp5_;
+               JSDOCTokenName nx = 0;
+               JSDOCLang_Class* _tmp16_;
+               const gchar* _tmp17_;
+               gchar _tmp18_;
+               gchar* _tmp19_;
+               gchar* _tmp20_;
+               gchar* _tmp21_;
+               gchar* _tmp22_;
+               JSDOCTokenName _tmp23_;
+               JSDOCTokenName _tmp24_;
+               JSDOCTokenName _tmp25_;
+               JSDOCTokenName _tmp26_;
+               const gchar* _tmp27_;
+               JSDOCTextStream* _tmp28_;
+               gchar* _tmp29_;
+               gchar* _tmp30_;
+               gchar* _tmp31_;
+#line 377 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp1_ = stream;
+#line 377 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp2_ = jsdoc_text_stream_lookEOF (_tmp1_, 0);
+#line 377 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               if (!(!_tmp2_)) {
+#line 377 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       break;
+#line 2668 "TokenReader.c"
+               }
+#line 378 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp3_ = stream;
+#line 378 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp4_ = jsdoc_text_stream_lookC (_tmp3_, 0);
+#line 378 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               ns = _tmp4_;
+#line 379 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp5_ = pos;
+#line 379 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               if (_tmp5_ == 0) {
+#line 2680 "TokenReader.c"
+                       JSDOCLang_Class* _tmp6_;
+                       gchar _tmp7_;
+                       JSDOCTokenName _tmp8_;
+                       JSDOCTokenName _tmp9_;
+                       gint _tmp10_;
+                       const gchar* _tmp11_;
+                       JSDOCTextStream* _tmp12_;
+                       gchar* _tmp13_;
+                       gchar* _tmp14_;
+                       gchar* _tmp15_;
+#line 380 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp6_ = jsdoc_Lang;
+#line 380 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp7_ = ns;
+#line 380 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp8_ = jsdoc_langclass_puncFirstString (_tmp6_, _tmp7_);
+#line 380 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       tokname = _tmp8_;
+#line 381 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp9_ = tokname;
+#line 381 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       if (JSDOC_TOKEN_NAME_UNKNOWN == _tmp9_) {
+#line 382 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               break;
+#line 2705 "TokenReader.c"
+                       }
+#line 384 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp10_ = pos;
+#line 384 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       pos = _tmp10_ + 1;
+#line 385 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp11_ = found;
+#line 385 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp12_ = stream;
+#line 385 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp13_ = jsdoc_text_stream_nextS (_tmp12_, 1);
+#line 385 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp14_ = _tmp13_;
+#line 385 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp15_ = g_strconcat (_tmp11_, _tmp14_, NULL);
+#line 385 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _g_free0 (found);
+#line 385 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       found = _tmp15_;
+#line 385 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _g_free0 (_tmp14_);
+#line 386 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       continue;
+#line 2729 "TokenReader.c"
+               }
+#line 388 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp16_ = jsdoc_Lang;
+#line 388 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp17_ = found;
+#line 388 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp18_ = ns;
+#line 388 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp19_ = g_strdup_printf ("%c", _tmp18_);
+#line 388 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp20_ = _tmp19_;
+#line 388 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp21_ = g_strconcat (_tmp17_, _tmp20_, NULL);
+#line 388 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp22_ = _tmp21_;
+#line 388 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp23_ = jsdoc_langclass_puncString (_tmp16_, _tmp22_);
+#line 388 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp24_ = _tmp23_;
+#line 388 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _g_free0 (_tmp22_);
+#line 388 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _g_free0 (_tmp20_);
+#line 388 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               nx = _tmp24_;
+#line 389 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp25_ = nx;
+#line 389 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               if (JSDOC_TOKEN_NAME_UNKNOWN == _tmp25_) {
+#line 390 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       break;
+#line 2761 "TokenReader.c"
+               }
+#line 393 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp26_ = nx;
+#line 393 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               tokname = _tmp26_;
+#line 394 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp27_ = found;
+#line 394 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp28_ = stream;
+#line 394 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp29_ = jsdoc_text_stream_nextS (_tmp28_, 1);
+#line 394 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp30_ = _tmp29_;
+#line 394 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp31_ = g_strconcat (_tmp27_, _tmp30_, NULL);
+#line 394 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _g_free0 (found);
+#line 394 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               found = _tmp31_;
+#line 394 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _g_free0 (_tmp30_);
+#line 2783 "TokenReader.c"
+       }
+#line 398 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp32_ = tokname;
+#line 398 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       if (_tmp32_ == JSDOC_TOKEN_NAME_UNKNOWN) {
+#line 399 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               result = FALSE;
+#line 399 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _g_free0 (found);
+#line 399 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               return result;
+#line 2795 "TokenReader.c"
+       }
+#line 402 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp33_ = tokens;
+#line 402 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp34_ = jsdoc_token_array_lastSym (_tmp33_);
+#line 402 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       ls = _tmp34_;
+#line 404 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp38_ = found;
+#line 404 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       if (g_strcmp0 (_tmp38_, "}") == 0) {
+#line 404 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp37_ = TRUE;
+#line 2809 "TokenReader.c"
+       } else {
+               const gchar* _tmp39_;
+#line 404 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp39_ = found;
+#line 404 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp37_ = g_strcmp0 (_tmp39_, "]") == 0;
+#line 2816 "TokenReader.c"
+       }
+#line 404 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       if (_tmp37_) {
+#line 2820 "TokenReader.c"
+               JSDOCToken* _tmp40_;
+#line 404 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp40_ = ls;
+#line 404 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp36_ = _tmp40_ != NULL;
+#line 2826 "TokenReader.c"
+       } else {
+#line 404 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp36_ = FALSE;
+#line 2830 "TokenReader.c"
+       }
+#line 404 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       if (_tmp36_) {
+#line 2834 "TokenReader.c"
+               JSDOCToken* _tmp41_;
+               const gchar* _tmp42_;
+#line 404 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp41_ = ls;
+#line 404 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp42_ = _tmp41_->data;
+#line 404 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp35_ = g_strcmp0 (_tmp42_, ",") == 0;
+#line 2843 "TokenReader.c"
+       } else {
+#line 404 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp35_ = FALSE;
+#line 2847 "TokenReader.c"
+       }
+#line 404 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       if (_tmp35_) {
+#line 2851 "TokenReader.c"
+               JSDOCPacker* _tmp43_;
+#line 407 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp43_ = self->priv->packer;
+#line 407 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               if (_tmp43_ != NULL) {
+#line 2857 "TokenReader.c"
+                       JSDOCPackerResultType _tmp44_ = 0;
+                       gboolean _tmp45_;
+                       JSDOCPacker* _tmp46_;
+                       const gchar* _tmp47_;
+                       gint _tmp48_;
+                       const gchar* _tmp49_;
+                       gchar* _tmp50_;
+                       gchar* _tmp51_;
+#line 409 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp45_ = self->ignoreBadGrammer;
+#line 409 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       if (_tmp45_) {
+#line 409 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp44_ = JSDOC_PACKER_RESULT_TYPE_warn;
+#line 2872 "TokenReader.c"
+                       } else {
+#line 409 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp44_ = JSDOC_PACKER_RESULT_TYPE_err;
+#line 2876 "TokenReader.c"
+                       }
+#line 408 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp46_ = self->priv->packer;
+#line 408 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp47_ = self->filename;
+#line 408 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp48_ = self->priv->line;
+#line 408 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp49_ = found;
+#line 408 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp50_ = g_strconcat ("comma found before ", _tmp49_, NULL);
+#line 408 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp51_ = _tmp50_;
+#line 408 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       jsdoc_packer_logError (_tmp46_, _tmp44_, _tmp47_, _tmp48_, _tmp51_);
+#line 408 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _g_free0 (_tmp51_);
+#line 2894 "TokenReader.c"
+               }
+       }
+#line 418 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp52_ = tokens;
+#line 418 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp53_ = found;
+#line 418 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp54_ = tokname;
+#line 418 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp55_ = self->priv->line;
+#line 418 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp56_ = jsdoc_token_new (_tmp53_, JSDOC_TOKEN_TYPE_PUNC, _tmp54_, _tmp55_);
+#line 418 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp57_ = _tmp56_;
+#line 418 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       jsdoc_token_array_push (_tmp52_, _tmp57_);
+#line 418 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _g_object_unref0 (_tmp57_);
+#line 419 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       result = TRUE;
+#line 419 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _g_object_unref0 (ls);
+#line 419 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _g_free0 (found);
+#line 419 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       return result;
+#line 2921 "TokenReader.c"
+}
+
+
+/**
+            @returns {Boolean} Was the token found?
+         */
+gboolean jsdoc_token_reader_read_space (JSDOCTokenReader* self, JSDOCTextStream* stream, JSDOCTokenArray* tokens) {
+       gboolean result = FALSE;
+       gchar* found = NULL;
+       gchar* _tmp0_;
+       const gchar* _tmp20_;
+       gboolean _tmp21_;
+       gboolean _tmp23_;
+#line 426 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       g_return_val_if_fail (self != NULL, FALSE);
+#line 426 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       g_return_val_if_fail (stream != NULL, FALSE);
+#line 426 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       g_return_val_if_fail (tokens != NULL, FALSE);
+#line 429 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp0_ = g_strdup ("");
+#line 429 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       found = _tmp0_;
+#line 431 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       while (TRUE) {
+#line 2947 "TokenReader.c"
+               gboolean _tmp1_ = FALSE;
+               gboolean _tmp2_ = FALSE;
+               JSDOCTextStream* _tmp3_;
+               gboolean _tmp4_;
+               const gchar* _tmp15_;
+               JSDOCTextStream* _tmp16_;
+               gchar* _tmp17_;
+               gchar* _tmp18_;
+               gchar* _tmp19_;
+#line 431 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp3_ = stream;
+#line 431 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp4_ = jsdoc_text_stream_lookEOF (_tmp3_, 0);
+#line 431 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               if (!_tmp4_) {
+#line 2963 "TokenReader.c"
+                       JSDOCLang_Class* _tmp5_;
+                       JSDOCTextStream* _tmp6_;
+                       gchar* _tmp7_;
+                       gchar* _tmp8_;
+                       gboolean _tmp9_;
+#line 431 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp5_ = jsdoc_Lang;
+#line 431 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp6_ = stream;
+#line 431 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp7_ = jsdoc_text_stream_lookS (_tmp6_, 0);
+#line 431 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp8_ = _tmp7_;
+#line 431 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp9_ = jsdoc_langclass_isSpace (_tmp5_, _tmp8_);
+#line 431 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp2_ = _tmp9_;
+#line 431 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _g_free0 (_tmp8_);
+#line 2983 "TokenReader.c"
+               } else {
+#line 431 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp2_ = FALSE;
+#line 2987 "TokenReader.c"
+               }
+#line 431 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               if (_tmp2_) {
+#line 2991 "TokenReader.c"
+                       JSDOCLang_Class* _tmp10_;
+                       JSDOCTextStream* _tmp11_;
+                       gchar* _tmp12_;
+                       gchar* _tmp13_;
+                       gboolean _tmp14_;
+#line 431 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp10_ = jsdoc_Lang;
+#line 431 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp11_ = stream;
+#line 431 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp12_ = jsdoc_text_stream_lookS (_tmp11_, 0);
+#line 431 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp13_ = _tmp12_;
+#line 431 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp14_ = jsdoc_langclass_isNewline (_tmp10_, _tmp13_);
+#line 431 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp1_ = !_tmp14_;
+#line 431 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _g_free0 (_tmp13_);
+#line 3011 "TokenReader.c"
+               } else {
+#line 431 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp1_ = FALSE;
+#line 3015 "TokenReader.c"
+               }
+#line 431 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               if (!_tmp1_) {
+#line 431 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       break;
+#line 3021 "TokenReader.c"
+               }
+#line 432 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp15_ = found;
+#line 432 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp16_ = stream;
+#line 432 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp17_ = jsdoc_text_stream_nextS (_tmp16_, 1);
+#line 432 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp18_ = _tmp17_;
+#line 432 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp19_ = g_strconcat (_tmp15_, _tmp18_, NULL);
+#line 432 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _g_free0 (found);
+#line 432 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               found = _tmp19_;
+#line 432 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _g_free0 (_tmp18_);
+#line 3039 "TokenReader.c"
+       }
+#line 435 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp20_ = found;
+#line 435 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       if (g_strcmp0 (_tmp20_, "") == 0) {
+#line 436 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               result = FALSE;
+#line 436 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _g_free0 (found);
+#line 436 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               return result;
+#line 3051 "TokenReader.c"
+       }
+#line 441 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp21_ = self->collapseWhite;
+#line 441 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       if (_tmp21_) {
+#line 3057 "TokenReader.c"
+               gchar* _tmp22_;
+#line 442 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp22_ = g_strdup (" ");
+#line 442 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _g_free0 (found);
+#line 442 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               found = _tmp22_;
+#line 3065 "TokenReader.c"
+       }
+#line 444 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp23_ = self->keepWhite;
+#line 444 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       if (_tmp23_) {
+#line 3071 "TokenReader.c"
+               JSDOCTokenArray* _tmp24_;
+               const gchar* _tmp25_;
+               gint _tmp26_;
+               JSDOCToken* _tmp27_;
+               JSDOCToken* _tmp28_;
+#line 445 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp24_ = tokens;
+#line 445 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp25_ = found;
+#line 445 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp26_ = self->priv->line;
+#line 445 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp27_ = jsdoc_token_new (_tmp25_, JSDOC_TOKEN_TYPE_WHIT, JSDOC_TOKEN_NAME_SPACE, _tmp26_);
+#line 445 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp28_ = _tmp27_;
+#line 445 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               jsdoc_token_array_push (_tmp24_, _tmp28_);
+#line 445 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _g_object_unref0 (_tmp28_);
+#line 3091 "TokenReader.c"
+       }
+#line 447 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       result = TRUE;
+#line 447 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _g_free0 (found);
+#line 447 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       return result;
+#line 3099 "TokenReader.c"
+}
+
+
+/**
+            @returns {Boolean} Was the token found?
+         */
+gboolean jsdoc_token_reader_read_newline (JSDOCTokenReader* self, JSDOCTextStream* stream, JSDOCTokenArray* tokens) {
+       gboolean result = FALSE;
+       gchar* found = NULL;
+       gchar* _tmp0_;
+       gint line = 0;
+       gint _tmp1_;
+       gchar* lastc = NULL;
+       gchar* _tmp2_;
+       const gchar* _tmp24_;
+       gboolean _tmp25_;
+       gboolean _tmp27_;
+#line 454 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       g_return_val_if_fail (self != NULL, FALSE);
+#line 454 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       g_return_val_if_fail (stream != NULL, FALSE);
+#line 454 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       g_return_val_if_fail (tokens != NULL, FALSE);
+#line 457 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp0_ = g_strdup ("");
+#line 457 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       found = _tmp0_;
+#line 459 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp1_ = self->priv->line;
+#line 459 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       line = _tmp1_;
+#line 461 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp2_ = g_strdup ("");
+#line 461 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       lastc = _tmp2_;
+#line 462 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       while (TRUE) {
+#line 3137 "TokenReader.c"
+               gboolean _tmp3_ = FALSE;
+               JSDOCTextStream* _tmp4_;
+               gboolean _tmp5_;
+               gchar* cur = NULL;
+               JSDOCTextStream* _tmp11_;
+               gchar* _tmp12_;
+               gboolean _tmp13_ = FALSE;
+               const gchar* _tmp14_;
+               const gchar* _tmp17_;
+               gchar* _tmp18_;
+               const gchar* _tmp19_;
+               JSDOCTextStream* _tmp20_;
+               gchar* _tmp21_;
+               gchar* _tmp22_;
+               gchar* _tmp23_;
+#line 462 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp4_ = stream;
+#line 462 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp5_ = jsdoc_text_stream_lookEOF (_tmp4_, 0);
+#line 462 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               if (!_tmp5_) {
+#line 3159 "TokenReader.c"
+                       JSDOCLang_Class* _tmp6_;
+                       JSDOCTextStream* _tmp7_;
+                       gchar* _tmp8_;
+                       gchar* _tmp9_;
+                       gboolean _tmp10_;
+#line 462 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp6_ = jsdoc_Lang;
+#line 462 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp7_ = stream;
+#line 462 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp8_ = jsdoc_text_stream_lookS (_tmp7_, 0);
+#line 462 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp9_ = _tmp8_;
+#line 462 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp10_ = jsdoc_langclass_isNewline (_tmp6_, _tmp9_);
+#line 462 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp3_ = _tmp10_;
+#line 462 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _g_free0 (_tmp9_);
+#line 3179 "TokenReader.c"
+               } else {
+#line 462 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp3_ = FALSE;
+#line 3183 "TokenReader.c"
+               }
+#line 462 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               if (!_tmp3_) {
+#line 462 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       break;
+#line 3189 "TokenReader.c"
+               }
+#line 463 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp11_ = stream;
+#line 463 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp12_ = jsdoc_text_stream_lookS (_tmp11_, 0);
+#line 463 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               cur = _tmp12_;
+#line 464 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp14_ = lastc;
+#line 464 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               if (g_strcmp0 (_tmp14_, "\r") == 0) {
+#line 3201 "TokenReader.c"
+                       const gchar* _tmp15_;
+#line 464 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp15_ = cur;
+#line 464 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp13_ = g_strcmp0 (_tmp15_, "\n") == 0;
+#line 3207 "TokenReader.c"
+               } else {
+#line 464 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp13_ = FALSE;
+#line 3211 "TokenReader.c"
+               }
+#line 464 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               if (_tmp13_) {
+#line 3215 "TokenReader.c"
+               } else {
+                       gint _tmp16_;
+#line 467 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp16_ = self->priv->line;
+#line 467 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       self->priv->line = _tmp16_ + 1;
+#line 3222 "TokenReader.c"
+               }
+#line 469 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp17_ = cur;
+#line 469 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp18_ = g_strdup (_tmp17_);
+#line 469 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _g_free0 (lastc);
+#line 469 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               lastc = _tmp18_;
+#line 472 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp19_ = found;
+#line 472 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp20_ = stream;
+#line 472 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp21_ = jsdoc_text_stream_nextS (_tmp20_, 1);
+#line 472 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp22_ = _tmp21_;
+#line 472 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp23_ = g_strconcat (_tmp19_, _tmp22_, NULL);
+#line 472 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _g_free0 (found);
+#line 472 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               found = _tmp23_;
+#line 472 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _g_free0 (_tmp22_);
+#line 462 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _g_free0 (cur);
+#line 3250 "TokenReader.c"
+       }
+#line 475 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp24_ = found;
+#line 475 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       if (g_strcmp0 (_tmp24_, "") == 0) {
+#line 476 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               result = FALSE;
+#line 476 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _g_free0 (lastc);
+#line 476 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _g_free0 (found);
+#line 476 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               return result;
+#line 3264 "TokenReader.c"
+       }
+#line 484 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp25_ = self->collapseWhite;
+#line 484 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       if (_tmp25_) {
+#line 3270 "TokenReader.c"
+               gchar* _tmp26_;
+#line 485 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp26_ = g_strdup ("\n");
+#line 485 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _g_free0 (found);
+#line 485 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               found = _tmp26_;
+#line 3278 "TokenReader.c"
+       }
+#line 488 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp27_ = self->keepWhite;
+#line 488 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       if (_tmp27_) {
+#line 3284 "TokenReader.c"
+               JSDOCToken* last = NULL;
+               JSDOCTokenArray* _tmp28_;
+               JSDOCToken* _tmp29_;
+               gboolean _tmp30_ = FALSE;
+               JSDOCToken* _tmp31_;
+               JSDOCTokenArray* _tmp37_;
+               const gchar* _tmp38_;
+               gint _tmp39_;
+               JSDOCToken* _tmp40_;
+               JSDOCToken* _tmp41_;
+#line 489 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp28_ = tokens;
+#line 489 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp29_ = jsdoc_token_array_last (_tmp28_);
+#line 489 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               last = _tmp29_;
+#line 490 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp31_ = last;
+#line 490 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               if (_tmp31_ != NULL) {
+#line 3305 "TokenReader.c"
+                       JSDOCToken* _tmp32_;
+                       JSDOCTokenType _tmp33_;
+#line 490 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp32_ = last;
+#line 490 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp33_ = _tmp32_->type;
+#line 490 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp30_ = _tmp33_ != JSDOC_TOKEN_TYPE_WHIT;
+#line 3314 "TokenReader.c"
+               } else {
+#line 490 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp30_ = FALSE;
+#line 3318 "TokenReader.c"
+               }
+#line 490 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               if (_tmp30_) {
+#line 3322 "TokenReader.c"
+               } else {
+                       JSDOCTokenArray* _tmp34_;
+                       JSDOCToken* _tmp35_;
+                       JSDOCToken* _tmp36_;
+#line 493 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp34_ = tokens;
+#line 493 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp35_ = jsdoc_token_array_pop (_tmp34_);
+#line 493 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp36_ = _tmp35_;
+#line 493 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _g_object_unref0 (_tmp36_);
+#line 3335 "TokenReader.c"
+               }
+#line 496 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp37_ = tokens;
+#line 496 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp38_ = found;
+#line 496 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp39_ = line;
+#line 496 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp40_ = jsdoc_token_new (_tmp38_, JSDOC_TOKEN_TYPE_WHIT, JSDOC_TOKEN_NAME_NEWLINE, _tmp39_);
+#line 496 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp41_ = _tmp40_;
+#line 496 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               jsdoc_token_array_push (_tmp37_, _tmp41_);
+#line 496 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _g_object_unref0 (_tmp41_);
+#line 488 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _g_object_unref0 (last);
+#line 3353 "TokenReader.c"
+       }
+#line 498 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       result = TRUE;
+#line 498 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _g_free0 (lastc);
+#line 498 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _g_free0 (found);
+#line 498 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       return result;
+#line 3363 "TokenReader.c"
+}
+
+
+/**
+            @returns {Boolean} Was the token found?
+         */
+static gchar string_get (const gchar* self, glong index) {
+       gchar result = '\0';
+       glong _tmp0_;
+       gchar _tmp1_;
+#line 1110 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (self != NULL, '\0');
+#line 1111 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp0_ = index;
+#line 1111 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp1_ = ((gchar*) self)[_tmp0_];
+#line 1111 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       result = _tmp1_;
+#line 1111 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       return result;
+#line 3384 "TokenReader.c"
+}
+
+
+gboolean jsdoc_token_reader_read_mlcomment (JSDOCTokenReader* self, JSDOCTextStream* stream, JSDOCTokenArray* tokens) {
+       gboolean result = FALSE;
+       JSDOCTextStream* _tmp0_;
+       gchar _tmp1_;
+       JSDOCTextStream* _tmp2_;
+       gchar _tmp3_;
+       GString* found = NULL;
+       GString* _tmp4_;
+       GString* _tmp5_;
+       JSDOCTextStream* _tmp6_;
+       gchar* _tmp7_;
+       gchar* _tmp8_;
+       gchar* c = NULL;
+       gchar* _tmp9_;
+       gint line = 0;
+       gint _tmp10_;
+       gboolean _tmp25_ = FALSE;
+       gboolean _tmp26_ = FALSE;
+       gboolean _tmp27_ = FALSE;
+       gboolean _tmp28_;
+#line 504 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       g_return_val_if_fail (self != NULL, FALSE);
+#line 504 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       g_return_val_if_fail (stream != NULL, FALSE);
+#line 504 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       g_return_val_if_fail (tokens != NULL, FALSE);
+#line 506 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp0_ = stream;
+#line 506 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp1_ = jsdoc_text_stream_lookC (_tmp0_, 0);
+#line 506 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       if (_tmp1_ != '/') {
+#line 507 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               result = FALSE;
+#line 507 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               return result;
+#line 3424 "TokenReader.c"
+       }
+#line 509 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp2_ = stream;
+#line 509 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp3_ = jsdoc_text_stream_lookC (_tmp2_, 1);
+#line 509 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       if (_tmp3_ != '*') {
+#line 510 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               result = FALSE;
+#line 510 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               return result;
+#line 3436 "TokenReader.c"
+       }
+#line 513 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp4_ = g_string_new ("");
+#line 513 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       found = _tmp4_;
+#line 514 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp5_ = found;
+#line 514 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp6_ = stream;
+#line 514 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp7_ = jsdoc_text_stream_nextS (_tmp6_, 2);
+#line 514 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp8_ = _tmp7_;
+#line 514 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       g_string_append (_tmp5_, _tmp8_);
+#line 514 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _g_free0 (_tmp8_);
+#line 517 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp9_ = g_strdup ("");
+#line 517 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       c = _tmp9_;
+#line 518 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp10_ = self->priv->line;
+#line 518 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       line = _tmp10_;
+#line 519 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       while (TRUE) {
+#line 3464 "TokenReader.c"
+               gboolean _tmp11_ = FALSE;
+               JSDOCTextStream* _tmp12_;
+               gboolean _tmp13_;
+               JSDOCTextStream* _tmp19_;
+               gchar* _tmp20_;
+               const gchar* _tmp21_;
+               GString* _tmp23_;
+               const gchar* _tmp24_;
+#line 519 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp12_ = stream;
+#line 519 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp13_ = jsdoc_text_stream_lookEOF (_tmp12_, 0);
+#line 519 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               if (!_tmp13_) {
+#line 3479 "TokenReader.c"
+                       gboolean _tmp14_ = FALSE;
+                       JSDOCTextStream* _tmp15_;
+                       gchar _tmp16_;
+#line 519 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp15_ = stream;
+#line 519 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp16_ = jsdoc_text_stream_lookC (_tmp15_, -1);
+#line 519 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       if (_tmp16_ == '/') {
+#line 3489 "TokenReader.c"
+                               JSDOCTextStream* _tmp17_;
+                               gchar _tmp18_;
+#line 519 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp17_ = stream;
+#line 519 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp18_ = jsdoc_text_stream_lookC (_tmp17_, -2);
+#line 519 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp14_ = _tmp18_ == '*';
+#line 3498 "TokenReader.c"
+                       } else {
+#line 519 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp14_ = FALSE;
+#line 3502 "TokenReader.c"
+                       }
+#line 519 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp11_ = !_tmp14_;
+#line 3506 "TokenReader.c"
+               } else {
+#line 519 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp11_ = FALSE;
+#line 3510 "TokenReader.c"
+               }
+#line 519 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               if (!_tmp11_) {
+#line 519 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       break;
+#line 3516 "TokenReader.c"
+               }
+#line 520 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp19_ = stream;
+#line 520 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp20_ = jsdoc_text_stream_nextS (_tmp19_, 1);
+#line 520 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _g_free0 (c);
+#line 520 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               c = _tmp20_;
+#line 521 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp21_ = c;
+#line 521 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               if (g_strcmp0 (_tmp21_, "\n") == 0) {
+#line 3530 "TokenReader.c"
+                       gint _tmp22_;
+#line 522 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp22_ = self->priv->line;
+#line 522 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       self->priv->line = _tmp22_ + 1;
+#line 3536 "TokenReader.c"
+               }
+#line 524 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp23_ = found;
+#line 524 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp24_ = c;
+#line 524 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               g_string_append (_tmp23_, _tmp24_);
+#line 3544 "TokenReader.c"
+       }
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp28_ = self->keepDocs;
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       if (_tmp28_) {
+#line 3550 "TokenReader.c"
+               GString* _tmp29_;
+               gssize _tmp30_;
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp29_ = found;
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp30_ = _tmp29_->len;
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp27_ = _tmp30_ > ((gssize) 4);
+#line 3559 "TokenReader.c"
+       } else {
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp27_ = FALSE;
+#line 3563 "TokenReader.c"
+       }
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       if (_tmp27_) {
+#line 3567 "TokenReader.c"
+               GString* _tmp31_;
+               const gchar* _tmp32_;
+               gint _tmp33_;
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp31_ = found;
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp32_ = _tmp31_->str;
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp33_ = string_index_of (_tmp32_, "/**", 0);
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp26_ = _tmp33_ == 0;
+#line 3579 "TokenReader.c"
+       } else {
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp26_ = FALSE;
+#line 3583 "TokenReader.c"
+       }
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       if (_tmp26_) {
+#line 3587 "TokenReader.c"
+               GString* _tmp34_;
+               const gchar* _tmp35_;
+               gchar _tmp36_;
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp34_ = found;
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp35_ = _tmp34_->str;
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp36_ = string_get (_tmp35_, (glong) 3);
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp25_ = _tmp36_ != '/';
+#line 3599 "TokenReader.c"
+       } else {
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp25_ = FALSE;
+#line 3603 "TokenReader.c"
+       }
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       if (_tmp25_) {
+#line 3607 "TokenReader.c"
+               JSDOCTokenArray* _tmp37_;
+               GString* _tmp38_;
+               const gchar* _tmp39_;
+               gint _tmp40_;
+               JSDOCToken* _tmp41_;
+               JSDOCToken* _tmp42_;
+#line 530 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp37_ = tokens;
+#line 530 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp38_ = found;
+#line 530 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp39_ = _tmp38_->str;
+#line 530 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp40_ = self->priv->line;
+#line 530 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp41_ = jsdoc_token_new (_tmp39_, JSDOC_TOKEN_TYPE_COMM, JSDOC_TOKEN_NAME_JSDOC, _tmp40_);
+#line 530 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp42_ = _tmp41_;
+#line 530 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               jsdoc_token_array_push (_tmp37_, _tmp42_);
+#line 530 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _g_object_unref0 (_tmp42_);
+#line 3630 "TokenReader.c"
+       } else {
+               gboolean _tmp43_;
+#line 531 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp43_ = self->keepComments;
+#line 531 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               if (_tmp43_) {
+#line 3637 "TokenReader.c"
+                       JSDOCTokenArray* _tmp44_;
+                       GString* _tmp45_;
+                       const gchar* _tmp46_;
+                       gint _tmp47_;
+                       JSDOCToken* _tmp48_;
+                       JSDOCToken* _tmp49_;
+#line 532 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp44_ = tokens;
+#line 532 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp45_ = found;
+#line 532 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp46_ = _tmp45_->str;
+#line 532 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp47_ = line;
+#line 532 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp48_ = jsdoc_token_new (_tmp46_, JSDOC_TOKEN_TYPE_COMM, JSDOC_TOKEN_NAME_MULTI_LINE_COMM, _tmp47_);
+#line 532 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp49_ = _tmp48_;
+#line 532 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       jsdoc_token_array_push (_tmp44_, _tmp49_);
+#line 532 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _g_object_unref0 (_tmp49_);
+#line 3660 "TokenReader.c"
+               }
+       }
+#line 534 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       result = TRUE;
+#line 534 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _g_free0 (c);
+#line 534 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _g_string_free0 (found);
+#line 534 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       return result;
+#line 3671 "TokenReader.c"
+}
+
+
+/**
+            @returns {Boolean} Was the token found?
+         */
+static const gchar* string_to_string (const gchar* self) {
+       const gchar* result = NULL;
+#line 1442 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 1443 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       result = self;
+#line 1443 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       return result;
+#line 3686 "TokenReader.c"
+}
+
+
+gboolean jsdoc_token_reader_read_slcomment (JSDOCTokenReader* self, JSDOCTextStream* stream, JSDOCTokenArray* tokens) {
+       gboolean result = FALSE;
+       gchar* found = NULL;
+       gchar* _tmp0_;
+       gboolean _tmp1_ = FALSE;
+       gboolean _tmp2_ = FALSE;
+       gboolean _tmp3_ = FALSE;
+       JSDOCTextStream* _tmp4_;
+       gchar _tmp5_;
+#line 541 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       g_return_val_if_fail (self != NULL, FALSE);
+#line 541 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       g_return_val_if_fail (stream != NULL, FALSE);
+#line 541 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       g_return_val_if_fail (tokens != NULL, FALSE);
+#line 543 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp0_ = g_strdup ("");
+#line 543 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       found = _tmp0_;
+#line 545 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp4_ = stream;
+#line 545 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp5_ = jsdoc_text_stream_lookC (_tmp4_, 0);
+#line 545 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       if (_tmp5_ == '/') {
+#line 3715 "TokenReader.c"
+               JSDOCTextStream* _tmp6_;
+               gchar _tmp7_;
+#line 545 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp6_ = stream;
+#line 545 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp7_ = jsdoc_text_stream_lookC (_tmp6_, 1);
+#line 545 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp3_ = _tmp7_ == '/';
+#line 3724 "TokenReader.c"
+       } else {
+#line 545 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp3_ = FALSE;
+#line 3728 "TokenReader.c"
+       }
+#line 545 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       if (_tmp3_) {
+#line 3732 "TokenReader.c"
+               JSDOCTextStream* _tmp8_;
+               gchar* _tmp9_;
+               const gchar* _tmp10_;
+#line 545 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp8_ = stream;
+#line 545 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp9_ = jsdoc_text_stream_nextS (_tmp8_, 2);
+#line 545 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _g_free0 (found);
+#line 545 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               found = _tmp9_;
+#line 545 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp10_ = found;
+#line 545 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp2_ = g_strcmp0 ("", _tmp10_) != 0;
+#line 3748 "TokenReader.c"
+       } else {
+#line 545 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp2_ = FALSE;
+#line 3752 "TokenReader.c"
+       }
+#line 545 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       if (_tmp2_) {
+#line 545 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp1_ = TRUE;
+#line 3758 "TokenReader.c"
+       } else {
+               gboolean _tmp11_ = FALSE;
+               gboolean _tmp12_ = FALSE;
+               gboolean _tmp13_ = FALSE;
+               gboolean _tmp14_ = FALSE;
+               JSDOCTextStream* _tmp15_;
+               gchar _tmp16_;
+#line 547 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp15_ = stream;
+#line 547 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp16_ = jsdoc_text_stream_lookC (_tmp15_, 0);
+#line 547 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               if (_tmp16_ == '<') {
+#line 3772 "TokenReader.c"
+                       JSDOCTextStream* _tmp17_;
+                       gchar _tmp18_;
+#line 547 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp17_ = stream;
+#line 547 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp18_ = jsdoc_text_stream_lookC (_tmp17_, 1);
+#line 547 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp14_ = _tmp18_ == '!';
+#line 3781 "TokenReader.c"
+               } else {
+#line 547 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp14_ = FALSE;
+#line 3785 "TokenReader.c"
+               }
+#line 547 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               if (_tmp14_) {
+#line 3789 "TokenReader.c"
+                       JSDOCTextStream* _tmp19_;
+                       gchar _tmp20_;
+#line 547 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp19_ = stream;
+#line 547 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp20_ = jsdoc_text_stream_lookC (_tmp19_, 2);
+#line 547 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp13_ = _tmp20_ == '-';
+#line 3798 "TokenReader.c"
+               } else {
+#line 547 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp13_ = FALSE;
+#line 3802 "TokenReader.c"
+               }
+#line 547 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               if (_tmp13_) {
+#line 3806 "TokenReader.c"
+                       JSDOCTextStream* _tmp21_;
+                       gchar _tmp22_;
+#line 547 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp21_ = stream;
+#line 547 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp22_ = jsdoc_text_stream_lookC (_tmp21_, 3);
+#line 547 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp12_ = _tmp22_ == '-';
+#line 3815 "TokenReader.c"
+               } else {
+#line 547 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp12_ = FALSE;
+#line 3819 "TokenReader.c"
+               }
+#line 547 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               if (_tmp12_) {
+#line 3823 "TokenReader.c"
+                       JSDOCTextStream* _tmp23_;
+                       gchar* _tmp24_;
+                       const gchar* _tmp25_;
+#line 547 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp23_ = stream;
+#line 547 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp24_ = jsdoc_text_stream_nextS (_tmp23_, 4);
+#line 547 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _g_free0 (found);
+#line 547 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       found = _tmp24_;
+#line 547 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp25_ = found;
+#line 547 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp11_ = g_strcmp0 ("", _tmp25_) != 0;
+#line 3839 "TokenReader.c"
+               } else {
+#line 547 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp11_ = FALSE;
+#line 3843 "TokenReader.c"
+               }
+#line 547 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp1_ = _tmp11_;
+#line 3847 "TokenReader.c"
+       }
+#line 544 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       if (_tmp1_) {
+#line 3851 "TokenReader.c"
+               gint line = 0;
+               gint _tmp26_;
+               JSDOCTextStream* _tmp41_;
+               gboolean _tmp42_;
+               gboolean _tmp48_;
+               gint _tmp54_;
+#line 549 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp26_ = self->priv->line;
+#line 549 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               line = _tmp26_;
+#line 550 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               while (TRUE) {
+#line 3864 "TokenReader.c"
+                       JSDOCTextStream* _tmp27_;
+                       gboolean _tmp28_;
+                       JSDOCLang_Class* _tmp29_;
+                       JSDOCTextStream* _tmp30_;
+                       gchar* _tmp31_;
+                       gchar* _tmp32_;
+                       const gchar* _tmp33_;
+                       gboolean _tmp34_;
+                       gboolean _tmp35_;
+                       const gchar* _tmp36_;
+                       JSDOCTextStream* _tmp37_;
+                       gchar* _tmp38_;
+                       gchar* _tmp39_;
+                       gchar* _tmp40_;
+#line 550 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp27_ = stream;
+#line 550 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp28_ = jsdoc_text_stream_lookEOF (_tmp27_, 0);
+#line 550 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       if (!(!_tmp28_)) {
+#line 550 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               break;
+#line 3887 "TokenReader.c"
+                       }
+#line 552 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp29_ = jsdoc_Lang;
+#line 552 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp30_ = stream;
+#line 552 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp31_ = jsdoc_text_stream_lookS (_tmp30_, 0);
+#line 552 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp32_ = _tmp31_;
+#line 552 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp33_ = string_to_string (_tmp32_);
+#line 552 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp34_ = jsdoc_langclass_isNewline (_tmp29_, _tmp33_);
+#line 552 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp35_ = _tmp34_;
+#line 552 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _g_free0 (_tmp32_);
+#line 552 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       if (_tmp35_) {
+#line 553 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               break;
+#line 3909 "TokenReader.c"
+                       }
+#line 555 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp36_ = found;
+#line 555 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp37_ = stream;
+#line 555 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp38_ = jsdoc_text_stream_nextS (_tmp37_, 1);
+#line 555 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp39_ = _tmp38_;
+#line 555 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp40_ = g_strconcat (_tmp36_, _tmp39_, NULL);
+#line 555 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _g_free0 (found);
+#line 555 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       found = _tmp40_;
+#line 555 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _g_free0 (_tmp39_);
+#line 3927 "TokenReader.c"
+               }
+#line 557 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp41_ = stream;
+#line 557 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp42_ = jsdoc_text_stream_lookEOF (_tmp41_, 0);
+#line 557 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               if (!_tmp42_) {
+#line 3935 "TokenReader.c"
+                       const gchar* _tmp43_;
+                       JSDOCTextStream* _tmp44_;
+                       gchar* _tmp45_;
+                       gchar* _tmp46_;
+                       gchar* _tmp47_;
+#line 558 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp43_ = found;
+#line 558 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp44_ = stream;
+#line 558 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp45_ = jsdoc_text_stream_nextS (_tmp44_, 1);
+#line 558 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp46_ = _tmp45_;
+#line 558 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp47_ = g_strconcat (_tmp43_, _tmp46_, NULL);
+#line 558 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _g_free0 (found);
+#line 558 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       found = _tmp47_;
+#line 558 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _g_free0 (_tmp46_);
+#line 3957 "TokenReader.c"
+               }
+#line 560 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp48_ = self->keepComments;
+#line 560 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               if (_tmp48_) {
+#line 3963 "TokenReader.c"
+                       JSDOCTokenArray* _tmp49_;
+                       const gchar* _tmp50_;
+                       gint _tmp51_;
+                       JSDOCToken* _tmp52_;
+                       JSDOCToken* _tmp53_;
+#line 561 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp49_ = tokens;
+#line 561 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp50_ = found;
+#line 561 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp51_ = line;
+#line 561 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp52_ = jsdoc_token_new (_tmp50_, JSDOC_TOKEN_TYPE_COMM, JSDOC_TOKEN_NAME_SINGLE_LINE_COMM, _tmp51_);
+#line 561 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp53_ = _tmp52_;
+#line 561 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       jsdoc_token_array_push (_tmp49_, _tmp53_);
+#line 561 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _g_object_unref0 (_tmp53_);
+#line 3983 "TokenReader.c"
+               }
+#line 563 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp54_ = self->priv->line;
+#line 563 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               self->priv->line = _tmp54_ + 1;
+#line 564 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               result = TRUE;
+#line 564 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _g_free0 (found);
+#line 564 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               return result;
+#line 3995 "TokenReader.c"
+       }
+#line 566 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       result = FALSE;
+#line 566 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _g_free0 (found);
+#line 566 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       return result;
+#line 4003 "TokenReader.c"
+}
+
+
+/**
+            @returns {Boolean} Was the token found?
+         */
+gboolean jsdoc_token_reader_read_dbquote (JSDOCTokenReader* self, JSDOCTextStream* stream, JSDOCTokenArray* tokens) {
+       gboolean result = FALSE;
+       JSDOCTextStream* _tmp0_;
+       gchar _tmp1_;
+       GString* str = NULL;
+       GString* _tmp2_;
+       GString* _tmp3_;
+       JSDOCTextStream* _tmp4_;
+       gchar _tmp5_;
+#line 572 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       g_return_val_if_fail (self != NULL, FALSE);
+#line 572 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       g_return_val_if_fail (stream != NULL, FALSE);
+#line 572 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       g_return_val_if_fail (tokens != NULL, FALSE);
+#line 574 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp0_ = stream;
+#line 574 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp1_ = jsdoc_text_stream_lookC (_tmp0_, 0);
+#line 574 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       if (_tmp1_ != '"') {
+#line 575 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               result = FALSE;
+#line 575 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               return result;
+#line 4035 "TokenReader.c"
+       }
+#line 578 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp2_ = g_string_new ("");
+#line 578 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       str = _tmp2_;
+#line 579 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp3_ = str;
+#line 579 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp4_ = stream;
+#line 579 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp5_ = jsdoc_text_stream_nextC (_tmp4_);
+#line 579 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       g_string_append_unichar (_tmp3_, (gunichar) _tmp5_);
+#line 581 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       while (TRUE) {
+#line 4051 "TokenReader.c"
+               JSDOCTextStream* _tmp6_;
+               gboolean _tmp7_;
+               JSDOCTextStream* _tmp8_;
+               gchar _tmp9_;
+               JSDOCTextStream* _tmp33_;
+               gchar _tmp34_;
+               GString* _tmp44_;
+               JSDOCTextStream* _tmp45_;
+               gchar* _tmp46_;
+               gchar* _tmp47_;
+#line 581 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp6_ = stream;
+#line 581 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp7_ = jsdoc_text_stream_lookEOF (_tmp6_, 0);
+#line 581 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               if (!(!_tmp7_)) {
+#line 581 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       break;
+#line 4070 "TokenReader.c"
+               }
+#line 582 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp8_ = stream;
+#line 582 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp9_ = jsdoc_text_stream_lookC (_tmp8_, 0);
+#line 582 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               if (_tmp9_ == '\\') {
+#line 4078 "TokenReader.c"
+                       JSDOCLang_Class* _tmp10_;
+                       JSDOCTextStream* _tmp11_;
+                       gchar* _tmp12_;
+                       gchar* _tmp13_;
+                       const gchar* _tmp14_;
+                       gboolean _tmp15_;
+                       gboolean _tmp16_;
+#line 583 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp10_ = jsdoc_Lang;
+#line 583 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp11_ = stream;
+#line 583 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp12_ = jsdoc_text_stream_lookS (_tmp11_, 1);
+#line 583 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp13_ = _tmp12_;
+#line 583 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp14_ = string_to_string (_tmp13_);
+#line 583 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp15_ = jsdoc_langclass_isNewline (_tmp10_, _tmp14_);
+#line 583 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp16_ = _tmp15_;
+#line 583 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _g_free0 (_tmp13_);
+#line 583 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       if (_tmp16_) {
+#line 4104 "TokenReader.c"
+                               GString* _tmp28_;
+                               {
+                                       gboolean _tmp17_ = FALSE;
+#line 584 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp17_ = TRUE;
+#line 584 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       while (TRUE) {
+#line 4112 "TokenReader.c"
+                                               JSDOCTextStream* _tmp27_;
+#line 584 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                               if (!_tmp17_) {
+#line 4116 "TokenReader.c"
+                                                       gboolean _tmp18_ = FALSE;
+                                                       JSDOCTextStream* _tmp19_;
+                                                       gboolean _tmp20_;
+#line 586 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                                       _tmp19_ = stream;
+#line 586 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                                       _tmp20_ = jsdoc_text_stream_lookEOF (_tmp19_, 0);
+#line 586 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                                       if (!_tmp20_) {
+#line 4126 "TokenReader.c"
+                                                               JSDOCLang_Class* _tmp21_;
+                                                               JSDOCTextStream* _tmp22_;
+                                                               gchar* _tmp23_;
+                                                               gchar* _tmp24_;
+                                                               const gchar* _tmp25_;
+                                                               gboolean _tmp26_;
+#line 586 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                                               _tmp21_ = jsdoc_Lang;
+#line 586 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                                               _tmp22_ = stream;
+#line 586 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                                               _tmp23_ = jsdoc_text_stream_lookS (_tmp22_, 0);
+#line 586 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                                               _tmp24_ = _tmp23_;
+#line 586 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                                               _tmp25_ = string_to_string (_tmp24_);
+#line 586 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                                               _tmp26_ = jsdoc_langclass_isNewline (_tmp21_, _tmp25_);
+#line 586 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                                               _tmp18_ = _tmp26_;
+#line 586 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                                               _g_free0 (_tmp24_);
+#line 4149 "TokenReader.c"
+                                                       } else {
+#line 586 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                                               _tmp18_ = FALSE;
+#line 4153 "TokenReader.c"
+                                                       }
+#line 586 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                                       if (!_tmp18_) {
+#line 586 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                                               break;
+#line 4159 "TokenReader.c"
+                                                       }
+                                               }
+#line 584 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                               _tmp17_ = FALSE;
+#line 585 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                               _tmp27_ = stream;
+#line 585 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                               jsdoc_text_stream_nextC (_tmp27_);
+#line 4168 "TokenReader.c"
+                                       }
+                               }
+#line 587 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp28_ = str;
+#line 587 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               g_string_append (_tmp28_, "\\\n");
+#line 4175 "TokenReader.c"
+                       } else {
+                               GString* _tmp29_;
+                               JSDOCTextStream* _tmp30_;
+                               gchar* _tmp31_;
+                               gchar* _tmp32_;
+#line 590 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp29_ = str;
+#line 590 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp30_ = stream;
+#line 590 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp31_ = jsdoc_text_stream_nextS (_tmp30_, 2);
+#line 590 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp32_ = _tmp31_;
+#line 590 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               g_string_append (_tmp29_, _tmp32_);
+#line 590 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _g_free0 (_tmp32_);
+#line 4193 "TokenReader.c"
+                       }
+#line 592 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       continue;
+#line 4197 "TokenReader.c"
+               }
+#line 594 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp33_ = stream;
+#line 594 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp34_ = jsdoc_text_stream_lookC (_tmp33_, 0);
+#line 594 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               if (_tmp34_ == '"') {
+#line 4205 "TokenReader.c"
+                       GString* _tmp35_;
+                       JSDOCTextStream* _tmp36_;
+                       gchar _tmp37_;
+                       JSDOCTokenArray* _tmp38_;
+                       GString* _tmp39_;
+                       const gchar* _tmp40_;
+                       gint _tmp41_;
+                       JSDOCToken* _tmp42_;
+                       JSDOCToken* _tmp43_;
+#line 595 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp35_ = str;
+#line 595 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp36_ = stream;
+#line 595 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp37_ = jsdoc_text_stream_nextC (_tmp36_);
+#line 595 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       g_string_append_unichar (_tmp35_, (gunichar) _tmp37_);
+#line 596 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp38_ = tokens;
+#line 596 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp39_ = str;
+#line 596 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp40_ = _tmp39_->str;
+#line 596 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp41_ = self->priv->line;
+#line 596 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp42_ = jsdoc_token_new (_tmp40_, JSDOC_TOKEN_TYPE_STRN, JSDOC_TOKEN_NAME_DOUBLE_QUOTE, _tmp41_);
+#line 596 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp43_ = _tmp42_;
+#line 596 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       jsdoc_token_array_push (_tmp38_, _tmp43_);
+#line 596 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _g_object_unref0 (_tmp43_);
+#line 597 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       result = TRUE;
+#line 597 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _g_string_free0 (str);
+#line 597 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       return result;
+#line 4245 "TokenReader.c"
+               }
+#line 600 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp44_ = str;
+#line 600 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp45_ = stream;
+#line 600 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp46_ = jsdoc_text_stream_nextS (_tmp45_, 1);
+#line 600 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp47_ = _tmp46_;
+#line 600 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               g_string_append (_tmp44_, _tmp47_);
+#line 600 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _g_free0 (_tmp47_);
+#line 4259 "TokenReader.c"
+       }
+#line 603 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       result = FALSE;
+#line 603 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _g_string_free0 (str);
+#line 603 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       return result;
+#line 4267 "TokenReader.c"
+}
+
+
+/**
+            @returns {Boolean} Was the token found?
+         */
+gboolean jsdoc_token_reader_read_snquote (JSDOCTokenReader* self, JSDOCTextStream* stream, JSDOCTokenArray* tokens) {
+       gboolean result = FALSE;
+       JSDOCTextStream* _tmp0_;
+       gchar _tmp1_;
+       GString* str = NULL;
+       GString* _tmp2_;
+       GString* _tmp3_;
+       JSDOCTextStream* _tmp4_;
+       gchar _tmp5_;
+#line 609 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       g_return_val_if_fail (self != NULL, FALSE);
+#line 609 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       g_return_val_if_fail (stream != NULL, FALSE);
+#line 609 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       g_return_val_if_fail (tokens != NULL, FALSE);
+#line 611 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp0_ = stream;
+#line 611 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp1_ = jsdoc_text_stream_lookC (_tmp0_, 0);
+#line 611 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       if (_tmp1_ != '\'') {
+#line 612 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               result = FALSE;
+#line 612 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               return result;
+#line 4299 "TokenReader.c"
+       }
+#line 615 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp2_ = g_string_new ("");
+#line 615 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       str = _tmp2_;
+#line 616 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp3_ = str;
+#line 616 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp4_ = stream;
+#line 616 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp5_ = jsdoc_text_stream_nextC (_tmp4_);
+#line 616 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       g_string_append_unichar (_tmp3_, (gunichar) _tmp5_);
+#line 618 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       while (TRUE) {
+#line 4315 "TokenReader.c"
+               JSDOCTextStream* _tmp6_;
+               gboolean _tmp7_;
+               JSDOCTextStream* _tmp8_;
+               gchar _tmp9_;
+               JSDOCTextStream* _tmp14_;
+               gchar _tmp15_;
+               GString* _tmp25_;
+               JSDOCTextStream* _tmp26_;
+               gchar* _tmp27_;
+               gchar* _tmp28_;
+#line 618 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp6_ = stream;
+#line 618 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp7_ = jsdoc_text_stream_lookEOF (_tmp6_, 0);
+#line 618 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               if (!(!_tmp7_)) {
+#line 618 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       break;
+#line 4334 "TokenReader.c"
+               }
+#line 619 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp8_ = stream;
+#line 619 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp9_ = jsdoc_text_stream_lookC (_tmp8_, 0);
+#line 619 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               if (_tmp9_ == '\\') {
+#line 4342 "TokenReader.c"
+                       GString* _tmp10_;
+                       JSDOCTextStream* _tmp11_;
+                       gchar* _tmp12_;
+                       gchar* _tmp13_;
+#line 620 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp10_ = str;
+#line 620 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp11_ = stream;
+#line 620 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp12_ = jsdoc_text_stream_nextS (_tmp11_, 2);
+#line 620 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp13_ = _tmp12_;
+#line 620 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       g_string_append (_tmp10_, _tmp13_);
+#line 620 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _g_free0 (_tmp13_);
+#line 621 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       continue;
+#line 4361 "TokenReader.c"
+               }
+#line 623 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp14_ = stream;
+#line 623 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp15_ = jsdoc_text_stream_lookC (_tmp14_, 0);
+#line 623 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               if (_tmp15_ == '\'') {
+#line 4369 "TokenReader.c"
+                       GString* _tmp16_;
+                       JSDOCTextStream* _tmp17_;
+                       gchar _tmp18_;
+                       JSDOCTokenArray* _tmp19_;
+                       GString* _tmp20_;
+                       const gchar* _tmp21_;
+                       gint _tmp22_;
+                       JSDOCToken* _tmp23_;
+                       JSDOCToken* _tmp24_;
+#line 624 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp16_ = str;
+#line 624 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp17_ = stream;
+#line 624 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp18_ = jsdoc_text_stream_nextC (_tmp17_);
+#line 624 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       g_string_append_unichar (_tmp16_, (gunichar) _tmp18_);
+#line 625 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp19_ = tokens;
+#line 625 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp20_ = str;
+#line 625 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp21_ = _tmp20_->str;
+#line 625 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp22_ = self->priv->line;
+#line 625 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp23_ = jsdoc_token_new (_tmp21_, JSDOC_TOKEN_TYPE_STRN, JSDOC_TOKEN_NAME_SINGLE_QUOTE, _tmp22_);
+#line 625 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp24_ = _tmp23_;
+#line 625 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       jsdoc_token_array_push (_tmp19_, _tmp24_);
+#line 625 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _g_object_unref0 (_tmp24_);
+#line 626 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       result = TRUE;
+#line 626 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _g_string_free0 (str);
+#line 626 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       return result;
+#line 4409 "TokenReader.c"
+               }
+#line 628 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp25_ = str;
+#line 628 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp26_ = stream;
+#line 628 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp27_ = jsdoc_text_stream_nextS (_tmp26_, 1);
+#line 628 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp28_ = _tmp27_;
+#line 628 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               g_string_append (_tmp25_, _tmp28_);
+#line 628 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _g_free0 (_tmp28_);
+#line 4423 "TokenReader.c"
+       }
+#line 631 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       result = FALSE;
+#line 631 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _g_string_free0 (str);
+#line 631 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       return result;
+#line 4431 "TokenReader.c"
+}
+
+
+/**
+            @returns {Boolean} Was the token found?
+         */
+gboolean jsdoc_token_reader_read_numb (JSDOCTokenReader* self, JSDOCTextStream* stream, JSDOCTokenArray* tokens) {
+       gboolean result = FALSE;
+       gboolean _tmp0_ = FALSE;
+       JSDOCTextStream* _tmp1_;
+       gchar _tmp2_;
+       gchar* found = NULL;
+       gchar* _tmp8_;
+       const gchar* _tmp32_;
+       gboolean _tmp33_ = FALSE;
+       JSDOCTextStream* _tmp34_;
+       gchar _tmp35_;
+       const gchar* _tmp97_;
+       gboolean _tmp98_;
+       JSDOCTokenArray* _tmp104_;
+       const gchar* _tmp105_;
+       gint _tmp106_;
+       JSDOCToken* _tmp107_;
+       JSDOCToken* _tmp108_;
+#line 638 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       g_return_val_if_fail (self != NULL, FALSE);
+#line 638 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       g_return_val_if_fail (stream != NULL, FALSE);
+#line 638 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       g_return_val_if_fail (tokens != NULL, FALSE);
+#line 640 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp1_ = stream;
+#line 640 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp2_ = jsdoc_text_stream_lookC (_tmp1_, 0);
+#line 640 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       if (_tmp2_ == '0') {
+#line 4468 "TokenReader.c"
+               JSDOCTextStream* _tmp3_;
+               gchar _tmp4_;
+#line 640 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp3_ = stream;
+#line 640 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp4_ = jsdoc_text_stream_lookC (_tmp3_, 1);
+#line 640 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp0_ = _tmp4_ == 'x';
+#line 4477 "TokenReader.c"
+       } else {
+#line 640 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp0_ = FALSE;
+#line 4481 "TokenReader.c"
+       }
+#line 640 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       if (_tmp0_) {
+#line 4485 "TokenReader.c"
+               JSDOCTextStream* _tmp5_;
+               JSDOCTokenArray* _tmp6_;
+               gboolean _tmp7_;
+#line 641 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp5_ = stream;
+#line 641 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp6_ = tokens;
+#line 641 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp7_ = jsdoc_token_reader_read_hex (self, _tmp5_, _tmp6_);
+#line 641 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               result = _tmp7_;
+#line 641 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               return result;
+#line 4499 "TokenReader.c"
+       }
+#line 644 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp8_ = g_strdup ("");
+#line 644 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       found = _tmp8_;
+#line 646 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       while (TRUE) {
+#line 4507 "TokenReader.c"
+               gboolean _tmp9_ = FALSE;
+               gboolean _tmp10_ = FALSE;
+               JSDOCTextStream* _tmp11_;
+               gboolean _tmp12_;
+               const gchar* _tmp27_;
+               JSDOCTextStream* _tmp28_;
+               gchar* _tmp29_;
+               gchar* _tmp30_;
+               gchar* _tmp31_;
+#line 646 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp11_ = stream;
+#line 646 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp12_ = jsdoc_text_stream_lookEOF (_tmp11_, 0);
+#line 646 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               if (!_tmp12_) {
+#line 4523 "TokenReader.c"
+                       JSDOCLang_Class* _tmp13_;
+                       JSDOCTextStream* _tmp14_;
+                       gchar* _tmp15_;
+                       gchar* _tmp16_;
+                       gboolean _tmp17_;
+#line 646 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp13_ = jsdoc_Lang;
+#line 646 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp14_ = stream;
+#line 646 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp15_ = jsdoc_text_stream_lookS (_tmp14_, 0);
+#line 646 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp16_ = _tmp15_;
+#line 646 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp17_ = jsdoc_langclass_isNewline (_tmp13_, _tmp16_);
+#line 646 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp10_ = !_tmp17_;
+#line 646 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _g_free0 (_tmp16_);
+#line 4543 "TokenReader.c"
+               } else {
+#line 646 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp10_ = FALSE;
+#line 4547 "TokenReader.c"
+               }
+#line 646 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               if (_tmp10_) {
+#line 4551 "TokenReader.c"
+                       JSDOCLang_Class* _tmp18_;
+                       const gchar* _tmp19_;
+                       JSDOCTextStream* _tmp20_;
+                       gchar _tmp21_;
+                       gchar* _tmp22_;
+                       gchar* _tmp23_;
+                       gchar* _tmp24_;
+                       gchar* _tmp25_;
+                       gboolean _tmp26_;
+#line 646 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp18_ = jsdoc_Lang;
+#line 646 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp19_ = found;
+#line 646 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp20_ = stream;
+#line 646 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp21_ = jsdoc_text_stream_lookC (_tmp20_, 0);
+#line 646 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp22_ = g_strdup_printf ("%c", _tmp21_);
+#line 646 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp23_ = _tmp22_;
+#line 646 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp24_ = g_strconcat (_tmp19_, _tmp23_, NULL);
+#line 646 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp25_ = _tmp24_;
+#line 646 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp26_ = jsdoc_langclass_isNumber (_tmp18_, _tmp25_);
+#line 646 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp9_ = _tmp26_;
+#line 646 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _g_free0 (_tmp25_);
+#line 646 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _g_free0 (_tmp23_);
+#line 4585 "TokenReader.c"
+               } else {
+#line 646 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp9_ = FALSE;
+#line 4589 "TokenReader.c"
+               }
+#line 646 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               if (!_tmp9_) {
+#line 646 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       break;
+#line 4595 "TokenReader.c"
+               }
+#line 647 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp27_ = found;
+#line 647 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp28_ = stream;
+#line 647 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp29_ = jsdoc_text_stream_nextS (_tmp28_, 1);
+#line 647 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp30_ = _tmp29_;
+#line 647 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp31_ = g_strconcat (_tmp27_, _tmp30_, NULL);
+#line 647 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _g_free0 (found);
+#line 647 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               found = _tmp31_;
+#line 647 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _g_free0 (_tmp30_);
+#line 4613 "TokenReader.c"
+       }
+#line 650 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp32_ = found;
+#line 650 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       if (g_strcmp0 (_tmp32_, "") == 0) {
+#line 651 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               result = FALSE;
+#line 651 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _g_free0 (found);
+#line 651 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               return result;
+#line 4625 "TokenReader.c"
+       }
+#line 654 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp34_ = stream;
+#line 654 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp35_ = jsdoc_text_stream_lookC (_tmp34_, 0);
+#line 654 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       if (_tmp35_ == 'e') {
+#line 654 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp33_ = TRUE;
+#line 4635 "TokenReader.c"
+       } else {
+               JSDOCTextStream* _tmp36_;
+               gchar _tmp37_;
+#line 654 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp36_ = stream;
+#line 654 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp37_ = jsdoc_text_stream_lookC (_tmp36_, 0);
+#line 654 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp33_ = _tmp37_ == 'E';
+#line 4645 "TokenReader.c"
+       }
+#line 654 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       if (_tmp33_) {
+#line 4649 "TokenReader.c"
+               const gchar* _tmp38_;
+               JSDOCTextStream* _tmp39_;
+               gchar* _tmp40_;
+               gchar* _tmp41_;
+               gchar* _tmp42_;
+               gchar nc = '\0';
+               JSDOCTextStream* _tmp43_;
+               gchar _tmp44_;
+               gboolean _tmp45_ = FALSE;
+               gboolean _tmp46_ = FALSE;
+               gchar _tmp47_;
+#line 655 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp38_ = found;
+#line 655 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp39_ = stream;
+#line 655 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp40_ = jsdoc_text_stream_nextS (_tmp39_, 1);
+#line 655 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp41_ = _tmp40_;
+#line 655 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp42_ = g_strconcat (_tmp38_, _tmp41_, NULL);
+#line 655 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _g_free0 (found);
+#line 655 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               found = _tmp42_;
+#line 655 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _g_free0 (_tmp41_);
+#line 656 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp43_ = stream;
+#line 656 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp44_ = jsdoc_text_stream_lookC (_tmp43_, 0);
+#line 656 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               nc = _tmp44_;
+#line 657 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp47_ = nc;
+#line 657 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               if (_tmp47_ == '+') {
+#line 657 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp46_ = TRUE;
+#line 4689 "TokenReader.c"
+               } else {
+                       gchar _tmp48_;
+#line 657 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp48_ = nc;
+#line 657 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp46_ = _tmp48_ == '-';
+#line 4696 "TokenReader.c"
+               }
+#line 657 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               if (_tmp46_) {
+#line 657 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp45_ = TRUE;
+#line 4702 "TokenReader.c"
+               } else {
+                       gboolean _tmp49_ = FALSE;
+                       gchar _tmp50_;
+#line 657 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp50_ = nc;
+#line 657 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       if (_tmp50_ >= '0') {
+#line 4710 "TokenReader.c"
+                               gchar _tmp51_;
+#line 657 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp51_ = nc;
+#line 657 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp49_ = _tmp51_ <= '9';
+#line 4716 "TokenReader.c"
+                       } else {
+#line 657 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp49_ = FALSE;
+#line 4720 "TokenReader.c"
+                       }
+#line 657 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp45_ = _tmp49_;
+#line 4724 "TokenReader.c"
+               }
+#line 657 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               if (_tmp45_) {
+#line 4728 "TokenReader.c"
+                       const gchar* _tmp52_;
+                       JSDOCTextStream* _tmp53_;
+                       gchar* _tmp54_;
+                       gchar* _tmp55_;
+                       gchar* _tmp56_;
+                       JSDOCLang_Class* _tmp80_;
+                       const gchar* _tmp81_;
+                       gboolean _tmp82_;
+#line 658 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp52_ = found;
+#line 658 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp53_ = stream;
+#line 658 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp54_ = jsdoc_text_stream_nextS (_tmp53_, 1);
+#line 658 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp55_ = _tmp54_;
+#line 658 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp56_ = g_strconcat (_tmp52_, _tmp55_, NULL);
+#line 658 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _g_free0 (found);
+#line 658 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       found = _tmp56_;
+#line 658 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _g_free0 (_tmp55_);
+#line 659 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       while (TRUE) {
+#line 4755 "TokenReader.c"
+                               gboolean _tmp57_ = FALSE;
+                               gboolean _tmp58_ = FALSE;
+                               JSDOCTextStream* _tmp59_;
+                               gboolean _tmp60_;
+                               const gchar* _tmp75_;
+                               JSDOCTextStream* _tmp76_;
+                               gchar* _tmp77_;
+                               gchar* _tmp78_;
+                               gchar* _tmp79_;
+#line 659 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp59_ = stream;
+#line 659 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp60_ = jsdoc_text_stream_lookEOF (_tmp59_, 0);
+#line 659 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               if (!_tmp60_) {
+#line 4771 "TokenReader.c"
+                                       JSDOCLang_Class* _tmp61_;
+                                       JSDOCTextStream* _tmp62_;
+                                       gchar* _tmp63_;
+                                       gchar* _tmp64_;
+                                       gboolean _tmp65_;
+#line 659 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp61_ = jsdoc_Lang;
+#line 659 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp62_ = stream;
+#line 659 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp63_ = jsdoc_text_stream_lookS (_tmp62_, 0);
+#line 659 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp64_ = _tmp63_;
+#line 659 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp65_ = jsdoc_langclass_isNewline (_tmp61_, _tmp64_);
+#line 659 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp58_ = !_tmp65_;
+#line 659 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _g_free0 (_tmp64_);
+#line 4791 "TokenReader.c"
+                               } else {
+#line 659 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp58_ = FALSE;
+#line 4795 "TokenReader.c"
+                               }
+#line 659 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               if (_tmp58_) {
+#line 4799 "TokenReader.c"
+                                       JSDOCLang_Class* _tmp66_;
+                                       const gchar* _tmp67_;
+                                       JSDOCTextStream* _tmp68_;
+                                       gchar _tmp69_;
+                                       gchar* _tmp70_;
+                                       gchar* _tmp71_;
+                                       gchar* _tmp72_;
+                                       gchar* _tmp73_;
+                                       gboolean _tmp74_;
+#line 659 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp66_ = jsdoc_Lang;
+#line 659 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp67_ = found;
+#line 659 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp68_ = stream;
+#line 659 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp69_ = jsdoc_text_stream_lookC (_tmp68_, 0);
+#line 659 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp70_ = g_strdup_printf ("%c", _tmp69_);
+#line 659 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp71_ = _tmp70_;
+#line 659 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp72_ = g_strconcat (_tmp67_, _tmp71_, NULL);
+#line 659 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp73_ = _tmp72_;
+#line 659 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp74_ = jsdoc_langclass_isNumber (_tmp66_, _tmp73_);
+#line 659 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp57_ = _tmp74_;
+#line 659 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _g_free0 (_tmp73_);
+#line 659 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _g_free0 (_tmp71_);
+#line 4833 "TokenReader.c"
+                               } else {
+#line 659 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp57_ = FALSE;
+#line 4837 "TokenReader.c"
+                               }
+#line 659 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               if (!_tmp57_) {
+#line 659 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       break;
+#line 4843 "TokenReader.c"
+                               }
+#line 660 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp75_ = found;
+#line 660 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp76_ = stream;
+#line 660 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp77_ = jsdoc_text_stream_nextS (_tmp76_, 1);
+#line 660 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp78_ = _tmp77_;
+#line 660 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp79_ = g_strconcat (_tmp75_, _tmp78_, NULL);
+#line 660 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _g_free0 (found);
+#line 660 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               found = _tmp79_;
+#line 660 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _g_free0 (_tmp78_);
+#line 4861 "TokenReader.c"
+                       }
+#line 662 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp80_ = jsdoc_Lang;
+#line 662 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp81_ = found;
+#line 662 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp82_ = jsdoc_langclass_isNumber (_tmp80_, _tmp81_);
+#line 662 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       if (!_tmp82_) {
+#line 4871 "TokenReader.c"
+                               JSDOCPacker* _tmp83_;
+#line 663 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp83_ = self->priv->packer;
+#line 663 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               if (_tmp83_ != NULL) {
+#line 4877 "TokenReader.c"
+                                       JSDOCPacker* _tmp84_;
+                                       const gchar* _tmp85_;
+                                       gint _tmp86_;
+                                       const gchar* _tmp87_;
+                                       gchar* _tmp88_;
+                                       gchar* _tmp89_;
+#line 664 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp84_ = self->priv->packer;
+#line 664 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp85_ = self->filename;
+#line 664 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp86_ = self->priv->line;
+#line 664 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp87_ = found;
+#line 664 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp88_ = g_strconcat ("Invalid Number ", _tmp87_, NULL);
+#line 664 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp89_ = _tmp88_;
+#line 664 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       jsdoc_packer_logError (_tmp84_, JSDOC_PACKER_RESULT_TYPE_err, _tmp85_, _tmp86_, _tmp89_);
+#line 664 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _g_free0 (_tmp89_);
+#line 4900 "TokenReader.c"
+                               }
+#line 671 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               result = TRUE;
+#line 671 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _g_free0 (found);
+#line 671 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               return result;
+#line 4908 "TokenReader.c"
+                       }
+               } else {
+                       JSDOCPacker* _tmp90_;
+#line 675 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp90_ = self->priv->packer;
+#line 675 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       if (_tmp90_ != NULL) {
+#line 4916 "TokenReader.c"
+                               JSDOCPacker* _tmp91_;
+                               const gchar* _tmp92_;
+                               gint _tmp93_;
+                               const gchar* _tmp94_;
+                               gchar* _tmp95_;
+                               gchar* _tmp96_;
+#line 676 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp91_ = self->priv->packer;
+#line 676 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp92_ = self->filename;
+#line 676 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp93_ = self->priv->line;
+#line 676 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp94_ = found;
+#line 676 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp95_ = g_strconcat ("could not find +/- or 0-9 after Number '", _tmp94_, NULL);
+#line 676 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp96_ = _tmp95_;
+#line 676 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               jsdoc_packer_logError (_tmp91_, JSDOC_PACKER_RESULT_TYPE_err, _tmp92_, _tmp93_, _tmp96_);
+#line 676 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _g_free0 (_tmp96_);
+#line 682 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               result = TRUE;
+#line 682 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _g_free0 (found);
+#line 682 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               return result;
+#line 4945 "TokenReader.c"
+                       }
+               }
+       }
+#line 688 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp97_ = found;
+#line 688 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp98_ = g_regex_match_simple ("^0[0-7]", _tmp97_, 0, 0);
+#line 688 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       if (_tmp98_) {
+#line 4955 "TokenReader.c"
+               JSDOCTokenArray* _tmp99_;
+               const gchar* _tmp100_;
+               gint _tmp101_;
+               JSDOCToken* _tmp102_;
+               JSDOCToken* _tmp103_;
+#line 689 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp99_ = tokens;
+#line 689 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp100_ = found;
+#line 689 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp101_ = self->priv->line;
+#line 689 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp102_ = jsdoc_token_new (_tmp100_, JSDOC_TOKEN_TYPE_NUMB, JSDOC_TOKEN_NAME_OCTAL, _tmp101_);
+#line 689 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp103_ = _tmp102_;
+#line 689 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               jsdoc_token_array_push (_tmp99_, _tmp103_);
+#line 689 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _g_object_unref0 (_tmp103_);
+#line 690 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               result = TRUE;
+#line 690 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _g_free0 (found);
+#line 690 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               return result;
+#line 4981 "TokenReader.c"
+       }
+#line 694 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp104_ = tokens;
+#line 694 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp105_ = found;
+#line 694 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp106_ = self->priv->line;
+#line 694 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp107_ = jsdoc_token_new (_tmp105_, JSDOC_TOKEN_TYPE_NUMB, JSDOC_TOKEN_NAME_DECIMAL, _tmp106_);
+#line 694 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp108_ = _tmp107_;
+#line 694 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       jsdoc_token_array_push (_tmp104_, _tmp108_);
+#line 694 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _g_object_unref0 (_tmp108_);
+#line 695 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       result = TRUE;
+#line 695 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _g_free0 (found);
+#line 695 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       return result;
+#line 5003 "TokenReader.c"
+}
+
+
+/**
+            @returns {Boolean} Was the token found?
+         */
+gboolean jsdoc_token_reader_read_hex (JSDOCTokenReader* self, JSDOCTextStream* stream, JSDOCTokenArray* tokens) {
+       gboolean result = FALSE;
+       gchar* found = NULL;
+       JSDOCTextStream* _tmp0_;
+       gchar* _tmp1_;
+#line 702 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       g_return_val_if_fail (self != NULL, FALSE);
+#line 702 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       g_return_val_if_fail (stream != NULL, FALSE);
+#line 702 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       g_return_val_if_fail (tokens != NULL, FALSE);
+#line 704 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp0_ = stream;
+#line 704 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp1_ = jsdoc_text_stream_nextS (_tmp0_, 2);
+#line 704 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       found = _tmp1_;
+#line 706 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       while (TRUE) {
+#line 5029 "TokenReader.c"
+               JSDOCTextStream* _tmp2_;
+               gboolean _tmp3_;
+               gboolean _tmp4_ = FALSE;
+               JSDOCLang_Class* _tmp5_;
+               const gchar* _tmp6_;
+               gboolean _tmp7_;
+               const gchar* _tmp22_;
+               JSDOCTextStream* _tmp23_;
+               gchar* _tmp24_;
+               gchar* _tmp25_;
+               gchar* _tmp26_;
+#line 706 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp2_ = stream;
+#line 706 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp3_ = jsdoc_text_stream_lookEOF (_tmp2_, 0);
+#line 706 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               if (!(!_tmp3_)) {
+#line 706 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       break;
+#line 5049 "TokenReader.c"
+               }
+#line 707 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp5_ = jsdoc_Lang;
+#line 707 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp6_ = found;
+#line 707 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp7_ = jsdoc_langclass_isHexDec (_tmp5_, _tmp6_);
+#line 707 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               if (_tmp7_) {
+#line 5059 "TokenReader.c"
+                       JSDOCLang_Class* _tmp8_;
+                       const gchar* _tmp9_;
+                       JSDOCTextStream* _tmp10_;
+                       gchar _tmp11_;
+                       gchar* _tmp12_;
+                       gchar* _tmp13_;
+                       gchar* _tmp14_;
+                       gchar* _tmp15_;
+                       gboolean _tmp16_;
+#line 707 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp8_ = jsdoc_Lang;
+#line 707 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp9_ = found;
+#line 707 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp10_ = stream;
+#line 707 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp11_ = jsdoc_text_stream_lookC (_tmp10_, 0);
+#line 707 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp12_ = g_strdup_printf ("%c", _tmp11_);
+#line 707 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp13_ = _tmp12_;
+#line 707 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp14_ = g_strconcat (_tmp9_, _tmp13_, NULL);
+#line 707 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp15_ = _tmp14_;
+#line 707 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp16_ = jsdoc_langclass_isHexDec (_tmp8_, _tmp15_);
+#line 707 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp4_ = !_tmp16_;
+#line 707 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _g_free0 (_tmp15_);
+#line 707 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _g_free0 (_tmp13_);
+#line 5093 "TokenReader.c"
+               } else {
+#line 707 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp4_ = FALSE;
+#line 5097 "TokenReader.c"
+               }
+#line 707 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               if (_tmp4_) {
+#line 5101 "TokenReader.c"
+                       JSDOCTokenArray* _tmp17_;
+                       const gchar* _tmp18_;
+                       gint _tmp19_;
+                       JSDOCToken* _tmp20_;
+                       JSDOCToken* _tmp21_;
+#line 708 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp17_ = tokens;
+#line 708 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp18_ = found;
+#line 708 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp19_ = self->priv->line;
+#line 708 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp20_ = jsdoc_token_new (_tmp18_, JSDOC_TOKEN_TYPE_NUMB, JSDOC_TOKEN_NAME_HEX_DEC, _tmp19_);
+#line 708 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp21_ = _tmp20_;
+#line 708 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       jsdoc_token_array_push (_tmp17_, _tmp21_);
+#line 708 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _g_object_unref0 (_tmp21_);
+#line 709 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       result = TRUE;
+#line 709 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _g_free0 (found);
+#line 709 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       return result;
+#line 5127 "TokenReader.c"
+               }
+#line 712 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp22_ = found;
+#line 712 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp23_ = stream;
+#line 712 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp24_ = jsdoc_text_stream_nextS (_tmp23_, 1);
+#line 712 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp25_ = _tmp24_;
+#line 712 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp26_ = g_strconcat (_tmp22_, _tmp25_, NULL);
+#line 712 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _g_free0 (found);
+#line 712 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               found = _tmp26_;
+#line 712 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _g_free0 (_tmp25_);
+#line 5145 "TokenReader.c"
+       }
+#line 715 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       result = FALSE;
+#line 715 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _g_free0 (found);
+#line 715 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       return result;
+#line 5153 "TokenReader.c"
+}
+
+
+/**
+            @returns {Boolean} Was the token found?
+         */
+gboolean jsdoc_token_reader_read_regx (JSDOCTokenReader* self, JSDOCTextStream* stream, JSDOCTokenArray* tokens) {
+       gboolean result = FALSE;
+       JSDOCTextStream* _tmp0_;
+       gchar _tmp1_;
+       JSDOCToken* last = NULL;
+       JSDOCTokenArray* _tmp2_;
+       JSDOCToken* _tmp3_;
+       gboolean _tmp4_ = FALSE;
+       JSDOCToken* _tmp5_;
+#line 721 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       g_return_val_if_fail (self != NULL, FALSE);
+#line 721 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       g_return_val_if_fail (stream != NULL, FALSE);
+#line 721 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       g_return_val_if_fail (tokens != NULL, FALSE);
+#line 724 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp0_ = stream;
+#line 724 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp1_ = jsdoc_text_stream_lookC (_tmp0_, 0);
+#line 724 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       if (_tmp1_ != '/') {
+#line 725 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               result = FALSE;
+#line 725 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               return result;
+#line 5185 "TokenReader.c"
+       }
+#line 727 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp2_ = tokens;
+#line 727 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp3_ = jsdoc_token_array_lastSym (_tmp2_);
+#line 727 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       last = _tmp3_;
+#line 729 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp5_ = last;
+#line 729 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       if (_tmp5_ == NULL) {
+#line 729 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp4_ = TRUE;
+#line 5199 "TokenReader.c"
+       } else {
+               gboolean _tmp6_ = FALSE;
+               gboolean _tmp7_ = FALSE;
+               gboolean _tmp8_ = FALSE;
+               JSDOCToken* _tmp9_;
+               gboolean _tmp10_;
+#line 732 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp9_ = last;
+#line 732 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp10_ = jsdoc_token_isType (_tmp9_, JSDOC_TOKEN_TYPE_NUMB);
+#line 732 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               if (!_tmp10_) {
+#line 5212 "TokenReader.c"
+                       JSDOCToken* _tmp11_;
+                       gboolean _tmp12_;
+#line 733 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp11_ = last;
+#line 733 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp12_ = jsdoc_token_isType (_tmp11_, JSDOC_TOKEN_TYPE_NAME);
+#line 733 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp8_ = !_tmp12_;
+#line 5221 "TokenReader.c"
+               } else {
+#line 732 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp8_ = FALSE;
+#line 5225 "TokenReader.c"
+               }
+#line 732 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               if (_tmp8_) {
+#line 5229 "TokenReader.c"
+                       JSDOCToken* _tmp13_;
+                       gboolean _tmp14_;
+#line 734 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp13_ = last;
+#line 734 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp14_ = jsdoc_token_isName (_tmp13_, JSDOC_TOKEN_NAME_RIGHT_PAREN);
+#line 734 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp7_ = !_tmp14_;
+#line 5238 "TokenReader.c"
+               } else {
+#line 732 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp7_ = FALSE;
+#line 5242 "TokenReader.c"
+               }
+#line 732 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               if (_tmp7_) {
+#line 5246 "TokenReader.c"
+                       JSDOCToken* _tmp15_;
+                       gboolean _tmp16_;
+#line 735 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp15_ = last;
+#line 735 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp16_ = jsdoc_token_isName (_tmp15_, JSDOC_TOKEN_NAME_RIGHT_BRACE);
+#line 735 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp6_ = !_tmp16_;
+#line 5255 "TokenReader.c"
+               } else {
+#line 732 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp6_ = FALSE;
+#line 5259 "TokenReader.c"
+               }
+#line 732 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp4_ = _tmp6_;
+#line 5263 "TokenReader.c"
+       }
+#line 728 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       if (_tmp4_) {
+#line 5267 "TokenReader.c"
+               gchar* regex = NULL;
+               JSDOCTextStream* _tmp17_;
+               gchar* _tmp18_;
+               gboolean in_brace = FALSE;
+#line 738 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp17_ = stream;
+#line 738 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _tmp18_ = jsdoc_text_stream_nextS (_tmp17_, 1);
+#line 738 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               regex = _tmp18_;
+#line 739 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               in_brace = FALSE;
+#line 740 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               while (TRUE) {
+#line 5282 "TokenReader.c"
+                       JSDOCTextStream* _tmp19_;
+                       gboolean _tmp20_;
+                       JSDOCTextStream* _tmp21_;
+                       gchar _tmp22_;
+                       gboolean _tmp23_ = FALSE;
+                       gboolean _tmp24_;
+                       JSDOCTextStream* _tmp27_;
+                       gchar _tmp28_;
+                       gboolean _tmp34_ = FALSE;
+                       gboolean _tmp35_;
+                       const gchar* _tmp59_;
+                       JSDOCTextStream* _tmp60_;
+                       gchar* _tmp61_;
+                       gchar* _tmp62_;
+                       gchar* _tmp63_;
+#line 740 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp19_ = stream;
+#line 740 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp20_ = jsdoc_text_stream_lookEOF (_tmp19_, 0);
+#line 740 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       if (!(!_tmp20_)) {
+#line 740 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               break;
+#line 5306 "TokenReader.c"
+                       }
+#line 741 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp21_ = stream;
+#line 741 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp22_ = jsdoc_text_stream_lookC (_tmp21_, 0);
+#line 741 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       if (_tmp22_ == '[') {
+#line 742 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               in_brace = TRUE;
+#line 5316 "TokenReader.c"
+                       }
+#line 744 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp24_ = in_brace;
+#line 744 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       if (_tmp24_) {
+#line 5322 "TokenReader.c"
+                               JSDOCTextStream* _tmp25_;
+                               gchar _tmp26_;
+#line 744 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp25_ = stream;
+#line 744 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp26_ = jsdoc_text_stream_lookC (_tmp25_, 0);
+#line 744 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp23_ = _tmp26_ == ']';
+#line 5331 "TokenReader.c"
+                       } else {
+#line 744 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp23_ = FALSE;
+#line 5335 "TokenReader.c"
+                       }
+#line 744 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       if (_tmp23_) {
+#line 745 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               in_brace = FALSE;
+#line 5341 "TokenReader.c"
+                       }
+#line 748 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp27_ = stream;
+#line 748 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp28_ = jsdoc_text_stream_lookC (_tmp27_, 0);
+#line 748 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       if (_tmp28_ == '\\') {
+#line 5349 "TokenReader.c"
+                               const gchar* _tmp29_;
+                               JSDOCTextStream* _tmp30_;
+                               gchar* _tmp31_;
+                               gchar* _tmp32_;
+                               gchar* _tmp33_;
+#line 749 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp29_ = regex;
+#line 749 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp30_ = stream;
+#line 749 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp31_ = jsdoc_text_stream_nextS (_tmp30_, 2);
+#line 749 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp32_ = _tmp31_;
+#line 749 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp33_ = g_strconcat (_tmp29_, _tmp32_, NULL);
+#line 749 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _g_free0 (regex);
+#line 749 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               regex = _tmp33_;
+#line 749 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _g_free0 (_tmp32_);
+#line 750 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               continue;
+#line 5373 "TokenReader.c"
+                       }
+#line 752 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp35_ = in_brace;
+#line 752 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       if (!_tmp35_) {
+#line 5379 "TokenReader.c"
+                               JSDOCTextStream* _tmp36_;
+                               gchar _tmp37_;
+#line 752 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp36_ = stream;
+#line 752 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp37_ = jsdoc_text_stream_lookC (_tmp36_, 0);
+#line 752 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp34_ = _tmp37_ == '/';
+#line 5388 "TokenReader.c"
+                       } else {
+#line 752 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp34_ = FALSE;
+#line 5392 "TokenReader.c"
+                       }
+#line 752 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       if (_tmp34_) {
+#line 5396 "TokenReader.c"
+                               const gchar* _tmp38_;
+                               JSDOCTextStream* _tmp39_;
+                               gchar* _tmp40_;
+                               gchar* _tmp41_;
+                               gchar* _tmp42_;
+                               JSDOCTokenArray* _tmp54_;
+                               const gchar* _tmp55_;
+                               gint _tmp56_;
+                               JSDOCToken* _tmp57_;
+                               JSDOCToken* _tmp58_;
+#line 753 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp38_ = regex;
+#line 753 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp39_ = stream;
+#line 753 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp40_ = jsdoc_text_stream_nextS (_tmp39_, 1);
+#line 753 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp41_ = _tmp40_;
+#line 753 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp42_ = g_strconcat (_tmp38_, _tmp41_, NULL);
+#line 753 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _g_free0 (regex);
+#line 753 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               regex = _tmp42_;
+#line 753 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _g_free0 (_tmp41_);
+#line 755 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               while (TRUE) {
+#line 5425 "TokenReader.c"
+                                       JSDOCTextStream* _tmp43_;
+                                       gchar* _tmp44_;
+                                       gchar* _tmp45_;
+                                       const gchar* _tmp46_;
+                                       gboolean _tmp47_;
+                                       gboolean _tmp48_;
+                                       const gchar* _tmp49_;
+                                       JSDOCTextStream* _tmp50_;
+                                       gchar* _tmp51_;
+                                       gchar* _tmp52_;
+                                       gchar* _tmp53_;
+#line 755 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp43_ = stream;
+#line 755 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp44_ = jsdoc_text_stream_lookS (_tmp43_, 0);
+#line 755 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp45_ = _tmp44_;
+#line 755 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp46_ = string_to_string (_tmp45_);
+#line 755 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp47_ = g_regex_match_simple ("[gmi]", _tmp46_, 0, 0);
+#line 755 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp48_ = !_tmp47_;
+#line 755 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _g_free0 (_tmp45_);
+#line 755 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       if (_tmp48_) {
+#line 755 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                               break;
+#line 5455 "TokenReader.c"
+                                       }
+#line 756 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp49_ = regex;
+#line 756 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp50_ = stream;
+#line 756 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp51_ = jsdoc_text_stream_nextS (_tmp50_, 1);
+#line 756 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp52_ = _tmp51_;
+#line 756 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _tmp53_ = g_strconcat (_tmp49_, _tmp52_, NULL);
+#line 756 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _g_free0 (regex);
+#line 756 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       regex = _tmp53_;
+#line 756 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                                       _g_free0 (_tmp52_);
+#line 5473 "TokenReader.c"
+                               }
+#line 759 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp54_ = tokens;
+#line 759 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp55_ = regex;
+#line 759 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp56_ = self->priv->line;
+#line 759 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp57_ = jsdoc_token_new (_tmp55_, JSDOC_TOKEN_TYPE_REGX, JSDOC_TOKEN_NAME_REGX, _tmp56_);
+#line 759 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _tmp58_ = _tmp57_;
+#line 759 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               jsdoc_token_array_push (_tmp54_, _tmp58_);
+#line 759 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _g_object_unref0 (_tmp58_);
+#line 760 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               result = TRUE;
+#line 760 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _g_free0 (regex);
+#line 760 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               _g_object_unref0 (last);
+#line 760 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                               return result;
+#line 5497 "TokenReader.c"
+                       }
+#line 763 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp59_ = regex;
+#line 763 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp60_ = stream;
+#line 763 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp61_ = jsdoc_text_stream_nextS (_tmp60_, 1);
+#line 763 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp62_ = _tmp61_;
+#line 763 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _tmp63_ = g_strconcat (_tmp59_, _tmp62_, NULL);
+#line 763 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _g_free0 (regex);
+#line 763 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       regex = _tmp63_;
+#line 763 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+                       _g_free0 (_tmp62_);
+#line 5515 "TokenReader.c"
+               }
+#line 728 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+               _g_free0 (regex);
+#line 5519 "TokenReader.c"
+       }
+#line 768 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       result = FALSE;
+#line 768 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _g_object_unref0 (last);
+#line 768 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       return result;
+#line 5527 "TokenReader.c"
+}
+
+
+static void jsdoc_token_reader_class_init (JSDOCTokenReaderClass * klass) {
+#line 162 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       jsdoc_token_reader_parent_class = g_type_class_peek_parent (klass);
+#line 162 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       g_type_class_add_private (klass, sizeof (JSDOCTokenReaderPrivate));
+#line 162 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       G_OBJECT_CLASS (klass)->finalize = jsdoc_token_reader_finalize;
+#line 5538 "TokenReader.c"
+}
+
+
+static void jsdoc_token_reader_instance_init (JSDOCTokenReader * self) {
+       gchar* _tmp0_;
+#line 162 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       self->priv = JSDOC_TOKEN_READER_GET_PRIVATE (self);
+#line 173 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       self->collapseWhite = FALSE;
+#line 175 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       self->keepDocs = TRUE;
+#line 177 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       self->keepWhite = FALSE;
+#line 179 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       self->keepComments = FALSE;
+#line 181 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       self->sepIdents = FALSE;
+#line 183 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _tmp0_ = g_strdup ("");
+#line 183 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       self->filename = _tmp0_;
+#line 185 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       self->ignoreBadGrammer = FALSE;
+#line 188 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       self->priv->line = 0;
+#line 5564 "TokenReader.c"
+}
+
+
+static void jsdoc_token_reader_finalize (GObject * obj) {
+       JSDOCTokenReader * self;
+#line 162 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       self = G_TYPE_CHECK_INSTANCE_CAST (obj, JSDOC_TYPE_TOKEN_READER, JSDOCTokenReader);
+#line 183 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _g_free0 (self->filename);
+#line 190 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       _g_object_unref0 (self->priv->packer);
+#line 162 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenReader.vala"
+       G_OBJECT_CLASS (jsdoc_token_reader_parent_class)->finalize (obj);
+#line 5578 "TokenReader.c"
+}
+
+
+GType jsdoc_token_reader_get_type (void) {
+       static volatile gsize jsdoc_token_reader_type_id__volatile = 0;
+       if (g_once_init_enter (&jsdoc_token_reader_type_id__volatile)) {
+               static const GTypeInfo g_define_type_info = { sizeof (JSDOCTokenReaderClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) jsdoc_token_reader_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (JSDOCTokenReader), 0, (GInstanceInitFunc) jsdoc_token_reader_instance_init, NULL };
+               GType jsdoc_token_reader_type_id;
+               jsdoc_token_reader_type_id = g_type_register_static (G_TYPE_OBJECT, "JSDOCTokenReader", &g_define_type_info, 0);
+               g_once_init_leave (&jsdoc_token_reader_type_id__volatile, jsdoc_token_reader_type_id);
+       }
+       return jsdoc_token_reader_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;
+}
+
+
+
diff --git a/jsdoc/TokenReader.vala b/jsdoc/TokenReader.vala
new file mode 100644 (file)
index 0000000..e428001
--- /dev/null
@@ -0,0 +1,771 @@
+//<script type="text/javascript">
+
+// test code
+//const Token   = imports.Token.Token;
+//const Lang    = imports.Lang.Lang;
+
+/**
+       @class Search a {@link JSDOC.TextStream} for language tokens.
+*/
+namespace JSDOC {
+
+        
+
+    public class TokenArray: Object {
+        
+        private Packer? packer;
+        private TokenReader reader;
+        
+        public Gee.ArrayList<Token> tokens;
+        Token lastAdded = null;
+        
+        public int length {
+            get { return this.tokens.size; }
+        }
+        
+        public TokenArray(Packer? packer, TokenReader reader)
+        {
+            this.packer = packer;
+            this.reader  = reader;
+            this.tokens = new Gee.ArrayList<Token>();
+        }
+        
+        public Token? last() {
+            if (this.tokens.size > 0) {
+                return this.tokens.get(this.tokens.size-1);
+            }
+            return null;
+        }
+        public Token? lastSym () {
+            for (var i = this.tokens.size-1; i >= 0; i--) {
+                if (!(this.tokens.get(i).isType(TokenType.WHIT) || this.tokens.get(i).isType(TokenType.COMM)))  {
+                    return this.tokens.get(i);
+                }
+            }
+            return null;
+        }
+
+        
+        public void push (Token t)   
+        {
+               if (this.lastAdded != null) {
+               
+                       if (
+                                        (
+                                               this.lastAdded.isType(TokenType.NAME) ||
+                                               this.lastAdded.isType(TokenType.STRN) ||
+                                               this.lastAdded.isType(TokenType.NUMB) ||
+                                               (
+                                                       this.lastAdded.isType(TokenType.KEYW) && 
+                                                       (
+                                                               this.lastAdded.isName(TokenName.TRUE) || this.lastAdded.isName(TokenName.FALSE)
+                                                       )
+                                               )
+                                       )
+                                        &&
+                                        (
+                                               t.isType(TokenType.NAME) ||     // NAME -> ???
+                                               t.isType(TokenType.STRN) ||
+                                               t.isType(TokenType.NUMB) ||
+                                               (t.isType(TokenType.KEYW)  && 
+                                                       !(t.isName(TokenName.IN) || t.isName(TokenName.INSTANCEOF) || t.isName(TokenName.INSTANCEOF))
+                                               )
+                                       )
+                               ) {
+                                       //print("%s\n%s\n", this.lastAdded.asString(), t.asString());
+                                       if (this.packer != null) {
+                                               this.packer.logError(
+                                               Packer.ResultType.err,
+                                               this.reader.filename,
+                                               t.line,
+                                               "'" + this.lastAdded.data+ "' token followed by " + t.name.to_string() + ":" + t.data
+                                               );
+                                       }
+                                       
+                                        
+                               }
+                       // other pattern that are not valid
+                       //  ] or )   followed by KEYW "STRING" or number ?
+                       if (
+                               (this.lastAdded.isName( TokenName.RIGHT_BRACE) || this.lastAdded.isName( TokenName.RIGHT_PAREN))
+                               &&
+                               (
+                                       (t.isType(TokenType.KEYW) &&
+                                               !(t.isName(TokenName.IN) || t.isName(TokenName.INSTANCEOF) || t.isName(TokenName.INSTANCEOF))
+                                       ) || 
+                                       t.isType(TokenType.NAME) ||     // NAME -> ???
+                                               t.isType(TokenType.STRN) ||
+                                               t.isType(TokenType.NUMB) 
+                                       )
+                               ) {
+                                       if (this.packer != null) {                              
+                                       //print("%s\n%s\n", this.lastAdded.asString(), t.asString());
+                                               this.packer.logError(
+                                               Packer.ResultType.err,
+                                               this.reader.filename,
+                                               t.line,
+                                               "'" + this.lastAdded.data+ "' token followed by " + t.name.to_string() + ":" + t.data
+                                               );
+                                       }
+                       }
+               }
+               
+               
+               
+            this.tokens.add(t);
+            
+            if (t.isType(TokenType.WHIT) || t.isType(TokenType.COMM)){
+               // do not set last...
+            } else {
+                       this.lastAdded = t;
+            }
+            
+        }
+        public Token? pop ()
+        {
+            if (this.tokens.size > 0) {
+                return this.tokens.remove_at(this.tokens.size-1);
+            }
+            return null;
+        }
+        
+           public new Token get(int i) {
+            return this.tokens.get(i);
+        }
+        public void dump()
+        {
+                       var line = 0;
+               foreach(var token in this.tokens) {
+                       if (token.line != line) {
+                               print("%d: ", token.line);
+                               line = token.line;
+                               }
+                               print("%s",token.data);
+                       }
+                       print("\n----\n");
+               foreach(var token in this.tokens) {
+                       stdout.printf ("%s\n", token.asString());
+               }
+        }
+        
+    }
+
+    public errordomain TokenReader_Error {
+            ArgumentError,
+            SyntaxError
+    }
+    
+
+    public class TokenReader : Object
+    {
+        
+        
+        
+        /*
+         *
+         * I wonder if this will accept the prop: value, prop2 :value construxtor if we do not define one...
+         */
+        
+        /** @cfg {Boolean} collapseWhite merge multiple whitespace/comments into a single token **/
+        public bool collapseWhite = false; // only reduces white space...
+        /** @cfg {Boolean} keepDocs keep JSDOC comments **/
+        public bool keepDocs = true;
+        /** @cfg {Boolean} keepWhite keep White space **/
+        public bool keepWhite = false;
+        /** @cfg {Boolean} keepComments  keep all comments **/
+        public bool keepComments = false;
+        /** @cfg {Boolean} sepIdents seperate identifiers (eg. a.b.c into ['a', '.', 'b', '.', 'c'] ) **/
+        public bool sepIdents = false;
+        /** @cfg {String} filename name of file being parsed. **/
+        public string filename = "";
+        /** @config {Boolean} ignoreBadGrammer do not throw errors if we find stuff that might break compression **/
+        public bool ignoreBadGrammer = false;
+        
+        
+        int line = 0;
+        
+        private Packer? packer;
+        
+        public TokenReader(Packer? packer)
+        {
+               this.packer = packer;
+               }
+        
+        /**
+         * tokenize a stream
+         * @return {Array} of tokens
+         * 
+         * ts = new TextStream(File.read(str));
+         * tr = TokenReader({ keepComments : true, keepWhite : true });
+         * tr.tokenize(ts)
+         * 
+         */
+        public TokenArray tokenize(TextStream stream)  
+        {
+            this.line =1;
+            var tokens = new TokenArray(this.packer, this);
+           
+         
+            while (!stream.lookEOF()) {
+                
+
+                if (this.read_mlcomment(stream, tokens)) continue;
+                if (this.read_slcomment(stream, tokens)) continue;
+                if (this.read_dbquote(stream, tokens))   continue;
+                if (this.read_snquote(stream, tokens))   continue;
+                if (this.read_regx(stream, tokens))      continue;
+                if (this.read_numb(stream, tokens))      continue;
+                if (this.read_punc(stream, tokens))      continue;
+                if (this.read_newline(stream, tokens))   continue;
+                if (this.read_space(stream, tokens))     continue;
+                if (this.read_word(stream, tokens))      continue;
+                
+                // if execution reaches here then an error has happened
+                tokens.push(
+                        new Token(stream.nextS(), TokenType.TOKN, TokenName.UNKNOWN_TOKEN, this.line)
+                );
+            }
+            
+            
+            
+            return tokens;
+        }
+
+        /**
+         * findPuncToken - find the id of a token (previous to current)
+         * need to back check syntax..
+         * 
+         * @arg {Array} tokens the array of tokens.
+         * @arg {String} token data (eg. '(')
+         * @arg {Number} offset where to start reading from
+         * @return {Number} position of token
+         */
+        public int findPuncToken(TokenArray tokens, string data, int n)
+        {
+            n = n > 0 ? n :  tokens.length -1;
+            var stack = 0;
+            while (n > -1) {
+                
+                if (stack < 1 && tokens.get(n).data == data) {
+                    return n;
+                }
+                
+                if (tokens.get(n).data  == ")" || tokens.get(n).data  == "}") {
+                    stack++;
+                    n--;
+                    continue;
+                }
+                if (stack > 0 && (tokens.get(n).data  == "{" || tokens.get(n).data  == "(")) {
+                    stack--;
+                    n--;
+                    continue;
+                }
+                
+                
+                n--;
+            }
+            return -1;
+        }
+        /**
+         * lastSym - find the last token symbol
+         * need to back check syntax..
+         * 
+         * @arg {Array} tokens the array of tokens.
+         * @arg {Number} offset where to start..
+         * @return {Token} the token
+         */
+        public Token? lastSym(TokenArray tokens, int n)
+        {
+            for (var i = n-1; i >= 0; i--) {
+                if (!(tokens.get(i).isType(TokenType.WHIT) || tokens.get(i).isType(TokenType.COMM))) {
+                    return tokens.get(i);
+                }
+            }
+            return null;
+        }
+        
+         
+        
+        /**
+            @returns {Boolean} Was the token found?
+         */
+        public bool read_word (TextStream stream, TokenArray tokens)  
+        {
+            string found = "";
+            while (!stream.lookEOF() && Lang.isWordChar(stream.lookC() )) {
+                found += stream.nextC().to_string();
+            }
+             
+            if (found == "") {
+                return false;
+            }
+            TokenName name;
+            try {
+                       name = Lang.keyword(found);
+                       tokens.push(new Token(found, TokenType.KEYW, name, this.line));
+                       return true;
+               }  catch (LangError e) {        
+                       // noop -- then it's a word / not a keyword...
+               }
+                /*
+                       What did all this do...
+                       
+               //
+                
+                // look for "()return" ?? why ???
+                var ls = tokens.lastSym();
+                if (found == "return" && ls != null && ls.data == ")") {
+                    //Seed.print('@' + tokens.length);
+                    var n = this.findPuncToken(tokens, ")", 0);
+                    //Seed.print(')@' + n);
+                    n = this.findPuncToken(tokens, "(", n-1);
+                    //Seed.print('(@' + n);
+                    
+                    //var lt = this.lastSym(tokens, n);
+                    /*
+                    //print(JSON.stringify(lt));
+                    if (lt.type != "KEYW" || ["IF", 'WHILE'].indexOf(lt.name) < -1) {
+                        if (!this.ignoreBadGrammer) {
+                            throw new TokenReader_Error.ArgumentError(
+                                this.filename + ":" + this.line + " Error - return found after )"
+                            );
+                        }
+                    }
+                    
+                    */
+                    /*
+                }
+                
+                
+                tokens.push(new Token(found, TokenType.KEYW, name, this.line));
+                return true;
+            }
+            */
+            if (!this.sepIdents || found.index_of(".") < 0 ) {
+                tokens.push(new Token(found, TokenType.NAME, TokenName.NAME, this.line));
+                return true;
+            }
+            var n = found.split(".");
+            var p = false;
+            foreach (unowned string nm in n) {
+               
+                if (p) {
+                    tokens.push(new Token(".", TokenType.PUNC, TokenName.DOT, this.line));
+                }
+                p=true;
+               if (nm.length < 1 ) {
+                               continue;
+                       }
+                tokens.push(new Token(nm, TokenType.NAME, TokenName.NAME, this.line));
+            }
+            return true;
+                
+
+        }
+
+        /**
+            @returns {Boolean} Was the token found?
+         */
+        public bool read_punc (TextStream stream, TokenArray tokens)  
+        {
+            string found = "";
+            int pos = 0;
+            TokenName tokname = TokenName.UNKNOWN;
+            while (!stream.lookEOF()) {
+                       var ns = stream.lookC();
+                               if (pos == 0 ){
+                                       tokname = Lang.puncFirstString(ns);
+                                       if (TokenName.UNKNOWN == tokname) {
+                                               break;
+                                       } 
+                                       pos++;
+                       found += stream.nextS();
+                                       continue;
+                               }
+                       var nx = Lang.puncString(found + ns.to_string() );
+                               if (TokenName.UNKNOWN == nx) {
+                                       break;
+                               }
+                               
+                               tokname = nx;
+                found += stream.nextS();
+            }
+            
+            
+            if (tokname == TokenName.UNKNOWN) {
+                return false;
+            }
+            
+            var ls = tokens.lastSym();
+            
+            if ((found == "}" || found == "]") && ls != null && ls.data == ",") {
+                //print("Error - comma found before " + found);
+                //print(JSON.stringify(tokens.lastSym(), null,4));
+               if (this.packer != null) {
+                           this.packer.logError(
+                                       this.ignoreBadGrammer ? Packer.ResultType.warn : Packer.ResultType.err,
+                                       this.filename,
+                                       this.line,
+                                       "comma found before " + found
+                               );
+                }
+                 
+            }
+            
+            tokens.push(new Token(found, TokenType.PUNC, tokname, this.line));
+            return true;
+            
+        } 
+
+        /**
+            @returns {Boolean} Was the token found?
+         */
+        public bool read_space  (TextStream stream, TokenArray tokens)  
+        {
+            // not supported yet.. newlines can be unicode...
+            var found = "";
+            
+            while (!stream.lookEOF() && Lang.isSpace(  stream.lookS()) && !Lang.isNewline(stream.lookS())) {
+                found += stream.nextS();
+            }
+            
+            if (found == "") {
+                return false;
+            }
+            //print("WHITE = " + JSON.stringify(found));
+            
+             
+            if (this.collapseWhite) {
+                found = " "; // this might work better if it was a '\n' ???
+            }
+            if (this.keepWhite) {
+                tokens.push(new Token(found, TokenType.WHIT, TokenName.SPACE, this.line));
+            }
+            return true;
+        
+        }
+
+        /**
+            @returns {Boolean} Was the token found?
+         */
+        public bool read_newline  (TextStream stream, TokenArray tokens)  
+        {
+            // we do not support it yet, but newlines can be UNICODE..
+            var found = "";
+
+            var line = this.line;
+            // \r  or \r\n 
+            var lastc = "";
+            while (!stream.lookEOF() && Lang.isNewline(stream.lookS())) {
+                       var cur = stream.lookS();;
+                       if (lastc == "\r" && cur == "\n") {
+                               // dont add new line..
+                       } else {
+                       this.line++;
+                }
+               lastc = cur;
+                        
+
+                found += stream.nextS();
+            }
+
+            if (found == "") {
+                return false;
+            }
+            //print("NEWLINE @%d  changing this.line to %d\n", line, this.line);
+            // if we found a new line, then we could check if previous character was a ';' - if so we can drop it.
+            // otherwise generally keep it.. in which case it should reduce our issue with stripping new lines..
+           
+            
+            //this.line++;
+            if (this.collapseWhite) {
+                found = "\n"; // reduces multiple line breaks into a single one...
+            }
+            
+            if (this.keepWhite) {
+                var last = tokens.last();
+                if (last != null && last.type != TokenType.WHIT) {
+                    //tokens.push(last);
+                } else {
+                       tokens.pop(); // remove the last token..
+                }
+                // replaces last new line... 
+                tokens.push(new Token(found, TokenType.WHIT, TokenName.NEWLINE, line));
+            }
+            return true;
+        }
+
+        /**
+            @returns {Boolean} Was the token found?
+         */
+        public bool read_mlcomment  (TextStream stream, TokenArray tokens)  
+        {
+            if (stream.lookC() != '/') {
+                return false;
+            }
+            if (stream.lookC(1) != '*') {
+                return false;
+            }
+            
+            var found = new StringBuilder();
+            found.append(stream.nextS(2));
+           
+
+            string  c = "";
+            var line = this.line;
+            while (!stream.lookEOF() && !(stream.lookC(-1) == '/' && stream.lookC(-2) == '*')) {
+                c = stream.nextS();
+                if (c == "\n") {
+                    this.line++;
+                }
+                found.append(c);
+            }
+            
+            // to start doclet we allow /** or /*** but not /**/ or /****
+            //if (found.length /^\/\*\*([^\/]|\*[^*])/.test(found) && this.keepDocs) {
+            if (this.keepDocs && found.len > 4 && found.str.index_of("/**") == 0 && found.str[3] != '/') {
+                tokens.push(new Token(found.str, TokenType.COMM, TokenName.JSDOC, this.line));
+            } else if (this.keepComments) {
+                tokens.push(new Token(found.str, TokenType.COMM, TokenName.MULTI_LINE_COMM, line));
+            }
+            return true;
+        
+        } 
+        /**
+            @returns {Boolean} Was the token found?
+         */
+         public bool read_slcomment  (TextStream stream, TokenArray tokens)  
+         {
+            var found = "";
+            if (
+                (stream.lookC() == '/' && stream.lookC(1) == '/' && (""!=(found=stream.nextS(2))))
+                || 
+                (stream.lookC() == '<' && stream.lookC(1) == '!' && stream.lookC(2) == '-' && stream.lookC(3) == '-' && (""!=(found=stream.nextS(4))))
+            ) {
+                var line = this.line;
+                while (!stream.lookEOF()) {
+                                       //print(stream.look().to_string());
+                       if ( Lang.isNewline(stream.lookS().to_string())) {
+                               break;
+                       }
+                    found += stream.nextS();
+                }
+                if (!stream.lookEOF()) { // lookinng for end  of line... if we got it, then do not eat the character..
+                    found += stream.nextS();
+                }
+                if (this.keepComments) {
+                    tokens.push(new Token(found, TokenType.COMM, TokenName.SINGLE_LINE_COMM, line));
+                }
+                this.line++;
+                return true;
+            }
+            return false;
+        }
+
+        /**
+            @returns {Boolean} Was the token found?
+         */
+        public bool read_dbquote  (TextStream stream, TokenArray tokens)  
+        {
+            if (stream.lookC() != '"') {
+                return false;
+            }
+                // find terminator
+            var str = new StringBuilder();
+            str.append_unichar(stream.nextC());
+            
+            while (!stream.lookEOF()) {
+                if (stream.lookC() == '\\') {
+                    if (Lang.isNewline(stream.lookS(1).to_string())) {
+                        do {
+                            stream.nextC();
+                        } while (!stream.lookEOF() && Lang.isNewline(stream.lookS().to_string()));
+                        str.append( "\\\n");
+                    }
+                    else {
+                        str.append(stream.nextS(2));
+                    }
+                    continue;
+                }
+                if (stream.lookC() == '"') {
+                    str.append_unichar(stream.nextC());
+                    tokens.push(new Token(str.str, TokenType.STRN, TokenName.DOUBLE_QUOTE, this.line));
+                    return true;
+                }
+            
+                str.append(stream.nextS());
+                
+            }
+            return false;
+        }
+
+        /**
+            @returns {Boolean} Was the token found?
+         */
+        public bool read_snquote  (TextStream stream, TokenArray tokens)  
+        {
+            if (stream.lookC() != '\'') {
+                return false;
+            }
+            // find terminator
+            var str = new StringBuilder();
+               str.append_unichar(stream.nextC());
+            
+            while (!stream.lookEOF()) {
+                if (stream.lookC() == '\\') { // escape sequence
+                    str.append( stream.nextS(2));
+                    continue;
+                }
+                if (stream.lookC() == '\'') {
+                    str.append_unichar(stream.nextC());
+                    tokens.push(new Token(str.str, TokenType.STRN, TokenName.SINGLE_QUOTE, this.line));
+                    return true;
+                }
+                str.append(stream.nextS());
+                
+            }
+            return false;
+        }
+        
+
+        /**
+            @returns {Boolean} Was the token found?
+         */
+        public bool read_numb  (TextStream stream, TokenArray tokens)  
+        {
+            if (stream.lookC() == '0' && stream.lookC(1) == 'x') {
+                return this.read_hex(stream, tokens);
+            }
+            
+            var found = "";
+            
+            while (!stream.lookEOF() && !Lang.isNewline(stream.lookS()) && Lang.isNumber(found+stream.lookC().to_string())){
+                found += stream.nextS();
+            }
+            
+            if (found == "") {
+                return false;
+            }
+            // if we hit an 'e'.... then we need to carry on parsing..
+            if (stream.lookC() == 'e' || stream.lookC() == 'E') {
+                       found += stream.nextS();
+                       var nc = stream.lookC();
+                       if (nc == '+' || nc == '-' || (nc >= '0' && nc <= '9')) {
+                               found += stream.nextS();
+                           while (!stream.lookEOF() && !Lang.isNewline(stream.lookS()) && Lang.isNumber(found+stream.lookC().to_string())){
+                                       found += stream.nextS();
+                                   }
+                                   if (!Lang.isNumber(found)) {
+                                       if (this.packer != null) {
+                                                 this.packer.logError(
+                                                               Packer.ResultType.err,
+                                                               this.filename,
+                                                               this.line,
+                                                               "Invalid Number " + found
+                                                       );
+                                               }
+                                               return true; // eat the characters and continue...
+                       }
+                                               
+                       } else {
+                       if (this.packer != null) {
+                                         this.packer.logError(
+                                                       Packer.ResultType.err,
+                                                       this.filename,
+                                                       this.line,
+                                                       "could not find +/- or 0-9 after Number '" + found
+                                               );
+                                       return true;
+                               }
+                       }
+                       
+            }
+             
+            if (GLib.Regex.match_simple("^0[0-7]", found)) {
+                tokens.push(new Token(found, TokenType.NUMB, TokenName.OCTAL, this.line));
+                return true;
+            }
+            //print("got number '%s'\n", found);
+            
+            tokens.push(new Token(found, TokenType.NUMB, TokenName.DECIMAL, this.line));
+            return true;
+        
+        }
+       
+        /**
+            @returns {Boolean} Was the token found?
+         */
+        public bool read_hex  (TextStream stream, TokenArray tokens)  
+        {
+            var found = stream.nextS(2);
+            
+            while (!stream.lookEOF()) {
+                if (Lang.isHexDec(found) && !Lang.isHexDec(found+stream.lookC().to_string())) { // done
+                    tokens.push(new Token(found, TokenType.NUMB, TokenName.HEX_DEC, this.line));
+                    return true;
+                }
+                
+                found += stream.nextS();
+               
+            }
+            return false;
+        }
+
+        /**
+            @returns {Boolean} Was the token found?
+         */
+        public bool read_regx (TextStream stream, TokenArray tokens)  
+        {
+              
+            if (stream.lookC() != '/') {
+                return false;
+            }
+            var  last = tokens.lastSym();
+            if (
+                (last == null)
+                || 
+                (
+                       !last.isType(TokenType.NUMB)   // stuff that can not appear before a regex..
+                    && !last.isType(TokenType.NAME)
+                    && !last.isName(TokenName.RIGHT_PAREN)
+                    && !last.isName(TokenName.RIGHT_BRACE)
+                )
+            )  {
+                var regex = stream.nextS();
+                var in_brace = false; // this is really hacky... we ignore [ .../ ]  so aforward slash in a regex.. 
+                while (!stream.lookEOF()) {
+                       if (stream.lookC() == '[') {
+                               in_brace = true;
+                       }
+                       if (in_brace && stream.lookC() == ']') {
+                               in_brace = false;
+                       }
+                       
+                    if (stream.lookC() == '\\') { // escape sequence
+                        regex += stream.nextS(2);
+                        continue;
+                    }
+                    if (!in_brace && stream.lookC() == '/') {
+                        regex += stream.nextS();
+                        
+                        while (GLib.Regex.match_simple("[gmi]", stream.lookS().to_string())) {
+                            regex += stream.nextS();
+                        }
+                        
+                        tokens.push(new Token(regex, TokenType.REGX, TokenName.REGX, this.line));
+                        return true;
+                    }
+                     
+                    regex += stream.nextS();
+                     
+                }
+                // error: unterminated regex
+            }
+            return false;
+        }
+    }
+}
diff --git a/jsdoc/TokenStream.c b/jsdoc/TokenStream.c
new file mode 100644 (file)
index 0000000..c62139d
--- /dev/null
@@ -0,0 +1,2168 @@
+/* TokenStream.c generated by valac 0.36.6, the Vala compiler
+ * generated from TokenStream.vala, do not modify */
+
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gee.h>
+#include <stdlib.h>
+#include <string.h>
+
+
+#define JSDOC_TYPE_TOKEN_STREAM (jsdoc_token_stream_get_type ())
+#define JSDOC_TOKEN_STREAM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_TOKEN_STREAM, JSDOCTokenStream))
+#define JSDOC_TOKEN_STREAM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_TOKEN_STREAM, JSDOCTokenStreamClass))
+#define JSDOC_IS_TOKEN_STREAM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_TOKEN_STREAM))
+#define JSDOC_IS_TOKEN_STREAM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_TOKEN_STREAM))
+#define JSDOC_TOKEN_STREAM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_TOKEN_STREAM, JSDOCTokenStreamClass))
+
+typedef struct _JSDOCTokenStream JSDOCTokenStream;
+typedef struct _JSDOCTokenStreamClass JSDOCTokenStreamClass;
+typedef struct _JSDOCTokenStreamPrivate JSDOCTokenStreamPrivate;
+
+#define JSDOC_TYPE_TOKEN (jsdoc_token_get_type ())
+#define JSDOC_TOKEN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_TOKEN, JSDOCToken))
+#define JSDOC_TOKEN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_TOKEN, JSDOCTokenClass))
+#define JSDOC_IS_TOKEN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_TOKEN))
+#define JSDOC_IS_TOKEN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_TOKEN))
+#define JSDOC_TOKEN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_TOKEN, JSDOCTokenClass))
+
+typedef struct _JSDOCToken JSDOCToken;
+typedef struct _JSDOCTokenClass JSDOCTokenClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+#define JSDOC_TYPE_TOKEN_TYPE (jsdoc_token_type_get_type ())
+
+#define JSDOC_TYPE_TOKEN_NAME (jsdoc_token_name_get_type ())
+typedef struct _JSDOCTokenPrivate JSDOCTokenPrivate;
+
+#define JSDOC_TYPE_IDENTIFIER (jsdoc_identifier_get_type ())
+#define JSDOC_IDENTIFIER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_IDENTIFIER, JSDOCIdentifier))
+#define JSDOC_IDENTIFIER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_IDENTIFIER, JSDOCIdentifierClass))
+#define JSDOC_IS_IDENTIFIER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_IDENTIFIER))
+#define JSDOC_IS_IDENTIFIER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_IDENTIFIER))
+#define JSDOC_IDENTIFIER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_IDENTIFIER, JSDOCIdentifierClass))
+
+typedef struct _JSDOCIdentifier JSDOCIdentifier;
+typedef struct _JSDOCIdentifierClass JSDOCIdentifierClass;
+
+#define JSDOC_TYPE_TOKEN_KEY_MAP (jsdoc_token_key_map_get_type ())
+#define JSDOC_TOKEN_KEY_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_TOKEN_KEY_MAP, JSDOCTokenKeyMap))
+#define JSDOC_TOKEN_KEY_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_TOKEN_KEY_MAP, JSDOCTokenKeyMapClass))
+#define JSDOC_IS_TOKEN_KEY_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_TOKEN_KEY_MAP))
+#define JSDOC_IS_TOKEN_KEY_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_TOKEN_KEY_MAP))
+#define JSDOC_TOKEN_KEY_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_TOKEN_KEY_MAP, JSDOCTokenKeyMapClass))
+
+typedef struct _JSDOCTokenKeyMap JSDOCTokenKeyMap;
+typedef struct _JSDOCTokenKeyMapClass JSDOCTokenKeyMapClass;
+
+#define JSDOC_TYPE_LANGCLASS (jsdoc_langclass_get_type ())
+#define JSDOC_LANGCLASS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_LANGCLASS, JSDOCLang_Class))
+#define JSDOC_LANGCLASS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_LANGCLASS, JSDOCLang_ClassClass))
+#define JSDOC_IS_LANGCLASS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_LANGCLASS))
+#define JSDOC_IS_LANGCLASS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_LANGCLASS))
+#define JSDOC_LANGCLASS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_LANGCLASS, JSDOCLang_ClassClass))
+
+typedef struct _JSDOCLang_Class JSDOCLang_Class;
+typedef struct _JSDOCLang_ClassClass JSDOCLang_ClassClass;
+#define _g_free0(var) ((var == NULL) ? NULL : (var = (g_free (var), NULL)))
+
+typedef enum  {
+       JSDOC_TOKEN_STREAM_ERROR_ArgumentError
+} JSDOCTokenStreamError;
+#define JSDOC_TOKEN_STREAM_ERROR jsdoc_token_stream_error_quark ()
+struct _JSDOCTokenStream {
+       GObject parent_instance;
+       JSDOCTokenStreamPrivate * priv;
+       GeeArrayList* tokens;
+       gint cursor;
+};
+
+struct _JSDOCTokenStreamClass {
+       GObjectClass parent_class;
+};
+
+typedef enum  {
+       JSDOC_TOKEN_TYPE_TOKN,
+       JSDOC_TOKEN_TYPE_KEYW,
+       JSDOC_TOKEN_TYPE_NAME,
+       JSDOC_TOKEN_TYPE_COMM,
+       JSDOC_TOKEN_TYPE_PUNC,
+       JSDOC_TOKEN_TYPE_WHIT,
+       JSDOC_TOKEN_TYPE_STRN,
+       JSDOC_TOKEN_TYPE_NUMB,
+       JSDOC_TOKEN_TYPE_REGX,
+       JSDOC_TOKEN_TYPE_VOID
+} JSDOCTokenType;
+
+typedef enum  {
+       JSDOC_TOKEN_NAME_UNKNOWN_TOKEN,
+       JSDOC_TOKEN_NAME_BREAK,
+       JSDOC_TOKEN_NAME_CASE,
+       JSDOC_TOKEN_NAME_CATCH,
+       JSDOC_TOKEN_NAME_CONST,
+       JSDOC_TOKEN_NAME_CONTINUE,
+       JSDOC_TOKEN_NAME_DEFAULT,
+       JSDOC_TOKEN_NAME_DELETE,
+       JSDOC_TOKEN_NAME_DO,
+       JSDOC_TOKEN_NAME_ELSE,
+       JSDOC_TOKEN_NAME_FALSE,
+       JSDOC_TOKEN_NAME_FINALLY,
+       JSDOC_TOKEN_NAME_FOR,
+       JSDOC_TOKEN_NAME_FUNCTION,
+       JSDOC_TOKEN_NAME_IF,
+       JSDOC_TOKEN_NAME_IN,
+       JSDOC_TOKEN_NAME_INSTANCEOF,
+       JSDOC_TOKEN_NAME_NEW,
+       JSDOC_TOKEN_NAME_NULL,
+       JSDOC_TOKEN_NAME_RETURN,
+       JSDOC_TOKEN_NAME_SWITCH,
+       JSDOC_TOKEN_NAME_THIS,
+       JSDOC_TOKEN_NAME_THROW,
+       JSDOC_TOKEN_NAME_TRUE,
+       JSDOC_TOKEN_NAME_TRY,
+       JSDOC_TOKEN_NAME_TYPEOF,
+       JSDOC_TOKEN_NAME_VOID,
+       JSDOC_TOKEN_NAME_WHILE,
+       JSDOC_TOKEN_NAME_WITH,
+       JSDOC_TOKEN_NAME_VAR,
+       JSDOC_TOKEN_NAME_EVAL,
+       JSDOC_TOKEN_NAME_NAME,
+       JSDOC_TOKEN_NAME_MULTI_LINE_COMM,
+       JSDOC_TOKEN_NAME_JSDOC,
+       JSDOC_TOKEN_NAME_SINGLE_LINE_COMM,
+       JSDOC_TOKEN_NAME_SEMICOLON,
+       JSDOC_TOKEN_NAME_COMMA,
+       JSDOC_TOKEN_NAME_HOOK,
+       JSDOC_TOKEN_NAME_COLON,
+       JSDOC_TOKEN_NAME_OR,
+       JSDOC_TOKEN_NAME_AND,
+       JSDOC_TOKEN_NAME_BITWISE_OR,
+       JSDOC_TOKEN_NAME_BITWISE_XOR,
+       JSDOC_TOKEN_NAME_BITWISE_AND,
+       JSDOC_TOKEN_NAME_STRICT_EQ,
+       JSDOC_TOKEN_NAME_EQ,
+       JSDOC_TOKEN_NAME_ASSIGN,
+       JSDOC_TOKEN_NAME_STRICT_NE,
+       JSDOC_TOKEN_NAME_NE,
+       JSDOC_TOKEN_NAME_LSH,
+       JSDOC_TOKEN_NAME_LE,
+       JSDOC_TOKEN_NAME_LT,
+       JSDOC_TOKEN_NAME_URSH,
+       JSDOC_TOKEN_NAME_RSH,
+       JSDOC_TOKEN_NAME_GE,
+       JSDOC_TOKEN_NAME_GT,
+       JSDOC_TOKEN_NAME_INCREMENT,
+       JSDOC_TOKEN_NAME_DECREMENT,
+       JSDOC_TOKEN_NAME_PLUS,
+       JSDOC_TOKEN_NAME_MINUS,
+       JSDOC_TOKEN_NAME_MUL,
+       JSDOC_TOKEN_NAME_DIV,
+       JSDOC_TOKEN_NAME_MOD,
+       JSDOC_TOKEN_NAME_NOT,
+       JSDOC_TOKEN_NAME_BITWISE_NOT,
+       JSDOC_TOKEN_NAME_DOT,
+       JSDOC_TOKEN_NAME_LEFT_BRACE,
+       JSDOC_TOKEN_NAME_RIGHT_BRACE,
+       JSDOC_TOKEN_NAME_LEFT_CURLY,
+       JSDOC_TOKEN_NAME_RIGHT_CURLY,
+       JSDOC_TOKEN_NAME_LEFT_PAREN,
+       JSDOC_TOKEN_NAME_RIGHT_PAREN,
+       JSDOC_TOKEN_NAME_SPACE,
+       JSDOC_TOKEN_NAME_NEWLINE,
+       JSDOC_TOKEN_NAME_DOUBLE_QUOTE,
+       JSDOC_TOKEN_NAME_SINGLE_QUOTE,
+       JSDOC_TOKEN_NAME_OCTAL,
+       JSDOC_TOKEN_NAME_DECIMAL,
+       JSDOC_TOKEN_NAME_HEX_DEC,
+       JSDOC_TOKEN_NAME_REGX,
+       JSDOC_TOKEN_NAME_START_OF_STREAM,
+       JSDOC_TOKEN_NAME_END_OF_STREAM,
+       JSDOC_TOKEN_NAME_UNKNOWN
+} JSDOCTokenName;
+
+struct _JSDOCToken {
+       GObject parent_instance;
+       JSDOCTokenPrivate * priv;
+       gint id;
+       gchar* data;
+       JSDOCTokenType type;
+       JSDOCTokenName name;
+       gint line;
+       gchar* prefix;
+       gchar* outData;
+       JSDOCIdentifier* identifier;
+       GeeArrayList* items;
+       GeeHashMap* props;
+       GeeArrayList* keyseq;
+};
+
+struct _JSDOCTokenClass {
+       GObjectClass parent_class;
+};
+
+typedef enum  {
+       JSDOC_LANG_ERROR_ArgumentError
+} JSDOCLangError;
+#define JSDOC_LANG_ERROR jsdoc_lang_error_quark ()
+
+static gpointer jsdoc_token_stream_parent_class = NULL;
+extern JSDOCLang_Class* jsdoc_Lang;
+
+GQuark jsdoc_token_stream_error_quark (void);
+GType jsdoc_token_stream_get_type (void) G_GNUC_CONST;
+GType jsdoc_token_get_type (void) G_GNUC_CONST;
+enum  {
+       JSDOC_TOKEN_STREAM_DUMMY_PROPERTY
+};
+JSDOCTokenStream* jsdoc_token_stream_new (GeeArrayList* tokens);
+JSDOCTokenStream* jsdoc_token_stream_construct (GType object_type, GeeArrayList* tokens);
+void jsdoc_token_stream_rewind (JSDOCTokenStream* self);
+GeeArrayList* jsdoc_token_stream_toArray (JSDOCTokenStream* self);
+JSDOCToken* jsdoc_token_stream_look (JSDOCTokenStream* self, gint n, gboolean considerWhitespace);
+GType jsdoc_token_type_get_type (void) G_GNUC_CONST;
+GType jsdoc_token_name_get_type (void) G_GNUC_CONST;
+JSDOCToken* jsdoc_token_new (const gchar* data, JSDOCTokenType type, JSDOCTokenName name, gint line);
+JSDOCToken* jsdoc_token_construct (GType object_type, const gchar* data, JSDOCTokenType type, JSDOCTokenName name, gint line);
+gboolean jsdoc_token_isType (JSDOCToken* self, JSDOCTokenType what);
+JSDOCToken* jsdoc_token_stream_lookAny (JSDOCTokenStream* self, gint n);
+gint jsdoc_token_stream_lookFor (JSDOCTokenStream* self, const gchar* data);
+GType jsdoc_identifier_get_type (void) G_GNUC_CONST;
+GType jsdoc_token_key_map_get_type (void) G_GNUC_CONST;
+JSDOCToken* jsdoc_token_stream_lookTok (JSDOCTokenStream* self, gint n);
+JSDOCToken* jsdoc_token_stream_next (JSDOCTokenStream* self);
+GeeArrayList* jsdoc_token_stream_nextM (JSDOCTokenStream* self, gint howMany, GError** error);
+JSDOCToken* jsdoc_token_stream_nextTok (JSDOCTokenStream* self);
+JSDOCToken* jsdoc_token_stream_nextNonSpace (JSDOCTokenStream* self);
+GeeArrayList* jsdoc_token_stream_balance (JSDOCTokenStream* self, JSDOCTokenName in_start, GError** error);
+GType jsdoc_langclass_get_type (void) G_GNUC_CONST;
+GQuark jsdoc_lang_error_quark (void);
+JSDOCTokenName* jsdoc_langclass_matching (JSDOCLang_Class* self, JSDOCTokenName name, GError** error);
+const gchar* jsdoc_token_name_to_string (JSDOCTokenName self);
+gboolean jsdoc_token_isName (JSDOCToken* self, JSDOCTokenName what);
+JSDOCToken* jsdoc_token_stream_getMatchingTokenEnd (JSDOCTokenStream* self, JSDOCTokenName end);
+JSDOCToken* jsdoc_token_stream_getMatchingToken (JSDOCTokenStream* self, JSDOCTokenName start, gint depth);
+GeeArrayList* jsdoc_token_stream_remaining (JSDOCTokenStream* self);
+void jsdoc_token_stream_printRange (JSDOCTokenStream* self, gint start, gint end);
+gchar* jsdoc_token_asString (JSDOCToken* self);
+void jsdoc_token_stream_dump (JSDOCTokenStream* self, gint start, gint end);
+void jsdoc_token_stream_dumpAll (JSDOCTokenStream* self, const gchar* indent);
+void jsdoc_token_dump (JSDOCToken* self, const gchar* indent);
+void jsdoc_token_stream_dumpAllFlat (JSDOCTokenStream* self);
+static void jsdoc_token_stream_finalize (GObject * obj);
+
+
+GQuark jsdoc_token_stream_error_quark (void) {
+       return g_quark_from_static_string ("jsdoc_token_stream_error-quark");
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 27 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       return self ? g_object_ref (self) : NULL;
+#line 264 "TokenStream.c"
+}
+
+
+JSDOCTokenStream* jsdoc_token_stream_construct (GType object_type, GeeArrayList* tokens) {
+       JSDOCTokenStream * self = NULL;
+       GeeArrayList* _tmp0_;
+       GeeArrayList* _tmp1_;
+#line 25 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       g_return_val_if_fail (tokens != NULL, NULL);
+#line 25 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       self = (JSDOCTokenStream*) g_object_new (object_type, NULL);
+#line 27 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       _tmp0_ = tokens;
+#line 27 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 27 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       _g_object_unref0 (self->tokens);
+#line 27 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       self->tokens = _tmp1_;
+#line 29 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       jsdoc_token_stream_rewind (self);
+#line 25 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       return self;
+#line 288 "TokenStream.c"
+}
+
+
+JSDOCTokenStream* jsdoc_token_stream_new (GeeArrayList* tokens) {
+#line 25 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       return jsdoc_token_stream_construct (JSDOC_TYPE_TOKEN_STREAM, tokens);
+#line 295 "TokenStream.c"
+}
+
+
+GeeArrayList* jsdoc_token_stream_toArray (JSDOCTokenStream* self) {
+       GeeArrayList* result = NULL;
+       GeeArrayList* _tmp0_;
+       GeeArrayList* _tmp1_;
+#line 31 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 33 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       _tmp0_ = self->tokens;
+#line 33 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 33 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       result = _tmp1_;
+#line 33 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       return result;
+#line 313 "TokenStream.c"
+}
+
+
+void jsdoc_token_stream_rewind (JSDOCTokenStream* self) {
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       g_return_if_fail (self != NULL);
+#line 38 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       self->cursor = -1;
+#line 322 "TokenStream.c"
+}
+
+
+/**
+    @type JSDOC.Token
+*/
+JSDOCToken* jsdoc_token_stream_look (JSDOCTokenStream* self, gint n, gboolean considerWhitespace) {
+       JSDOCToken* result = NULL;
+       gboolean _tmp0_;
+       gint count = 0;
+       gint i = 0;
+       gint _tmp14_;
+#line 44 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 48 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       _tmp0_ = considerWhitespace;
+#line 48 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       if (_tmp0_ == TRUE) {
+#line 341 "TokenStream.c"
+               gboolean _tmp1_ = FALSE;
+               gint _tmp2_;
+               gint _tmp3_;
+               GeeArrayList* _tmp10_;
+               gint _tmp11_;
+               gint _tmp12_;
+               gpointer _tmp13_;
+#line 50 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp2_ = self->cursor;
+#line 50 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp3_ = n;
+#line 50 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               if ((_tmp2_ + _tmp3_) < 0) {
+#line 50 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       _tmp1_ = TRUE;
+#line 357 "TokenStream.c"
+               } else {
+                       gint _tmp4_;
+                       gint _tmp5_;
+                       GeeArrayList* _tmp6_;
+                       gint _tmp7_;
+                       gint _tmp8_;
+#line 50 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       _tmp4_ = self->cursor;
+#line 50 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       _tmp5_ = n;
+#line 50 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       _tmp6_ = self->tokens;
+#line 50 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       _tmp7_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp6_);
+#line 50 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       _tmp8_ = _tmp7_;
+#line 50 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       _tmp1_ = (_tmp4_ + _tmp5_) > (_tmp8_ - 1);
+#line 376 "TokenStream.c"
+               }
+#line 50 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               if (_tmp1_) {
+#line 380 "TokenStream.c"
+                       JSDOCToken* _tmp9_;
+#line 51 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       _tmp9_ = jsdoc_token_new ("", JSDOC_TOKEN_TYPE_VOID, JSDOC_TOKEN_NAME_START_OF_STREAM, -1);
+#line 51 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       result = _tmp9_;
+#line 51 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       return result;
+#line 388 "TokenStream.c"
+               }
+#line 53 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp10_ = self->tokens;
+#line 53 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp11_ = self->cursor;
+#line 53 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp12_ = n;
+#line 53 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp13_ = gee_abstract_list_get ((GeeAbstractList*) _tmp10_, _tmp11_ + _tmp12_);
+#line 53 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               result = (JSDOCToken*) _tmp13_;
+#line 53 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               return result;
+#line 402 "TokenStream.c"
+       }
+#line 57 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       count = 0;
+#line 58 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       _tmp14_ = self->cursor;
+#line 58 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       i = _tmp14_;
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       while (TRUE) {
+#line 412 "TokenStream.c"
+               gint _tmp15_;
+               gint _tmp17_;
+               GeeArrayList* _tmp18_;
+               gint _tmp19_;
+               gint _tmp20_;
+               gboolean _tmp22_ = FALSE;
+               gint _tmp23_;
+               gint _tmp24_;
+               gint _tmp33_;
+               gint _tmp34_;
+               gint _tmp38_;
+               gint _tmp39_ = 0;
+               gint _tmp40_;
+               gint _tmp41_;
+#line 61 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp15_ = i;
+#line 61 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               if (_tmp15_ < 0) {
+#line 431 "TokenStream.c"
+                       JSDOCToken* _tmp16_;
+#line 62 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       _tmp16_ = jsdoc_token_new ("", JSDOC_TOKEN_TYPE_VOID, JSDOC_TOKEN_NAME_START_OF_STREAM, -1);
+#line 62 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       result = _tmp16_;
+#line 62 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       return result;
+#line 439 "TokenStream.c"
+               }
+#line 64 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp17_ = i;
+#line 64 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp18_ = self->tokens;
+#line 64 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp19_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp18_);
+#line 64 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp20_ = _tmp19_;
+#line 64 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               if (_tmp17_ >= _tmp20_) {
+#line 451 "TokenStream.c"
+                       JSDOCToken* _tmp21_;
+#line 65 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       _tmp21_ = jsdoc_token_new ("", JSDOC_TOKEN_TYPE_VOID, JSDOC_TOKEN_NAME_END_OF_STREAM, -1);
+#line 65 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       result = _tmp21_;
+#line 65 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       return result;
+#line 459 "TokenStream.c"
+               }
+#line 68 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp23_ = i;
+#line 68 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp24_ = self->cursor;
+#line 68 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               if (_tmp23_ != _tmp24_) {
+#line 467 "TokenStream.c"
+                       GeeArrayList* _tmp25_;
+                       gint _tmp26_;
+                       gpointer _tmp27_;
+                       JSDOCToken* _tmp28_;
+                       gboolean _tmp29_;
+#line 68 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       _tmp25_ = self->tokens;
+#line 68 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       _tmp26_ = i;
+#line 68 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       _tmp27_ = gee_abstract_list_get ((GeeAbstractList*) _tmp25_, _tmp26_);
+#line 68 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       _tmp28_ = (JSDOCToken*) _tmp27_;
+#line 68 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       _tmp29_ = jsdoc_token_isType (_tmp28_, JSDOC_TOKEN_TYPE_WHIT);
+#line 68 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       _tmp22_ = _tmp29_;
+#line 68 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       _g_object_unref0 (_tmp28_);
+#line 487 "TokenStream.c"
+               } else {
+#line 68 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       _tmp22_ = FALSE;
+#line 491 "TokenStream.c"
+               }
+#line 68 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               if (_tmp22_) {
+#line 495 "TokenStream.c"
+                       gint _tmp30_ = 0;
+                       gint _tmp31_;
+                       gint _tmp32_;
+#line 69 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       _tmp31_ = n;
+#line 69 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       if (_tmp31_ < 0) {
+#line 69 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _tmp30_ = -1;
+#line 505 "TokenStream.c"
+                       } else {
+#line 69 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _tmp30_ = 1;
+#line 509 "TokenStream.c"
+                       }
+#line 69 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       _tmp32_ = i;
+#line 69 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       i = _tmp32_ + _tmp30_;
+#line 70 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       continue;
+#line 517 "TokenStream.c"
+               }
+#line 73 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp33_ = count;
+#line 73 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp34_ = n;
+#line 73 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               if (_tmp33_ == _tmp34_) {
+#line 525 "TokenStream.c"
+                       GeeArrayList* _tmp35_;
+                       gint _tmp36_;
+                       gpointer _tmp37_;
+#line 74 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       _tmp35_ = self->tokens;
+#line 74 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       _tmp36_ = i;
+#line 74 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       _tmp37_ = gee_abstract_list_get ((GeeAbstractList*) _tmp35_, _tmp36_);
+#line 74 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       result = (JSDOCToken*) _tmp37_;
+#line 74 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       return result;
+#line 539 "TokenStream.c"
+               }
+#line 76 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp38_ = count;
+#line 76 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               count = _tmp38_ + 1;
+#line 77 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp40_ = n;
+#line 77 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               if (_tmp40_ < 0) {
+#line 77 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       _tmp39_ = -1;
+#line 551 "TokenStream.c"
+               } else {
+#line 77 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       _tmp39_ = 1;
+#line 555 "TokenStream.c"
+               }
+#line 77 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp41_ = i;
+#line 77 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               i = _tmp41_ + _tmp39_;
+#line 561 "TokenStream.c"
+       }
+}
+
+
+JSDOCToken* jsdoc_token_stream_lookAny (JSDOCTokenStream* self, gint n) {
+       JSDOCToken* result = NULL;
+       gboolean _tmp0_ = FALSE;
+       gint _tmp1_;
+       gint _tmp2_;
+       GeeArrayList* _tmp9_;
+       gint _tmp10_;
+       gint _tmp11_;
+       gpointer _tmp12_;
+#line 84 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 88 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       _tmp1_ = self->cursor;
+#line 88 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       _tmp2_ = n;
+#line 88 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       if ((_tmp1_ + _tmp2_) < 0) {
+#line 88 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp0_ = TRUE;
+#line 585 "TokenStream.c"
+       } else {
+               gint _tmp3_;
+               gint _tmp4_;
+               GeeArrayList* _tmp5_;
+               gint _tmp6_;
+               gint _tmp7_;
+#line 88 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp3_ = self->cursor;
+#line 88 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp4_ = n;
+#line 88 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp5_ = self->tokens;
+#line 88 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp6_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp5_);
+#line 88 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp7_ = _tmp6_;
+#line 88 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp0_ = (_tmp3_ + _tmp4_) > (_tmp7_ - 1);
+#line 604 "TokenStream.c"
+       }
+#line 88 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       if (_tmp0_) {
+#line 608 "TokenStream.c"
+               JSDOCToken* _tmp8_;
+#line 89 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp8_ = jsdoc_token_new ("", JSDOC_TOKEN_TYPE_VOID, JSDOC_TOKEN_NAME_START_OF_STREAM, -1);
+#line 89 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               result = _tmp8_;
+#line 89 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               return result;
+#line 616 "TokenStream.c"
+       }
+#line 91 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       _tmp9_ = self->tokens;
+#line 91 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       _tmp10_ = self->cursor;
+#line 91 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       _tmp11_ = n;
+#line 91 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       _tmp12_ = gee_abstract_list_get ((GeeAbstractList*) _tmp9_, _tmp10_ + _tmp11_);
+#line 91 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       result = (JSDOCToken*) _tmp12_;
+#line 91 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       return result;
+#line 630 "TokenStream.c"
+}
+
+
+gint jsdoc_token_stream_lookFor (JSDOCTokenStream* self, const gchar* data) {
+       gint result = 0;
+       gint _tmp0_ = 0;
+       gint _tmp1_;
+       gint i = 0;
+#line 99 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       g_return_val_if_fail (self != NULL, 0);
+#line 99 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       g_return_val_if_fail (data != NULL, 0);
+#line 102 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       _tmp1_ = self->cursor;
+#line 102 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       if (_tmp1_ < 0) {
+#line 102 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp0_ = 0;
+#line 649 "TokenStream.c"
+       } else {
+               gint _tmp2_;
+#line 102 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp2_ = self->cursor;
+#line 102 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp0_ = _tmp2_;
+#line 656 "TokenStream.c"
+       }
+#line 102 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       i = _tmp0_;
+#line 104 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       while (TRUE) {
+#line 662 "TokenStream.c"
+               gint _tmp3_;
+               GeeArrayList* _tmp4_;
+               gint _tmp5_;
+               gint _tmp6_;
+               GeeArrayList* _tmp7_;
+               gint _tmp8_;
+               gpointer _tmp9_;
+               JSDOCToken* _tmp10_;
+               const gchar* _tmp11_;
+               const gchar* _tmp12_;
+               gboolean _tmp13_;
+               gint _tmp14_;
+#line 105 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp3_ = i;
+#line 105 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp4_ = self->tokens;
+#line 105 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp5_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp4_);
+#line 105 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp6_ = _tmp5_;
+#line 105 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               if (_tmp3_ >= _tmp6_) {
+#line 106 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       result = -1;
+#line 106 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       return result;
+#line 689 "TokenStream.c"
+               }
+#line 108 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp7_ = self->tokens;
+#line 108 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp8_ = i;
+#line 108 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp9_ = gee_abstract_list_get ((GeeAbstractList*) _tmp7_, _tmp8_);
+#line 108 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp10_ = (JSDOCToken*) _tmp9_;
+#line 108 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp11_ = _tmp10_->data;
+#line 108 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp12_ = data;
+#line 108 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp13_ = g_strcmp0 (_tmp11_, _tmp12_) == 0;
+#line 108 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _g_object_unref0 (_tmp10_);
+#line 108 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               if (_tmp13_) {
+#line 109 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       result = i;
+#line 109 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       return result;
+#line 713 "TokenStream.c"
+               }
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp14_ = i;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               i = _tmp14_ + 1;
+#line 719 "TokenStream.c"
+       }
+}
+
+
+/**
+ * look ahead (or back) x number of tokens (which are not comment or whitespace)
+ * ?? used by scope parser & compress white to look back?
+ */
+JSDOCToken* jsdoc_token_stream_lookTok (JSDOCTokenStream* self, gint n) {
+       JSDOCToken* result = NULL;
+       gint _tmp0_ = 0;
+       gint _tmp1_;
+       gint step = 0;
+       gint count = 0;
+       gint i = 0;
+       gint _tmp2_;
+#line 124 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 127 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       _tmp1_ = n;
+#line 127 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       if (_tmp1_ < 0) {
+#line 127 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp0_ = -1;
+#line 744 "TokenStream.c"
+       } else {
+#line 127 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp0_ = 1;
+#line 748 "TokenStream.c"
+       }
+#line 127 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       step = _tmp0_;
+#line 128 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       count = 0;
+#line 130 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       _tmp2_ = self->cursor;
+#line 130 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       i = _tmp2_;
+#line 132 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       while (TRUE) {
+#line 760 "TokenStream.c"
+               gboolean _tmp3_ = FALSE;
+               gint _tmp4_;
+               gboolean _tmp8_ = FALSE;
+               gint _tmp9_;
+               gint _tmp12_;
+               GeeArrayList* _tmp13_;
+               gint _tmp14_;
+               gint _tmp15_;
+               JSDOCToken* tok = NULL;
+               GeeArrayList* _tmp17_;
+               gint _tmp18_;
+               gpointer _tmp19_;
+               gboolean _tmp20_ = FALSE;
+               gint _tmp21_;
+               gint _tmp22_;
+               gint _tmp30_;
+               gint _tmp31_;
+               gint _tmp35_;
+               gint _tmp36_;
+               gint _tmp37_;
+               gint _tmp38_;
+#line 135 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp4_ = i;
+#line 135 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               if (_tmp4_ < 0) {
+#line 786 "TokenStream.c"
+                       gint _tmp5_;
+#line 135 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       _tmp5_ = n;
+#line 135 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       _tmp3_ = _tmp5_ > -1;
+#line 792 "TokenStream.c"
+               } else {
+#line 135 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       _tmp3_ = FALSE;
+#line 796 "TokenStream.c"
+               }
+#line 135 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               if (_tmp3_) {
+#line 800 "TokenStream.c"
+                       gint _tmp6_;
+                       gint _tmp7_;
+#line 136 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       i = 0;
+#line 137 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       _tmp6_ = count;
+#line 137 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       _tmp7_ = step;
+#line 137 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       count = _tmp6_ + _tmp7_;
+#line 138 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       continue;
+#line 813 "TokenStream.c"
+               }
+#line 143 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp9_ = i;
+#line 143 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               if (_tmp9_ < 0) {
+#line 819 "TokenStream.c"
+                       gint _tmp10_;
+#line 143 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       _tmp10_ = n;
+#line 143 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       _tmp8_ = _tmp10_ < 0;
+#line 825 "TokenStream.c"
+               } else {
+#line 143 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       _tmp8_ = FALSE;
+#line 829 "TokenStream.c"
+               }
+#line 143 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               if (_tmp8_) {
+#line 833 "TokenStream.c"
+                       JSDOCToken* _tmp11_;
+#line 144 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       _tmp11_ = jsdoc_token_new ("BEG", JSDOC_TOKEN_TYPE_VOID, JSDOC_TOKEN_NAME_END_OF_STREAM, -1);
+#line 144 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       result = _tmp11_;
+#line 144 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       return result;
+#line 841 "TokenStream.c"
+               }
+#line 149 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp12_ = i;
+#line 149 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp13_ = self->tokens;
+#line 149 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp14_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp13_);
+#line 149 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp15_ = _tmp14_;
+#line 149 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               if (_tmp12_ >= _tmp15_) {
+#line 853 "TokenStream.c"
+                       JSDOCToken* _tmp16_;
+#line 150 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       _tmp16_ = jsdoc_token_new ("END", JSDOC_TOKEN_TYPE_VOID, JSDOC_TOKEN_NAME_END_OF_STREAM, -1);
+#line 150 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       result = _tmp16_;
+#line 150 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       return result;
+#line 861 "TokenStream.c"
+               }
+#line 153 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp17_ = self->tokens;
+#line 153 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp18_ = i;
+#line 153 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp19_ = gee_abstract_list_get ((GeeAbstractList*) _tmp17_, _tmp18_);
+#line 153 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               tok = (JSDOCToken*) _tmp19_;
+#line 155 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp21_ = i;
+#line 155 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp22_ = self->cursor;
+#line 155 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               if (_tmp21_ != _tmp22_) {
+#line 877 "TokenStream.c"
+                       gboolean _tmp23_ = FALSE;
+                       JSDOCToken* _tmp24_;
+                       gboolean _tmp25_;
+#line 156 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       _tmp24_ = tok;
+#line 156 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       _tmp25_ = jsdoc_token_isType (_tmp24_, JSDOC_TOKEN_TYPE_WHIT);
+#line 156 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       if (_tmp25_) {
+#line 156 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _tmp23_ = TRUE;
+#line 889 "TokenStream.c"
+                       } else {
+                               JSDOCToken* _tmp26_;
+                               gboolean _tmp27_;
+#line 156 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _tmp26_ = tok;
+#line 156 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _tmp27_ = jsdoc_token_isType (_tmp26_, JSDOC_TOKEN_TYPE_COMM);
+#line 156 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _tmp23_ = _tmp27_;
+#line 899 "TokenStream.c"
+                       }
+#line 156 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       _tmp20_ = _tmp23_;
+#line 903 "TokenStream.c"
+               } else {
+#line 155 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       _tmp20_ = FALSE;
+#line 907 "TokenStream.c"
+               }
+#line 155 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               if (_tmp20_) {
+#line 911 "TokenStream.c"
+                       gint _tmp28_;
+                       gint _tmp29_;
+#line 158 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       _tmp28_ = i;
+#line 158 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       _tmp29_ = step;
+#line 158 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       i = _tmp28_ + _tmp29_;
+#line 159 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       _g_object_unref0 (tok);
+#line 159 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       continue;
+#line 924 "TokenStream.c"
+               }
+#line 162 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp30_ = count;
+#line 162 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp31_ = n;
+#line 162 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               if (_tmp30_ == _tmp31_) {
+#line 932 "TokenStream.c"
+                       GeeArrayList* _tmp32_;
+                       gint _tmp33_;
+                       gpointer _tmp34_;
+#line 163 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       _tmp32_ = self->tokens;
+#line 163 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       _tmp33_ = i;
+#line 163 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       _tmp34_ = gee_abstract_list_get ((GeeAbstractList*) _tmp32_, _tmp33_);
+#line 163 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       result = (JSDOCToken*) _tmp34_;
+#line 163 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       _g_object_unref0 (tok);
+#line 163 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       return result;
+#line 948 "TokenStream.c"
+               }
+#line 165 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp35_ = count;
+#line 165 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp36_ = step;
+#line 165 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               count = _tmp35_ + _tmp36_;
+#line 166 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp37_ = i;
+#line 166 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp38_ = step;
+#line 166 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               i = _tmp37_ + _tmp38_;
+#line 132 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _g_object_unref0 (tok);
+#line 964 "TokenStream.c"
+       }
+}
+
+
+/**
+ *  @return {Token|null}
+ * next token (with white space)
+ */
+JSDOCToken* jsdoc_token_stream_next (JSDOCTokenStream* self) {
+       JSDOCToken* result = NULL;
+       gint _tmp0_;
+       GeeArrayList* _tmp1_;
+       gint _tmp2_;
+       gint _tmp3_;
+       gint _tmp4_;
+       GeeArrayList* _tmp5_;
+       gint _tmp6_;
+       gpointer _tmp7_;
+#line 179 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 185 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       _tmp0_ = self->cursor;
+#line 185 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       _tmp1_ = self->tokens;
+#line 185 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       _tmp2_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp1_);
+#line 185 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       _tmp3_ = _tmp2_;
+#line 185 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       if ((_tmp0_ + 1) >= _tmp3_) {
+#line 186 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               result = NULL;
+#line 186 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               return result;
+#line 999 "TokenStream.c"
+       }
+#line 188 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       _tmp4_ = self->cursor;
+#line 188 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       self->cursor = _tmp4_ + 1;
+#line 189 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       _tmp5_ = self->tokens;
+#line 189 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       _tmp6_ = self->cursor;
+#line 189 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       _tmp7_ = gee_abstract_list_get ((GeeAbstractList*) _tmp5_, _tmp6_);
+#line 189 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       result = (JSDOCToken*) _tmp7_;
+#line 189 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       return result;
+#line 1015 "TokenStream.c"
+}
+
+
+GeeArrayList* jsdoc_token_stream_nextM (JSDOCTokenStream* self, gint howMany, GError** error) {
+       GeeArrayList* result = NULL;
+       gint _tmp0_;
+       GeeArrayList* got = NULL;
+       GeeArrayList* _tmp3_;
+       gint _tmp19_;
+       gint _tmp20_;
+       GError * _inner_error_ = NULL;
+#line 193 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 196 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       _tmp0_ = howMany;
+#line 196 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       if (_tmp0_ < 2) {
+#line 1033 "TokenStream.c"
+               gint _tmp1_;
+               GError* _tmp2_;
+#line 197 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp1_ = howMany;
+#line 197 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp2_ = g_error_new (JSDOC_TOKEN_STREAM_ERROR, JSDOC_TOKEN_STREAM_ERROR_ArgumentError, "nextM called with wrong number : %d", _tmp1_);
+#line 197 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _inner_error_ = _tmp2_;
+#line 197 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               if (_inner_error_->domain == JSDOC_TOKEN_STREAM_ERROR) {
+#line 197 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       g_propagate_error (error, _inner_error_);
+#line 197 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       return NULL;
+#line 1048 "TokenStream.c"
+               } else {
+#line 197 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       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);
+#line 197 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       g_clear_error (&_inner_error_);
+#line 197 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       return NULL;
+#line 1056 "TokenStream.c"
+               }
+       }
+#line 199 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       _tmp3_ = gee_array_list_new (JSDOC_TYPE_TOKEN, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL);
+#line 199 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       got = _tmp3_;
+#line 1063 "TokenStream.c"
+       {
+               gint i = 0;
+#line 201 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               i = 1;
+#line 1068 "TokenStream.c"
+               {
+                       gboolean _tmp4_ = FALSE;
+#line 201 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       _tmp4_ = TRUE;
+#line 201 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       while (TRUE) {
+#line 1075 "TokenStream.c"
+                               gint _tmp6_;
+                               gint _tmp7_;
+                               gint _tmp8_;
+                               gint _tmp9_;
+                               GeeArrayList* _tmp10_;
+                               gint _tmp11_;
+                               gint _tmp12_;
+                               GeeArrayList* _tmp13_;
+                               GeeArrayList* _tmp14_;
+                               gint _tmp15_;
+                               gint _tmp16_;
+                               gpointer _tmp17_;
+                               JSDOCToken* _tmp18_;
+#line 201 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               if (!_tmp4_) {
+#line 1091 "TokenStream.c"
+                                       gint _tmp5_;
+#line 201 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                                       _tmp5_ = i;
+#line 201 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                                       i = _tmp5_ + 1;
+#line 1097 "TokenStream.c"
+                               }
+#line 201 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _tmp4_ = FALSE;
+#line 201 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _tmp6_ = i;
+#line 201 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _tmp7_ = howMany;
+#line 201 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               if (!(_tmp6_ <= _tmp7_)) {
+#line 201 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                                       break;
+#line 1109 "TokenStream.c"
+                               }
+#line 202 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _tmp8_ = self->cursor;
+#line 202 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _tmp9_ = i;
+#line 202 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _tmp10_ = self->tokens;
+#line 202 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _tmp11_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp10_);
+#line 202 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _tmp12_ = _tmp11_;
+#line 202 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               if ((_tmp8_ + _tmp9_) >= _tmp12_) {
+#line 203 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                                       result = NULL;
+#line 203 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                                       _g_object_unref0 (got);
+#line 203 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                                       return result;
+#line 1129 "TokenStream.c"
+                               }
+#line 205 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _tmp13_ = got;
+#line 205 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _tmp14_ = self->tokens;
+#line 205 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _tmp15_ = self->cursor;
+#line 205 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _tmp16_ = i;
+#line 205 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _tmp17_ = gee_abstract_list_get ((GeeAbstractList*) _tmp14_, _tmp15_ + _tmp16_);
+#line 205 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _tmp18_ = (JSDOCToken*) _tmp17_;
+#line 205 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               gee_abstract_collection_add ((GeeAbstractCollection*) _tmp13_, _tmp18_);
+#line 205 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _g_object_unref0 (_tmp18_);
+#line 1147 "TokenStream.c"
+                       }
+               }
+       }
+#line 207 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       _tmp19_ = self->cursor;
+#line 207 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       _tmp20_ = howMany;
+#line 207 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       self->cursor = _tmp19_ + _tmp20_;
+#line 209 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       result = got;
+#line 209 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       return result;
+#line 1161 "TokenStream.c"
+}
+
+
+JSDOCToken* jsdoc_token_stream_nextTok (JSDOCTokenStream* self) {
+       JSDOCToken* result = NULL;
+       JSDOCToken* _tmp0_;
+#line 217 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 218 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       _tmp0_ = jsdoc_token_stream_nextNonSpace (self);
+#line 218 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       result = _tmp0_;
+#line 218 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       return result;
+#line 1176 "TokenStream.c"
+}
+
+
+JSDOCToken* jsdoc_token_stream_nextNonSpace (JSDOCTokenStream* self) {
+       JSDOCToken* result = NULL;
+#line 221 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 224 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       while (TRUE) {
+#line 1186 "TokenStream.c"
+               JSDOCToken* tok = NULL;
+               JSDOCToken* _tmp0_;
+               JSDOCToken* _tmp1_;
+               gboolean _tmp2_ = FALSE;
+               JSDOCToken* _tmp3_;
+               gboolean _tmp4_;
+#line 225 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp0_ = jsdoc_token_stream_next (self);
+#line 225 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               tok = _tmp0_;
+#line 226 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp1_ = tok;
+#line 226 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               if (_tmp1_ == NULL) {
+#line 227 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       result = NULL;
+#line 227 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       _g_object_unref0 (tok);
+#line 227 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       return result;
+#line 1207 "TokenStream.c"
+               }
+#line 229 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp3_ = tok;
+#line 229 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp4_ = jsdoc_token_isType (_tmp3_, JSDOC_TOKEN_TYPE_WHIT);
+#line 229 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               if (_tmp4_) {
+#line 229 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       _tmp2_ = TRUE;
+#line 1217 "TokenStream.c"
+               } else {
+                       JSDOCToken* _tmp5_;
+                       gboolean _tmp6_;
+#line 229 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       _tmp5_ = tok;
+#line 229 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       _tmp6_ = jsdoc_token_isType (_tmp5_, JSDOC_TOKEN_TYPE_COMM);
+#line 229 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       _tmp2_ = _tmp6_;
+#line 1227 "TokenStream.c"
+               }
+#line 229 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               if (_tmp2_) {
+#line 230 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       _g_object_unref0 (tok);
+#line 230 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       continue;
+#line 1235 "TokenStream.c"
+               }
+#line 232 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               result = tok;
+#line 232 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               return result;
+#line 1241 "TokenStream.c"
+       }
+}
+
+
+/**
+ *  balance 
+ * -- returns all the tokens betweeen and including stop token eg.. from {... to  }
+ * @param start {String}  token name or data (eg. '{'
+ * @param stop {String} (Optional) token name or data (eg. '}'
+ */
+GeeArrayList* jsdoc_token_stream_balance (JSDOCTokenStream* self, JSDOCTokenName in_start, GError** error) {
+       GeeArrayList* result = NULL;
+       JSDOCTokenName start = 0;
+       JSDOCTokenName _tmp0_;
+       JSDOCTokenName* stop = NULL;
+       JSDOCLang_Class* _tmp1_;
+       JSDOCTokenName _tmp2_;
+       JSDOCTokenName* _tmp3_;
+       JSDOCTokenName* _tmp4_;
+       gint depth = 0;
+       GeeArrayList* got = NULL;
+       GeeArrayList* _tmp8_;
+       gboolean started = FALSE;
+       JSDOCToken* token = NULL;
+       GeeArrayList* _tmp28_;
+       GError * _inner_error_ = NULL;
+#line 250 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 257 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       _tmp0_ = in_start;
+#line 257 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       start = _tmp0_;
+#line 258 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       _tmp1_ = jsdoc_Lang;
+#line 258 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       _tmp2_ = start;
+#line 258 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       _tmp3_ = jsdoc_langclass_matching (_tmp1_, _tmp2_, &_inner_error_);
+#line 258 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       stop = _tmp3_;
+#line 258 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 258 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               if (_inner_error_->domain == JSDOC_TOKEN_STREAM_ERROR) {
+#line 258 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       g_propagate_error (error, _inner_error_);
+#line 258 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       return NULL;
+#line 1290 "TokenStream.c"
+               } else {
+#line 258 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       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);
+#line 258 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       g_clear_error (&_inner_error_);
+#line 258 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       return NULL;
+#line 1298 "TokenStream.c"
+               }
+       }
+#line 259 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       _tmp4_ = stop;
+#line 259 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       if (_tmp4_ == NULL) {
+#line 1305 "TokenStream.c"
+               JSDOCTokenName _tmp5_;
+               GEnumValue* _tmp6_;
+               GError* _tmp7_;
+#line 260 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp5_ = start;
+#line 260 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp6_ = g_enum_get_value (g_type_class_ref (JSDOC_TYPE_TOKEN_NAME), _tmp5_);
+#line 260 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp7_ = g_error_new (JSDOC_TOKEN_STREAM_ERROR, JSDOC_TOKEN_STREAM_ERROR_ArgumentError, "balance called with invalid start/stop : %s", (_tmp6_ != NULL) ? _tmp6_->value_name : NULL);
+#line 260 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _inner_error_ = _tmp7_;
+#line 260 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               if (_inner_error_->domain == JSDOC_TOKEN_STREAM_ERROR) {
+#line 260 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       g_propagate_error (error, _inner_error_);
+#line 260 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       _g_free0 (stop);
+#line 260 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       return NULL;
+#line 1325 "TokenStream.c"
+               } else {
+#line 260 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       _g_free0 (stop);
+#line 260 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       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);
+#line 260 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       g_clear_error (&_inner_error_);
+#line 260 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       return NULL;
+#line 1335 "TokenStream.c"
+               }
+       }
+#line 264 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       depth = 0;
+#line 265 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       _tmp8_ = gee_array_list_new (JSDOC_TYPE_TOKEN, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL);
+#line 265 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       got = _tmp8_;
+#line 266 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       started = FALSE;
+#line 271 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       while (TRUE) {
+#line 1348 "TokenStream.c"
+               JSDOCToken* _tmp9_;
+               JSDOCToken* _tmp10_;
+               JSDOCToken* _tmp11_;
+               JSDOCTokenName _tmp12_;
+               gboolean _tmp13_;
+               gboolean _tmp15_;
+               JSDOCToken* _tmp18_;
+               JSDOCTokenName* _tmp19_;
+               gboolean _tmp20_;
+               JSDOCToken* _tmp25_;
+               JSDOCToken* _tmp26_;
+               gboolean _tmp27_;
+#line 271 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp9_ = jsdoc_token_stream_lookAny (self, 1);
+#line 271 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _g_object_unref0 (token);
+#line 271 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               token = _tmp9_;
+#line 271 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp10_ = token;
+#line 271 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               if (!(NULL != _tmp10_)) {
+#line 271 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       break;
+#line 1373 "TokenStream.c"
+               }
+#line 273 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp11_ = token;
+#line 273 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp12_ = start;
+#line 273 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp13_ = jsdoc_token_isName (_tmp11_, _tmp12_);
+#line 273 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               if (_tmp13_) {
+#line 1383 "TokenStream.c"
+                       gint _tmp14_;
+#line 275 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       _tmp14_ = depth;
+#line 275 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       depth = _tmp14_ + 1;
+#line 276 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       started = TRUE;
+#line 1391 "TokenStream.c"
+               }
+#line 279 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp15_ = started;
+#line 279 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               if (_tmp15_) {
+#line 1397 "TokenStream.c"
+                       GeeArrayList* _tmp16_;
+                       JSDOCToken* _tmp17_;
+#line 280 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       _tmp16_ = got;
+#line 280 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       _tmp17_ = token;
+#line 280 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       gee_abstract_collection_add ((GeeAbstractCollection*) _tmp16_, _tmp17_);
+#line 1406 "TokenStream.c"
+               }
+#line 283 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp18_ = token;
+#line 283 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp19_ = stop;
+#line 283 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp20_ = jsdoc_token_isName (_tmp18_, *_tmp19_);
+#line 283 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               if (_tmp20_) {
+#line 1416 "TokenStream.c"
+                       gint _tmp21_;
+                       gint _tmp22_;
+#line 284 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       _tmp21_ = depth;
+#line 284 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       depth = _tmp21_ - 1;
+#line 287 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       _tmp22_ = depth;
+#line 287 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       if (_tmp22_ < 1) {
+#line 1427 "TokenStream.c"
+                               JSDOCToken* _tmp23_;
+                               JSDOCToken* _tmp24_;
+#line 288 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _tmp23_ = jsdoc_token_stream_next (self);
+#line 288 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _tmp24_ = _tmp23_;
+#line 288 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _g_object_unref0 (_tmp24_);
+#line 290 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               result = got;
+#line 290 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _g_object_unref0 (token);
+#line 290 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _g_free0 (stop);
+#line 290 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               return result;
+#line 1444 "TokenStream.c"
+                       }
+               }
+#line 294 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp25_ = jsdoc_token_stream_next (self);
+#line 294 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp26_ = _tmp25_;
+#line 294 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp27_ = NULL == _tmp26_;
+#line 294 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _g_object_unref0 (_tmp26_);
+#line 294 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               if (_tmp27_) {
+#line 295 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       break;
+#line 1459 "TokenStream.c"
+               }
+       }
+#line 298 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       _tmp28_ = gee_array_list_new (JSDOC_TYPE_TOKEN, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL);
+#line 298 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       result = _tmp28_;
+#line 298 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       _g_object_unref0 (token);
+#line 298 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       _g_object_unref0 (got);
+#line 298 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       _g_free0 (stop);
+#line 298 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       return result;
+#line 1474 "TokenStream.c"
+}
+
+
+JSDOCToken* jsdoc_token_stream_getMatchingTokenEnd (JSDOCTokenStream* self, JSDOCTokenName end) {
+       JSDOCToken* result = NULL;
+       JSDOCTokenName* _tmp0_ = NULL;
+       JSDOCLang_Class* _tmp1_;
+       JSDOCTokenName _tmp2_;
+       JSDOCTokenName* _tmp3_;
+       JSDOCToken* _tmp4_;
+       GError * _inner_error_ = NULL;
+#line 303 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 305 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       _tmp1_ = jsdoc_Lang;
+#line 305 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       _tmp2_ = end;
+#line 305 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       _tmp3_ = jsdoc_langclass_matching (_tmp1_, _tmp2_, &_inner_error_);
+#line 305 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       _tmp0_ = _tmp3_;
+#line 305 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 305 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               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);
+#line 305 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               g_clear_error (&_inner_error_);
+#line 305 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               return NULL;
+#line 1504 "TokenStream.c"
+       }
+#line 305 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       _tmp4_ = jsdoc_token_stream_getMatchingToken (self, *_tmp0_, 1);
+#line 305 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       result = _tmp4_;
+#line 305 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       _g_free0 (_tmp0_);
+#line 305 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       return result;
+#line 1514 "TokenStream.c"
+}
+
+
+JSDOCToken* jsdoc_token_stream_getMatchingToken (JSDOCTokenStream* self, JSDOCTokenName start, gint depth) {
+       JSDOCToken* result = NULL;
+       gint cursor = 0;
+       gint _tmp0_;
+       JSDOCTokenName* stop = NULL;
+       JSDOCLang_Class* _tmp1_;
+       JSDOCTokenName _tmp2_;
+       JSDOCTokenName* _tmp3_;
+       JSDOCToken* token = NULL;
+       GError * _inner_error_ = NULL;
+#line 308 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 311 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       _tmp0_ = self->cursor;
+#line 311 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       cursor = _tmp0_;
+#line 314 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       _tmp1_ = jsdoc_Lang;
+#line 314 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       _tmp2_ = start;
+#line 314 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       _tmp3_ = jsdoc_langclass_matching (_tmp1_, _tmp2_, &_inner_error_);
+#line 314 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       stop = _tmp3_;
+#line 314 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 314 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               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);
+#line 314 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               g_clear_error (&_inner_error_);
+#line 314 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               return NULL;
+#line 1550 "TokenStream.c"
+       }
+#line 317 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       while (TRUE) {
+#line 1554 "TokenStream.c"
+               GeeArrayList* _tmp4_;
+               gint _tmp5_;
+               gpointer _tmp6_;
+               JSDOCToken* _tmp7_;
+               JSDOCToken* _tmp8_;
+               JSDOCTokenName _tmp9_;
+               gboolean _tmp10_;
+               gboolean _tmp12_ = FALSE;
+               JSDOCToken* _tmp13_;
+               JSDOCTokenName* _tmp14_;
+               gboolean _tmp15_;
+               gint _tmp22_;
+#line 317 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp4_ = self->tokens;
+#line 317 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp5_ = cursor;
+#line 317 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp6_ = gee_abstract_list_get ((GeeAbstractList*) _tmp4_, _tmp5_);
+#line 317 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _g_object_unref0 (token);
+#line 317 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               token = (JSDOCToken*) _tmp6_;
+#line 317 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp7_ = token;
+#line 317 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               if (!(NULL != _tmp7_)) {
+#line 317 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       break;
+#line 1583 "TokenStream.c"
+               }
+#line 318 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp8_ = token;
+#line 318 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp9_ = start;
+#line 318 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp10_ = jsdoc_token_isName (_tmp8_, _tmp9_);
+#line 318 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               if (_tmp10_) {
+#line 1593 "TokenStream.c"
+                       gint _tmp11_;
+#line 319 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       _tmp11_ = depth;
+#line 319 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       depth = _tmp11_ + 1;
+#line 1599 "TokenStream.c"
+               }
+#line 322 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp13_ = token;
+#line 322 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp14_ = stop;
+#line 322 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp15_ = jsdoc_token_isName (_tmp13_, *_tmp14_);
+#line 322 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               if (_tmp15_) {
+#line 1609 "TokenStream.c"
+                       gint _tmp16_;
+#line 322 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       _tmp16_ = cursor;
+#line 322 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       _tmp12_ = _tmp16_ != 0;
+#line 1615 "TokenStream.c"
+               } else {
+#line 322 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       _tmp12_ = FALSE;
+#line 1619 "TokenStream.c"
+               }
+#line 322 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               if (_tmp12_) {
+#line 1623 "TokenStream.c"
+                       gint _tmp17_;
+                       gint _tmp18_;
+#line 323 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       _tmp17_ = depth;
+#line 323 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       depth = _tmp17_ - 1;
+#line 324 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       _tmp18_ = depth;
+#line 324 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       if (_tmp18_ == 0) {
+#line 1634 "TokenStream.c"
+                               GeeArrayList* _tmp19_;
+                               gint _tmp20_;
+                               gpointer _tmp21_;
+#line 325 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _tmp19_ = self->tokens;
+#line 325 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _tmp20_ = cursor;
+#line 325 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _tmp21_ = gee_abstract_list_get ((GeeAbstractList*) _tmp19_, _tmp20_);
+#line 325 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               result = (JSDOCToken*) _tmp21_;
+#line 325 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _g_object_unref0 (token);
+#line 325 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _g_free0 (stop);
+#line 325 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               return result;
+#line 1652 "TokenStream.c"
+                       }
+               }
+#line 328 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp22_ = cursor;
+#line 328 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               cursor = _tmp22_ + 1;
+#line 1659 "TokenStream.c"
+       }
+#line 330 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       result = NULL;
+#line 330 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       _g_object_unref0 (token);
+#line 330 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       _g_free0 (stop);
+#line 330 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       return result;
+#line 1669 "TokenStream.c"
+}
+
+
+GeeArrayList* jsdoc_token_stream_remaining (JSDOCTokenStream* self) {
+       GeeArrayList* result = NULL;
+       GeeArrayList* ret = NULL;
+       GeeArrayList* _tmp0_;
+#line 339 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 340 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       _tmp0_ = gee_array_list_new (JSDOC_TYPE_TOKEN, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL);
+#line 340 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       ret = _tmp0_;
+#line 341 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       while (TRUE) {
+#line 1685 "TokenStream.c"
+               JSDOCToken* tok = NULL;
+               JSDOCToken* _tmp1_;
+               JSDOCToken* _tmp2_;
+               gboolean _tmp3_;
+               JSDOCToken* nt = NULL;
+               JSDOCToken* _tmp4_;
+               JSDOCToken* _tmp5_;
+#line 342 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp1_ = jsdoc_token_stream_look (self, 1, TRUE);
+#line 342 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               tok = _tmp1_;
+#line 343 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp2_ = tok;
+#line 343 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp3_ = jsdoc_token_isType (_tmp2_, JSDOC_TOKEN_TYPE_VOID);
+#line 343 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               if (_tmp3_) {
+#line 344 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       result = ret;
+#line 344 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       _g_object_unref0 (tok);
+#line 344 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       return result;
+#line 1709 "TokenStream.c"
+               }
+#line 346 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp4_ = jsdoc_token_stream_next (self);
+#line 346 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               nt = _tmp4_;
+#line 347 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp5_ = nt;
+#line 347 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               if (_tmp5_ != NULL) {
+#line 1719 "TokenStream.c"
+                       GeeArrayList* _tmp6_;
+                       JSDOCToken* _tmp7_;
+#line 348 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       _tmp6_ = ret;
+#line 348 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       _tmp7_ = nt;
+#line 348 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       gee_abstract_collection_add ((GeeAbstractCollection*) _tmp6_, _tmp7_);
+#line 1728 "TokenStream.c"
+               }
+#line 341 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _g_object_unref0 (nt);
+#line 341 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _g_object_unref0 (tok);
+#line 1734 "TokenStream.c"
+       }
+#line 339 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       _g_object_unref0 (ret);
+#line 1738 "TokenStream.c"
+}
+
+
+void jsdoc_token_stream_printRange (JSDOCTokenStream* self, gint start, gint end) {
+#line 354 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       g_return_if_fail (self != NULL);
+#line 1745 "TokenStream.c"
+       {
+               gint i = 0;
+               gint _tmp0_;
+#line 356 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp0_ = start;
+#line 356 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               i = _tmp0_;
+#line 1753 "TokenStream.c"
+               {
+                       gboolean _tmp1_ = FALSE;
+#line 356 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       _tmp1_ = TRUE;
+#line 356 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       while (TRUE) {
+#line 1760 "TokenStream.c"
+                               gint _tmp3_;
+                               gint _tmp4_;
+                               GeeArrayList* _tmp5_;
+                               gint _tmp6_;
+                               gpointer _tmp7_;
+                               JSDOCToken* _tmp8_;
+                               gchar* _tmp9_;
+                               gchar* _tmp10_;
+#line 356 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               if (!_tmp1_) {
+#line 1771 "TokenStream.c"
+                                       gint _tmp2_;
+#line 356 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                                       _tmp2_ = i;
+#line 356 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                                       i = _tmp2_ + 1;
+#line 1777 "TokenStream.c"
+                               }
+#line 356 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _tmp1_ = FALSE;
+#line 356 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _tmp3_ = i;
+#line 356 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _tmp4_ = end;
+#line 356 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               if (!(_tmp3_ < (_tmp4_ + 1))) {
+#line 356 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                                       break;
+#line 1789 "TokenStream.c"
+                               }
+#line 357 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _tmp5_ = self->tokens;
+#line 357 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _tmp6_ = i;
+#line 357 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _tmp7_ = gee_abstract_list_get ((GeeAbstractList*) _tmp5_, _tmp6_);
+#line 357 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _tmp8_ = (JSDOCToken*) _tmp7_;
+#line 357 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _tmp9_ = jsdoc_token_asString (_tmp8_);
+#line 357 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _tmp10_ = _tmp9_;
+#line 357 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               g_print ("%s", _tmp10_);
+#line 357 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _g_free0 (_tmp10_);
+#line 357 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _g_object_unref0 (_tmp8_);
+#line 1809 "TokenStream.c"
+                       }
+               }
+       }
+}
+
+
+void jsdoc_token_stream_dump (JSDOCTokenStream* self, gint start, gint end) {
+       gint _tmp0_;
+       gint _tmp1_;
+       gint _tmp2_;
+       GeeArrayList* _tmp3_;
+       gint _tmp4_;
+       gint _tmp5_;
+       gint _tmp6_;
+       gchar* outs = NULL;
+       gchar* _tmp7_;
+       const gchar* _tmp32_;
+#line 371 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       g_return_if_fail (self != NULL);
+#line 373 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       _tmp0_ = start;
+#line 373 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       _tmp1_ = MAX (_tmp0_, 0);
+#line 373 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       start = _tmp1_;
+#line 374 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       _tmp2_ = end;
+#line 374 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       _tmp3_ = self->tokens;
+#line 374 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       _tmp4_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp3_);
+#line 374 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       _tmp5_ = _tmp4_;
+#line 374 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       _tmp6_ = MIN (_tmp2_, _tmp5_);
+#line 374 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       end = _tmp6_;
+#line 375 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       _tmp7_ = g_strdup ("");
+#line 375 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       outs = _tmp7_;
+#line 1851 "TokenStream.c"
+       {
+               gint i = 0;
+               gint _tmp8_;
+#line 376 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               _tmp8_ = start;
+#line 376 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               i = _tmp8_;
+#line 1859 "TokenStream.c"
+               {
+                       gboolean _tmp9_ = FALSE;
+#line 376 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       _tmp9_ = TRUE;
+#line 376 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       while (TRUE) {
+#line 1866 "TokenStream.c"
+                               gint _tmp11_;
+                               gint _tmp12_;
+                               const gchar* _tmp13_ = NULL;
+                               GeeArrayList* _tmp14_;
+                               gint _tmp15_;
+                               gpointer _tmp16_;
+                               JSDOCToken* _tmp17_;
+                               const gchar* _tmp18_;
+                               gboolean _tmp19_;
+                               const gchar* _tmp30_;
+                               gchar* _tmp31_;
+#line 376 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               if (!_tmp9_) {
+#line 1880 "TokenStream.c"
+                                       gint _tmp10_;
+#line 376 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                                       _tmp10_ = i;
+#line 376 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                                       i = _tmp10_ + 1;
+#line 1886 "TokenStream.c"
+                               }
+#line 376 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _tmp9_ = FALSE;
+#line 376 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _tmp11_ = i;
+#line 376 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _tmp12_ = end;
+#line 376 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               if (!(_tmp11_ < _tmp12_)) {
+#line 376 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                                       break;
+#line 1898 "TokenStream.c"
+                               }
+#line 378 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _tmp14_ = self->tokens;
+#line 378 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _tmp15_ = i;
+#line 378 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _tmp16_ = gee_abstract_list_get ((GeeAbstractList*) _tmp14_, _tmp15_);
+#line 378 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _tmp17_ = (JSDOCToken*) _tmp16_;
+#line 378 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _tmp18_ = _tmp17_->outData;
+#line 378 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _tmp19_ = g_strcmp0 (_tmp18_, "") == 0;
+#line 378 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _g_object_unref0 (_tmp17_);
+#line 378 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               if (_tmp19_) {
+#line 1916 "TokenStream.c"
+                                       GeeArrayList* _tmp20_;
+                                       gint _tmp21_;
+                                       gpointer _tmp22_;
+                                       JSDOCToken* _tmp23_;
+                                       const gchar* _tmp24_;
+#line 378 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                                       _tmp20_ = self->tokens;
+#line 378 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                                       _tmp21_ = i;
+#line 378 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                                       _tmp22_ = gee_abstract_list_get ((GeeAbstractList*) _tmp20_, _tmp21_);
+#line 378 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                                       _tmp23_ = (JSDOCToken*) _tmp22_;
+#line 378 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                                       _tmp24_ = _tmp23_->data;
+#line 378 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                                       _tmp13_ = _tmp24_;
+#line 378 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                                       _g_object_unref0 (_tmp23_);
+#line 1936 "TokenStream.c"
+                               } else {
+                                       GeeArrayList* _tmp25_;
+                                       gint _tmp26_;
+                                       gpointer _tmp27_;
+                                       JSDOCToken* _tmp28_;
+                                       const gchar* _tmp29_;
+#line 378 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                                       _tmp25_ = self->tokens;
+#line 378 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                                       _tmp26_ = i;
+#line 378 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                                       _tmp27_ = gee_abstract_list_get ((GeeAbstractList*) _tmp25_, _tmp26_);
+#line 378 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                                       _tmp28_ = (JSDOCToken*) _tmp27_;
+#line 378 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                                       _tmp29_ = _tmp28_->outData;
+#line 378 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                                       _tmp13_ = _tmp29_;
+#line 378 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                                       _g_object_unref0 (_tmp28_);
+#line 1957 "TokenStream.c"
+                               }
+#line 378 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _tmp30_ = outs;
+#line 378 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _tmp31_ = g_strconcat (_tmp30_, _tmp13_, NULL);
+#line 378 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _g_free0 (outs);
+#line 378 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               outs = _tmp31_;
+#line 1967 "TokenStream.c"
+                       }
+               }
+       }
+#line 380 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       _tmp32_ = outs;
+#line 380 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       g_print ("%s", _tmp32_);
+#line 371 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       _g_free0 (outs);
+#line 1977 "TokenStream.c"
+}
+
+
+void jsdoc_token_stream_dumpAll (JSDOCTokenStream* self, const gchar* indent) {
+#line 383 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       g_return_if_fail (self != NULL);
+#line 383 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       g_return_if_fail (indent != NULL);
+#line 1986 "TokenStream.c"
+       {
+               gint i = 0;
+#line 385 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               i = 0;
+#line 1991 "TokenStream.c"
+               {
+                       gboolean _tmp0_ = FALSE;
+#line 385 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       _tmp0_ = TRUE;
+#line 385 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       while (TRUE) {
+#line 1998 "TokenStream.c"
+                               gint _tmp2_;
+                               GeeArrayList* _tmp3_;
+                               gint _tmp4_;
+                               gint _tmp5_;
+                               GeeArrayList* _tmp6_;
+                               gint _tmp7_;
+                               gpointer _tmp8_;
+                               JSDOCToken* _tmp9_;
+#line 385 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               if (!_tmp0_) {
+#line 2009 "TokenStream.c"
+                                       gint _tmp1_;
+#line 385 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                                       _tmp1_ = i;
+#line 385 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                                       i = _tmp1_ + 1;
+#line 2015 "TokenStream.c"
+                               }
+#line 385 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _tmp0_ = FALSE;
+#line 385 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _tmp2_ = i;
+#line 385 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _tmp3_ = self->tokens;
+#line 385 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _tmp4_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp3_);
+#line 385 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _tmp5_ = _tmp4_;
+#line 385 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               if (!(_tmp2_ < _tmp5_)) {
+#line 385 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                                       break;
+#line 2031 "TokenStream.c"
+                               }
+#line 387 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _tmp6_ = self->tokens;
+#line 387 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _tmp7_ = i;
+#line 387 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _tmp8_ = gee_abstract_list_get ((GeeAbstractList*) _tmp6_, _tmp7_);
+#line 387 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _tmp9_ = (JSDOCToken*) _tmp8_;
+#line 387 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               jsdoc_token_dump (_tmp9_, "");
+#line 387 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _g_object_unref0 (_tmp9_);
+#line 2045 "TokenStream.c"
+                       }
+               }
+       }
+}
+
+
+void jsdoc_token_stream_dumpAllFlat (JSDOCTokenStream* self) {
+#line 391 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       g_return_if_fail (self != NULL);
+#line 2055 "TokenStream.c"
+       {
+               gint i = 0;
+#line 393 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+               i = 0;
+#line 2060 "TokenStream.c"
+               {
+                       gboolean _tmp0_ = FALSE;
+#line 393 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       _tmp0_ = TRUE;
+#line 393 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                       while (TRUE) {
+#line 2067 "TokenStream.c"
+                               gint _tmp2_;
+                               GeeArrayList* _tmp3_;
+                               gint _tmp4_;
+                               gint _tmp5_;
+                               gint _tmp6_;
+                               GeeArrayList* _tmp7_;
+                               gint _tmp8_;
+                               gpointer _tmp9_;
+                               JSDOCToken* _tmp10_;
+                               gchar* _tmp11_;
+                               gchar* _tmp12_;
+#line 393 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               if (!_tmp0_) {
+#line 2081 "TokenStream.c"
+                                       gint _tmp1_;
+#line 393 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                                       _tmp1_ = i;
+#line 393 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                                       i = _tmp1_ + 1;
+#line 2087 "TokenStream.c"
+                               }
+#line 393 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _tmp0_ = FALSE;
+#line 393 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _tmp2_ = i;
+#line 393 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _tmp3_ = self->tokens;
+#line 393 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _tmp4_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp3_);
+#line 393 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _tmp5_ = _tmp4_;
+#line 393 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               if (!(_tmp2_ < _tmp5_)) {
+#line 393 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                                       break;
+#line 2103 "TokenStream.c"
+                               }
+#line 395 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _tmp6_ = i;
+#line 395 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _tmp7_ = self->tokens;
+#line 395 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _tmp8_ = i;
+#line 395 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _tmp9_ = gee_abstract_list_get ((GeeAbstractList*) _tmp7_, _tmp8_);
+#line 395 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _tmp10_ = (JSDOCToken*) _tmp9_;
+#line 395 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _tmp11_ = jsdoc_token_asString (_tmp10_);
+#line 395 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _tmp12_ = _tmp11_;
+#line 395 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               g_print ("%d: %s\n", _tmp6_, _tmp12_);
+#line 395 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _g_free0 (_tmp12_);
+#line 395 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+                               _g_object_unref0 (_tmp10_);
+#line 2125 "TokenStream.c"
+                       }
+               }
+       }
+}
+
+
+static void jsdoc_token_stream_class_init (JSDOCTokenStreamClass * klass) {
+#line 18 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       jsdoc_token_stream_parent_class = g_type_class_peek_parent (klass);
+#line 18 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       G_OBJECT_CLASS (klass)->finalize = jsdoc_token_stream_finalize;
+#line 2137 "TokenStream.c"
+}
+
+
+static void jsdoc_token_stream_instance_init (JSDOCTokenStream * self) {
+}
+
+
+static void jsdoc_token_stream_finalize (GObject * obj) {
+       JSDOCTokenStream * self;
+#line 18 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       self = G_TYPE_CHECK_INSTANCE_CAST (obj, JSDOC_TYPE_TOKEN_STREAM, JSDOCTokenStream);
+#line 21 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       _g_object_unref0 (self->tokens);
+#line 18 "/home/alan/gitlive/roojspacker/src/jsdoc/TokenStream.vala"
+       G_OBJECT_CLASS (jsdoc_token_stream_parent_class)->finalize (obj);
+#line 2153 "TokenStream.c"
+}
+
+
+GType jsdoc_token_stream_get_type (void) {
+       static volatile gsize jsdoc_token_stream_type_id__volatile = 0;
+       if (g_once_init_enter (&jsdoc_token_stream_type_id__volatile)) {
+               static const GTypeInfo g_define_type_info = { sizeof (JSDOCTokenStreamClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) jsdoc_token_stream_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (JSDOCTokenStream), 0, (GInstanceInitFunc) jsdoc_token_stream_instance_init, NULL };
+               GType jsdoc_token_stream_type_id;
+               jsdoc_token_stream_type_id = g_type_register_static (G_TYPE_OBJECT, "JSDOCTokenStream", &g_define_type_info, 0);
+               g_once_init_leave (&jsdoc_token_stream_type_id__volatile, jsdoc_token_stream_type_id);
+       }
+       return jsdoc_token_stream_type_id__volatile;
+}
+
+
+
diff --git a/jsdoc/TokenStream.vala b/jsdoc/TokenStream.vala
new file mode 100644 (file)
index 0000000..f2b3ae8
--- /dev/null
@@ -0,0 +1,402 @@
+
+/**
+ * @class TokenStream
+ * 
+ * BC notes:
+ * 
+ * nextT => nextTok
+ * lookT => lookTok
+ * 
+ */
+
+
+namespace JSDOC {
+
+       public errordomain TokenStreamError {
+            ArgumentError
+    }
+       public class TokenStream : Object
+       {
+       
+               protected Gee.ArrayList<Token> tokens;
+               public int cursor; // where are we in the stream.               
+       
+       
+               public TokenStream(Gee.ArrayList<Token> tokens) {
+                
+                       this.tokens = tokens;
+
+                       this.rewind();
+               }
+               public  Gee.ArrayList<Token> toArray()
+               {
+                       return this.tokens;
+               }
+
+               
+               public void rewind() {
+                   this.cursor = -1;
+               }
+
+               /**
+                   @type JSDOC.Token
+               */
+               public Token? look (int n, bool considerWhitespace)  // depricated... causes all sorts of problems...
+               {
+
+
+                   if (considerWhitespace == true) {
+                   
+                       if (this.cursor+n < 0 || this.cursor+n > (this.tokens.size -1)) {
+                           return new Token("", TokenType.VOID, TokenName.START_OF_STREAM);
+                       }
+                       return this.tokens.get(this.cursor+n);
+                   }
+                   
+
+               var count = 0;
+               var i = this.cursor;
+
+               while (true) {
+                   if (i < 0) {
+                               return new Token("", TokenType.VOID, TokenName.START_OF_STREAM);
+                       }
+                   if (i >= this.tokens.size) {
+                               return new Token("", TokenType.VOID, TokenName.END_OF_STREAM);
+                       }
+
+                   if (i != this.cursor && this.tokens.get(i).isType(TokenType.WHIT)) {
+                               i += (n < 0) ? -1 : 1;
+                       continue;
+                   }
+                   
+                   if (count == n) {
+                       return this.tokens.get(i);
+                   }
+                   count++;
+                   i += (n < 0) ? -1 : 1;
+               }
+
+              // return new Token("", "VOID", "STREAM_ERROR"); // because null isn't an object and caller always expects an object
+                   
+               }
+               // look through token stream, including white space...
+               public Token  lookAny (int n)
+               {
+
+
+                if (this.cursor+n < 0 || this.cursor+n > (this.tokens.size -1)) {
+                   return new Token("", TokenType.VOID, TokenName.START_OF_STREAM);
+               }
+               return this.tokens.get(this.cursor+n);
+           
+           
+  
+               }
+               
+               
+
+               public int lookFor  (string data)
+               {
+                   // non tree version..
+                   var i = this.cursor < 0 ? 0 : this.cursor ;
+                   
+                   while (true) {
+                       if (i >= this.tokens.size) {
+                               return -1;
+                       }
+                       if (this.tokens.get(i).data == data) {
+                           return i;
+                       }
+                       i++;
+                       
+                   }
+                   // should not get here!
+                  // return -1;
+
+               }
+
+
+               /**
+                * look ahead (or back) x number of tokens (which are not comment or whitespace)
+                * ?? used by scope parser & compress white to look back?
+                */
+                public Token lookTok (int n) {
+
+
+                   var step =  (n < 0) ? -1 : 1;
+                   var count = 0;
+                   
+                   var i = this.cursor;
+
+                   while (true) {
+                       // print("lookTok:i=%d n= %d count=%d\n" , i, n, count);
+                       
+                       if (i < 0 &&  n > -1) {
+                               i = 0; 
+                               count += step;
+                               continue;
+                   }
+
+                       
+                   // beyond beginnnig..
+                   if (i < 0 &&  n < 0) {
+                           return  new Token("BEG", TokenType.VOID, TokenName.END_OF_STREAM);
+                       }
+                   
+                       
+                       // beyond end..
+                       if (i >= this.tokens.size) {
+                               return  new Token("END", TokenType.VOID, TokenName.END_OF_STREAM);
+                       }
+                               // print("lookTok:i= %d n= %d : %s\n" , i, n, this.tokens.get(i).asString());
+                               var tok = this.tokens.get(i);
+                               
+                       if (i != this.cursor && ( 
+                                               tok.isType(TokenType.WHIT) || tok.isType(TokenType.COMM)
+                               )) {
+                           i += step;
+                           continue;
+                       }
+                       
+                       if (count == n) {
+                           return this.tokens.get(i);
+                       }
+                       count+=step;
+                       i += step;
+                   }
+               // should never get here..
+               //    return  new Token("", "VOID", "END_OF_STREAM");; // because null isn't an object and caller always expects an object;
+                   
+               }
+               
+               /**
+                *  @return {Token|null}
+                * next token (with white space)
+                */
+                   
+                  
+               public Token? next() {
+               
+               
+                   //if (typeof howMany == "undefined") howMany = 1;
+                   // if (howMany < 1) { return  null;                 }
+                   
+                   if (this.cursor+1 >= this.tokens.size) {
+                       return null;
+               }
+                   this.cursor++;
+                   return this.tokens.get(this.cursor);
+
+               }
+               
+           public Gee.ArrayList<Token>? nextM(int howMany) throws TokenStreamError {
+               
+                   //if (typeof howMany == "undefined") howMany = 1;
+                   if (howMany < 2) { 
+                               throw new  TokenStreamError.ArgumentError("nextM called with wrong number : %d", howMany);
+                   }
+                   var got = new Gee.ArrayList<Token>();
+
+                   for (var i = 1; i <= howMany; i++) {
+                       if (this.cursor+i >= this.tokens.size) {
+                           return null;
+                       }
+                       got.add(this.tokens.get(this.cursor+i));
+                   }
+                   this.cursor += howMany;
+                   
+                       return got;
+               }
+               
+               
+               
+               
+               // what about comments after 'function'...
+               // is this used ???
+               public Token? nextTok() {
+                   return this.nextNonSpace();
+               }
+               
+               public Token? nextNonSpace ()
+               {
+                   
+                   while (true) {
+                       var tok = this.next();
+                       if (tok == null) {
+                           return null;
+                       }
+                       if (tok.isType(TokenType.WHIT) ||  tok.isType(TokenType.COMM)) {
+                           continue;
+                       }
+                       return tok;
+                   }
+               }
+               
+               /**
+                *  balance 
+                * -- returns all the tokens betweeen and including stop token eg.. from {... to  }
+                * @param start {String}  token name or data (eg. '{'
+                * @param stop {String} (Optional) token name or data (eg. '}'
+                */
+                
+                
+               //public Gee.ArrayList<Token> balanceStr (string start) throws TokenStreamError         
+               //{
+               //      return this.balance( Lang.punc(start));
+               //}      
+
+                
+               public Gee.ArrayList<Token> balance (TokenName in_start) throws TokenStreamError 
+               {
+                   
+                   // fixme -- validate start...
+                   
+                   // accepts names or "{" etc..
+                   
+                   var start = in_start;
+                   var stop =  Lang.matching(start); /// validates start..
+                   if (stop == null) {
+                               throw new TokenStreamError.ArgumentError("balance called with invalid start/stop : %s",start.to_string());
+                       }
+                   
+                   //print("START=%s, STOP=%s \n", start.to_string(),stop.to_string());
+                   var depth = 0;
+                   var got = new Gee.ArrayList<Token>();
+                   var started = false;
+                   //Seed.print("START:" + start);
+                   //Seed.print("STOP:" + stop);
+                   Token token;
+                   
+                   while (null != (token = this.lookAny(1))) {
+                               //print("BALANCE: %d d=%d, %s  \n" , this.cursor,  depth, token.asString());
+                       if (token.isName(start)) {
+                     //      Seed.print("balance: START : " + depth + " " + token.data);
+                           depth++;
+                           started = true;
+                       }
+                       
+                       if (started) {
+                           got.add(token);
+                       }
+                       
+                       if (token.isName(stop)) {
+                           depth--;
+                           
+                               //debug("balance (%d): STOP: %s" ,  depth ,  token.data);
+                           if (depth < 1) {
+                                   this.next(); // shift cursor to eat closer...
+                                       //debug("returning got %d", got.size);
+                                       return got;
+                               }
+                               
+                       }
+                       if (null == this.next()) {
+                               break;
+                       }
+                   }
+                   return new Gee.ArrayList<Token>();
+               }
+               // designed to get either end or start..
+               
+               
+               public Token? getMatchingTokenEnd(TokenName end)                
+               {
+                       return this.getMatchingToken(Lang.matching(end), 1);
+               }
+               
+               public Token? getMatchingToken(TokenName start, int depth = 0) 
+               {
+                   var cursor = this.cursor;
+                   
+                   
+                               var stop= Lang.matching(start);
+                       Token token;
+                   
+                   while (null != (token = this.tokens[cursor])) {
+                       if (token.isName(start)) {
+                           depth++;
+                       }
+                       
+                       if (token.isName(stop) && cursor != 0) {
+                           depth--;
+                           if (depth == 0) {
+                                       return this.tokens[cursor];
+                               }
+                       }
+                       cursor++;
+                   }
+                   return null;
+               }
+               /*
+               public Gee.ArrayList<Token> insertAhead(Token token) 
+               {
+                   this.tokens.splice(this.cursor+1, 0, token); // fixme...
+               }
+               */
+                
+               public Gee.ArrayList<Token> remaining() {
+                   var ret = new Gee.ArrayList<Token>();
+                   while (true) {
+                       var tok = this.look(1,true);
+                       if (tok.isType(TokenType.VOID)) {
+                           return ret;
+                       }
+                       var nt = this.next();
+                       if (nt != null) {
+                               ret.add(nt);
+                       }
+                   }
+               }
+                
+                
+               public void printRange(int start,  int end) {
+                       
+                       for(var i = start; i < end +1; i++) {
+                   print(this.tokens.get(i).asString());
+                       } 
+               }
+                
+               /*
+               arrayToString : function(ar) {
+                   console.log(typeof(ar));
+                   var ret = [];
+                   ar.forEach(function(e) {
+                       ret.push(e.data);
+                   })
+                   return ret.join('');
+               },
+               */
+               public void dump(int start, int end)
+               {
+                   start = int.max(start , 0);
+                   end = int.min(end, this.tokens.size);
+                   var  outs = "";;
+                   for (var i =start;i < end; i++) {
+                       
+                       outs += (this.tokens[i].outData == "") ? this.tokens[i].data : this.tokens[i].outData;
+                   }
+                   print(outs);
+               }
+               
+               public void dumpAll(string indent)
+               {
+                   for (var i = 0;i < this.tokens.size; i++) {
+                       
+                        this.tokens[i].dump("");
+                   }
+                   
+               }
+               public void dumpAllFlat()
+               {
+                   for (var i = 0;i < this.tokens.size; i++) {
+                       
+                        print("%d: %s\n", i, this.tokens[i].asString());
+                   }
+                   
+               }
+               
+       }
+}
+
diff --git a/jsdoc/Walker.c b/jsdoc/Walker.c
new file mode 100644 (file)
index 0000000..193873c
--- /dev/null
@@ -0,0 +1,6375 @@
+/* Walker.c generated by valac 0.36.6, the Vala compiler
+ * generated from Walker.vala, do not modify */
+
+/* this walks through the code, and tries to find patterns that match documentable elements..*/
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gee.h>
+#include <stdlib.h>
+#include <string.h>
+
+
+#define JSDOC_TYPE_WALKER_MODE (jsdoc_walker_mode_get_type ())
+
+#define JSDOC_TYPE_WALKER (jsdoc_walker_get_type ())
+#define JSDOC_WALKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_WALKER, JSDOCWalker))
+#define JSDOC_WALKER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_WALKER, JSDOCWalkerClass))
+#define JSDOC_IS_WALKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_WALKER))
+#define JSDOC_IS_WALKER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_WALKER))
+#define JSDOC_WALKER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_WALKER, JSDOCWalkerClass))
+
+typedef struct _JSDOCWalker JSDOCWalker;
+typedef struct _JSDOCWalkerClass JSDOCWalkerClass;
+typedef struct _JSDOCWalkerPrivate JSDOCWalkerPrivate;
+
+#define JSDOC_TYPE_TOKEN_STREAM (jsdoc_token_stream_get_type ())
+#define JSDOC_TOKEN_STREAM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_TOKEN_STREAM, JSDOCTokenStream))
+#define JSDOC_TOKEN_STREAM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_TOKEN_STREAM, JSDOCTokenStreamClass))
+#define JSDOC_IS_TOKEN_STREAM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_TOKEN_STREAM))
+#define JSDOC_IS_TOKEN_STREAM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_TOKEN_STREAM))
+#define JSDOC_TOKEN_STREAM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_TOKEN_STREAM, JSDOCTokenStreamClass))
+
+typedef struct _JSDOCTokenStream JSDOCTokenStream;
+typedef struct _JSDOCTokenStreamClass JSDOCTokenStreamClass;
+
+#define JSDOC_TYPE_SCOPE (jsdoc_scope_get_type ())
+#define JSDOC_SCOPE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_SCOPE, JSDOCScope))
+#define JSDOC_SCOPE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_SCOPE, JSDOCScopeClass))
+#define JSDOC_IS_SCOPE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_SCOPE))
+#define JSDOC_IS_SCOPE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_SCOPE))
+#define JSDOC_SCOPE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_SCOPE, JSDOCScopeClass))
+
+typedef struct _JSDOCScope JSDOCScope;
+typedef struct _JSDOCScopeClass JSDOCScopeClass;
+
+#define JSDOC_TYPE_SYMBOL (jsdoc_symbol_get_type ())
+#define JSDOC_SYMBOL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_SYMBOL, JSDOCSymbol))
+#define JSDOC_SYMBOL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_SYMBOL, JSDOCSymbolClass))
+#define JSDOC_IS_SYMBOL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_SYMBOL))
+#define JSDOC_IS_SYMBOL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_SYMBOL))
+#define JSDOC_SYMBOL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_SYMBOL, JSDOCSymbolClass))
+
+typedef struct _JSDOCSymbol JSDOCSymbol;
+typedef struct _JSDOCSymbolClass JSDOCSymbolClass;
+
+#define JSDOC_TYPE_DOC_COMMENT (jsdoc_doc_comment_get_type ())
+#define JSDOC_DOC_COMMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_DOC_COMMENT, JSDOCDocComment))
+#define JSDOC_DOC_COMMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_DOC_COMMENT, JSDOCDocCommentClass))
+#define JSDOC_IS_DOC_COMMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_DOC_COMMENT))
+#define JSDOC_IS_DOC_COMMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_DOC_COMMENT))
+#define JSDOC_DOC_COMMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_DOC_COMMENT, JSDOCDocCommentClass))
+
+typedef struct _JSDOCDocComment JSDOCDocComment;
+typedef struct _JSDOCDocCommentClass JSDOCDocCommentClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+#define JSDOC_TYPE_TOKEN (jsdoc_token_get_type ())
+#define JSDOC_TOKEN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_TOKEN, JSDOCToken))
+#define JSDOC_TOKEN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_TOKEN, JSDOCTokenClass))
+#define JSDOC_IS_TOKEN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_TOKEN))
+#define JSDOC_IS_TOKEN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_TOKEN))
+#define JSDOC_TOKEN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_TOKEN, JSDOCTokenClass))
+
+typedef struct _JSDOCToken JSDOCToken;
+typedef struct _JSDOCTokenClass JSDOCTokenClass;
+#define _g_free0(var) (var = (g_free (var), NULL))
+typedef struct _JSDOCTokenStreamPrivate JSDOCTokenStreamPrivate;
+
+#define JSDOC_TYPE_TOKEN_TYPE (jsdoc_token_type_get_type ())
+
+#define JSDOC_TYPE_TOKEN_NAME (jsdoc_token_name_get_type ())
+typedef struct _JSDOCTokenPrivate JSDOCTokenPrivate;
+
+#define JSDOC_TYPE_IDENTIFIER (jsdoc_identifier_get_type ())
+#define JSDOC_IDENTIFIER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_IDENTIFIER, JSDOCIdentifier))
+#define JSDOC_IDENTIFIER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_IDENTIFIER, JSDOCIdentifierClass))
+#define JSDOC_IS_IDENTIFIER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_IDENTIFIER))
+#define JSDOC_IS_IDENTIFIER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_IDENTIFIER))
+#define JSDOC_IDENTIFIER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_IDENTIFIER, JSDOCIdentifierClass))
+
+typedef struct _JSDOCIdentifier JSDOCIdentifier;
+typedef struct _JSDOCIdentifierClass JSDOCIdentifierClass;
+
+#define JSDOC_TYPE_TOKEN_KEY_MAP (jsdoc_token_key_map_get_type ())
+#define JSDOC_TOKEN_KEY_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_TOKEN_KEY_MAP, JSDOCTokenKeyMap))
+#define JSDOC_TOKEN_KEY_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_TOKEN_KEY_MAP, JSDOCTokenKeyMapClass))
+#define JSDOC_IS_TOKEN_KEY_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_TOKEN_KEY_MAP))
+#define JSDOC_IS_TOKEN_KEY_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_TOKEN_KEY_MAP))
+#define JSDOC_TOKEN_KEY_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_TOKEN_KEY_MAP, JSDOCTokenKeyMapClass))
+
+typedef struct _JSDOCTokenKeyMap JSDOCTokenKeyMap;
+typedef struct _JSDOCTokenKeyMapClass JSDOCTokenKeyMapClass;
+
+#define JSDOC_TYPE_DOC_TAG_TITLE (jsdoc_doc_tag_title_get_type ())
+
+#define JSDOC_TYPE_DOC_TAG (jsdoc_doc_tag_get_type ())
+#define JSDOC_DOC_TAG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSDOC_TYPE_DOC_TAG, JSDOCDocTag))
+#define JSDOC_DOC_TAG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSDOC_TYPE_DOC_TAG, JSDOCDocTagClass))
+#define JSDOC_IS_DOC_TAG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSDOC_TYPE_DOC_TAG))
+#define JSDOC_IS_DOC_TAG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSDOC_TYPE_DOC_TAG))
+#define JSDOC_DOC_TAG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSDOC_TYPE_DOC_TAG, JSDOCDocTagClass))
+
+typedef struct _JSDOCDocTag JSDOCDocTag;
+typedef struct _JSDOCDocTagClass JSDOCDocTagClass;
+typedef struct _JSDOCDocTagPrivate JSDOCDocTagPrivate;
+typedef struct _JSDOCScopePrivate JSDOCScopePrivate;
+typedef struct _JSDOCDocCommentPrivate JSDOCDocCommentPrivate;
+typedef struct _JSDOCSymbolPrivate JSDOCSymbolPrivate;
+
+typedef enum  {
+       JSDOC_WALKER_MODE_BUILDING_SYMBOL_TREE,
+       JSDOC_WALKER_MODE_XXX
+} JSDOCWalkerMode;
+
+struct _JSDOCWalker {
+       GObject parent_instance;
+       JSDOCWalkerPrivate * priv;
+};
+
+struct _JSDOCWalkerClass {
+       GObjectClass parent_class;
+};
+
+struct _JSDOCWalkerPrivate {
+       JSDOCTokenStream* ts;
+       GeeArrayList* warnings;
+       GeeArrayList* scopes;
+       GeeHashMap* indexedScopes;
+       GeeHashMap* symbols;
+       GeeHashMap* aliases;
+       JSDOCScope* globalScope;
+       gboolean global;
+       JSDOCWalkerMode mode;
+       gint braceNesting;
+       JSDOCDocComment* currentDoc;
+       gboolean munge;
+};
+
+struct _JSDOCTokenStream {
+       GObject parent_instance;
+       JSDOCTokenStreamPrivate * priv;
+       GeeArrayList* tokens;
+       gint cursor;
+};
+
+struct _JSDOCTokenStreamClass {
+       GObjectClass parent_class;
+};
+
+typedef enum  {
+       JSDOC_TOKEN_TYPE_TOKN,
+       JSDOC_TOKEN_TYPE_KEYW,
+       JSDOC_TOKEN_TYPE_NAME,
+       JSDOC_TOKEN_TYPE_COMM,
+       JSDOC_TOKEN_TYPE_PUNC,
+       JSDOC_TOKEN_TYPE_WHIT,
+       JSDOC_TOKEN_TYPE_STRN,
+       JSDOC_TOKEN_TYPE_NUMB,
+       JSDOC_TOKEN_TYPE_REGX,
+       JSDOC_TOKEN_TYPE_VOID
+} JSDOCTokenType;
+
+typedef enum  {
+       JSDOC_TOKEN_NAME_UNKNOWN_TOKEN,
+       JSDOC_TOKEN_NAME_BREAK,
+       JSDOC_TOKEN_NAME_CASE,
+       JSDOC_TOKEN_NAME_CATCH,
+       JSDOC_TOKEN_NAME_CONST,
+       JSDOC_TOKEN_NAME_CONTINUE,
+       JSDOC_TOKEN_NAME_DEFAULT,
+       JSDOC_TOKEN_NAME_DELETE,
+       JSDOC_TOKEN_NAME_DO,
+       JSDOC_TOKEN_NAME_ELSE,
+       JSDOC_TOKEN_NAME_FALSE,
+       JSDOC_TOKEN_NAME_FINALLY,
+       JSDOC_TOKEN_NAME_FOR,
+       JSDOC_TOKEN_NAME_FUNCTION,
+       JSDOC_TOKEN_NAME_IF,
+       JSDOC_TOKEN_NAME_IN,
+       JSDOC_TOKEN_NAME_INSTANCEOF,
+       JSDOC_TOKEN_NAME_NEW,
+       JSDOC_TOKEN_NAME_NULL,
+       JSDOC_TOKEN_NAME_RETURN,
+       JSDOC_TOKEN_NAME_SWITCH,
+       JSDOC_TOKEN_NAME_THIS,
+       JSDOC_TOKEN_NAME_THROW,
+       JSDOC_TOKEN_NAME_TRUE,
+       JSDOC_TOKEN_NAME_TRY,
+       JSDOC_TOKEN_NAME_TYPEOF,
+       JSDOC_TOKEN_NAME_VOID,
+       JSDOC_TOKEN_NAME_WHILE,
+       JSDOC_TOKEN_NAME_WITH,
+       JSDOC_TOKEN_NAME_VAR,
+       JSDOC_TOKEN_NAME_EVAL,
+       JSDOC_TOKEN_NAME_NAME,
+       JSDOC_TOKEN_NAME_MULTI_LINE_COMM,
+       JSDOC_TOKEN_NAME_JSDOC,
+       JSDOC_TOKEN_NAME_SINGLE_LINE_COMM,
+       JSDOC_TOKEN_NAME_SEMICOLON,
+       JSDOC_TOKEN_NAME_COMMA,
+       JSDOC_TOKEN_NAME_HOOK,
+       JSDOC_TOKEN_NAME_COLON,
+       JSDOC_TOKEN_NAME_OR,
+       JSDOC_TOKEN_NAME_AND,
+       JSDOC_TOKEN_NAME_BITWISE_OR,
+       JSDOC_TOKEN_NAME_BITWISE_XOR,
+       JSDOC_TOKEN_NAME_BITWISE_AND,
+       JSDOC_TOKEN_NAME_STRICT_EQ,
+       JSDOC_TOKEN_NAME_EQ,
+       JSDOC_TOKEN_NAME_ASSIGN,
+       JSDOC_TOKEN_NAME_STRICT_NE,
+       JSDOC_TOKEN_NAME_NE,
+       JSDOC_TOKEN_NAME_LSH,
+       JSDOC_TOKEN_NAME_LE,
+       JSDOC_TOKEN_NAME_LT,
+       JSDOC_TOKEN_NAME_URSH,
+       JSDOC_TOKEN_NAME_RSH,
+       JSDOC_TOKEN_NAME_GE,
+       JSDOC_TOKEN_NAME_GT,
+       JSDOC_TOKEN_NAME_INCREMENT,
+       JSDOC_TOKEN_NAME_DECREMENT,
+       JSDOC_TOKEN_NAME_PLUS,
+       JSDOC_TOKEN_NAME_MINUS,
+       JSDOC_TOKEN_NAME_MUL,
+       JSDOC_TOKEN_NAME_DIV,
+       JSDOC_TOKEN_NAME_MOD,
+       JSDOC_TOKEN_NAME_NOT,
+       JSDOC_TOKEN_NAME_BITWISE_NOT,
+       JSDOC_TOKEN_NAME_DOT,
+       JSDOC_TOKEN_NAME_LEFT_BRACE,
+       JSDOC_TOKEN_NAME_RIGHT_BRACE,
+       JSDOC_TOKEN_NAME_LEFT_CURLY,
+       JSDOC_TOKEN_NAME_RIGHT_CURLY,
+       JSDOC_TOKEN_NAME_LEFT_PAREN,
+       JSDOC_TOKEN_NAME_RIGHT_PAREN,
+       JSDOC_TOKEN_NAME_SPACE,
+       JSDOC_TOKEN_NAME_NEWLINE,
+       JSDOC_TOKEN_NAME_DOUBLE_QUOTE,
+       JSDOC_TOKEN_NAME_SINGLE_QUOTE,
+       JSDOC_TOKEN_NAME_OCTAL,
+       JSDOC_TOKEN_NAME_DECIMAL,
+       JSDOC_TOKEN_NAME_HEX_DEC,
+       JSDOC_TOKEN_NAME_REGX,
+       JSDOC_TOKEN_NAME_START_OF_STREAM,
+       JSDOC_TOKEN_NAME_END_OF_STREAM,
+       JSDOC_TOKEN_NAME_UNKNOWN
+} JSDOCTokenName;
+
+struct _JSDOCToken {
+       GObject parent_instance;
+       JSDOCTokenPrivate * priv;
+       gint id;
+       gchar* data;
+       JSDOCTokenType type;
+       JSDOCTokenName name;
+       gint line;
+       gchar* prefix;
+       gchar* outData;
+       JSDOCIdentifier* identifier;
+       GeeArrayList* items;
+       GeeHashMap* props;
+       GeeArrayList* keyseq;
+};
+
+struct _JSDOCTokenClass {
+       GObjectClass parent_class;
+};
+
+typedef enum  {
+       JSDOC_DOC_TAG_TITLE_NO_VALUE,
+       JSDOC_DOC_TAG_TITLE_PARAM,
+       JSDOC_DOC_TAG_TITLE_PROPERTY,
+       JSDOC_DOC_TAG_TITLE_CFG,
+       JSDOC_DOC_TAG_TITLE_EXAMPLE,
+       JSDOC_DOC_TAG_TITLE_SINGLETON,
+       JSDOC_DOC_TAG_TITLE_AUTHOR,
+       JSDOC_DOC_TAG_TITLE_METHOD,
+       JSDOC_DOC_TAG_TITLE_DESC,
+       JSDOC_DOC_TAG_TITLE_OVERVIEW,
+       JSDOC_DOC_TAG_TITLE_SINCE,
+       JSDOC_DOC_TAG_TITLE_CONSTANT,
+       JSDOC_DOC_TAG_TITLE_VERSION,
+       JSDOC_DOC_TAG_TITLE_DEPRECATED,
+       JSDOC_DOC_TAG_TITLE_SEE,
+       JSDOC_DOC_TAG_TITLE_CLASS,
+       JSDOC_DOC_TAG_TITLE_NAMESPACE,
+       JSDOC_DOC_TAG_TITLE_CONSTRUCTOR,
+       JSDOC_DOC_TAG_TITLE_STATIC,
+       JSDOC_DOC_TAG_TITLE_INNER,
+       JSDOC_DOC_TAG_TITLE_FIELD,
+       JSDOC_DOC_TAG_TITLE_FUNCTION,
+       JSDOC_DOC_TAG_TITLE_EVENT,
+       JSDOC_DOC_TAG_TITLE_NAME,
+       JSDOC_DOC_TAG_TITLE_RETURN,
+       JSDOC_DOC_TAG_TITLE_THROWS,
+       JSDOC_DOC_TAG_TITLE_REQUIRES,
+       JSDOC_DOC_TAG_TITLE_TYPE,
+       JSDOC_DOC_TAG_TITLE_PRIVATE,
+       JSDOC_DOC_TAG_TITLE_IGNORE,
+       JSDOC_DOC_TAG_TITLE_ARGUMENTS,
+       JSDOC_DOC_TAG_TITLE_EXTENDS,
+       JSDOC_DOC_TAG_TITLE_DEFAULT,
+       JSDOC_DOC_TAG_TITLE_MEMBEROF,
+       JSDOC_DOC_TAG_TITLE_PUBLIC,
+       JSDOC_DOC_TAG_TITLE_SCOPE,
+       JSDOC_DOC_TAG_TITLE_SCOPEALIAS
+} JSDOCDocTagTitle;
+
+struct _JSDOCDocTag {
+       GObject parent_instance;
+       JSDOCDocTagPrivate * priv;
+       JSDOCDocTagTitle title;
+       gchar* type;
+       gchar* name;
+       gboolean isOptional;
+       gchar* defaultValue;
+       gchar* desc;
+       GeeArrayList* optvalues;
+       gchar* memberOf;
+};
+
+struct _JSDOCDocTagClass {
+       GObjectClass parent_class;
+};
+
+struct _JSDOCScope {
+       GObject parent_instance;
+       JSDOCScopePrivate * priv;
+       JSDOCScope* parent;
+       GeeArrayList* subScopes;
+       gchar* ident;
+};
+
+struct _JSDOCScopeClass {
+       GObjectClass parent_class;
+};
+
+typedef enum  {
+       JSDOC_TOKEN_STREAM_ERROR_ArgumentError
+} JSDOCTokenStreamError;
+#define JSDOC_TOKEN_STREAM_ERROR jsdoc_token_stream_error_quark ()
+struct _JSDOCDocComment {
+       GObject parent_instance;
+       JSDOCDocCommentPrivate * priv;
+       gboolean isUserComment;
+       gboolean hasTags;
+       gchar* src;
+       GeeArrayList* tags;
+};
+
+struct _JSDOCDocCommentClass {
+       GObjectClass parent_class;
+};
+
+struct _JSDOCSymbol {
+       GObject parent_instance;
+       JSDOCSymbolPrivate * priv;
+       GeeArrayList* augments;
+       GeeArrayList* methods;
+       GeeArrayList* properties;
+       GeeArrayList* returns;
+       GeeArrayList* childClasses;
+       GeeArrayList* inheritsFrom;
+       GeeHashMap* cfgs;
+       JSDOCDocComment* comment;
+       gchar* alias;
+       gchar* desc;
+       gchar* isa;
+       gboolean isEvent;
+       gboolean isConstant;
+       gboolean isIgnored;
+       gboolean isInner;
+       gboolean isNamespace;
+       gboolean isPrivate;
+       gboolean isStatic;
+       gchar* memberOf;
+};
+
+struct _JSDOCSymbolClass {
+       GObjectClass parent_class;
+};
+
+
+static gpointer jsdoc_walker_parent_class = NULL;
+
+GType jsdoc_walker_mode_get_type (void) G_GNUC_CONST;
+GType jsdoc_walker_get_type (void) G_GNUC_CONST;
+GType jsdoc_token_stream_get_type (void) G_GNUC_CONST;
+GType jsdoc_scope_get_type (void) G_GNUC_CONST;
+GType jsdoc_symbol_get_type (void) G_GNUC_CONST;
+GType jsdoc_doc_comment_get_type (void) G_GNUC_CONST;
+#define JSDOC_WALKER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), JSDOC_TYPE_WALKER, JSDOCWalkerPrivate))
+enum  {
+       JSDOC_WALKER_DUMMY_PROPERTY
+};
+JSDOCWalker* jsdoc_walker_new (JSDOCTokenStream* ts);
+JSDOCWalker* jsdoc_walker_construct (GType object_type, JSDOCTokenStream* ts);
+void jsdoc_walker_buildSymbolTree (JSDOCWalker* self);
+void jsdoc_token_stream_rewind (JSDOCTokenStream* self);
+GType jsdoc_token_get_type (void) G_GNUC_CONST;
+JSDOCScope* jsdoc_scope_new (gint braceN, JSDOCScope* parent, gint startTokN, const gchar* lastIdent, JSDOCToken* token);
+JSDOCScope* jsdoc_scope_construct (GType object_type, gint braceN, JSDOCScope* parent, gint startTokN, const gchar* lastIdent, JSDOCToken* token);
+static void jsdoc_walker_parseScope (JSDOCWalker* self, JSDOCScope* in_scope, GeeHashMap* ealiases);
+static GeeHashMap* jsdoc_walker_emptyAlias (JSDOCWalker* self);
+static gchar* jsdoc_walker_fixAlias (JSDOCWalker* self, GeeHashMap* aliases, const gchar* str, gboolean nomore);
+static void jsdoc_walker_scopesIn (JSDOCWalker* self, JSDOCScope* s);
+JSDOCToken* jsdoc_token_stream_next (JSDOCTokenStream* self);
+GType jsdoc_token_type_get_type (void) G_GNUC_CONST;
+gboolean jsdoc_token_isType (JSDOCToken* self, JSDOCTokenType what);
+GType jsdoc_token_name_get_type (void) G_GNUC_CONST;
+gboolean jsdoc_token_isName (JSDOCToken* self, JSDOCTokenName what);
+static void jsdoc_walker_addSymbol (JSDOCWalker* self, const gchar* in_lastIdent, gboolean appendIt, const gchar* atype);
+GType jsdoc_identifier_get_type (void) G_GNUC_CONST;
+GType jsdoc_token_key_map_get_type (void) G_GNUC_CONST;
+JSDOCDocComment* jsdoc_doc_comment_new (const gchar* comment);
+JSDOCDocComment* jsdoc_doc_comment_construct (GType object_type, const gchar* comment);
+GType jsdoc_doc_tag_title_get_type (void) G_GNUC_CONST;
+GType jsdoc_doc_tag_get_type (void) G_GNUC_CONST;
+GeeArrayList* jsdoc_doc_comment_getTag (JSDOCDocComment* self, JSDOCDocTagTitle tagTitle);
+JSDOCToken* jsdoc_token_stream_lookTok (JSDOCTokenStream* self, gint n);
+JSDOCToken* jsdoc_token_stream_nextTok (JSDOCTokenStream* self);
+gchar* jsdoc_token_asString (JSDOCToken* self);
+GQuark jsdoc_token_stream_error_quark (void);
+GeeArrayList* jsdoc_token_stream_balance (JSDOCTokenStream* self, JSDOCTokenName in_start, GError** error);
+static JSDOCScope* jsdoc_walker_scopeOut (JSDOCWalker* self);
+static void _vala_array_add5 (gchar** * array, int* length, int* size, gchar* value);
+static void _vala_array_add6 (gchar** * array, int* length, int* size, gchar* value);
+JSDOCSymbol* jsdoc_symbol_new_new_populate_with_args (const gchar* name, GeeArrayList* params, const gchar* isa, JSDOCDocComment* comment);
+JSDOCSymbol* jsdoc_symbol_construct_new_populate_with_args (GType object_type, const gchar* name, GeeArrayList* params, const gchar* isa, JSDOCDocComment* comment);
+void jsdoc_doc_parser_addSymbol (JSDOCSymbol* symbol);
+void jsdoc_symbol_addDocTag (JSDOCSymbol* self, JSDOCDocTag* docTag);
+static gchar* jsdoc_walker_scopeListToStr (JSDOCWalker* self);
+static void _vala_array_add7 (gchar** * array, int* length, int* size, gchar* value);
+static void jsdoc_walker_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 GRegex* _tmp_regex_0 = NULL;
+static GRegex* _tmp_regex_1 = NULL;
+static GRegex* _tmp_regex_2 = NULL;
+static GRegex* _tmp_regex_3 = NULL;
+static GRegex* _tmp_regex_4 = NULL;
+static GRegex* _tmp_regex_5 = NULL;
+
+GType jsdoc_walker_mode_get_type (void) {
+       static volatile gsize jsdoc_walker_mode_type_id__volatile = 0;
+       if (g_once_init_enter (&jsdoc_walker_mode_type_id__volatile)) {
+               static const GEnumValue values[] = {{JSDOC_WALKER_MODE_BUILDING_SYMBOL_TREE, "JSDOC_WALKER_MODE_BUILDING_SYMBOL_TREE", "building-symbol-tree"}, {JSDOC_WALKER_MODE_XXX, "JSDOC_WALKER_MODE_XXX", "xxx"}, {0, NULL, NULL}};
+               GType jsdoc_walker_mode_type_id;
+               jsdoc_walker_mode_type_id = g_enum_register_static ("JSDOCWalkerMode", values);
+               g_once_init_leave (&jsdoc_walker_mode_type_id__volatile, jsdoc_walker_mode_type_id);
+       }
+       return jsdoc_walker_mode_type_id__volatile;
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 31 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       return self ? g_object_ref (self) : NULL;
+#line 472 "Walker.c"
+}
+
+
+JSDOCWalker* jsdoc_walker_construct (GType object_type, JSDOCTokenStream* ts) {
+       JSDOCWalker * self = NULL;
+       JSDOCTokenStream* _tmp0_;
+       JSDOCTokenStream* _tmp1_;
+       GeeArrayList* _tmp2_;
+       GeeArrayList* _tmp3_;
+       GeeHashMap* _tmp4_;
+       GeeHashMap* _tmp5_;
+       GeeHashMap* _tmp6_;
+#line 29 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       g_return_val_if_fail (ts != NULL, NULL);
+#line 29 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       self = (JSDOCWalker*) g_object_new (object_type, NULL);
+#line 31 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp0_ = ts;
+#line 31 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 31 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _g_object_unref0 (self->priv->ts);
+#line 31 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       self->priv->ts = _tmp1_;
+#line 32 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp2_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL);
+#line 32 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _g_object_unref0 (self->priv->warnings);
+#line 32 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       self->priv->warnings = _tmp2_;
+#line 33 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp3_ = gee_array_list_new (JSDOC_TYPE_SCOPE, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL);
+#line 33 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _g_object_unref0 (self->priv->scopes);
+#line 33 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       self->priv->scopes = _tmp3_;
+#line 34 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp4_ = gee_hash_map_new (G_TYPE_INT, NULL, NULL, JSDOC_TYPE_SCOPE, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 34 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _g_object_unref0 (self->priv->indexedScopes);
+#line 34 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       self->priv->indexedScopes = _tmp4_;
+#line 35 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp5_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, JSDOC_TYPE_SYMBOL, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 35 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _g_object_unref0 (self->priv->symbols);
+#line 35 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       self->priv->symbols = _tmp5_;
+#line 36 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp6_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 36 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _g_object_unref0 (self->priv->aliases);
+#line 36 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       self->priv->aliases = _tmp6_;
+#line 37 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       self->priv->braceNesting = 0;
+#line 29 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       return self;
+#line 531 "Walker.c"
+}
+
+
+JSDOCWalker* jsdoc_walker_new (JSDOCTokenStream* ts) {
+#line 29 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       return jsdoc_walker_construct (JSDOC_TYPE_WALKER, ts);
+#line 538 "Walker.c"
+}
+
+
+void jsdoc_walker_buildSymbolTree (JSDOCWalker* self) {
+       JSDOCTokenStream* _tmp0_;
+       GeeArrayList* _tmp1_;
+       GeeHashMap* _tmp2_;
+       JSDOCScope* _tmp3_;
+       GeeHashMap* _tmp4_;
+       GeeHashMap* _tmp5_;
+       JSDOCScope* _tmp6_;
+       JSDOCScope* _tmp7_;
+       GeeHashMap* _tmp8_;
+       GeeHashMap* _tmp9_;
+#line 51 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       g_return_if_fail (self != NULL);
+#line 55 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp0_ = self->priv->ts;
+#line 55 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       jsdoc_token_stream_rewind (_tmp0_);
+#line 56 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       self->priv->braceNesting = 0;
+#line 57 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp1_ = gee_array_list_new (JSDOC_TYPE_SCOPE, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL);
+#line 57 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _g_object_unref0 (self->priv->scopes);
+#line 57 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       self->priv->scopes = _tmp1_;
+#line 58 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp2_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 58 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _g_object_unref0 (self->priv->aliases);
+#line 58 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       self->priv->aliases = _tmp2_;
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp3_ = jsdoc_scope_new (-1, NULL, -1, "$global$", NULL);
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _g_object_unref0 (self->priv->globalScope);
+#line 60 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       self->priv->globalScope = _tmp3_;
+#line 61 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp4_ = gee_hash_map_new (G_TYPE_INT, NULL, NULL, JSDOC_TYPE_SCOPE, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 61 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _g_object_unref0 (self->priv->indexedScopes);
+#line 61 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       self->priv->indexedScopes = _tmp4_;
+#line 62 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp5_ = self->priv->indexedScopes;
+#line 62 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp6_ = self->priv->globalScope;
+#line 62 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       gee_abstract_map_set ((GeeAbstractMap*) _tmp5_, (gpointer) ((gintptr) 0), _tmp6_);
+#line 64 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       self->priv->mode = JSDOC_WALKER_MODE_BUILDING_SYMBOL_TREE;
+#line 65 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp7_ = self->priv->globalScope;
+#line 65 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp8_ = jsdoc_walker_emptyAlias (self);
+#line 65 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp9_ = _tmp8_;
+#line 65 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       jsdoc_walker_parseScope (self, _tmp7_, _tmp9_);
+#line 65 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _g_object_unref0 (_tmp9_);
+#line 603 "Walker.c"
+}
+
+
+static GeeHashMap* jsdoc_walker_emptyAlias (JSDOCWalker* self) {
+       GeeHashMap* result = NULL;
+       GeeHashMap* _tmp0_;
+#line 68 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 70 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp0_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 70 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       result = _tmp0_;
+#line 70 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       return result;
+#line 618 "Walker.c"
+}
+
+
+static gchar* _vala_g_strjoinv (const gchar* separator, gchar** str_array, int str_array_length1) {
+       gchar* result = NULL;
+       const gchar* _tmp0_;
+       gboolean _tmp1_ = FALSE;
+       gboolean _tmp2_ = FALSE;
+       gchar** _tmp3_;
+       gint _tmp3__length1;
+#line 1078 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp0_ = separator;
+#line 1078 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if (_tmp0_ == NULL) {
+#line 1079 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               separator = "";
+#line 635 "Walker.c"
+       }
+#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp3_ = str_array;
+#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp3__length1 = str_array_length1;
+#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if (_tmp3_ != NULL) {
+#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp2_ = TRUE;
+#line 645 "Walker.c"
+       } else {
+               gchar** _tmp4_;
+               gint _tmp4__length1;
+#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp4_ = str_array;
+#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp4__length1 = str_array_length1;
+#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp2_ = _tmp4__length1 > 0;
+#line 655 "Walker.c"
+       }
+#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if (_tmp2_) {
+#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp1_ = TRUE;
+#line 661 "Walker.c"
+       } else {
+               gboolean _tmp5_ = FALSE;
+               gchar** _tmp6_;
+               gint _tmp6__length1;
+#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp6_ = str_array;
+#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp6__length1 = str_array_length1;
+#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               if (_tmp6__length1 == -1) {
+#line 672 "Walker.c"
+                       gchar** _tmp7_;
+                       gint _tmp7__length1;
+                       const gchar* _tmp8_;
+#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       _tmp7_ = str_array;
+#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       _tmp7__length1 = str_array_length1;
+#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       _tmp8_ = _tmp7_[0];
+#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       _tmp5_ = _tmp8_ != NULL;
+#line 684 "Walker.c"
+               } else {
+#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       _tmp5_ = FALSE;
+#line 688 "Walker.c"
+               }
+#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp1_ = _tmp5_;
+#line 692 "Walker.c"
+       }
+#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if (_tmp1_) {
+#line 696 "Walker.c"
+               gint i = 0;
+               gsize len = 0UL;
+               gint _tmp31_;
+               gint _tmp33_;
+               gint _tmp34_;
+               gsize _tmp35_;
+               const gchar* _tmp36_;
+               gint _tmp37_;
+               gint _tmp38_;
+               gint _tmp39_;
+               const gchar* res = NULL;
+               gsize _tmp40_;
+               void* _tmp41_;
+               void* ptr = NULL;
+               const gchar* _tmp42_;
+               gchar** _tmp43_;
+               gint _tmp43__length1;
+               const gchar* _tmp44_;
+               void* _tmp45_;
+               const gchar* _tmp62_;
+#line 1083 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               len = (gsize) 1;
+#line 719 "Walker.c"
+               {
+                       gboolean _tmp9_ = FALSE;
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       i = 0;
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       _tmp9_ = TRUE;
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       while (TRUE) {
+#line 728 "Walker.c"
+                               gboolean _tmp11_ = FALSE;
+                               gboolean _tmp12_ = FALSE;
+                               gchar** _tmp13_;
+                               gint _tmp13__length1;
+                               gint _tmp21_ = 0;
+                               gchar** _tmp22_;
+                               gint _tmp22__length1;
+                               gint _tmp23_;
+                               const gchar* _tmp24_;
+                               gsize _tmp30_;
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               if (!_tmp9_) {
+#line 741 "Walker.c"
+                                       gint _tmp10_;
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp10_ = i;
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       i = _tmp10_ + 1;
+#line 747 "Walker.c"
+                               }
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               _tmp9_ = FALSE;
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               _tmp13_ = str_array;
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               _tmp13__length1 = str_array_length1;
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               if (_tmp13__length1 != -1) {
+#line 757 "Walker.c"
+                                       gint _tmp14_;
+                                       gchar** _tmp15_;
+                                       gint _tmp15__length1;
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp14_ = i;
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp15_ = str_array;
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp15__length1 = str_array_length1;
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp12_ = _tmp14_ < _tmp15__length1;
+#line 769 "Walker.c"
+                               } else {
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp12_ = FALSE;
+#line 773 "Walker.c"
+                               }
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               if (_tmp12_) {
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp11_ = TRUE;
+#line 779 "Walker.c"
+                               } else {
+                                       gboolean _tmp16_ = FALSE;
+                                       gchar** _tmp17_;
+                                       gint _tmp17__length1;
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp17_ = str_array;
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp17__length1 = str_array_length1;
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       if (_tmp17__length1 == -1) {
+#line 790 "Walker.c"
+                                               gchar** _tmp18_;
+                                               gint _tmp18__length1;
+                                               gint _tmp19_;
+                                               const gchar* _tmp20_;
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                               _tmp18_ = str_array;
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                               _tmp18__length1 = str_array_length1;
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                               _tmp19_ = i;
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                               _tmp20_ = _tmp18_[_tmp19_];
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                               _tmp16_ = _tmp20_ != NULL;
+#line 805 "Walker.c"
+                                       } else {
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                               _tmp16_ = FALSE;
+#line 809 "Walker.c"
+                                       }
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp11_ = _tmp16_;
+#line 813 "Walker.c"
+                               }
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               if (!_tmp11_) {
+#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       break;
+#line 819 "Walker.c"
+                               }
+#line 1085 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               _tmp22_ = str_array;
+#line 1085 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               _tmp22__length1 = str_array_length1;
+#line 1085 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               _tmp23_ = i;
+#line 1085 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               _tmp24_ = _tmp22_[_tmp23_];
+#line 1085 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               if (_tmp24_ != NULL) {
+#line 831 "Walker.c"
+                                       gchar** _tmp25_;
+                                       gint _tmp25__length1;
+                                       gint _tmp26_;
+                                       const gchar* _tmp27_;
+                                       gint _tmp28_;
+                                       gint _tmp29_;
+#line 1085 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp25_ = str_array;
+#line 1085 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp25__length1 = str_array_length1;
+#line 1085 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp26_ = i;
+#line 1085 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp27_ = _tmp25_[_tmp26_];
+#line 1085 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp28_ = strlen ((const gchar*) _tmp27_);
+#line 1085 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp29_ = _tmp28_;
+#line 1085 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp21_ = _tmp29_;
+#line 852 "Walker.c"
+                               } else {
+#line 1085 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp21_ = 0;
+#line 856 "Walker.c"
+                               }
+#line 1085 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               _tmp30_ = len;
+#line 1085 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               len = _tmp30_ + _tmp21_;
+#line 862 "Walker.c"
+                       }
+               }
+#line 1087 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp31_ = i;
+#line 1087 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               if (_tmp31_ == 0) {
+#line 869 "Walker.c"
+                       gchar* _tmp32_;
+#line 1088 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       _tmp32_ = g_strdup ("");
+#line 1088 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       result = _tmp32_;
+#line 1088 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       return result;
+#line 877 "Walker.c"
+               }
+#line 1090 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp33_ = i;
+#line 1090 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               str_array_length1 = _tmp33_;
+#line 1090 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp34_ = str_array_length1;
+#line 1091 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp35_ = len;
+#line 1091 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp36_ = separator;
+#line 1091 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp37_ = strlen ((const gchar*) _tmp36_);
+#line 1091 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp38_ = _tmp37_;
+#line 1091 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp39_ = i;
+#line 1091 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               len = _tmp35_ + (_tmp38_ * (_tmp39_ - 1));
+#line 1093 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp40_ = len;
+#line 1093 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp41_ = g_malloc (_tmp40_);
+#line 1093 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               res = _tmp41_;
+#line 1094 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp42_ = res;
+#line 1094 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp43_ = str_array;
+#line 1094 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp43__length1 = str_array_length1;
+#line 1094 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp44_ = _tmp43_[0];
+#line 1094 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp45_ = g_stpcpy ((void*) _tmp42_, (const gchar*) _tmp44_);
+#line 1094 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               ptr = _tmp45_;
+#line 915 "Walker.c"
+               {
+                       gboolean _tmp46_ = FALSE;
+#line 1095 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       i = 1;
+#line 1095 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       _tmp46_ = TRUE;
+#line 1095 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                       while (TRUE) {
+#line 924 "Walker.c"
+                               gint _tmp48_;
+                               gchar** _tmp49_;
+                               gint _tmp49__length1;
+                               void* _tmp50_;
+                               const gchar* _tmp51_;
+                               void* _tmp52_;
+                               const gchar* _tmp53_ = NULL;
+                               gchar** _tmp54_;
+                               gint _tmp54__length1;
+                               gint _tmp55_;
+                               const gchar* _tmp56_;
+                               void* _tmp60_;
+                               void* _tmp61_;
+#line 1095 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               if (!_tmp46_) {
+#line 940 "Walker.c"
+                                       gint _tmp47_;
+#line 1095 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp47_ = i;
+#line 1095 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       i = _tmp47_ + 1;
+#line 946 "Walker.c"
+                               }
+#line 1095 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               _tmp46_ = FALSE;
+#line 1095 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               _tmp48_ = i;
+#line 1095 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               _tmp49_ = str_array;
+#line 1095 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               _tmp49__length1 = str_array_length1;
+#line 1095 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               if (!(_tmp48_ < _tmp49__length1)) {
+#line 1095 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       break;
+#line 960 "Walker.c"
+                               }
+#line 1096 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               _tmp50_ = ptr;
+#line 1096 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               _tmp51_ = separator;
+#line 1096 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               _tmp52_ = g_stpcpy (_tmp50_, (const gchar*) _tmp51_);
+#line 1096 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               ptr = _tmp52_;
+#line 1097 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               _tmp54_ = str_array;
+#line 1097 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               _tmp54__length1 = str_array_length1;
+#line 1097 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               _tmp55_ = i;
+#line 1097 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               _tmp56_ = _tmp54_[_tmp55_];
+#line 1097 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               if (_tmp56_ != NULL) {
+#line 980 "Walker.c"
+                                       gchar** _tmp57_;
+                                       gint _tmp57__length1;
+                                       gint _tmp58_;
+                                       const gchar* _tmp59_;
+#line 1097 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp57_ = str_array;
+#line 1097 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp57__length1 = str_array_length1;
+#line 1097 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp58_ = i;
+#line 1097 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp59_ = _tmp57_[_tmp58_];
+#line 1097 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp53_ = (const gchar*) _tmp59_;
+#line 995 "Walker.c"
+                               } else {
+#line 1097 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                                       _tmp53_ = "";
+#line 999 "Walker.c"
+                               }
+#line 1097 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               _tmp60_ = ptr;
+#line 1097 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               _tmp61_ = g_stpcpy (_tmp60_, _tmp53_);
+#line 1097 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+                               ptr = _tmp61_;
+#line 1007 "Walker.c"
+                       }
+               }
+#line 1100 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp62_ = res;
+#line 1100 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               res = NULL;
+#line 1100 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               result = (gchar*) _tmp62_;
+#line 1100 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               return result;
+#line 1018 "Walker.c"
+       } else {
+               gchar* _tmp63_;
+#line 1102 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp63_ = g_strdup ("");
+#line 1102 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               result = _tmp63_;
+#line 1102 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               return result;
+#line 1027 "Walker.c"
+       }
+}
+
+
+static gchar* jsdoc_walker_fixAlias (JSDOCWalker* self, GeeHashMap* aliases, const gchar* str, gboolean nomore) {
+       gchar* result = NULL;
+       gchar** ar = NULL;
+       const gchar* _tmp0_;
+       gchar** _tmp1_;
+       gchar** _tmp2_;
+       gint ar_length1;
+       gint _ar_size_;
+       gchar* m = NULL;
+       gchar** _tmp3_;
+       gint _tmp3__length1;
+       const gchar* _tmp4_;
+       gchar* _tmp5_;
+       GeeHashMap* _tmp6_;
+       const gchar* _tmp7_;
+       gboolean _tmp8_;
+       gchar** _tmp11_;
+       gint _tmp11__length1;
+       GeeHashMap* _tmp12_;
+       const gchar* _tmp13_;
+       gpointer _tmp14_;
+       gchar* _tmp15_;
+       gchar* ret = NULL;
+       gchar** _tmp16_;
+       gint _tmp16__length1;
+       gchar* _tmp17_;
+       gboolean _tmp18_;
+#line 75 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 75 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       g_return_val_if_fail (aliases != NULL, NULL);
+#line 75 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       g_return_val_if_fail (str != NULL, NULL);
+#line 77 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp0_ = str;
+#line 77 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp2_ = _tmp1_ = g_strsplit (_tmp0_, ".", 0);
+#line 77 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       ar = _tmp2_;
+#line 77 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       ar_length1 = _vala_array_length (_tmp1_);
+#line 77 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _ar_size_ = ar_length1;
+#line 78 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp3_ = ar;
+#line 78 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp3__length1 = ar_length1;
+#line 78 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp4_ = _tmp3_[0];
+#line 78 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp5_ = g_strdup (_tmp4_);
+#line 78 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       m = _tmp5_;
+#line 81 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp6_ = aliases;
+#line 81 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp7_ = m;
+#line 81 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp8_ = gee_abstract_map_has_key ((GeeAbstractMap*) _tmp6_, _tmp7_);
+#line 81 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       if (!_tmp8_) {
+#line 1093 "Walker.c"
+               const gchar* _tmp9_;
+               gchar* _tmp10_;
+#line 82 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp9_ = str;
+#line 82 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp10_ = g_strdup (_tmp9_);
+#line 82 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               result = _tmp10_;
+#line 82 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _g_free0 (m);
+#line 82 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               ar = (_vala_array_free (ar, ar_length1, (GDestroyNotify) g_free), NULL);
+#line 82 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               return result;
+#line 1108 "Walker.c"
+       }
+#line 84 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp11_ = ar;
+#line 84 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp11__length1 = ar_length1;
+#line 84 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp12_ = aliases;
+#line 84 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp13_ = m;
+#line 84 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp14_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp12_, _tmp13_);
+#line 84 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _g_free0 (_tmp11_[0]);
+#line 84 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp11_[0] = (gchar*) _tmp14_;
+#line 84 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp15_ = _tmp11_[0];
+#line 86 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp16_ = ar;
+#line 86 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp16__length1 = ar_length1;
+#line 86 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp17_ = _vala_g_strjoinv (".", _tmp16_, _tmp16__length1);
+#line 86 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       ret = _tmp17_;
+#line 87 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp18_ = nomore;
+#line 87 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       if (_tmp18_ != TRUE) {
+#line 1138 "Walker.c"
+               GeeHashMap* _tmp19_;
+               const gchar* _tmp20_;
+               gchar* _tmp21_;
+#line 88 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp19_ = aliases;
+#line 88 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp20_ = ret;
+#line 88 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp21_ = jsdoc_walker_fixAlias (self, _tmp19_, _tmp20_, TRUE);
+#line 88 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _g_free0 (ret);
+#line 88 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               ret = _tmp21_;
+#line 1152 "Walker.c"
+       }
+#line 92 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       result = ret;
+#line 92 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _g_free0 (m);
+#line 92 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       ar = (_vala_array_free (ar, ar_length1, (GDestroyNotify) g_free), NULL);
+#line 92 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       return result;
+#line 1162 "Walker.c"
+}
+
+
+static gchar* string_strip (const gchar* self) {
+       gchar* result = NULL;
+       gchar* _result_ = NULL;
+       gchar* _tmp0_;
+       const gchar* _tmp1_;
+#line 1234 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 1235 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp0_ = g_strdup (self);
+#line 1235 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _result_ = _tmp0_;
+#line 1236 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp1_ = _result_;
+#line 1236 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       g_strstrip (_tmp1_);
+#line 1237 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       result = _result_;
+#line 1237 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       return result;
+#line 1185 "Walker.c"
+}
+
+
+static inline GRegex* _thread_safe_regex_init (GRegex** re, const gchar * pattern, GRegexMatchFlags match_options) {
+#line 220 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       if (g_once_init_enter ((volatile gsize*) re)) {
+#line 220 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               GRegex* val = g_regex_new (pattern, match_options, 0, NULL);
+#line 220 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               g_once_init_leave ((volatile gsize*) re, (gsize) val);
+#line 1196 "Walker.c"
+       }
+#line 220 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       return *re;
+#line 1200 "Walker.c"
+}
+
+
+static glong string_strnlen (gchar* str, glong maxlen) {
+       glong result = 0L;
+       gchar* end = NULL;
+       gchar* _tmp0_;
+       glong _tmp1_;
+       gchar* _tmp2_;
+       gchar* _tmp3_;
+#line 1322 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp0_ = str;
+#line 1322 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp1_ = maxlen;
+#line 1322 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp2_ = memchr (_tmp0_, 0, (gsize) _tmp1_);
+#line 1322 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       end = _tmp2_;
+#line 1323 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp3_ = end;
+#line 1323 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if (_tmp3_ == NULL) {
+#line 1223 "Walker.c"
+               glong _tmp4_;
+#line 1324 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp4_ = maxlen;
+#line 1324 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               result = _tmp4_;
+#line 1324 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               return result;
+#line 1231 "Walker.c"
+       } else {
+               gchar* _tmp5_;
+               gchar* _tmp6_;
+#line 1326 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp5_ = end;
+#line 1326 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp6_ = str;
+#line 1326 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               result = (glong) (_tmp5_ - _tmp6_);
+#line 1326 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               return result;
+#line 1243 "Walker.c"
+       }
+}
+
+
+static gchar* string_substring (const gchar* self, glong offset, glong len) {
+       gchar* result = NULL;
+       glong string_length = 0L;
+       gboolean _tmp0_ = FALSE;
+       glong _tmp1_;
+       glong _tmp8_;
+       glong _tmp14_;
+       glong _tmp17_;
+       glong _tmp18_;
+       glong _tmp19_;
+       glong _tmp20_;
+       glong _tmp21_;
+       gchar* _tmp22_;
+#line 1333 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 1335 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp1_ = offset;
+#line 1335 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if (_tmp1_ >= ((glong) 0)) {
+#line 1267 "Walker.c"
+               glong _tmp2_;
+#line 1335 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp2_ = len;
+#line 1335 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp0_ = _tmp2_ >= ((glong) 0);
+#line 1273 "Walker.c"
+       } else {
+#line 1335 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp0_ = FALSE;
+#line 1277 "Walker.c"
+       }
+#line 1335 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if (_tmp0_) {
+#line 1281 "Walker.c"
+               glong _tmp3_;
+               glong _tmp4_;
+               glong _tmp5_;
+#line 1337 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp3_ = offset;
+#line 1337 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp4_ = len;
+#line 1337 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp5_ = string_strnlen ((gchar*) self, _tmp3_ + _tmp4_);
+#line 1337 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               string_length = _tmp5_;
+#line 1293 "Walker.c"
+       } else {
+               gint _tmp6_;
+               gint _tmp7_;
+#line 1339 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp6_ = strlen (self);
+#line 1339 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp7_ = _tmp6_;
+#line 1339 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               string_length = (glong) _tmp7_;
+#line 1303 "Walker.c"
+       }
+#line 1342 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp8_ = offset;
+#line 1342 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if (_tmp8_ < ((glong) 0)) {
+#line 1309 "Walker.c"
+               glong _tmp9_;
+               glong _tmp10_;
+               glong _tmp11_;
+#line 1343 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp9_ = string_length;
+#line 1343 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp10_ = offset;
+#line 1343 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               offset = _tmp9_ + _tmp10_;
+#line 1344 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp11_ = offset;
+#line 1344 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               g_return_val_if_fail (_tmp11_ >= ((glong) 0), NULL);
+#line 1323 "Walker.c"
+       } else {
+               glong _tmp12_;
+               glong _tmp13_;
+#line 1346 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp12_ = offset;
+#line 1346 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp13_ = string_length;
+#line 1346 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               g_return_val_if_fail (_tmp12_ <= _tmp13_, NULL);
+#line 1333 "Walker.c"
+       }
+#line 1348 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp14_ = len;
+#line 1348 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       if (_tmp14_ < ((glong) 0)) {
+#line 1339 "Walker.c"
+               glong _tmp15_;
+               glong _tmp16_;
+#line 1349 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp15_ = string_length;
+#line 1349 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               _tmp16_ = offset;
+#line 1349 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+               len = _tmp15_ - _tmp16_;
+#line 1348 "Walker.c"
+       }
+#line 1351 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp17_ = offset;
+#line 1351 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp18_ = len;
+#line 1351 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp19_ = string_length;
+#line 1351 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       g_return_val_if_fail ((_tmp17_ + _tmp18_) <= _tmp19_, NULL);
+#line 1352 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp20_ = offset;
+#line 1352 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp21_ = len;
+#line 1352 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       _tmp22_ = g_strndup (((gchar*) self) + _tmp20_, (gsize) _tmp21_);
+#line 1352 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       result = _tmp22_;
+#line 1352 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
+       return result;
+#line 1368 "Walker.c"
+}
+
+
+static void jsdoc_walker_parseScope (JSDOCWalker* self, JSDOCScope* in_scope, GeeHashMap* ealiases) {
+       JSDOCScope* scope = NULL;
+       JSDOCScope* _tmp0_;
+       JSDOCScope* _tmp1_;
+       GeeHashMap* aliases = NULL;
+       GeeHashMap* _tmp2_;
+       gint expressionBraceNesting = 0;
+       gint _tmp19_;
+       gint bracketNesting = 0;
+       gint parensNesting = 0;
+       gchar* l1 = NULL;
+       gchar* _tmp20_;
+       gchar* l2 = NULL;
+       gchar* _tmp21_;
+       gchar* scopeName = NULL;
+       gchar* _tmp22_;
+       gint locBraceNest = 0;
+       GeeArrayList* isObjectLitAr = NULL;
+       GeeArrayList* _tmp23_;
+       GeeArrayList* _tmp24_;
+       JSDOCScope* _tmp25_;
+       gint scopeLen = 0;
+       GeeArrayList* _tmp26_;
+       gint _tmp27_;
+       gint _tmp28_;
+       JSDOCTokenStream* _tmp29_;
+       gint _tmp30_;
+       JSDOCToken* token = NULL;
+       GError * _inner_error_ = NULL;
+#line 97 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       g_return_if_fail (self != NULL);
+#line 97 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       g_return_if_fail (in_scope != NULL);
+#line 97 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       g_return_if_fail (ealiases != NULL);
+#line 101 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp0_ = in_scope;
+#line 101 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 101 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       scope = _tmp1_;
+#line 103 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp2_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 103 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       aliases = _tmp2_;
+#line 1417 "Walker.c"
+       {
+               GeeIterator* _i_it = NULL;
+               GeeHashMap* _tmp3_;
+               GeeSet* _tmp4_;
+               GeeSet* _tmp5_;
+               GeeSet* _tmp6_;
+               GeeIterator* _tmp7_;
+               GeeIterator* _tmp8_;
+#line 105 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp3_ = ealiases;
+#line 105 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp4_ = gee_abstract_map_get_keys ((GeeAbstractMap*) _tmp3_);
+#line 105 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp5_ = _tmp4_;
+#line 105 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp6_ = _tmp5_;
+#line 105 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp7_ = gee_iterable_iterator ((GeeIterable*) _tmp6_);
+#line 105 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp8_ = _tmp7_;
+#line 105 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _g_object_unref0 (_tmp6_);
+#line 105 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _i_it = _tmp8_;
+#line 105 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               while (TRUE) {
+#line 1444 "Walker.c"
+                       GeeIterator* _tmp9_;
+                       gboolean _tmp10_;
+                       gchar* i = NULL;
+                       GeeIterator* _tmp11_;
+                       gpointer _tmp12_;
+                       GeeHashMap* _tmp13_;
+                       const gchar* _tmp14_;
+                       GeeHashMap* _tmp15_;
+                       const gchar* _tmp16_;
+                       gpointer _tmp17_;
+                       gchar* _tmp18_;
+#line 105 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp9_ = _i_it;
+#line 105 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp10_ = gee_iterator_next (_tmp9_);
+#line 105 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       if (!_tmp10_) {
+#line 105 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               break;
+#line 1464 "Walker.c"
+                       }
+#line 105 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp11_ = _i_it;
+#line 105 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp12_ = gee_iterator_get (_tmp11_);
+#line 105 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       i = (gchar*) _tmp12_;
+#line 106 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp13_ = aliases;
+#line 106 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp14_ = i;
+#line 106 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp15_ = ealiases;
+#line 106 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp16_ = i;
+#line 106 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp17_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp15_, _tmp16_);
+#line 106 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp18_ = (gchar*) _tmp17_;
+#line 106 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       gee_abstract_map_set ((GeeAbstractMap*) _tmp13_, _tmp14_, _tmp18_);
+#line 106 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _g_free0 (_tmp18_);
+#line 105 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _g_free0 (i);
+#line 1490 "Walker.c"
+               }
+#line 105 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _g_object_unref0 (_i_it);
+#line 1494 "Walker.c"
+       }
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp19_ = self->priv->braceNesting;
+#line 111 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       expressionBraceNesting = _tmp19_;
+#line 112 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       bracketNesting = 0;
+#line 113 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       parensNesting = 0;
+#line 116 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp20_ = g_strdup ("");
+#line 116 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       l1 = _tmp20_;
+#line 116 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp21_ = g_strdup ("");
+#line 116 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       l2 = _tmp21_;
+#line 117 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp22_ = g_strdup ("");
+#line 117 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       scopeName = _tmp22_;
+#line 120 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       locBraceNest = 0;
+#line 123 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp23_ = gee_array_list_new (G_TYPE_BOOLEAN, NULL, NULL, NULL, NULL, NULL);
+#line 123 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       isObjectLitAr = _tmp23_;
+#line 124 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp24_ = isObjectLitAr;
+#line 124 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       gee_abstract_collection_add ((GeeAbstractCollection*) _tmp24_, (gpointer) ((gintptr) FALSE));
+#line 127 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp25_ = scope;
+#line 127 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       jsdoc_walker_scopesIn (self, _tmp25_);
+#line 128 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp26_ = self->priv->scopes;
+#line 128 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp27_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp26_);
+#line 128 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp28_ = _tmp27_;
+#line 128 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       scopeLen = _tmp28_;
+#line 130 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp29_ = self->priv->ts;
+#line 130 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp30_ = _tmp29_->cursor;
+#line 130 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       if (_tmp30_ < 1) {
+#line 1544 "Walker.c"
+       }
+#line 137 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       while (TRUE) {
+#line 1548 "Walker.c"
+               JSDOCTokenStream* _tmp31_;
+               JSDOCToken* _tmp32_;
+               JSDOCToken* _tmp33_;
+               JSDOCToken* _tmp34_;
+               gboolean _tmp35_;
+               gboolean _tmp82_ = FALSE;
+               JSDOCDocComment* _tmp83_;
+               gboolean _tmp89_ = FALSE;
+               gboolean _tmp90_ = FALSE;
+               gboolean _tmp91_ = FALSE;
+               gboolean _tmp92_ = FALSE;
+               JSDOCToken* _tmp93_;
+               gboolean _tmp94_;
+               gboolean _tmp120_ = FALSE;
+               JSDOCToken* _tmp121_;
+               const gchar* _tmp122_;
+               JSDOCToken* _tmp126_;
+               gboolean _tmp127_;
+               JSDOCToken* _tmp437_;
+               gboolean _tmp438_;
+               JSDOCToken* _tmp448_;
+               gboolean _tmp449_;
+               JSDOCToken* _tmp625_;
+               const gchar* _tmp626_;
+               JSDOCToken* _tmp723_;
+               const gchar* _tmp724_;
+#line 137 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp31_ = self->priv->ts;
+#line 137 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp32_ = jsdoc_token_stream_next (_tmp31_);
+#line 137 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _g_object_unref0 (token);
+#line 137 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               token = _tmp32_;
+#line 137 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp33_ = token;
+#line 137 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               if (!(NULL != _tmp33_)) {
+#line 137 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       break;
+#line 1589 "Walker.c"
+               }
+#line 141 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp34_ = token;
+#line 141 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp35_ = jsdoc_token_isType (_tmp34_, JSDOC_TOKEN_TYPE_COMM);
+#line 141 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               if (_tmp35_) {
+#line 1597 "Walker.c"
+                       JSDOCToken* _tmp36_;
+                       gboolean _tmp37_;
+                       JSDOCDocComment* _tmp38_;
+                       JSDOCDocComment* newDoc = NULL;
+                       JSDOCToken* _tmp39_;
+                       const gchar* _tmp40_;
+                       JSDOCDocComment* _tmp41_;
+                       JSDOCDocComment* _tmp42_;
+                       GeeArrayList* _tmp43_;
+                       GeeArrayList* _tmp44_;
+                       gint _tmp45_;
+                       gint _tmp46_;
+                       gboolean _tmp47_;
+                       JSDOCDocComment* _tmp56_;
+                       GeeArrayList* _tmp57_;
+                       GeeArrayList* _tmp58_;
+                       gint _tmp59_;
+                       gint _tmp60_;
+                       gboolean _tmp61_;
+                       JSDOCDocComment* _tmp80_;
+                       JSDOCDocComment* _tmp81_;
+#line 144 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp36_ = token;
+#line 144 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp37_ = jsdoc_token_isName (_tmp36_, JSDOC_TOKEN_NAME_JSDOC);
+#line 144 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       if (!_tmp37_) {
+#line 146 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               continue;
+#line 1627 "Walker.c"
+                       }
+#line 148 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp38_ = self->priv->currentDoc;
+#line 148 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       if (_tmp38_ != NULL) {
+#line 151 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               jsdoc_walker_addSymbol (self, "", TRUE, "OBJECT");
+#line 1635 "Walker.c"
+                       }
+#line 157 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp39_ = token;
+#line 157 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp40_ = _tmp39_->data;
+#line 157 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp41_ = jsdoc_doc_comment_new (_tmp40_);
+#line 157 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       newDoc = _tmp41_;
+#line 161 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp42_ = newDoc;
+#line 161 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp43_ = jsdoc_doc_comment_getTag (_tmp42_, JSDOC_DOC_TAG_TITLE_SCOPE);
+#line 161 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp44_ = _tmp43_;
+#line 161 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp45_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp44_);
+#line 161 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp46_ = _tmp45_;
+#line 161 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp47_ = _tmp46_ > 0;
+#line 161 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _g_object_unref0 (_tmp44_);
+#line 161 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       if (_tmp47_) {
+#line 1661 "Walker.c"
+                               JSDOCScope* _tmp48_;
+                               JSDOCDocComment* _tmp49_;
+                               GeeArrayList* _tmp50_;
+                               GeeArrayList* _tmp51_;
+                               gpointer _tmp52_;
+                               JSDOCDocTag* _tmp53_;
+                               const gchar* _tmp54_;
+                               gchar* _tmp55_;
+#line 164 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp48_ = scope;
+#line 164 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp49_ = newDoc;
+#line 164 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp50_ = jsdoc_doc_comment_getTag (_tmp49_, JSDOC_DOC_TAG_TITLE_SCOPE);
+#line 164 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp51_ = _tmp50_;
+#line 164 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp52_ = gee_abstract_list_get ((GeeAbstractList*) _tmp51_, 0);
+#line 164 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp53_ = (JSDOCDocTag*) _tmp52_;
+#line 164 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp54_ = _tmp53_->desc;
+#line 164 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp55_ = g_strconcat ("$private$|", _tmp54_, NULL);
+#line 164 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_free0 (_tmp48_->ident);
+#line 164 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp48_->ident = _tmp55_;
+#line 164 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (_tmp53_);
+#line 164 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (_tmp51_);
+#line 165 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (newDoc);
+#line 165 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               continue;
+#line 1698 "Walker.c"
+                       }
+#line 169 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp56_ = newDoc;
+#line 169 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp57_ = jsdoc_doc_comment_getTag (_tmp56_, JSDOC_DOC_TAG_TITLE_SCOPEALIAS);
+#line 169 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp58_ = _tmp57_;
+#line 169 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp59_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp58_);
+#line 169 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp60_ = _tmp59_;
+#line 169 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp61_ = _tmp60_ > 0;
+#line 169 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _g_object_unref0 (_tmp58_);
+#line 169 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       if (_tmp61_) {
+#line 1716 "Walker.c"
+                               gchar** sal = NULL;
+                               JSDOCDocComment* _tmp62_;
+                               GeeArrayList* _tmp63_;
+                               GeeArrayList* _tmp64_;
+                               gpointer _tmp65_;
+                               JSDOCDocTag* _tmp66_;
+                               const gchar* _tmp67_;
+                               gchar** _tmp68_;
+                               gchar** _tmp69_;
+                               gchar** _tmp70_;
+                               gint _tmp70__length1;
+                               gint sal_length1;
+                               gint _sal_size_;
+                               GeeHashMap* _tmp71_;
+                               gchar** _tmp72_;
+                               gint _tmp72__length1;
+                               const gchar* _tmp73_;
+                               gchar* _tmp74_;
+                               gchar* _tmp75_;
+                               gchar** _tmp76_;
+                               gint _tmp76__length1;
+                               const gchar* _tmp77_;
+                               gchar* _tmp78_;
+                               gchar* _tmp79_;
+#line 173 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp62_ = newDoc;
+#line 173 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp63_ = jsdoc_doc_comment_getTag (_tmp62_, JSDOC_DOC_TAG_TITLE_SCOPEALIAS);
+#line 173 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp64_ = _tmp63_;
+#line 173 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp65_ = gee_abstract_list_get ((GeeAbstractList*) _tmp64_, 0);
+#line 173 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp66_ = (JSDOCDocTag*) _tmp65_;
+#line 173 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp67_ = _tmp66_->desc;
+#line 173 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp69_ = _tmp68_ = g_strsplit (_tmp67_, "=", 0);
+#line 173 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp70_ = _tmp69_;
+#line 173 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp70__length1 = _vala_array_length (_tmp68_);
+#line 173 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (_tmp66_);
+#line 173 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (_tmp64_);
+#line 173 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               sal = _tmp70_;
+#line 173 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               sal_length1 = _tmp70__length1;
+#line 173 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _sal_size_ = sal_length1;
+#line 174 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp71_ = aliases;
+#line 174 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp72_ = sal;
+#line 174 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp72__length1 = sal_length1;
+#line 174 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp73_ = _tmp72_[0];
+#line 174 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp74_ = string_strip (_tmp73_);
+#line 174 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp75_ = _tmp74_;
+#line 174 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp76_ = sal;
+#line 174 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp76__length1 = sal_length1;
+#line 174 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp77_ = _tmp76_[1];
+#line 174 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp78_ = string_strip (_tmp77_);
+#line 174 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp79_ = _tmp78_;
+#line 174 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               gee_abstract_map_set ((GeeAbstractMap*) _tmp71_, _tmp75_, _tmp79_);
+#line 174 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_free0 (_tmp79_);
+#line 174 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_free0 (_tmp75_);
+#line 176 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               sal = (_vala_array_free (sal, sal_length1, (GDestroyNotify) g_free), NULL);
+#line 176 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (newDoc);
+#line 176 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               continue;
+#line 1803 "Walker.c"
+                       }
+#line 183 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp80_ = newDoc;
+#line 183 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp81_ = _g_object_ref0 (_tmp80_);
+#line 183 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _g_object_unref0 (self->priv->currentDoc);
+#line 183 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       self->priv->currentDoc = _tmp81_;
+#line 184 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _g_object_unref0 (newDoc);
+#line 184 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       continue;
+#line 1817 "Walker.c"
+               }
+#line 193 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp83_ = self->priv->currentDoc;
+#line 193 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               if (_tmp83_ != NULL) {
+#line 1823 "Walker.c"
+                       gboolean _tmp84_ = FALSE;
+                       JSDOCToken* _tmp85_;
+                       const gchar* _tmp86_;
+#line 194 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp85_ = token;
+#line 194 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp86_ = _tmp85_->data;
+#line 194 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       if (g_strcmp0 (_tmp86_, ";") == 0) {
+#line 194 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp84_ = TRUE;
+#line 1835 "Walker.c"
+                       } else {
+                               JSDOCToken* _tmp87_;
+                               const gchar* _tmp88_;
+#line 195 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp87_ = token;
+#line 195 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp88_ = _tmp87_->data;
+#line 195 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp84_ = g_strcmp0 (_tmp88_, "}") == 0;
+#line 1845 "Walker.c"
+                       }
+#line 194 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp82_ = _tmp84_;
+#line 1849 "Walker.c"
+               } else {
+#line 193 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp82_ = FALSE;
+#line 1853 "Walker.c"
+               }
+#line 193 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               if (_tmp82_) {
+#line 196 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       jsdoc_walker_addSymbol (self, "", TRUE, "OBJECT");
+#line 1859 "Walker.c"
+               }
+#line 205 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp93_ = token;
+#line 205 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp94_ = jsdoc_token_isName (_tmp93_, JSDOC_TOKEN_NAME_VAR);
+#line 205 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               if (_tmp94_) {
+#line 1867 "Walker.c"
+                       JSDOCTokenStream* _tmp95_;
+                       JSDOCToken* _tmp96_;
+                       JSDOCToken* _tmp97_;
+                       gboolean _tmp98_;
+#line 207 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp95_ = self->priv->ts;
+#line 207 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp96_ = jsdoc_token_stream_lookTok (_tmp95_, 1);
+#line 207 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp97_ = _tmp96_;
+#line 207 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp98_ = jsdoc_token_isType (_tmp97_, JSDOC_TOKEN_TYPE_NAME);
+#line 207 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp92_ = _tmp98_;
+#line 207 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _g_object_unref0 (_tmp97_);
+#line 1884 "Walker.c"
+               } else {
+#line 205 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp92_ = FALSE;
+#line 1888 "Walker.c"
+               }
+#line 205 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               if (_tmp92_) {
+#line 1892 "Walker.c"
+                       JSDOCTokenStream* _tmp99_;
+                       JSDOCToken* _tmp100_;
+                       JSDOCToken* _tmp101_;
+                       const gchar* _tmp102_;
+#line 208 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp99_ = self->priv->ts;
+#line 208 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp100_ = jsdoc_token_stream_lookTok (_tmp99_, 2);
+#line 208 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp101_ = _tmp100_;
+#line 208 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp102_ = _tmp101_->data;
+#line 208 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp91_ = g_strcmp0 (_tmp102_, "=") == 0;
+#line 208 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _g_object_unref0 (_tmp101_);
+#line 1909 "Walker.c"
+               } else {
+#line 205 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp91_ = FALSE;
+#line 1913 "Walker.c"
+               }
+#line 205 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               if (_tmp91_) {
+#line 1917 "Walker.c"
+                       JSDOCTokenStream* _tmp103_;
+                       JSDOCToken* _tmp104_;
+                       JSDOCToken* _tmp105_;
+                       gboolean _tmp106_;
+#line 209 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp103_ = self->priv->ts;
+#line 209 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp104_ = jsdoc_token_stream_lookTok (_tmp103_, 3);
+#line 209 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp105_ = _tmp104_;
+#line 209 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp106_ = jsdoc_token_isType (_tmp105_, JSDOC_TOKEN_TYPE_NAME);
+#line 209 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp90_ = _tmp106_;
+#line 209 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _g_object_unref0 (_tmp105_);
+#line 1934 "Walker.c"
+               } else {
+#line 205 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp90_ = FALSE;
+#line 1938 "Walker.c"
+               }
+#line 205 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               if (_tmp90_) {
+#line 1942 "Walker.c"
+                       JSDOCTokenStream* _tmp107_;
+                       JSDOCToken* _tmp108_;
+                       JSDOCToken* _tmp109_;
+                       const gchar* _tmp110_;
+#line 210 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp107_ = self->priv->ts;
+#line 210 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp108_ = jsdoc_token_stream_lookTok (_tmp107_, 4);
+#line 210 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp109_ = _tmp108_;
+#line 210 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp110_ = _tmp109_->data;
+#line 210 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp89_ = g_strcmp0 (_tmp110_, ";") == 0;
+#line 210 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _g_object_unref0 (_tmp109_);
+#line 1959 "Walker.c"
+               } else {
+#line 205 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp89_ = FALSE;
+#line 1963 "Walker.c"
+               }
+#line 205 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               if (_tmp89_) {
+#line 1967 "Walker.c"
+                       GeeHashMap* _tmp111_;
+                       JSDOCTokenStream* _tmp112_;
+                       JSDOCToken* _tmp113_;
+                       JSDOCToken* _tmp114_;
+                       const gchar* _tmp115_;
+                       JSDOCTokenStream* _tmp116_;
+                       JSDOCToken* _tmp117_;
+                       JSDOCToken* _tmp118_;
+                       const gchar* _tmp119_;
+#line 216 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp111_ = aliases;
+#line 216 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp112_ = self->priv->ts;
+#line 216 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp113_ = jsdoc_token_stream_lookTok (_tmp112_, 1);
+#line 216 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp114_ = _tmp113_;
+#line 216 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp115_ = _tmp114_->data;
+#line 216 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp116_ = self->priv->ts;
+#line 216 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp117_ = jsdoc_token_stream_lookTok (_tmp116_, 3);
+#line 216 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp118_ = _tmp117_;
+#line 216 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp119_ = _tmp118_->data;
+#line 216 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       gee_abstract_map_set ((GeeAbstractMap*) _tmp111_, _tmp115_, _tmp119_);
+#line 216 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _g_object_unref0 (_tmp118_);
+#line 216 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _g_object_unref0 (_tmp114_);
+#line 2001 "Walker.c"
+               }
+#line 220 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp121_ = token;
+#line 220 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp122_ = _tmp121_->data;
+#line 220 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               if (g_strcmp0 (_tmp122_, "eval") == 0) {
+#line 220 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp120_ = TRUE;
+#line 2011 "Walker.c"
+               } else {
+                       JSDOCToken* _tmp123_;
+                       const gchar* _tmp124_;
+                       gboolean _tmp125_;
+#line 220 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp123_ = token;
+#line 220 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp124_ = _tmp123_->data;
+#line 220 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp125_ = g_regex_match (_thread_safe_regex_init (&_tmp_regex_0, "\\.eval$", 0), _tmp124_, 0, NULL);
+#line 220 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp120_ = _tmp125_;
+#line 2024 "Walker.c"
+               }
+#line 220 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               if (_tmp120_) {
+#line 221 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _g_object_unref0 (self->priv->currentDoc);
+#line 221 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       self->priv->currentDoc = NULL;
+#line 222 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       continue;
+#line 2034 "Walker.c"
+               }
+#line 232 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp126_ = token;
+#line 232 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp127_ = jsdoc_token_isType (_tmp126_, JSDOC_TOKEN_TYPE_NAME);
+#line 232 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               if (_tmp127_) {
+#line 2042 "Walker.c"
+                       gboolean _tmp128_ = FALSE;
+                       gboolean _tmp129_ = FALSE;
+                       gboolean _tmp130_ = FALSE;
+                       gboolean _tmp131_ = FALSE;
+                       gboolean _tmp132_ = FALSE;
+                       gboolean _tmp133_ = FALSE;
+                       JSDOCToken* _tmp134_;
+                       const gchar* _tmp135_;
+                       gboolean _tmp136_;
+                       gboolean _tmp209_ = FALSE;
+                       gboolean _tmp210_ = FALSE;
+                       gboolean _tmp211_ = FALSE;
+                       gboolean _tmp212_ = FALSE;
+                       gboolean _tmp213_ = FALSE;
+                       gboolean _tmp214_ = FALSE;
+                       JSDOCToken* _tmp215_;
+                       const gchar* _tmp216_;
+                       gboolean _tmp217_;
+                       gboolean _tmp287_ = FALSE;
+                       gboolean _tmp288_ = FALSE;
+                       gboolean _tmp289_ = FALSE;
+                       gboolean _tmp290_ = FALSE;
+                       JSDOCToken* _tmp291_;
+                       const gchar* _tmp292_;
+                       gboolean _tmp293_;
+                       gboolean _tmp343_ = FALSE;
+                       gboolean _tmp344_ = FALSE;
+                       gboolean _tmp345_ = FALSE;
+                       gboolean _tmp346_ = FALSE;
+                       JSDOCTokenStream* _tmp347_;
+                       JSDOCToken* _tmp348_;
+                       JSDOCToken* _tmp349_;
+                       const gchar* _tmp350_;
+                       gboolean _tmp351_;
+                       JSDOCDocComment* _tmp405_;
+#line 236 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp134_ = token;
+#line 236 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp135_ = _tmp134_->data;
+#line 236 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp136_ = g_regex_match (_thread_safe_regex_init (&_tmp_regex_1, "\\.extend$", 0), _tmp135_, 0, NULL);
+#line 236 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       if (_tmp136_) {
+#line 2086 "Walker.c"
+                               JSDOCTokenStream* _tmp137_;
+                               JSDOCToken* _tmp138_;
+                               JSDOCToken* _tmp139_;
+                               const gchar* _tmp140_;
+#line 237 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp137_ = self->priv->ts;
+#line 237 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp138_ = jsdoc_token_stream_lookTok (_tmp137_, 1);
+#line 237 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp139_ = _tmp138_;
+#line 237 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp140_ = _tmp139_->data;
+#line 237 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp133_ = g_strcmp0 (_tmp140_, "(") == 0;
+#line 237 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (_tmp139_);
+#line 2103 "Walker.c"
+                       } else {
+#line 236 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp133_ = FALSE;
+#line 2107 "Walker.c"
+                       }
+#line 236 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       if (_tmp133_) {
+#line 2111 "Walker.c"
+                               JSDOCTokenStream* _tmp141_;
+                               JSDOCToken* _tmp142_;
+                               JSDOCToken* _tmp143_;
+                               gboolean _tmp144_;
+#line 238 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp141_ = self->priv->ts;
+#line 238 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp142_ = jsdoc_token_stream_lookTok (_tmp141_, 2);
+#line 238 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp143_ = _tmp142_;
+#line 238 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp144_ = jsdoc_token_isType (_tmp143_, JSDOC_TOKEN_TYPE_NAME);
+#line 238 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp132_ = _tmp144_;
+#line 238 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (_tmp143_);
+#line 2128 "Walker.c"
+                       } else {
+#line 236 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp132_ = FALSE;
+#line 2132 "Walker.c"
+                       }
+#line 236 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       if (_tmp132_) {
+#line 2136 "Walker.c"
+                               JSDOCTokenStream* _tmp145_;
+                               JSDOCToken* _tmp146_;
+                               JSDOCToken* _tmp147_;
+                               const gchar* _tmp148_;
+#line 239 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp145_ = self->priv->ts;
+#line 239 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp146_ = jsdoc_token_stream_lookTok (_tmp145_, 3);
+#line 239 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp147_ = _tmp146_;
+#line 239 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp148_ = _tmp147_->data;
+#line 239 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp131_ = g_strcmp0 (_tmp148_, ",") == 0;
+#line 239 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (_tmp147_);
+#line 2153 "Walker.c"
+                       } else {
+#line 236 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp131_ = FALSE;
+#line 2157 "Walker.c"
+                       }
+#line 236 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       if (_tmp131_) {
+#line 2161 "Walker.c"
+                               JSDOCTokenStream* _tmp149_;
+                               JSDOCToken* _tmp150_;
+                               JSDOCToken* _tmp151_;
+                               gboolean _tmp152_;
+#line 240 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp149_ = self->priv->ts;
+#line 240 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp150_ = jsdoc_token_stream_lookTok (_tmp149_, 4);
+#line 240 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp151_ = _tmp150_;
+#line 240 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp152_ = jsdoc_token_isType (_tmp151_, JSDOC_TOKEN_TYPE_NAME);
+#line 240 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp130_ = _tmp152_;
+#line 240 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (_tmp151_);
+#line 2178 "Walker.c"
+                       } else {
+#line 236 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp130_ = FALSE;
+#line 2182 "Walker.c"
+                       }
+#line 236 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       if (_tmp130_) {
+#line 2186 "Walker.c"
+                               JSDOCTokenStream* _tmp153_;
+                               JSDOCToken* _tmp154_;
+                               JSDOCToken* _tmp155_;
+                               const gchar* _tmp156_;
+#line 241 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp153_ = self->priv->ts;
+#line 241 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp154_ = jsdoc_token_stream_lookTok (_tmp153_, 5);
+#line 241 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp155_ = _tmp154_;
+#line 241 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp156_ = _tmp155_->data;
+#line 241 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp129_ = g_strcmp0 (_tmp156_, ",") == 0;
+#line 241 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (_tmp155_);
+#line 2203 "Walker.c"
+                       } else {
+#line 236 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp129_ = FALSE;
+#line 2207 "Walker.c"
+                       }
+#line 236 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       if (_tmp129_) {
+#line 2211 "Walker.c"
+                               JSDOCTokenStream* _tmp157_;
+                               JSDOCToken* _tmp158_;
+                               JSDOCToken* _tmp159_;
+                               const gchar* _tmp160_;
+#line 242 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp157_ = self->priv->ts;
+#line 242 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp158_ = jsdoc_token_stream_lookTok (_tmp157_, 6);
+#line 242 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp159_ = _tmp158_;
+#line 242 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp160_ = _tmp159_->data;
+#line 242 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp128_ = g_strcmp0 (_tmp160_, "{") == 0;
+#line 242 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (_tmp159_);
+#line 2228 "Walker.c"
+                       } else {
+#line 236 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp128_ = FALSE;
+#line 2232 "Walker.c"
+                       }
+#line 236 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       if (_tmp128_) {
+#line 2236 "Walker.c"
+                               JSDOCTokenStream* _tmp161_;
+                               JSDOCToken* _tmp162_;
+                               JSDOCToken* _tmp163_;
+                               JSDOCTokenStream* _tmp164_;
+                               JSDOCToken* _tmp165_;
+                               JSDOCToken* _tmp166_;
+                               const gchar* _tmp167_;
+                               gchar* _tmp168_;
+                               JSDOCDocComment* _tmp169_;
+                               JSDOCTokenStream* _tmp171_;
+                               JSDOCToken* _tmp172_;
+                               JSDOCToken* _tmp173_;
+                               JSDOCTokenStream* _tmp174_;
+                               JSDOCToken* _tmp175_;
+                               JSDOCToken* _tmp176_;
+                               JSDOCTokenStream* _tmp177_;
+                               JSDOCToken* _tmp178_;
+                               JSDOCToken* _tmp179_;
+                               JSDOCTokenStream* _tmp180_;
+                               JSDOCToken* _tmp181_;
+                               GeeHashMap* _tmp182_;
+                               const gchar* _tmp183_;
+                               gchar* _tmp184_;
+                               JSDOCScope* fnScope = NULL;
+                               gint _tmp185_;
+                               JSDOCScope* _tmp186_;
+                               JSDOCToken* _tmp187_;
+                               gint _tmp188_;
+                               const gchar* _tmp189_;
+                               gchar* _tmp190_;
+                               gchar* _tmp191_;
+                               gchar* _tmp192_;
+                               gchar* _tmp193_;
+                               const gchar* _tmp194_;
+                               gchar* _tmp195_;
+                               gchar* _tmp196_;
+                               gchar* _tmp197_;
+                               gchar* _tmp198_;
+                               JSDOCScope* _tmp199_;
+                               JSDOCScope* _tmp200_;
+                               GeeHashMap* _tmp201_;
+                               JSDOCTokenStream* _tmp202_;
+                               gint _tmp203_;
+                               JSDOCScope* _tmp204_;
+                               JSDOCScope* _tmp205_;
+                               JSDOCScope* _tmp206_;
+                               JSDOCScope* _tmp207_;
+                               gint _tmp208_;
+#line 246 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp161_ = self->priv->ts;
+#line 246 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp162_ = jsdoc_token_stream_nextTok (_tmp161_);
+#line 246 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp163_ = _tmp162_;
+#line 246 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (_tmp163_);
+#line 247 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp164_ = self->priv->ts;
+#line 247 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp165_ = jsdoc_token_stream_nextTok (_tmp164_);
+#line 247 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (token);
+#line 247 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               token = _tmp165_;
+#line 248 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp166_ = token;
+#line 248 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp167_ = _tmp166_->data;
+#line 248 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp168_ = g_strdup (_tmp167_);
+#line 248 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_free0 (scopeName);
+#line 248 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               scopeName = _tmp168_;
+#line 250 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp169_ = self->priv->currentDoc;
+#line 250 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               if (_tmp169_ != NULL) {
+#line 2315 "Walker.c"
+                                       const gchar* _tmp170_;
+#line 251 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp170_ = scopeName;
+#line 251 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       jsdoc_walker_addSymbol (self, _tmp170_, FALSE, "OBJECT");
+#line 2321 "Walker.c"
+                               }
+#line 254 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp171_ = self->priv->ts;
+#line 254 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp172_ = jsdoc_token_stream_nextTok (_tmp171_);
+#line 254 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp173_ = _tmp172_;
+#line 254 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (_tmp173_);
+#line 255 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp174_ = self->priv->ts;
+#line 255 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp175_ = jsdoc_token_stream_nextTok (_tmp174_);
+#line 255 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp176_ = _tmp175_;
+#line 255 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (_tmp176_);
+#line 258 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp177_ = self->priv->ts;
+#line 258 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp178_ = jsdoc_token_stream_nextTok (_tmp177_);
+#line 258 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp179_ = _tmp178_;
+#line 258 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (_tmp179_);
+#line 259 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp180_ = self->priv->ts;
+#line 259 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp181_ = jsdoc_token_stream_nextTok (_tmp180_);
+#line 259 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (token);
+#line 259 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               token = _tmp181_;
+#line 261 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp182_ = aliases;
+#line 261 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp183_ = scopeName;
+#line 261 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp184_ = jsdoc_walker_fixAlias (self, _tmp182_, _tmp183_, FALSE);
+#line 261 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_free0 (scopeName);
+#line 261 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               scopeName = _tmp184_;
+#line 263 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp185_ = self->priv->braceNesting;
+#line 263 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp186_ = scope;
+#line 263 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp187_ = token;
+#line 263 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp188_ = _tmp187_->id;
+#line 263 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp189_ = scopeName;
+#line 263 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp190_ = g_strconcat ("$this$=", _tmp189_, NULL);
+#line 263 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp191_ = _tmp190_;
+#line 263 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp192_ = g_strconcat (_tmp191_, "|", NULL);
+#line 263 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp193_ = _tmp192_;
+#line 263 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp194_ = scopeName;
+#line 263 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp195_ = g_strconcat (_tmp193_, _tmp194_, NULL);
+#line 263 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp196_ = _tmp195_;
+#line 263 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp197_ = g_strconcat (_tmp196_, ".prototype", NULL);
+#line 263 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp198_ = _tmp197_;
+#line 263 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp199_ = jsdoc_scope_new (_tmp185_, _tmp186_, _tmp188_, _tmp198_, NULL);
+#line 263 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp200_ = _tmp199_;
+#line 263 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_free0 (_tmp198_);
+#line 263 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_free0 (_tmp196_);
+#line 263 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_free0 (_tmp193_);
+#line 263 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_free0 (_tmp191_);
+#line 263 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               fnScope = _tmp200_;
+#line 268 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp201_ = self->priv->indexedScopes;
+#line 268 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp202_ = self->priv->ts;
+#line 268 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp203_ = _tmp202_->cursor;
+#line 268 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp204_ = fnScope;
+#line 268 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               gee_abstract_map_set ((GeeAbstractMap*) _tmp201_, (gpointer) ((gintptr) _tmp203_), _tmp204_);
+#line 269 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp205_ = fnScope;
+#line 269 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp206_ = _g_object_ref0 (_tmp205_);
+#line 269 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (scope);
+#line 269 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               scope = _tmp206_;
+#line 270 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp207_ = fnScope;
+#line 270 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               jsdoc_walker_scopesIn (self, _tmp207_);
+#line 272 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp208_ = locBraceNest;
+#line 272 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               locBraceNest = _tmp208_ + 1;
+#line 274 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (fnScope);
+#line 274 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               continue;
+#line 2437 "Walker.c"
+                       }
+#line 280 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp215_ = token;
+#line 280 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp216_ = _tmp215_->data;
+#line 280 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp217_ = g_regex_match (_thread_safe_regex_init (&_tmp_regex_2, "\\.extend$", 0), _tmp216_, 0, NULL);
+#line 280 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       if (_tmp217_) {
+#line 2447 "Walker.c"
+                               JSDOCTokenStream* _tmp218_;
+                               JSDOCToken* _tmp219_;
+                               JSDOCToken* _tmp220_;
+                               gboolean _tmp221_;
+#line 281 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp218_ = self->priv->ts;
+#line 281 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp219_ = jsdoc_token_stream_lookTok (_tmp218_, -2);
+#line 281 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp220_ = _tmp219_;
+#line 281 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp221_ = jsdoc_token_isType (_tmp220_, JSDOC_TOKEN_TYPE_NAME);
+#line 281 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp214_ = _tmp221_;
+#line 281 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (_tmp220_);
+#line 2464 "Walker.c"
+                       } else {
+#line 280 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp214_ = FALSE;
+#line 2468 "Walker.c"
+                       }
+#line 280 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       if (_tmp214_) {
+#line 2472 "Walker.c"
+                               JSDOCTokenStream* _tmp222_;
+                               JSDOCToken* _tmp223_;
+                               JSDOCToken* _tmp224_;
+                               const gchar* _tmp225_;
+#line 282 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp222_ = self->priv->ts;
+#line 282 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp223_ = jsdoc_token_stream_lookTok (_tmp222_, -1);
+#line 282 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp224_ = _tmp223_;
+#line 282 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp225_ = _tmp224_->data;
+#line 282 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp213_ = g_strcmp0 (_tmp225_, "=") == 0;
+#line 282 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (_tmp224_);
+#line 2489 "Walker.c"
+                       } else {
+#line 280 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp213_ = FALSE;
+#line 2493 "Walker.c"
+                       }
+#line 280 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       if (_tmp213_) {
+#line 2497 "Walker.c"
+                               JSDOCTokenStream* _tmp226_;
+                               JSDOCToken* _tmp227_;
+                               JSDOCToken* _tmp228_;
+                               const gchar* _tmp229_;
+#line 283 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp226_ = self->priv->ts;
+#line 283 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp227_ = jsdoc_token_stream_lookTok (_tmp226_, 1);
+#line 283 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp228_ = _tmp227_;
+#line 283 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp229_ = _tmp228_->data;
+#line 283 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp212_ = g_strcmp0 (_tmp229_, "(") == 0;
+#line 283 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (_tmp228_);
+#line 2514 "Walker.c"
+                       } else {
+#line 280 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp212_ = FALSE;
+#line 2518 "Walker.c"
+                       }
+#line 280 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       if (_tmp212_) {
+#line 2522 "Walker.c"
+                               JSDOCTokenStream* _tmp230_;
+                               JSDOCToken* _tmp231_;
+                               JSDOCToken* _tmp232_;
+                               gboolean _tmp233_;
+#line 284 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp230_ = self->priv->ts;
+#line 284 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp231_ = jsdoc_token_stream_lookTok (_tmp230_, 2);
+#line 284 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp232_ = _tmp231_;
+#line 284 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp233_ = jsdoc_token_isType (_tmp232_, JSDOC_TOKEN_TYPE_NAME);
+#line 284 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp211_ = _tmp233_;
+#line 284 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (_tmp232_);
+#line 2539 "Walker.c"
+                       } else {
+#line 280 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp211_ = FALSE;
+#line 2543 "Walker.c"
+                       }
+#line 280 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       if (_tmp211_) {
+#line 2547 "Walker.c"
+                               JSDOCTokenStream* _tmp234_;
+                               JSDOCToken* _tmp235_;
+                               JSDOCToken* _tmp236_;
+                               const gchar* _tmp237_;
+#line 285 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp234_ = self->priv->ts;
+#line 285 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp235_ = jsdoc_token_stream_lookTok (_tmp234_, 3);
+#line 285 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp236_ = _tmp235_;
+#line 285 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp237_ = _tmp236_->data;
+#line 285 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp210_ = g_strcmp0 (_tmp237_, ",") == 0;
+#line 285 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (_tmp236_);
+#line 2564 "Walker.c"
+                       } else {
+#line 280 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp210_ = FALSE;
+#line 2568 "Walker.c"
+                       }
+#line 280 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       if (_tmp210_) {
+#line 2572 "Walker.c"
+                               JSDOCTokenStream* _tmp238_;
+                               JSDOCToken* _tmp239_;
+                               JSDOCToken* _tmp240_;
+                               const gchar* _tmp241_;
+#line 286 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp238_ = self->priv->ts;
+#line 286 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp239_ = jsdoc_token_stream_lookTok (_tmp238_, 4);
+#line 286 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp240_ = _tmp239_;
+#line 286 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp241_ = _tmp240_->data;
+#line 286 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp209_ = g_strcmp0 (_tmp241_, "{") == 0;
+#line 286 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (_tmp240_);
+#line 2589 "Walker.c"
+                       } else {
+#line 280 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp209_ = FALSE;
+#line 2593 "Walker.c"
+                       }
+#line 280 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       if (_tmp209_) {
+#line 2597 "Walker.c"
+                               JSDOCTokenStream* _tmp242_;
+                               JSDOCToken* _tmp243_;
+                               JSDOCToken* _tmp244_;
+                               const gchar* _tmp245_;
+                               gchar* _tmp246_;
+                               JSDOCDocComment* _tmp247_;
+                               JSDOCTokenStream* _tmp249_;
+                               JSDOCToken* _tmp250_;
+                               JSDOCToken* _tmp251_;
+                               JSDOCTokenStream* _tmp252_;
+                               JSDOCToken* _tmp253_;
+                               JSDOCToken* _tmp254_;
+                               JSDOCTokenStream* _tmp255_;
+                               JSDOCToken* _tmp256_;
+                               JSDOCToken* _tmp257_;
+                               JSDOCTokenStream* _tmp258_;
+                               JSDOCToken* _tmp259_;
+                               GeeHashMap* _tmp260_;
+                               const gchar* _tmp261_;
+                               gchar* _tmp262_;
+                               JSDOCScope* fnScope = NULL;
+                               gint _tmp263_;
+                               JSDOCScope* _tmp264_;
+                               JSDOCToken* _tmp265_;
+                               gint _tmp266_;
+                               const gchar* _tmp267_;
+                               gchar* _tmp268_;
+                               gchar* _tmp269_;
+                               gchar* _tmp270_;
+                               gchar* _tmp271_;
+                               const gchar* _tmp272_;
+                               gchar* _tmp273_;
+                               gchar* _tmp274_;
+                               gchar* _tmp275_;
+                               gchar* _tmp276_;
+                               JSDOCScope* _tmp277_;
+                               JSDOCScope* _tmp278_;
+                               GeeHashMap* _tmp279_;
+                               JSDOCTokenStream* _tmp280_;
+                               gint _tmp281_;
+                               JSDOCScope* _tmp282_;
+                               JSDOCScope* _tmp283_;
+                               JSDOCScope* _tmp284_;
+                               JSDOCScope* _tmp285_;
+                               gint _tmp286_;
+#line 289 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp242_ = self->priv->ts;
+#line 289 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp243_ = jsdoc_token_stream_lookTok (_tmp242_, -2);
+#line 289 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (token);
+#line 289 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               token = _tmp243_;
+#line 290 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp244_ = token;
+#line 290 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp245_ = _tmp244_->data;
+#line 290 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp246_ = g_strdup (_tmp245_);
+#line 290 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_free0 (scopeName);
+#line 290 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               scopeName = _tmp246_;
+#line 291 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp247_ = self->priv->currentDoc;
+#line 291 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               if (_tmp247_ != NULL) {
+#line 2665 "Walker.c"
+                                       const gchar* _tmp248_;
+#line 292 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp248_ = scopeName;
+#line 292 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       jsdoc_walker_addSymbol (self, _tmp248_, FALSE, "OBJECT");
+#line 2671 "Walker.c"
+                               }
+#line 295 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp249_ = self->priv->ts;
+#line 295 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp250_ = jsdoc_token_stream_nextTok (_tmp249_);
+#line 295 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp251_ = _tmp250_;
+#line 295 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (_tmp251_);
+#line 296 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp252_ = self->priv->ts;
+#line 296 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp253_ = jsdoc_token_stream_nextTok (_tmp252_);
+#line 296 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp254_ = _tmp253_;
+#line 296 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (_tmp254_);
+#line 298 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp255_ = self->priv->ts;
+#line 298 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp256_ = jsdoc_token_stream_nextTok (_tmp255_);
+#line 298 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp257_ = _tmp256_;
+#line 298 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (_tmp257_);
+#line 299 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp258_ = self->priv->ts;
+#line 299 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp259_ = jsdoc_token_stream_nextTok (_tmp258_);
+#line 299 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (token);
+#line 299 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               token = _tmp259_;
+#line 302 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp260_ = aliases;
+#line 302 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp261_ = scopeName;
+#line 302 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp262_ = jsdoc_walker_fixAlias (self, _tmp260_, _tmp261_, FALSE);
+#line 302 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_free0 (scopeName);
+#line 302 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               scopeName = _tmp262_;
+#line 303 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp263_ = self->priv->braceNesting;
+#line 303 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp264_ = scope;
+#line 303 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp265_ = token;
+#line 303 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp266_ = _tmp265_->id;
+#line 303 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp267_ = scopeName;
+#line 303 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp268_ = g_strconcat ("$this$=", _tmp267_, NULL);
+#line 303 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp269_ = _tmp268_;
+#line 303 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp270_ = g_strconcat (_tmp269_, "|", NULL);
+#line 303 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp271_ = _tmp270_;
+#line 303 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp272_ = scopeName;
+#line 303 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp273_ = g_strconcat (_tmp271_, _tmp272_, NULL);
+#line 303 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp274_ = _tmp273_;
+#line 303 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp275_ = g_strconcat (_tmp274_, ".prototype", NULL);
+#line 303 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp276_ = _tmp275_;
+#line 303 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp277_ = jsdoc_scope_new (_tmp263_, _tmp264_, _tmp266_, _tmp276_, NULL);
+#line 303 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp278_ = _tmp277_;
+#line 303 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_free0 (_tmp276_);
+#line 303 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_free0 (_tmp274_);
+#line 303 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_free0 (_tmp271_);
+#line 303 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_free0 (_tmp269_);
+#line 303 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               fnScope = _tmp278_;
+#line 309 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp279_ = self->priv->indexedScopes;
+#line 309 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp280_ = self->priv->ts;
+#line 309 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp281_ = _tmp280_->cursor;
+#line 309 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp282_ = fnScope;
+#line 309 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               gee_abstract_map_set ((GeeAbstractMap*) _tmp279_, (gpointer) ((gintptr) _tmp281_), _tmp282_);
+#line 310 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp283_ = fnScope;
+#line 310 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp284_ = _g_object_ref0 (_tmp283_);
+#line 310 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (scope);
+#line 310 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               scope = _tmp284_;
+#line 311 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp285_ = fnScope;
+#line 311 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               jsdoc_walker_scopesIn (self, _tmp285_);
+#line 313 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp286_ = locBraceNest;
+#line 313 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               locBraceNest = _tmp286_ + 1;
+#line 315 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (fnScope);
+#line 315 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               continue;
+#line 2787 "Walker.c"
+                       }
+#line 331 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp291_ = token;
+#line 331 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp292_ = _tmp291_->data;
+#line 331 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp293_ = g_regex_match (_thread_safe_regex_init (&_tmp_regex_3, "\\.(applyIf|apply)$", 0), _tmp292_, 0, NULL);
+#line 331 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       if (_tmp293_) {
+#line 2797 "Walker.c"
+                               JSDOCTokenStream* _tmp294_;
+                               JSDOCToken* _tmp295_;
+                               JSDOCToken* _tmp296_;
+                               const gchar* _tmp297_;
+#line 332 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp294_ = self->priv->ts;
+#line 332 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp295_ = jsdoc_token_stream_lookTok (_tmp294_, 1);
+#line 332 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp296_ = _tmp295_;
+#line 332 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp297_ = _tmp296_->data;
+#line 332 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp290_ = g_strcmp0 (_tmp297_, "(") == 0;
+#line 332 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (_tmp296_);
+#line 2814 "Walker.c"
+                       } else {
+#line 331 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp290_ = FALSE;
+#line 2818 "Walker.c"
+                       }
+#line 331 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       if (_tmp290_) {
+#line 2822 "Walker.c"
+                               JSDOCTokenStream* _tmp298_;
+                               JSDOCToken* _tmp299_;
+                               JSDOCToken* _tmp300_;
+                               gboolean _tmp301_;
+#line 333 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp298_ = self->priv->ts;
+#line 333 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp299_ = jsdoc_token_stream_lookTok (_tmp298_, 2);
+#line 333 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp300_ = _tmp299_;
+#line 333 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp301_ = jsdoc_token_isType (_tmp300_, JSDOC_TOKEN_TYPE_NAME);
+#line 333 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp289_ = _tmp301_;
+#line 333 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (_tmp300_);
+#line 2839 "Walker.c"
+                       } else {
+#line 331 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp289_ = FALSE;
+#line 2843 "Walker.c"
+                       }
+#line 331 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       if (_tmp289_) {
+#line 2847 "Walker.c"
+                               JSDOCTokenStream* _tmp302_;
+                               JSDOCToken* _tmp303_;
+                               JSDOCToken* _tmp304_;
+                               const gchar* _tmp305_;
+#line 334 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp302_ = self->priv->ts;
+#line 334 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp303_ = jsdoc_token_stream_lookTok (_tmp302_, 3);
+#line 334 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp304_ = _tmp303_;
+#line 334 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp305_ = _tmp304_->data;
+#line 334 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp288_ = g_strcmp0 (_tmp305_, ",") == 0;
+#line 334 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (_tmp304_);
+#line 2864 "Walker.c"
+                       } else {
+#line 331 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp288_ = FALSE;
+#line 2868 "Walker.c"
+                       }
+#line 331 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       if (_tmp288_) {
+#line 2872 "Walker.c"
+                               JSDOCTokenStream* _tmp306_;
+                               JSDOCToken* _tmp307_;
+                               JSDOCToken* _tmp308_;
+                               const gchar* _tmp309_;
+#line 335 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp306_ = self->priv->ts;
+#line 335 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp307_ = jsdoc_token_stream_lookTok (_tmp306_, 4);
+#line 335 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp308_ = _tmp307_;
+#line 335 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp309_ = _tmp308_->data;
+#line 335 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp287_ = g_strcmp0 (_tmp309_, "{") == 0;
+#line 335 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (_tmp308_);
+#line 2889 "Walker.c"
+                       } else {
+#line 331 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp287_ = FALSE;
+#line 2893 "Walker.c"
+                       }
+#line 331 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       if (_tmp287_) {
+#line 2897 "Walker.c"
+                               JSDOCTokenStream* _tmp310_;
+                               JSDOCToken* _tmp311_;
+                               JSDOCToken* _tmp312_;
+                               JSDOCTokenStream* _tmp313_;
+                               JSDOCToken* _tmp314_;
+                               JSDOCToken* _tmp315_;
+                               const gchar* _tmp316_;
+                               gchar* _tmp317_;
+                               JSDOCDocComment* _tmp318_;
+                               JSDOCTokenStream* _tmp320_;
+                               JSDOCToken* _tmp321_;
+                               JSDOCToken* _tmp322_;
+                               JSDOCTokenStream* _tmp323_;
+                               JSDOCToken* _tmp324_;
+                               JSDOCToken* _tmp325_;
+                               GeeHashMap* _tmp326_;
+                               const gchar* _tmp327_;
+                               gchar* _tmp328_;
+                               JSDOCScope* fnScope = NULL;
+                               gint _tmp329_;
+                               JSDOCScope* _tmp330_;
+                               JSDOCToken* _tmp331_;
+                               gint _tmp332_;
+                               const gchar* _tmp333_;
+                               JSDOCScope* _tmp334_;
+                               GeeHashMap* _tmp335_;
+                               JSDOCTokenStream* _tmp336_;
+                               gint _tmp337_;
+                               JSDOCScope* _tmp338_;
+                               JSDOCScope* _tmp339_;
+                               JSDOCScope* _tmp340_;
+                               JSDOCScope* _tmp341_;
+                               gint _tmp342_;
+#line 338 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp310_ = self->priv->ts;
+#line 338 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp311_ = jsdoc_token_stream_nextTok (_tmp310_);
+#line 338 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp312_ = _tmp311_;
+#line 338 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (_tmp312_);
+#line 342 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp313_ = self->priv->ts;
+#line 342 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp314_ = jsdoc_token_stream_nextTok (_tmp313_);
+#line 342 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (token);
+#line 342 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               token = _tmp314_;
+#line 343 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp315_ = token;
+#line 343 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp316_ = _tmp315_->data;
+#line 343 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp317_ = g_strdup (_tmp316_);
+#line 343 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_free0 (scopeName);
+#line 343 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               scopeName = _tmp317_;
+#line 346 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp318_ = self->priv->currentDoc;
+#line 346 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               if (_tmp318_ != NULL) {
+#line 2961 "Walker.c"
+                                       const gchar* _tmp319_;
+#line 347 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp319_ = scopeName;
+#line 347 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       jsdoc_walker_addSymbol (self, _tmp319_, FALSE, "OBJECT");
+#line 2967 "Walker.c"
+                               }
+#line 352 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp320_ = self->priv->ts;
+#line 352 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp321_ = jsdoc_token_stream_nextTok (_tmp320_);
+#line 352 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp322_ = _tmp321_;
+#line 352 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (_tmp322_);
+#line 353 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp323_ = self->priv->ts;
+#line 353 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp324_ = jsdoc_token_stream_nextTok (_tmp323_);
+#line 353 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp325_ = _tmp324_;
+#line 353 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (_tmp325_);
+#line 354 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp326_ = aliases;
+#line 354 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp327_ = scopeName;
+#line 354 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp328_ = jsdoc_walker_fixAlias (self, _tmp326_, _tmp327_, FALSE);
+#line 354 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_free0 (scopeName);
+#line 354 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               scopeName = _tmp328_;
+#line 355 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp329_ = self->priv->braceNesting;
+#line 355 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp330_ = scope;
+#line 355 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp331_ = token;
+#line 355 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp332_ = _tmp331_->id;
+#line 355 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp333_ = scopeName;
+#line 355 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp334_ = jsdoc_scope_new (_tmp329_, _tmp330_, _tmp332_, _tmp333_, NULL);
+#line 355 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               fnScope = _tmp334_;
+#line 359 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp335_ = self->priv->indexedScopes;
+#line 359 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp336_ = self->priv->ts;
+#line 359 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp337_ = _tmp336_->cursor;
+#line 359 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp338_ = fnScope;
+#line 359 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               gee_abstract_map_set ((GeeAbstractMap*) _tmp335_, (gpointer) ((gintptr) _tmp337_), _tmp338_);
+#line 360 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp339_ = fnScope;
+#line 360 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp340_ = _g_object_ref0 (_tmp339_);
+#line 360 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (scope);
+#line 360 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               scope = _tmp340_;
+#line 361 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp341_ = fnScope;
+#line 361 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               jsdoc_walker_scopesIn (self, _tmp341_);
+#line 363 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp342_ = locBraceNest;
+#line 363 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               locBraceNest = _tmp342_ + 1;
+#line 365 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (fnScope);
+#line 365 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               continue;
+#line 3039 "Walker.c"
+                       }
+#line 381 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp347_ = self->priv->ts;
+#line 381 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp348_ = jsdoc_token_stream_lookTok (_tmp347_, 1);
+#line 381 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp349_ = _tmp348_;
+#line 381 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp350_ = _tmp349_->data;
+#line 381 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp351_ = g_strcmp0 (_tmp350_, "=") == 0;
+#line 381 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _g_object_unref0 (_tmp349_);
+#line 381 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       if (_tmp351_) {
+#line 3055 "Walker.c"
+                               JSDOCTokenStream* _tmp352_;
+                               JSDOCToken* _tmp353_;
+                               JSDOCToken* _tmp354_;
+                               gboolean _tmp355_;
+#line 382 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp352_ = self->priv->ts;
+#line 382 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp353_ = jsdoc_token_stream_lookTok (_tmp352_, 2);
+#line 382 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp354_ = _tmp353_;
+#line 382 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp355_ = jsdoc_token_isName (_tmp354_, JSDOC_TOKEN_NAME_NEW);
+#line 382 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp346_ = _tmp355_;
+#line 382 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (_tmp354_);
+#line 3072 "Walker.c"
+                       } else {
+#line 381 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp346_ = FALSE;
+#line 3076 "Walker.c"
+                       }
+#line 381 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       if (_tmp346_) {
+#line 3080 "Walker.c"
+                               JSDOCTokenStream* _tmp356_;
+                               JSDOCToken* _tmp357_;
+                               JSDOCToken* _tmp358_;
+                               gboolean _tmp359_;
+#line 383 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp356_ = self->priv->ts;
+#line 383 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp357_ = jsdoc_token_stream_lookTok (_tmp356_, 3);
+#line 383 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp358_ = _tmp357_;
+#line 383 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp359_ = jsdoc_token_isType (_tmp358_, JSDOC_TOKEN_TYPE_NAME);
+#line 383 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp345_ = _tmp359_;
+#line 383 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (_tmp358_);
+#line 3097 "Walker.c"
+                       } else {
+#line 381 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp345_ = FALSE;
+#line 3101 "Walker.c"
+                       }
+#line 381 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       if (_tmp345_) {
+#line 3105 "Walker.c"
+                               JSDOCTokenStream* _tmp360_;
+                               JSDOCToken* _tmp361_;
+                               JSDOCToken* _tmp362_;
+                               const gchar* _tmp363_;
+#line 384 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp360_ = self->priv->ts;
+#line 384 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp361_ = jsdoc_token_stream_lookTok (_tmp360_, 4);
+#line 384 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp362_ = _tmp361_;
+#line 384 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp363_ = _tmp362_->data;
+#line 384 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp344_ = g_strcmp0 (_tmp363_, "(") == 0;
+#line 384 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (_tmp362_);
+#line 3122 "Walker.c"
+                       } else {
+#line 381 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp344_ = FALSE;
+#line 3126 "Walker.c"
+                       }
+#line 381 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       if (_tmp344_) {
+#line 3130 "Walker.c"
+                               JSDOCTokenStream* _tmp364_;
+                               JSDOCToken* _tmp365_;
+                               JSDOCToken* _tmp366_;
+                               const gchar* _tmp367_;
+#line 385 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp364_ = self->priv->ts;
+#line 385 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp365_ = jsdoc_token_stream_lookTok (_tmp364_, 5);
+#line 385 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp366_ = _tmp365_;
+#line 385 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp367_ = _tmp366_->data;
+#line 385 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp343_ = g_strcmp0 (_tmp367_, "{") == 0;
+#line 385 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (_tmp366_);
+#line 3147 "Walker.c"
+                       } else {
+#line 381 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp343_ = FALSE;
+#line 3151 "Walker.c"
+                       }
+#line 381 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       if (_tmp343_) {
+#line 3155 "Walker.c"
+                               JSDOCToken* _tmp368_;
+                               const gchar* _tmp369_;
+                               gchar* _tmp370_;
+                               JSDOCDocComment* _tmp371_;
+                               JSDOCTokenStream* _tmp373_;
+                               JSDOCToken* _tmp374_;
+                               JSDOCToken* _tmp375_;
+                               JSDOCTokenStream* _tmp376_;
+                               JSDOCToken* _tmp377_;
+                               JSDOCToken* _tmp378_;
+                               JSDOCTokenStream* _tmp379_;
+                               JSDOCToken* _tmp380_;
+                               JSDOCToken* _tmp381_;
+                               JSDOCTokenStream* _tmp382_;
+                               JSDOCToken* _tmp383_;
+                               JSDOCToken* _tmp384_;
+                               JSDOCTokenStream* _tmp385_;
+                               JSDOCToken* _tmp386_;
+                               JSDOCToken* _tmp387_;
+                               GeeHashMap* _tmp388_;
+                               const gchar* _tmp389_;
+                               gchar* _tmp390_;
+                               JSDOCScope* fnScope = NULL;
+                               gint _tmp391_;
+                               JSDOCScope* _tmp392_;
+                               JSDOCToken* _tmp393_;
+                               gint _tmp394_;
+                               const gchar* _tmp395_;
+                               JSDOCScope* _tmp396_;
+                               GeeHashMap* _tmp397_;
+                               JSDOCTokenStream* _tmp398_;
+                               gint _tmp399_;
+                               JSDOCScope* _tmp400_;
+                               JSDOCScope* _tmp401_;
+                               JSDOCScope* _tmp402_;
+                               JSDOCScope* _tmp403_;
+                               gint _tmp404_;
+#line 387 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp368_ = token;
+#line 387 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp369_ = _tmp368_->data;
+#line 387 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp370_ = g_strdup (_tmp369_);
+#line 387 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_free0 (scopeName);
+#line 387 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               scopeName = _tmp370_;
+#line 388 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp371_ = self->priv->currentDoc;
+#line 388 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               if (_tmp371_ != NULL) {
+#line 3207 "Walker.c"
+                                       const gchar* _tmp372_;
+#line 389 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp372_ = scopeName;
+#line 389 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       jsdoc_walker_addSymbol (self, _tmp372_, FALSE, "OBJECT");
+#line 3213 "Walker.c"
+                               }
+#line 393 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp373_ = self->priv->ts;
+#line 393 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp374_ = jsdoc_token_stream_nextTok (_tmp373_);
+#line 393 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp375_ = _tmp374_;
+#line 393 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (_tmp375_);
+#line 394 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp376_ = self->priv->ts;
+#line 394 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp377_ = jsdoc_token_stream_nextTok (_tmp376_);
+#line 394 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp378_ = _tmp377_;
+#line 394 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (_tmp378_);
+#line 395 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp379_ = self->priv->ts;
+#line 395 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp380_ = jsdoc_token_stream_nextTok (_tmp379_);
+#line 395 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp381_ = _tmp380_;
+#line 395 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (_tmp381_);
+#line 396 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp382_ = self->priv->ts;
+#line 396 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp383_ = jsdoc_token_stream_nextTok (_tmp382_);
+#line 396 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp384_ = _tmp383_;
+#line 396 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (_tmp384_);
+#line 397 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp385_ = self->priv->ts;
+#line 397 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp386_ = jsdoc_token_stream_nextTok (_tmp385_);
+#line 397 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp387_ = _tmp386_;
+#line 397 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (_tmp387_);
+#line 399 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp388_ = aliases;
+#line 399 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp389_ = scopeName;
+#line 399 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp390_ = jsdoc_walker_fixAlias (self, _tmp388_, _tmp389_, FALSE);
+#line 399 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_free0 (scopeName);
+#line 399 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               scopeName = _tmp390_;
+#line 400 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp391_ = self->priv->braceNesting;
+#line 400 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp392_ = scope;
+#line 400 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp393_ = token;
+#line 400 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp394_ = _tmp393_->id;
+#line 400 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp395_ = scopeName;
+#line 400 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp396_ = jsdoc_scope_new (_tmp391_, _tmp392_, _tmp394_, _tmp395_, NULL);
+#line 400 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               fnScope = _tmp396_;
+#line 403 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp397_ = self->priv->indexedScopes;
+#line 403 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp398_ = self->priv->ts;
+#line 403 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp399_ = _tmp398_->cursor;
+#line 403 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp400_ = fnScope;
+#line 403 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               gee_abstract_map_set ((GeeAbstractMap*) _tmp397_, (gpointer) ((gintptr) _tmp399_), _tmp400_);
+#line 404 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp401_ = fnScope;
+#line 404 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp402_ = _g_object_ref0 (_tmp401_);
+#line 404 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (scope);
+#line 404 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               scope = _tmp402_;
+#line 405 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp403_ = fnScope;
+#line 405 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               jsdoc_walker_scopesIn (self, _tmp403_);
+#line 407 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp404_ = locBraceNest;
+#line 407 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               locBraceNest = _tmp404_ + 1;
+#line 410 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (fnScope);
+#line 410 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               continue;
+#line 3309 "Walker.c"
+                       }
+#line 422 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp405_ = self->priv->currentDoc;
+#line 422 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       if (_tmp405_ != NULL) {
+#line 3315 "Walker.c"
+                               gchar* atype = NULL;
+                               gchar* _tmp406_;
+                               gboolean _tmp407_ = FALSE;
+                               gboolean _tmp408_ = FALSE;
+                               JSDOCTokenStream* _tmp409_;
+                               JSDOCToken* _tmp410_;
+                               JSDOCToken* _tmp411_;
+                               const gchar* _tmp412_;
+                               gboolean _tmp413_;
+                               gchar* _tmp423_ = NULL;
+                               JSDOCTokenStream* _tmp424_;
+                               JSDOCToken* _tmp425_;
+                               JSDOCToken* _tmp426_;
+                               const gchar* _tmp427_;
+                               gboolean _tmp428_;
+                               const gchar* _tmp436_;
+#line 427 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp406_ = g_strdup ("OBJECT");
+#line 427 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               atype = _tmp406_;
+#line 429 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp409_ = self->priv->ts;
+#line 429 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp410_ = jsdoc_token_stream_lookTok (_tmp409_, 1);
+#line 429 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp411_ = _tmp410_;
+#line 429 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp412_ = _tmp411_->data;
+#line 429 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp413_ = g_strcmp0 (_tmp412_, ":") == 0;
+#line 429 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (_tmp411_);
+#line 429 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               if (_tmp413_) {
+#line 429 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp408_ = TRUE;
+#line 3352 "Walker.c"
+                               } else {
+                                       JSDOCTokenStream* _tmp414_;
+                                       JSDOCToken* _tmp415_;
+                                       JSDOCToken* _tmp416_;
+                                       const gchar* _tmp417_;
+#line 429 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp414_ = self->priv->ts;
+#line 429 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp415_ = jsdoc_token_stream_lookTok (_tmp414_, 1);
+#line 429 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp416_ = _tmp415_;
+#line 429 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp417_ = _tmp416_->data;
+#line 429 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp408_ = g_strcmp0 (_tmp417_, "=") == 0;
+#line 429 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _g_object_unref0 (_tmp416_);
+#line 3370 "Walker.c"
+                               }
+#line 429 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               if (_tmp408_) {
+#line 3374 "Walker.c"
+                                       JSDOCTokenStream* _tmp418_;
+                                       JSDOCToken* _tmp419_;
+                                       JSDOCToken* _tmp420_;
+                                       gboolean _tmp421_;
+#line 430 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp418_ = self->priv->ts;
+#line 430 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp419_ = jsdoc_token_stream_lookTok (_tmp418_, 2);
+#line 430 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp420_ = _tmp419_;
+#line 430 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp421_ = jsdoc_token_isName (_tmp420_, JSDOC_TOKEN_NAME_FUNCTION);
+#line 430 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp407_ = _tmp421_;
+#line 430 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _g_object_unref0 (_tmp420_);
+#line 3391 "Walker.c"
+                               } else {
+#line 429 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp407_ = FALSE;
+#line 3395 "Walker.c"
+                               }
+#line 429 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               if (_tmp407_) {
+#line 3399 "Walker.c"
+                                       gchar* _tmp422_;
+#line 434 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp422_ = g_strdup ("FUNCTION");
+#line 434 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _g_free0 (atype);
+#line 434 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       atype = _tmp422_;
+#line 3407 "Walker.c"
+                               }
+#line 440 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp424_ = self->priv->ts;
+#line 440 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp425_ = jsdoc_token_stream_lookTok (_tmp424_, -1);
+#line 440 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp426_ = _tmp425_;
+#line 440 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp427_ = _tmp426_->data;
+#line 440 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp428_ = g_strcmp0 (_tmp427_, ".") == 0;
+#line 440 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (_tmp426_);
+#line 440 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               if (_tmp428_) {
+#line 3423 "Walker.c"
+                                       JSDOCToken* _tmp429_;
+                                       const gchar* _tmp430_;
+                                       gchar* _tmp431_;
+#line 440 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp429_ = token;
+#line 440 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp430_ = _tmp429_->data;
+#line 440 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp431_ = g_strdup (_tmp430_);
+#line 440 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _g_free0 (_tmp423_);
+#line 440 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp423_ = _tmp431_;
+#line 3437 "Walker.c"
+                               } else {
+                                       GeeHashMap* _tmp432_;
+                                       JSDOCToken* _tmp433_;
+                                       const gchar* _tmp434_;
+                                       gchar* _tmp435_;
+#line 440 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp432_ = aliases;
+#line 440 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp433_ = token;
+#line 440 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp434_ = _tmp433_->data;
+#line 440 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp435_ = jsdoc_walker_fixAlias (self, _tmp432_, _tmp434_, FALSE);
+#line 440 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _g_free0 (_tmp423_);
+#line 440 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp423_ = _tmp435_;
+#line 3455 "Walker.c"
+                               }
+#line 439 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp436_ = atype;
+#line 439 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               jsdoc_walker_addSymbol (self, _tmp423_, FALSE, _tmp436_);
+#line 445 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (self->priv->currentDoc);
+#line 445 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               self->priv->currentDoc = NULL;
+#line 422 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_free0 (_tmp423_);
+#line 422 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_free0 (atype);
+#line 3469 "Walker.c"
+                       }
+#line 455 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       continue;
+#line 3473 "Walker.c"
+               }
+#line 462 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp437_ = token;
+#line 462 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp438_ = jsdoc_token_isType (_tmp437_, JSDOC_TOKEN_TYPE_STRN);
+#line 462 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               if (_tmp438_) {
+#line 3481 "Walker.c"
+                       JSDOCDocComment* _tmp439_;
+#line 463 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp439_ = self->priv->currentDoc;
+#line 463 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       if (_tmp439_ != NULL) {
+#line 3487 "Walker.c"
+                               JSDOCToken* _tmp440_;
+                               const gchar* _tmp441_;
+                               JSDOCToken* _tmp442_;
+                               const gchar* _tmp443_;
+                               gint _tmp444_;
+                               gint _tmp445_;
+                               gchar* _tmp446_;
+                               gchar* _tmp447_;
+#line 464 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp440_ = token;
+#line 464 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp441_ = _tmp440_->data;
+#line 464 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp442_ = token;
+#line 464 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp443_ = _tmp442_->data;
+#line 464 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp444_ = strlen (_tmp443_);
+#line 464 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp445_ = _tmp444_;
+#line 464 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp446_ = string_substring (_tmp441_, (glong) 1, (glong) (_tmp445_ - 1));
+#line 464 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp447_ = _tmp446_;
+#line 464 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               jsdoc_walker_addSymbol (self, _tmp447_, FALSE, "OBJECT");
+#line 464 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_free0 (_tmp447_);
+#line 3516 "Walker.c"
+                       }
+               }
+#line 471 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp448_ = token;
+#line 471 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp449_ = jsdoc_token_isName (_tmp448_, JSDOC_TOKEN_NAME_FUNCTION);
+#line 471 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               if (_tmp449_) {
+#line 3525 "Walker.c"
+                       JSDOCDocComment* _tmp450_;
+                       gboolean _tmp454_ = FALSE;
+                       JSDOCTokenStream* _tmp455_;
+                       JSDOCToken* _tmp456_;
+                       JSDOCToken* _tmp457_;
+                       const gchar* _tmp458_;
+                       gboolean _tmp459_;
+                       gboolean _tmp500_ = FALSE;
+                       gboolean _tmp501_ = FALSE;
+                       JSDOCTokenStream* _tmp502_;
+                       JSDOCToken* _tmp503_;
+                       JSDOCToken* _tmp504_;
+                       gboolean _tmp505_;
+                       gboolean _tmp506_;
+                       gboolean _tmp535_ = FALSE;
+                       gboolean _tmp536_ = FALSE;
+                       JSDOCTokenStream* _tmp537_;
+                       JSDOCToken* _tmp538_;
+                       JSDOCToken* _tmp539_;
+                       const gchar* _tmp540_;
+                       gboolean _tmp541_;
+                       JSDOCTokenStream* _tmp576_;
+                       JSDOCToken* _tmp577_;
+                       JSDOCToken* _tmp578_;
+                       gboolean _tmp579_;
+                       gboolean _tmp580_;
+                       JSDOCTokenStream* _tmp598_;
+                       JSDOCToken* _tmp599_;
+                       JSDOCToken* _tmp600_;
+                       gboolean _tmp601_;
+                       gboolean _tmp602_;
+                       JSDOCToken* _tmp620_;
+                       gchar* _tmp621_;
+                       gchar* _tmp622_;
+                       gchar* _tmp623_;
+                       gchar* _tmp624_;
+#line 475 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp450_ = self->priv->currentDoc;
+#line 475 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       if (_tmp450_ != NULL) {
+#line 3566 "Walker.c"
+                               JSDOCToken* _tmp451_;
+                               gchar* _tmp452_;
+                               gchar* _tmp453_;
+#line 476 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp451_ = token;
+#line 476 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp452_ = jsdoc_token_asString (_tmp451_);
+#line 476 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp453_ = _tmp452_;
+#line 476 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               g_error ("Walker.vala:476: Unhandled doc (TOKfunction) %s", _tmp453_);
+#line 476 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_free0 (_tmp453_);
+#line 3580 "Walker.c"
+                       }
+#line 487 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp455_ = self->priv->ts;
+#line 487 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp456_ = jsdoc_token_stream_lookTok (_tmp455_, -1);
+#line 487 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp457_ = _tmp456_;
+#line 487 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp458_ = _tmp457_->data;
+#line 487 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp459_ = g_strcmp0 (_tmp458_, "=") == 0;
+#line 487 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _g_object_unref0 (_tmp457_);
+#line 487 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       if (_tmp459_) {
+#line 3596 "Walker.c"
+                               JSDOCTokenStream* _tmp460_;
+                               JSDOCToken* _tmp461_;
+                               JSDOCToken* _tmp462_;
+                               gboolean _tmp463_;
+#line 488 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp460_ = self->priv->ts;
+#line 488 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp461_ = jsdoc_token_stream_lookTok (_tmp460_, -2);
+#line 488 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp462_ = _tmp461_;
+#line 488 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp463_ = jsdoc_token_isType (_tmp462_, JSDOC_TOKEN_TYPE_NAME);
+#line 488 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp454_ = _tmp463_;
+#line 488 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (_tmp462_);
+#line 3613 "Walker.c"
+                       } else {
+#line 487 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp454_ = FALSE;
+#line 3617 "Walker.c"
+                       }
+#line 486 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       if (_tmp454_) {
+#line 3621 "Walker.c"
+                               JSDOCTokenStream* _tmp464_;
+                               JSDOCToken* _tmp465_;
+                               JSDOCToken* _tmp466_;
+                               const gchar* _tmp467_;
+                               gchar* _tmp468_;
+                               JSDOCTokenStream* _tmp469_;
+                               GeeArrayList* _tmp470_;
+                               GeeArrayList* _tmp471_;
+                               JSDOCTokenStream* _tmp472_;
+                               JSDOCToken* _tmp473_;
+                               GeeHashMap* _tmp474_;
+                               const gchar* _tmp475_;
+                               gchar* _tmp476_;
+                               JSDOCScope* fnScope = NULL;
+                               gint _tmp477_;
+                               JSDOCScope* _tmp478_;
+                               JSDOCToken* _tmp479_;
+                               gint _tmp480_;
+                               const gchar* _tmp481_;
+                               gchar* _tmp482_;
+                               gchar* _tmp483_;
+                               gchar* _tmp484_;
+                               gchar* _tmp485_;
+                               const gchar* _tmp486_;
+                               gchar* _tmp487_;
+                               gchar* _tmp488_;
+                               gchar* _tmp489_;
+                               gchar* _tmp490_;
+                               JSDOCScope* _tmp491_;
+                               JSDOCScope* _tmp492_;
+                               GeeHashMap* _tmp493_;
+                               JSDOCTokenStream* _tmp494_;
+                               gint _tmp495_;
+                               JSDOCScope* _tmp496_;
+                               JSDOCScope* _tmp497_;
+                               GeeHashMap* _tmp498_;
+                               gint _tmp499_;
+#line 490 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp464_ = self->priv->ts;
+#line 490 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp465_ = jsdoc_token_stream_lookTok (_tmp464_, -2);
+#line 490 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp466_ = _tmp465_;
+#line 490 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp467_ = _tmp466_->data;
+#line 490 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp468_ = g_strdup (_tmp467_);
+#line 490 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_free0 (scopeName);
+#line 490 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               scopeName = _tmp468_;
+#line 490 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (_tmp466_);
+#line 491 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp469_ = self->priv->ts;
+#line 491 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp470_ = jsdoc_token_stream_balance (_tmp469_, JSDOC_TOKEN_NAME_LEFT_PAREN, &_inner_error_);
+#line 491 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp471_ = _tmp470_;
+#line 491 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (_tmp471_);
+#line 491 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 491 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _g_object_unref0 (token);
+#line 491 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _g_object_unref0 (isObjectLitAr);
+#line 491 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _g_free0 (scopeName);
+#line 491 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _g_free0 (l2);
+#line 491 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _g_free0 (l1);
+#line 491 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _g_object_unref0 (aliases);
+#line 491 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _g_object_unref0 (scope);
+#line 491 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       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);
+#line 491 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       g_clear_error (&_inner_error_);
+#line 491 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       return;
+#line 3705 "Walker.c"
+                               }
+#line 492 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp472_ = self->priv->ts;
+#line 492 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp473_ = jsdoc_token_stream_nextTok (_tmp472_);
+#line 492 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (token);
+#line 492 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               token = _tmp473_;
+#line 496 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp474_ = aliases;
+#line 496 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp475_ = scopeName;
+#line 496 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp476_ = jsdoc_walker_fixAlias (self, _tmp474_, _tmp475_, FALSE);
+#line 496 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_free0 (scopeName);
+#line 496 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               scopeName = _tmp476_;
+#line 497 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp477_ = self->priv->braceNesting;
+#line 497 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp478_ = scope;
+#line 497 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp479_ = token;
+#line 497 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp480_ = _tmp479_->id;
+#line 497 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp481_ = scopeName;
+#line 497 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp482_ = g_strconcat ("$this$=", _tmp481_, NULL);
+#line 497 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp483_ = _tmp482_;
+#line 497 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp484_ = g_strconcat (_tmp483_, ".prototype|$private$|", NULL);
+#line 497 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp485_ = _tmp484_;
+#line 497 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp486_ = scopeName;
+#line 497 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp487_ = g_strconcat (_tmp485_, _tmp486_, NULL);
+#line 497 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp488_ = _tmp487_;
+#line 497 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp489_ = g_strconcat (_tmp488_, ".prototype", NULL);
+#line 497 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp490_ = _tmp489_;
+#line 497 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp491_ = jsdoc_scope_new (_tmp477_, _tmp478_, _tmp480_, _tmp490_, NULL);
+#line 497 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp492_ = _tmp491_;
+#line 497 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_free0 (_tmp490_);
+#line 497 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_free0 (_tmp488_);
+#line 497 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_free0 (_tmp485_);
+#line 497 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_free0 (_tmp483_);
+#line 497 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               fnScope = _tmp492_;
+#line 502 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp493_ = self->priv->indexedScopes;
+#line 502 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp494_ = self->priv->ts;
+#line 502 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp495_ = _tmp494_->cursor;
+#line 502 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp496_ = fnScope;
+#line 502 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               gee_abstract_map_set ((GeeAbstractMap*) _tmp493_, (gpointer) ((gintptr) _tmp495_), _tmp496_);
+#line 505 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp497_ = fnScope;
+#line 505 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp498_ = aliases;
+#line 505 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               jsdoc_walker_parseScope (self, _tmp497_, _tmp498_);
+#line 509 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp499_ = locBraceNest;
+#line 509 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               locBraceNest = _tmp499_ + 1;
+#line 511 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (fnScope);
+#line 511 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               continue;
+#line 3791 "Walker.c"
+                       }
+#line 522 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp502_ = self->priv->ts;
+#line 522 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp503_ = jsdoc_token_stream_lookTok (_tmp502_, -1);
+#line 522 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp504_ = _tmp503_;
+#line 522 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp505_ = jsdoc_token_isName (_tmp504_, JSDOC_TOKEN_NAME_NEW);
+#line 522 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp506_ = _tmp505_;
+#line 522 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _g_object_unref0 (_tmp504_);
+#line 522 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       if (_tmp506_) {
+#line 3807 "Walker.c"
+                               JSDOCTokenStream* _tmp507_;
+                               JSDOCToken* _tmp508_;
+                               JSDOCToken* _tmp509_;
+                               const gchar* _tmp510_;
+#line 523 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp507_ = self->priv->ts;
+#line 523 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp508_ = jsdoc_token_stream_lookTok (_tmp507_, -2);
+#line 523 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp509_ = _tmp508_;
+#line 523 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp510_ = _tmp509_->data;
+#line 523 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp501_ = g_strcmp0 (_tmp510_, "=") == 0;
+#line 523 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (_tmp509_);
+#line 3824 "Walker.c"
+                       } else {
+#line 522 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp501_ = FALSE;
+#line 3828 "Walker.c"
+                       }
+#line 522 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       if (_tmp501_) {
+#line 3832 "Walker.c"
+                               JSDOCTokenStream* _tmp511_;
+                               JSDOCToken* _tmp512_;
+                               JSDOCToken* _tmp513_;
+                               gboolean _tmp514_;
+#line 524 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp511_ = self->priv->ts;
+#line 524 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp512_ = jsdoc_token_stream_lookTok (_tmp511_, -3);
+#line 524 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp513_ = _tmp512_;
+#line 524 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp514_ = jsdoc_token_isName (_tmp513_, JSDOC_TOKEN_NAME_FUNCTION);
+#line 524 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp500_ = _tmp514_;
+#line 524 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (_tmp513_);
+#line 3849 "Walker.c"
+                       } else {
+#line 522 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp500_ = FALSE;
+#line 3853 "Walker.c"
+                       }
+#line 521 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       if (_tmp500_) {
+#line 3857 "Walker.c"
+                               JSDOCTokenStream* _tmp515_;
+                               GeeArrayList* _tmp516_;
+                               GeeArrayList* _tmp517_;
+                               JSDOCTokenStream* _tmp518_;
+                               JSDOCToken* _tmp519_;
+                               GeeHashMap* _tmp520_;
+                               const gchar* _tmp521_;
+                               gchar* _tmp522_;
+                               JSDOCScope* fnScope = NULL;
+                               gint _tmp523_;
+                               JSDOCScope* _tmp524_;
+                               JSDOCToken* _tmp525_;
+                               gint _tmp526_;
+                               JSDOCScope* _tmp527_;
+                               GeeHashMap* _tmp528_;
+                               JSDOCTokenStream* _tmp529_;
+                               gint _tmp530_;
+                               JSDOCScope* _tmp531_;
+                               JSDOCScope* _tmp532_;
+                               GeeHashMap* _tmp533_;
+                               gint _tmp534_;
+#line 527 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp515_ = self->priv->ts;
+#line 527 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp516_ = jsdoc_token_stream_balance (_tmp515_, JSDOC_TOKEN_NAME_LEFT_PAREN, &_inner_error_);
+#line 527 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp517_ = _tmp516_;
+#line 527 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (_tmp517_);
+#line 527 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 527 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _g_object_unref0 (token);
+#line 527 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _g_object_unref0 (isObjectLitAr);
+#line 527 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _g_free0 (scopeName);
+#line 527 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _g_free0 (l2);
+#line 527 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _g_free0 (l1);
+#line 527 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _g_object_unref0 (aliases);
+#line 527 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _g_object_unref0 (scope);
+#line 527 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       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);
+#line 527 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       g_clear_error (&_inner_error_);
+#line 527 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       return;
+#line 3909 "Walker.c"
+                               }
+#line 528 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp518_ = self->priv->ts;
+#line 528 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp519_ = jsdoc_token_stream_nextTok (_tmp518_);
+#line 528 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (token);
+#line 528 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               token = _tmp519_;
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp520_ = aliases;
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp521_ = scopeName;
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp522_ = jsdoc_walker_fixAlias (self, _tmp520_, _tmp521_, FALSE);
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_free0 (scopeName);
+#line 529 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               scopeName = _tmp522_;
+#line 530 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp523_ = self->priv->braceNesting;
+#line 530 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp524_ = scope;
+#line 530 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp525_ = token;
+#line 530 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp526_ = _tmp525_->id;
+#line 530 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp527_ = jsdoc_scope_new (_tmp523_, _tmp524_, _tmp526_, "$private$", NULL);
+#line 530 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               fnScope = _tmp527_;
+#line 535 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp528_ = self->priv->indexedScopes;
+#line 535 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp529_ = self->priv->ts;
+#line 535 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp530_ = _tmp529_->cursor;
+#line 535 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp531_ = fnScope;
+#line 535 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               gee_abstract_map_set ((GeeAbstractMap*) _tmp528_, (gpointer) ((gintptr) _tmp530_), _tmp531_);
+#line 538 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp532_ = fnScope;
+#line 538 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp533_ = aliases;
+#line 538 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               jsdoc_walker_parseScope (self, _tmp532_, _tmp533_);
+#line 540 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp534_ = locBraceNest;
+#line 540 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               locBraceNest = _tmp534_ + 1;
+#line 542 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (fnScope);
+#line 542 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               continue;
+#line 3965 "Walker.c"
+                       }
+#line 557 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp537_ = self->priv->ts;
+#line 557 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp538_ = jsdoc_token_stream_lookTok (_tmp537_, -1);
+#line 557 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp539_ = _tmp538_;
+#line 557 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp540_ = _tmp539_->data;
+#line 557 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp541_ = g_strcmp0 (_tmp540_, ":") == 0;
+#line 557 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _g_object_unref0 (_tmp539_);
+#line 557 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       if (_tmp541_) {
+#line 3981 "Walker.c"
+                               JSDOCTokenStream* _tmp542_;
+                               JSDOCToken* _tmp543_;
+                               JSDOCToken* _tmp544_;
+                               gboolean _tmp545_;
+#line 558 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp542_ = self->priv->ts;
+#line 558 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp543_ = jsdoc_token_stream_lookTok (_tmp542_, -2);
+#line 558 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp544_ = _tmp543_;
+#line 558 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp545_ = jsdoc_token_isType (_tmp544_, JSDOC_TOKEN_TYPE_NAME);
+#line 558 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp536_ = _tmp545_;
+#line 558 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (_tmp544_);
+#line 3998 "Walker.c"
+                       } else {
+#line 557 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp536_ = FALSE;
+#line 4002 "Walker.c"
+                       }
+#line 557 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       if (_tmp536_) {
+#line 4006 "Walker.c"
+                               gboolean _tmp546_ = FALSE;
+                               JSDOCTokenStream* _tmp547_;
+                               JSDOCToken* _tmp548_;
+                               JSDOCToken* _tmp549_;
+                               const gchar* _tmp550_;
+                               gboolean _tmp551_;
+#line 559 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp547_ = self->priv->ts;
+#line 559 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp548_ = jsdoc_token_stream_lookTok (_tmp547_, -3);
+#line 559 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp549_ = _tmp548_;
+#line 559 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp550_ = _tmp549_->data;
+#line 559 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp551_ = g_strcmp0 (_tmp550_, "(") == 0;
+#line 559 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (_tmp549_);
+#line 559 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               if (_tmp551_) {
+#line 559 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp546_ = TRUE;
+#line 4029 "Walker.c"
+                               } else {
+                                       JSDOCTokenStream* _tmp552_;
+                                       JSDOCToken* _tmp553_;
+                                       JSDOCToken* _tmp554_;
+                                       const gchar* _tmp555_;
+#line 559 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp552_ = self->priv->ts;
+#line 559 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp553_ = jsdoc_token_stream_lookTok (_tmp552_, -3);
+#line 559 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp554_ = _tmp553_;
+#line 559 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp555_ = _tmp554_->data;
+#line 559 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp546_ = g_strcmp0 (_tmp555_, ",") == 0;
+#line 559 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _g_object_unref0 (_tmp554_);
+#line 4047 "Walker.c"
+                               }
+#line 559 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp535_ = _tmp546_;
+#line 4051 "Walker.c"
+                       } else {
+#line 557 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp535_ = FALSE;
+#line 4055 "Walker.c"
+                       }
+#line 556 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       if (_tmp535_) {
+#line 4059 "Walker.c"
+                               JSDOCTokenStream* _tmp556_;
+                               GeeArrayList* _tmp557_;
+                               GeeArrayList* _tmp558_;
+                               JSDOCTokenStream* _tmp559_;
+                               JSDOCToken* _tmp560_;
+                               GeeHashMap* _tmp561_;
+                               const gchar* _tmp562_;
+                               gchar* _tmp563_;
+                               JSDOCScope* fnScope = NULL;
+                               gint _tmp564_;
+                               JSDOCScope* _tmp565_;
+                               JSDOCToken* _tmp566_;
+                               gint _tmp567_;
+                               JSDOCScope* _tmp568_;
+                               GeeHashMap* _tmp569_;
+                               JSDOCTokenStream* _tmp570_;
+                               gint _tmp571_;
+                               JSDOCScope* _tmp572_;
+                               JSDOCScope* _tmp573_;
+                               GeeHashMap* _tmp574_;
+                               gint _tmp575_;
+#line 564 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp556_ = self->priv->ts;
+#line 564 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp557_ = jsdoc_token_stream_balance (_tmp556_, JSDOC_TOKEN_NAME_LEFT_PAREN, &_inner_error_);
+#line 564 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp558_ = _tmp557_;
+#line 564 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (_tmp558_);
+#line 564 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 564 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _g_object_unref0 (token);
+#line 564 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _g_object_unref0 (isObjectLitAr);
+#line 564 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _g_free0 (scopeName);
+#line 564 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _g_free0 (l2);
+#line 564 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _g_free0 (l1);
+#line 564 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _g_object_unref0 (aliases);
+#line 564 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _g_object_unref0 (scope);
+#line 564 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       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);
+#line 564 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       g_clear_error (&_inner_error_);
+#line 564 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       return;
+#line 4111 "Walker.c"
+                               }
+#line 566 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp559_ = self->priv->ts;
+#line 566 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp560_ = jsdoc_token_stream_nextTok (_tmp559_);
+#line 566 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (token);
+#line 566 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               token = _tmp560_;
+#line 569 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp561_ = aliases;
+#line 569 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp562_ = scopeName;
+#line 569 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp563_ = jsdoc_walker_fixAlias (self, _tmp561_, _tmp562_, FALSE);
+#line 569 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_free0 (scopeName);
+#line 569 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               scopeName = _tmp563_;
+#line 570 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp564_ = self->priv->braceNesting;
+#line 570 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp565_ = scope;
+#line 570 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp566_ = token;
+#line 570 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp567_ = _tmp566_->id;
+#line 570 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp568_ = jsdoc_scope_new (_tmp564_, _tmp565_, _tmp567_, "", NULL);
+#line 570 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               fnScope = _tmp568_;
+#line 574 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp569_ = self->priv->indexedScopes;
+#line 574 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp570_ = self->priv->ts;
+#line 574 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp571_ = _tmp570_->cursor;
+#line 574 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp572_ = fnScope;
+#line 574 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               gee_abstract_map_set ((GeeAbstractMap*) _tmp569_, (gpointer) ((gintptr) _tmp571_), _tmp572_);
+#line 577 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp573_ = fnScope;
+#line 577 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp574_ = aliases;
+#line 577 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               jsdoc_walker_parseScope (self, _tmp573_, _tmp574_);
+#line 578 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp575_ = locBraceNest;
+#line 578 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               locBraceNest = _tmp575_ + 1;
+#line 580 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (fnScope);
+#line 580 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               continue;
+#line 4167 "Walker.c"
+                       }
+#line 587 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp576_ = self->priv->ts;
+#line 587 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp577_ = jsdoc_token_stream_lookTok (_tmp576_, 1);
+#line 587 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp578_ = _tmp577_;
+#line 587 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp579_ = jsdoc_token_isType (_tmp578_, JSDOC_TOKEN_TYPE_NAME);
+#line 587 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp580_ = _tmp579_;
+#line 587 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _g_object_unref0 (_tmp578_);
+#line 587 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       if (_tmp580_) {
+#line 4183 "Walker.c"
+                               JSDOCTokenStream* _tmp581_;
+                               GeeArrayList* _tmp582_;
+                               GeeArrayList* _tmp583_;
+                               JSDOCTokenStream* _tmp584_;
+                               JSDOCToken* _tmp585_;
+                               JSDOCScope* fnScope = NULL;
+                               gint _tmp586_;
+                               JSDOCScope* _tmp587_;
+                               JSDOCToken* _tmp588_;
+                               gint _tmp589_;
+                               JSDOCScope* _tmp590_;
+                               GeeHashMap* _tmp591_;
+                               JSDOCTokenStream* _tmp592_;
+                               gint _tmp593_;
+                               JSDOCScope* _tmp594_;
+                               JSDOCScope* _tmp595_;
+                               GeeHashMap* _tmp596_;
+                               gint _tmp597_;
+#line 591 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp581_ = self->priv->ts;
+#line 591 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp582_ = jsdoc_token_stream_balance (_tmp581_, JSDOC_TOKEN_NAME_LEFT_PAREN, &_inner_error_);
+#line 591 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp583_ = _tmp582_;
+#line 591 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (_tmp583_);
+#line 591 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 591 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _g_object_unref0 (token);
+#line 591 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _g_object_unref0 (isObjectLitAr);
+#line 591 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _g_free0 (scopeName);
+#line 591 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _g_free0 (l2);
+#line 591 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _g_free0 (l1);
+#line 591 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _g_object_unref0 (aliases);
+#line 591 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _g_object_unref0 (scope);
+#line 591 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       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);
+#line 591 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       g_clear_error (&_inner_error_);
+#line 591 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       return;
+#line 4232 "Walker.c"
+                               }
+#line 592 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp584_ = self->priv->ts;
+#line 592 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp585_ = jsdoc_token_stream_nextTok (_tmp584_);
+#line 592 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (token);
+#line 592 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               token = _tmp585_;
+#line 593 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp586_ = self->priv->braceNesting;
+#line 593 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp587_ = scope;
+#line 593 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp588_ = token;
+#line 593 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp589_ = _tmp588_->id;
+#line 593 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp590_ = jsdoc_scope_new (_tmp586_, _tmp587_, _tmp589_, "", NULL);
+#line 593 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               fnScope = _tmp590_;
+#line 597 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp591_ = self->priv->indexedScopes;
+#line 597 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp592_ = self->priv->ts;
+#line 597 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp593_ = _tmp592_->cursor;
+#line 597 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp594_ = fnScope;
+#line 597 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               gee_abstract_map_set ((GeeAbstractMap*) _tmp591_, (gpointer) ((gintptr) _tmp593_), _tmp594_);
+#line 600 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp595_ = fnScope;
+#line 600 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp596_ = aliases;
+#line 600 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               jsdoc_walker_parseScope (self, _tmp595_, _tmp596_);
+#line 601 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp597_ = locBraceNest;
+#line 601 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               locBraceNest = _tmp597_ + 1;
+#line 603 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (fnScope);
+#line 603 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               continue;
+#line 4278 "Walker.c"
+                       }
+#line 612 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp598_ = self->priv->ts;
+#line 612 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp599_ = jsdoc_token_stream_lookTok (_tmp598_, 1);
+#line 612 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp600_ = _tmp599_;
+#line 612 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp601_ = jsdoc_token_isType (_tmp600_, JSDOC_TOKEN_TYPE_NAME);
+#line 612 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp602_ = !_tmp601_;
+#line 612 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _g_object_unref0 (_tmp600_);
+#line 612 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       if (_tmp602_) {
+#line 4294 "Walker.c"
+                               JSDOCTokenStream* _tmp603_;
+                               GeeArrayList* _tmp604_;
+                               GeeArrayList* _tmp605_;
+                               JSDOCTokenStream* _tmp606_;
+                               JSDOCToken* _tmp607_;
+                               JSDOCScope* fnScope = NULL;
+                               gint _tmp608_;
+                               JSDOCScope* _tmp609_;
+                               JSDOCToken* _tmp610_;
+                               gint _tmp611_;
+                               JSDOCScope* _tmp612_;
+                               GeeHashMap* _tmp613_;
+                               JSDOCTokenStream* _tmp614_;
+                               gint _tmp615_;
+                               JSDOCScope* _tmp616_;
+                               JSDOCScope* _tmp617_;
+                               GeeHashMap* _tmp618_;
+                               gint _tmp619_;
+#line 621 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp603_ = self->priv->ts;
+#line 621 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp604_ = jsdoc_token_stream_balance (_tmp603_, JSDOC_TOKEN_NAME_LEFT_PAREN, &_inner_error_);
+#line 621 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp605_ = _tmp604_;
+#line 621 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (_tmp605_);
+#line 621 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 621 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _g_object_unref0 (token);
+#line 621 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _g_object_unref0 (isObjectLitAr);
+#line 621 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _g_free0 (scopeName);
+#line 621 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _g_free0 (l2);
+#line 621 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _g_free0 (l1);
+#line 621 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _g_object_unref0 (aliases);
+#line 621 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _g_object_unref0 (scope);
+#line 621 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       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);
+#line 621 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       g_clear_error (&_inner_error_);
+#line 621 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       return;
+#line 4343 "Walker.c"
+                               }
+#line 622 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp606_ = self->priv->ts;
+#line 622 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp607_ = jsdoc_token_stream_nextTok (_tmp606_);
+#line 622 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (token);
+#line 622 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               token = _tmp607_;
+#line 623 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp608_ = self->priv->braceNesting;
+#line 623 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp609_ = scope;
+#line 623 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp610_ = token;
+#line 623 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp611_ = _tmp610_->id;
+#line 623 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp612_ = jsdoc_scope_new (_tmp608_, _tmp609_, _tmp611_, "$private$", NULL);
+#line 623 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               fnScope = _tmp612_;
+#line 627 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp613_ = self->priv->indexedScopes;
+#line 627 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp614_ = self->priv->ts;
+#line 627 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp615_ = _tmp614_->cursor;
+#line 627 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp616_ = fnScope;
+#line 627 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               gee_abstract_map_set ((GeeAbstractMap*) _tmp613_, (gpointer) ((gintptr) _tmp615_), _tmp616_);
+#line 630 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp617_ = fnScope;
+#line 630 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp618_ = aliases;
+#line 630 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               jsdoc_walker_parseScope (self, _tmp617_, _tmp618_);
+#line 631 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp619_ = locBraceNest;
+#line 631 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               locBraceNest = _tmp619_ + 1;
+#line 633 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (fnScope);
+#line 633 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               continue;
+#line 4389 "Walker.c"
+                       }
+#line 638 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp620_ = token;
+#line 638 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp621_ = jsdoc_token_asString (_tmp620_);
+#line 638 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp622_ = _tmp621_;
+#line 638 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp623_ = g_strconcat ("dont know how to handle function syntax??\n %s", _tmp622_, NULL);
+#line 638 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp624_ = _tmp623_;
+#line 638 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       g_error ("Walker.vala:638: %s", _tmp624_);
+#line 638 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _g_free0 (_tmp624_);
+#line 638 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _g_free0 (_tmp622_);
+#line 643 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       continue;
+#line 4409 "Walker.c"
+               }
+#line 650 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp625_ = token;
+#line 650 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp626_ = _tmp625_->data;
+#line 650 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               if (g_strcmp0 (_tmp626_, "{") == 0) {
+#line 4417 "Walker.c"
+                       gboolean _tmp627_ = FALSE;
+                       gboolean _tmp628_ = FALSE;
+                       JSDOCTokenStream* _tmp629_;
+                       JSDOCToken* _tmp630_;
+                       JSDOCToken* _tmp631_;
+                       const gchar* _tmp632_;
+                       gboolean _tmp633_;
+                       gboolean _tmp673_ = FALSE;
+                       gboolean _tmp674_ = FALSE;
+                       JSDOCTokenStream* _tmp675_;
+                       JSDOCToken* _tmp676_;
+                       JSDOCToken* _tmp677_;
+                       const gchar* _tmp678_;
+                       gboolean _tmp679_;
+                       JSDOCScope* fnScope = NULL;
+                       gint _tmp710_;
+                       JSDOCScope* _tmp711_;
+                       JSDOCToken* _tmp712_;
+                       gint _tmp713_;
+                       JSDOCScope* _tmp714_;
+                       GeeHashMap* _tmp715_;
+                       JSDOCTokenStream* _tmp716_;
+                       gint _tmp717_;
+                       JSDOCScope* _tmp718_;
+                       JSDOCScope* _tmp719_;
+                       JSDOCScope* _tmp720_;
+                       JSDOCScope* _tmp721_;
+                       gint _tmp722_;
+#line 657 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp629_ = self->priv->ts;
+#line 657 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp630_ = jsdoc_token_stream_lookTok (_tmp629_, -1);
+#line 657 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp631_ = _tmp630_;
+#line 657 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp632_ = _tmp631_->data;
+#line 657 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp633_ = g_strcmp0 (_tmp632_, "=") == 0;
+#line 657 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _g_object_unref0 (_tmp631_);
+#line 657 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       if (_tmp633_) {
+#line 4460 "Walker.c"
+                               JSDOCTokenStream* _tmp634_;
+                               JSDOCToken* _tmp635_;
+                               JSDOCToken* _tmp636_;
+                               gboolean _tmp637_;
+#line 658 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp634_ = self->priv->ts;
+#line 658 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp635_ = jsdoc_token_stream_lookTok (_tmp634_, -2);
+#line 658 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp636_ = _tmp635_;
+#line 658 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp637_ = jsdoc_token_isType (_tmp636_, JSDOC_TOKEN_TYPE_NAME);
+#line 658 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp628_ = _tmp637_;
+#line 658 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (_tmp636_);
+#line 4477 "Walker.c"
+                       } else {
+#line 657 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp628_ = FALSE;
+#line 4481 "Walker.c"
+                       }
+#line 657 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       if (_tmp628_) {
+#line 4485 "Walker.c"
+                               JSDOCTokenStream* _tmp638_;
+                               JSDOCToken* _tmp639_;
+                               JSDOCToken* _tmp640_;
+                               gboolean _tmp641_;
+#line 659 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp638_ = self->priv->ts;
+#line 659 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp639_ = jsdoc_token_stream_lookTok (_tmp638_, -3);
+#line 659 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp640_ = _tmp639_;
+#line 659 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp641_ = jsdoc_token_isName (_tmp640_, JSDOC_TOKEN_NAME_VAR);
+#line 659 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp627_ = !_tmp641_;
+#line 659 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (_tmp640_);
+#line 4502 "Walker.c"
+                       } else {
+#line 657 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp627_ = FALSE;
+#line 4506 "Walker.c"
+                       }
+#line 656 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       if (_tmp627_) {
+#line 4510 "Walker.c"
+                               JSDOCTokenStream* _tmp642_;
+                               JSDOCToken* _tmp643_;
+                               JSDOCToken* _tmp644_;
+                               const gchar* _tmp645_;
+                               gchar* _tmp646_;
+                               GeeHashMap* _tmp647_;
+                               const gchar* _tmp648_;
+                               gchar* _tmp649_;
+                               const gchar* _tmp650_;
+                               JSDOCScope* fnScope = NULL;
+                               gint _tmp651_;
+                               JSDOCScope* _tmp652_;
+                               JSDOCToken* _tmp653_;
+                               gint _tmp654_;
+                               const gchar* _tmp655_;
+                               gchar* _tmp656_;
+                               gchar* _tmp657_;
+                               gchar* _tmp658_;
+                               gchar* _tmp659_;
+                               const gchar* _tmp660_;
+                               gchar* _tmp661_;
+                               gchar* _tmp662_;
+                               JSDOCScope* _tmp663_;
+                               JSDOCScope* _tmp664_;
+                               GeeHashMap* _tmp665_;
+                               JSDOCTokenStream* _tmp666_;
+                               gint _tmp667_;
+                               JSDOCScope* _tmp668_;
+                               JSDOCScope* _tmp669_;
+                               JSDOCScope* _tmp670_;
+                               JSDOCScope* _tmp671_;
+                               gint _tmp672_;
+#line 662 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp642_ = self->priv->ts;
+#line 662 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp643_ = jsdoc_token_stream_lookTok (_tmp642_, -2);
+#line 662 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp644_ = _tmp643_;
+#line 662 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp645_ = _tmp644_->data;
+#line 662 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp646_ = g_strdup (_tmp645_);
+#line 662 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_free0 (scopeName);
+#line 662 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               scopeName = _tmp646_;
+#line 662 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (_tmp644_);
+#line 664 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp647_ = aliases;
+#line 664 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp648_ = scopeName;
+#line 664 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp649_ = jsdoc_walker_fixAlias (self, _tmp647_, _tmp648_, FALSE);
+#line 664 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_free0 (scopeName);
+#line 664 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               scopeName = _tmp649_;
+#line 665 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp650_ = scopeName;
+#line 665 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               g_debug ("Walker.vala:665: got %s = {", _tmp650_);
+#line 668 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp651_ = self->priv->braceNesting;
+#line 668 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp652_ = scope;
+#line 668 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp653_ = token;
+#line 668 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp654_ = _tmp653_->id;
+#line 668 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp655_ = scopeName;
+#line 668 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp656_ = g_strconcat ("$this$=", _tmp655_, NULL);
+#line 668 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp657_ = _tmp656_;
+#line 668 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp658_ = g_strconcat (_tmp657_, "|", NULL);
+#line 668 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp659_ = _tmp658_;
+#line 668 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp660_ = scopeName;
+#line 668 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp661_ = g_strconcat (_tmp659_, _tmp660_, NULL);
+#line 668 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp662_ = _tmp661_;
+#line 668 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp663_ = jsdoc_scope_new (_tmp651_, _tmp652_, _tmp654_, _tmp662_, NULL);
+#line 668 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp664_ = _tmp663_;
+#line 668 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_free0 (_tmp662_);
+#line 668 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_free0 (_tmp659_);
+#line 668 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_free0 (_tmp657_);
+#line 668 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               fnScope = _tmp664_;
+#line 672 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp665_ = self->priv->indexedScopes;
+#line 672 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp666_ = self->priv->ts;
+#line 672 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp667_ = _tmp666_->cursor;
+#line 672 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp668_ = fnScope;
+#line 672 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               gee_abstract_map_set ((GeeAbstractMap*) _tmp665_, (gpointer) ((gintptr) _tmp667_), _tmp668_);
+#line 673 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp669_ = fnScope;
+#line 673 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp670_ = _g_object_ref0 (_tmp669_);
+#line 673 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (scope);
+#line 673 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               scope = _tmp670_;
+#line 675 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp671_ = fnScope;
+#line 675 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               jsdoc_walker_scopesIn (self, _tmp671_);
+#line 679 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp672_ = locBraceNest;
+#line 679 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               locBraceNest = _tmp672_ + 1;
+#line 681 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (fnScope);
+#line 681 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               continue;
+#line 4639 "Walker.c"
+                       }
+#line 688 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp675_ = self->priv->ts;
+#line 688 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp676_ = jsdoc_token_stream_lookTok (_tmp675_, -1);
+#line 688 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp677_ = _tmp676_;
+#line 688 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp678_ = _tmp677_->data;
+#line 688 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp679_ = g_strcmp0 (_tmp678_, ":") == 0;
+#line 688 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _g_object_unref0 (_tmp677_);
+#line 688 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       if (_tmp679_) {
+#line 4655 "Walker.c"
+                               JSDOCTokenStream* _tmp680_;
+                               JSDOCToken* _tmp681_;
+                               JSDOCToken* _tmp682_;
+                               gboolean _tmp683_;
+#line 689 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp680_ = self->priv->ts;
+#line 689 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp681_ = jsdoc_token_stream_lookTok (_tmp680_, -2);
+#line 689 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp682_ = _tmp681_;
+#line 689 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp683_ = jsdoc_token_isType (_tmp682_, JSDOC_TOKEN_TYPE_NAME);
+#line 689 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp674_ = _tmp683_;
+#line 689 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (_tmp682_);
+#line 4672 "Walker.c"
+                       } else {
+#line 688 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp674_ = FALSE;
+#line 4676 "Walker.c"
+                       }
+#line 688 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       if (_tmp674_) {
+#line 4680 "Walker.c"
+                               JSDOCTokenStream* _tmp684_;
+                               JSDOCToken* _tmp685_;
+                               JSDOCToken* _tmp686_;
+                               gboolean _tmp687_;
+#line 690 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp684_ = self->priv->ts;
+#line 690 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp685_ = jsdoc_token_stream_lookTok (_tmp684_, -3);
+#line 690 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp686_ = _tmp685_;
+#line 690 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp687_ = jsdoc_token_isName (_tmp686_, JSDOC_TOKEN_NAME_VAR);
+#line 690 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp673_ = !_tmp687_;
+#line 690 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (_tmp686_);
+#line 4697 "Walker.c"
+                       } else {
+#line 688 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp673_ = FALSE;
+#line 4701 "Walker.c"
+                       }
+#line 687 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       if (_tmp673_) {
+#line 4705 "Walker.c"
+                               JSDOCTokenStream* _tmp688_;
+                               JSDOCToken* _tmp689_;
+                               JSDOCToken* _tmp690_;
+                               const gchar* _tmp691_;
+                               gchar* _tmp692_;
+                               GeeHashMap* _tmp693_;
+                               const gchar* _tmp694_;
+                               gchar* _tmp695_;
+                               JSDOCScope* fnScope = NULL;
+                               gint _tmp696_;
+                               JSDOCScope* _tmp697_;
+                               JSDOCToken* _tmp698_;
+                               gint _tmp699_;
+                               const gchar* _tmp700_;
+                               JSDOCScope* _tmp701_;
+                               GeeHashMap* _tmp702_;
+                               JSDOCTokenStream* _tmp703_;
+                               gint _tmp704_;
+                               JSDOCScope* _tmp705_;
+                               JSDOCScope* _tmp706_;
+                               JSDOCScope* _tmp707_;
+                               JSDOCScope* _tmp708_;
+                               gint _tmp709_;
+#line 693 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp688_ = self->priv->ts;
+#line 693 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp689_ = jsdoc_token_stream_lookTok (_tmp688_, -2);
+#line 693 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp690_ = _tmp689_;
+#line 693 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp691_ = _tmp690_->data;
+#line 693 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp692_ = g_strdup (_tmp691_);
+#line 693 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_free0 (scopeName);
+#line 693 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               scopeName = _tmp692_;
+#line 693 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (_tmp690_);
+#line 694 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp693_ = aliases;
+#line 694 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp694_ = scopeName;
+#line 694 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp695_ = jsdoc_walker_fixAlias (self, _tmp693_, _tmp694_, FALSE);
+#line 694 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_free0 (scopeName);
+#line 694 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               scopeName = _tmp695_;
+#line 695 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp696_ = self->priv->braceNesting;
+#line 695 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp697_ = scope;
+#line 695 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp698_ = token;
+#line 695 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp699_ = _tmp698_->id;
+#line 695 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp700_ = scopeName;
+#line 695 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp701_ = jsdoc_scope_new (_tmp696_, _tmp697_, _tmp699_, _tmp700_, NULL);
+#line 695 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               fnScope = _tmp701_;
+#line 699 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp702_ = self->priv->indexedScopes;
+#line 699 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp703_ = self->priv->ts;
+#line 699 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp704_ = _tmp703_->cursor;
+#line 699 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp705_ = fnScope;
+#line 699 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               gee_abstract_map_set ((GeeAbstractMap*) _tmp702_, (gpointer) ((gintptr) _tmp704_), _tmp705_);
+#line 700 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp706_ = fnScope;
+#line 700 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp707_ = _g_object_ref0 (_tmp706_);
+#line 700 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (scope);
+#line 700 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               scope = _tmp707_;
+#line 701 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp708_ = fnScope;
+#line 701 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               jsdoc_walker_scopesIn (self, _tmp708_);
+#line 703 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp709_ = locBraceNest;
+#line 703 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               locBraceNest = _tmp709_ + 1;
+#line 705 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (fnScope);
+#line 705 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               continue;
+#line 4799 "Walker.c"
+                       }
+#line 707 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp710_ = self->priv->braceNesting;
+#line 707 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp711_ = scope;
+#line 707 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp712_ = token;
+#line 707 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp713_ = _tmp712_->id;
+#line 707 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp714_ = jsdoc_scope_new (_tmp710_, _tmp711_, _tmp713_, "", NULL);
+#line 707 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       fnScope = _tmp714_;
+#line 711 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp715_ = self->priv->indexedScopes;
+#line 711 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp716_ = self->priv->ts;
+#line 711 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp717_ = _tmp716_->cursor;
+#line 711 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp718_ = fnScope;
+#line 711 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       gee_abstract_map_set ((GeeAbstractMap*) _tmp715_, (gpointer) ((gintptr) _tmp717_), _tmp718_);
+#line 712 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp719_ = fnScope;
+#line 712 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp720_ = _g_object_ref0 (_tmp719_);
+#line 712 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _g_object_unref0 (scope);
+#line 712 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       scope = _tmp720_;
+#line 713 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp721_ = fnScope;
+#line 713 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       jsdoc_walker_scopesIn (self, _tmp721_);
+#line 715 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp722_ = locBraceNest;
+#line 715 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       locBraceNest = _tmp722_ + 1;
+#line 717 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _g_object_unref0 (fnScope);
+#line 717 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       continue;
+#line 4843 "Walker.c"
+               }
+#line 720 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp723_ = token;
+#line 720 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp724_ = _tmp723_->data;
+#line 720 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               if (g_strcmp0 (_tmp724_, "}") == 0) {
+#line 4851 "Walker.c"
+                       JSDOCDocComment* _tmp725_;
+                       gint _tmp726_;
+                       JSDOCScope* closescope = NULL;
+                       JSDOCScope* _tmp727_;
+                       GeeArrayList* _tmp728_;
+                       GeeArrayList* _tmp729_;
+                       gint _tmp730_;
+                       gint _tmp731_;
+                       gpointer _tmp732_;
+                       gint _tmp733_;
+#line 723 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp725_ = self->priv->currentDoc;
+#line 723 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       if (_tmp725_ != NULL) {
+#line 724 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               jsdoc_walker_addSymbol (self, "", TRUE, "OBJECT");
+#line 4868 "Walker.c"
+                       }
+#line 730 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp726_ = locBraceNest;
+#line 730 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       locBraceNest = _tmp726_ - 1;
+#line 733 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp727_ = jsdoc_walker_scopeOut (self);
+#line 733 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       closescope = _tmp727_;
+#line 735 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp728_ = self->priv->scopes;
+#line 735 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp729_ = self->priv->scopes;
+#line 735 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp730_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp729_);
+#line 735 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp731_ = _tmp730_;
+#line 735 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp732_ = gee_abstract_list_get ((GeeAbstractList*) _tmp728_, _tmp731_ - 1);
+#line 735 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _g_object_unref0 (scope);
+#line 735 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       scope = (JSDOCScope*) _tmp732_;
+#line 739 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp733_ = locBraceNest;
+#line 739 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       if (_tmp733_ < 0) {
+#line 744 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (closescope);
+#line 744 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (token);
+#line 744 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (isObjectLitAr);
+#line 744 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_free0 (scopeName);
+#line 744 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_free0 (l2);
+#line 744 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_free0 (l1);
+#line 744 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (aliases);
+#line 744 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (scope);
+#line 744 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               return;
+#line 4914 "Walker.c"
+                       }
+#line 746 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _g_object_unref0 (closescope);
+#line 746 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       continue;
+#line 4920 "Walker.c"
+               }
+       }
+#line 97 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _g_object_unref0 (token);
+#line 97 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _g_object_unref0 (isObjectLitAr);
+#line 97 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _g_free0 (scopeName);
+#line 97 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _g_free0 (l2);
+#line 97 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _g_free0 (l1);
+#line 97 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _g_object_unref0 (aliases);
+#line 97 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _g_object_unref0 (scope);
+#line 4937 "Walker.c"
+}
+
+
+static void _vala_array_add5 (gchar** * array, int* length, int* size, gchar* value) {
+#line 795 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       if ((*length) == (*size)) {
+#line 795 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               *size = (*size) ? (2 * (*size)) : 4;
+#line 795 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               *array = g_renew (gchar*, *array, (*size) + 1);
+#line 4948 "Walker.c"
+       }
+#line 795 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       (*array)[(*length)++] = value;
+#line 795 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       (*array)[*length] = NULL;
+#line 4954 "Walker.c"
+}
+
+
+static void _vala_array_add6 (gchar** * array, int* length, int* size, gchar* value) {
+#line 797 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       if ((*length) == (*size)) {
+#line 797 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               *size = (*size) ? (2 * (*size)) : 4;
+#line 797 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               *array = g_renew (gchar*, *array, (*size) + 1);
+#line 4965 "Walker.c"
+       }
+#line 797 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       (*array)[(*length)++] = value;
+#line 797 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       (*array)[*length] = NULL;
+#line 4971 "Walker.c"
+}
+
+
+static void jsdoc_walker_addSymbol (JSDOCWalker* self, const gchar* in_lastIdent, gboolean appendIt, const gchar* atype) {
+       const gchar* _tmp0_;
+       gchar* lastIdent = NULL;
+       const gchar* _tmp1_;
+       gchar* _tmp2_;
+       JSDOCDocComment* _tmp3_;
+       GeeArrayList* _tmp4_;
+       GeeArrayList* _tmp5_;
+       gint _tmp6_;
+       gint _tmp7_;
+       gboolean _tmp8_;
+       JSDOCToken* token = NULL;
+       JSDOCTokenStream* _tmp9_;
+       JSDOCToken* _tmp10_;
+       JSDOCDocComment* _tmp11_;
+       GeeArrayList* _tmp12_;
+       GeeArrayList* _tmp13_;
+       gint _tmp14_;
+       gint _tmp15_;
+       gboolean _tmp16_;
+       gboolean _tmp24_ = FALSE;
+       const gchar* _tmp25_;
+       gint _tmp26_;
+       gint _tmp27_;
+       gchar* _s = NULL;
+       const gchar* _tmp40_;
+       gchar* _tmp41_;
+       const gchar* _tmp42_;
+       gboolean _tmp43_;
+       GeeHashMap* _tmp188_;
+       const gchar* _tmp189_;
+       gboolean _tmp190_;
+       JSDOCSymbol* symbol = NULL;
+       const gchar* _tmp198_;
+       GeeArrayList* _tmp199_;
+       GeeArrayList* _tmp200_;
+       const gchar* _tmp201_;
+       JSDOCDocComment* _tmp202_;
+       JSDOCSymbol* _tmp203_;
+       JSDOCSymbol* _tmp204_;
+       JSDOCSymbol* _tmp205_;
+       GeeHashMap* _tmp206_;
+       const gchar* _tmp207_;
+       JSDOCSymbol* _tmp208_;
+       GError * _inner_error_ = NULL;
+#line 756 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       g_return_if_fail (self != NULL);
+#line 756 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       g_return_if_fail (in_lastIdent != NULL);
+#line 756 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       g_return_if_fail (atype != NULL);
+#line 759 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp0_ = in_lastIdent;
+#line 759 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       g_debug ("Walker.vala:759: addSymbol %s", _tmp0_);
+#line 760 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp1_ = in_lastIdent;
+#line 760 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp2_ = g_strdup (_tmp1_);
+#line 760 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       lastIdent = _tmp2_;
+#line 761 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp3_ = self->priv->currentDoc;
+#line 761 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp4_ = jsdoc_doc_comment_getTag (_tmp3_, JSDOC_DOC_TAG_TITLE_PRIVATE);
+#line 761 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp5_ = _tmp4_;
+#line 761 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp6_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp5_);
+#line 761 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp7_ = _tmp6_;
+#line 761 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp8_ = _tmp7_ > 0;
+#line 761 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _g_object_unref0 (_tmp5_);
+#line 761 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       if (_tmp8_) {
+#line 765 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _g_object_unref0 (self->priv->currentDoc);
+#line 765 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               self->priv->currentDoc = NULL;
+#line 767 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _g_free0 (lastIdent);
+#line 767 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               return;
+#line 5060 "Walker.c"
+       }
+#line 770 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp9_ = self->priv->ts;
+#line 770 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp10_ = jsdoc_token_stream_lookTok (_tmp9_, 0);
+#line 770 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       token = _tmp10_;
+#line 773 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp11_ = self->priv->currentDoc;
+#line 773 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp12_ = jsdoc_doc_comment_getTag (_tmp11_, JSDOC_DOC_TAG_TITLE_EVENT);
+#line 773 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp13_ = _tmp12_;
+#line 773 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp14_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp13_);
+#line 773 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp15_ = _tmp14_;
+#line 773 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp16_ = _tmp15_ > 0;
+#line 773 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _g_object_unref0 (_tmp13_);
+#line 773 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       if (_tmp16_) {
+#line 5084 "Walker.c"
+               JSDOCDocComment* _tmp17_;
+               GeeArrayList* _tmp18_;
+               GeeArrayList* _tmp19_;
+               gpointer _tmp20_;
+               JSDOCDocTag* _tmp21_;
+               const gchar* _tmp22_;
+               gchar* _tmp23_;
+#line 776 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp17_ = self->priv->currentDoc;
+#line 776 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp18_ = jsdoc_doc_comment_getTag (_tmp17_, JSDOC_DOC_TAG_TITLE_EVENT);
+#line 776 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp19_ = _tmp18_;
+#line 776 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp20_ = gee_abstract_list_get ((GeeAbstractList*) _tmp19_, 0);
+#line 776 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp21_ = (JSDOCDocTag*) _tmp20_;
+#line 776 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp22_ = _tmp21_->desc;
+#line 776 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp23_ = g_strconcat ("*", _tmp22_, NULL);
+#line 776 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _g_free0 (lastIdent);
+#line 776 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               lastIdent = _tmp23_;
+#line 776 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _g_object_unref0 (_tmp21_);
+#line 776 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _g_object_unref0 (_tmp19_);
+#line 5114 "Walker.c"
+       }
+#line 779 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp25_ = lastIdent;
+#line 779 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp26_ = strlen (_tmp25_);
+#line 779 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp27_ = _tmp26_;
+#line 779 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       if (_tmp27_ < 1) {
+#line 5124 "Walker.c"
+               JSDOCDocComment* _tmp28_;
+               GeeArrayList* _tmp29_;
+               GeeArrayList* _tmp30_;
+               gint _tmp31_;
+               gint _tmp32_;
+#line 779 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp28_ = self->priv->currentDoc;
+#line 779 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp29_ = jsdoc_doc_comment_getTag (_tmp28_, JSDOC_DOC_TAG_TITLE_PROPERTY);
+#line 779 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp30_ = _tmp29_;
+#line 779 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp31_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp30_);
+#line 779 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp32_ = _tmp31_;
+#line 779 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp24_ = _tmp32_ > 0;
+#line 779 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _g_object_unref0 (_tmp30_);
+#line 5144 "Walker.c"
+       } else {
+#line 779 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp24_ = FALSE;
+#line 5148 "Walker.c"
+       }
+#line 779 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       if (_tmp24_) {
+#line 5152 "Walker.c"
+               JSDOCDocComment* _tmp33_;
+               GeeArrayList* _tmp34_;
+               GeeArrayList* _tmp35_;
+               gpointer _tmp36_;
+               JSDOCDocTag* _tmp37_;
+               const gchar* _tmp38_;
+               gchar* _tmp39_;
+#line 780 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp33_ = self->priv->currentDoc;
+#line 780 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp34_ = jsdoc_doc_comment_getTag (_tmp33_, JSDOC_DOC_TAG_TITLE_PROPERTY);
+#line 780 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp35_ = _tmp34_;
+#line 780 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp36_ = gee_abstract_list_get ((GeeAbstractList*) _tmp35_, 0);
+#line 780 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp37_ = (JSDOCDocTag*) _tmp36_;
+#line 780 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp38_ = _tmp37_->name;
+#line 780 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp39_ = g_strdup (_tmp38_);
+#line 780 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _g_free0 (lastIdent);
+#line 780 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               lastIdent = _tmp39_;
+#line 780 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _g_object_unref0 (_tmp37_);
+#line 780 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _g_object_unref0 (_tmp35_);
+#line 5182 "Walker.c"
+       }
+#line 784 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp40_ = lastIdent;
+#line 784 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp41_ = g_strdup (_tmp40_);
+#line 784 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _s = _tmp41_;
+#line 785 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp42_ = _s;
+#line 785 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp43_ = g_regex_match (_thread_safe_regex_init (&_tmp_regex_4, "\\.", 0), _tmp42_, 0, NULL);
+#line 785 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       if (!_tmp43_) {
+#line 5196 "Walker.c"
+               gchar** s = NULL;
+               gchar** _tmp44_;
+               gint s_length1;
+               gint _s_size_;
+               GeeArrayList* _tmp45_;
+               gint _tmp46_;
+               gint _tmp47_;
+               gchar** _tmp69_;
+               gint _tmp69__length1;
+               const gchar* _tmp70_;
+               gchar* _tmp71_;
+               gchar** _tmp72_;
+               gint _tmp72__length1;
+               gchar* _tmp73_;
+               gchar* _tmp74_;
+               gchar** _tmp75_;
+               gint _tmp75__length1;
+               gchar* _tmp76_;
+               gchar* _tmp77_;
+               gchar** _tmp78_;
+               gchar** _tmp79_;
+               gchar* _t = NULL;
+               gchar* _tmp80_;
+               gchar* _tmp81_;
+               const gchar* _tmp130_ = NULL;
+               gboolean _tmp131_;
+               const gchar* _tmp132_;
+               gboolean _tmp133_ = FALSE;
+               gboolean _tmp134_;
+#line 789 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp44_ = g_new0 (gchar*, 0 + 1);
+#line 789 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               s = _tmp44_;
+#line 789 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               s_length1 = 0;
+#line 789 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _s_size_ = s_length1;
+#line 790 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp45_ = self->priv->scopes;
+#line 790 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp46_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp45_);
+#line 790 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp47_ = _tmp46_;
+#line 790 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               g_debug ("Walker.vala:790: Checking Scopes %d", _tmp47_);
+#line 5242 "Walker.c"
+               {
+                       gint i = 0;
+#line 791 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       i = 0;
+#line 5247 "Walker.c"
+                       {
+                               gboolean _tmp48_ = FALSE;
+#line 791 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp48_ = TRUE;
+#line 791 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               while (TRUE) {
+#line 5254 "Walker.c"
+                                       gint _tmp50_;
+                                       GeeArrayList* _tmp51_;
+                                       gint _tmp52_;
+                                       gint _tmp53_;
+                                       GeeArrayList* _tmp54_;
+                                       gint _tmp55_;
+                                       gpointer _tmp56_;
+                                       JSDOCScope* _tmp57_;
+                                       const gchar* _tmp58_;
+                                       gchar* adds = NULL;
+                                       GeeArrayList* _tmp59_;
+                                       gint _tmp60_;
+                                       gpointer _tmp61_;
+                                       JSDOCScope* _tmp62_;
+                                       const gchar* _tmp63_;
+                                       gchar* _tmp64_;
+                                       gchar* _tmp65_;
+                                       gchar** _tmp66_;
+                                       gint _tmp66__length1;
+                                       const gchar* _tmp67_;
+                                       gchar* _tmp68_;
+#line 791 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       if (!_tmp48_) {
+#line 5278 "Walker.c"
+                                               gint _tmp49_;
+#line 791 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                               _tmp49_ = i;
+#line 791 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                               i = _tmp49_ + 1;
+#line 5284 "Walker.c"
+                                       }
+#line 791 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp48_ = FALSE;
+#line 791 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp50_ = i;
+#line 791 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp51_ = self->priv->scopes;
+#line 791 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp52_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp51_);
+#line 791 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp53_ = _tmp52_;
+#line 791 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       if (!(_tmp50_ < _tmp53_)) {
+#line 791 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                               break;
+#line 5300 "Walker.c"
+                                       }
+#line 792 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp54_ = self->priv->scopes;
+#line 792 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp55_ = i;
+#line 792 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp56_ = gee_abstract_list_get ((GeeAbstractList*) _tmp54_, _tmp55_);
+#line 792 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp57_ = (JSDOCScope*) _tmp56_;
+#line 792 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp58_ = _tmp57_->ident;
+#line 792 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       g_debug ("Walker.vala:792: Scope %s", _tmp58_);
+#line 792 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _g_object_unref0 (_tmp57_);
+#line 793 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp59_ = self->priv->scopes;
+#line 793 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp60_ = i;
+#line 793 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp61_ = gee_abstract_list_get ((GeeAbstractList*) _tmp59_, _tmp60_);
+#line 793 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp62_ = (JSDOCScope*) _tmp61_;
+#line 793 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp63_ = _tmp62_->ident;
+#line 793 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp64_ = g_strdup (_tmp63_);
+#line 793 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp65_ = _tmp64_;
+#line 793 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _g_object_unref0 (_tmp62_);
+#line 793 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       adds = _tmp65_;
+#line 795 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp66_ = s;
+#line 795 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp66__length1 = s_length1;
+#line 795 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp67_ = adds;
+#line 795 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp68_ = g_strdup (_tmp67_);
+#line 795 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _vala_array_add5 (&s, &s_length1, &_s_size_, _tmp68_);
+#line 791 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _g_free0 (adds);
+#line 5346 "Walker.c"
+                               }
+                       }
+               }
+#line 797 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp69_ = s;
+#line 797 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp69__length1 = s_length1;
+#line 797 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp70_ = lastIdent;
+#line 797 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp71_ = g_strdup (_tmp70_);
+#line 797 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _vala_array_add6 (&s, &s_length1, &_s_size_, _tmp71_);
+#line 799 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp72_ = s;
+#line 799 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp72__length1 = s_length1;
+#line 799 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp73_ = _vala_g_strjoinv ("', '", _tmp72_, _tmp72__length1);
+#line 799 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp74_ = _tmp73_;
+#line 799 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               g_debug ("Walker.vala:799: FULLSCOPE: '%s'", _tmp74_);
+#line 799 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _g_free0 (_tmp74_);
+#line 802 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp75_ = s;
+#line 802 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp75__length1 = s_length1;
+#line 802 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp76_ = _vala_g_strjoinv ("|", _tmp75_, _tmp75__length1);
+#line 802 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp77_ = _tmp76_;
+#line 802 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp79_ = _tmp78_ = g_strsplit (_tmp77_, "|", 0);
+#line 802 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               s = (_vala_array_free (s, s_length1, (GDestroyNotify) g_free), NULL);
+#line 802 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               s = _tmp79_;
+#line 802 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               s_length1 = _vala_array_length (_tmp78_);
+#line 802 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _s_size_ = s_length1;
+#line 802 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _g_free0 (_tmp77_);
+#line 805 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp80_ = g_strdup ("");
+#line 805 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _t = _tmp80_;
+#line 806 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp81_ = g_strdup ("");
+#line 806 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _g_free0 (_s);
+#line 806 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _s = _tmp81_;
+#line 5402 "Walker.c"
+               {
+                       gint i = 0;
+#line 809 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       i = 0;
+#line 5407 "Walker.c"
+                       {
+                               gboolean _tmp82_ = FALSE;
+#line 809 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp82_ = TRUE;
+#line 809 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               while (TRUE) {
+#line 5414 "Walker.c"
+                                       gint _tmp84_;
+                                       gchar** _tmp85_;
+                                       gint _tmp85__length1;
+                                       gchar** _tmp86_;
+                                       gint _tmp86__length1;
+                                       gint _tmp87_;
+                                       const gchar* _tmp88_;
+                                       gint _tmp89_;
+                                       gint _tmp90_;
+                                       gboolean _tmp91_ = FALSE;
+                                       gchar** _tmp92_;
+                                       gint _tmp92__length1;
+                                       gint _tmp93_;
+                                       const gchar* _tmp94_;
+                                       gboolean _tmp99_ = FALSE;
+                                       gchar** _tmp100_;
+                                       gint _tmp100__length1;
+                                       gint _tmp101_;
+                                       const gchar* _tmp102_;
+                                       gint _tmp103_;
+                                       gint _tmp104_;
+                                       const gchar* _tmp119_ = NULL;
+                                       const gchar* _tmp120_;
+                                       gint _tmp121_;
+                                       gint _tmp122_;
+                                       const gchar* _tmp123_;
+                                       gchar* _tmp124_;
+                                       const gchar* _tmp125_;
+                                       gchar** _tmp126_;
+                                       gint _tmp126__length1;
+                                       gint _tmp127_;
+                                       const gchar* _tmp128_;
+                                       gchar* _tmp129_;
+#line 809 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       if (!_tmp82_) {
+#line 5450 "Walker.c"
+                                               gint _tmp83_;
+#line 809 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                               _tmp83_ = i;
+#line 809 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                               i = _tmp83_ + 1;
+#line 5456 "Walker.c"
+                                       }
+#line 809 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp82_ = FALSE;
+#line 809 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp84_ = i;
+#line 809 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp85_ = s;
+#line 809 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp85__length1 = s_length1;
+#line 809 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       if (!(_tmp84_ < _tmp85__length1)) {
+#line 809 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                               break;
+#line 5470 "Walker.c"
+                                       }
+#line 811 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp86_ = s;
+#line 811 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp86__length1 = s_length1;
+#line 811 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp87_ = i;
+#line 811 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp88_ = _tmp86_[_tmp87_];
+#line 811 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp89_ = strlen (_tmp88_);
+#line 811 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp90_ = _tmp89_;
+#line 811 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       if (_tmp90_ < 1) {
+#line 812 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                               continue;
+#line 5488 "Walker.c"
+                                       }
+#line 814 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp92_ = s;
+#line 814 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp92__length1 = s_length1;
+#line 814 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp93_ = i;
+#line 814 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp94_ = _tmp92_[_tmp93_];
+#line 814 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       if (g_strcmp0 (_tmp94_, "$private$") == 0) {
+#line 814 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                               _tmp91_ = TRUE;
+#line 5502 "Walker.c"
+                                       } else {
+                                               gchar** _tmp95_;
+                                               gint _tmp95__length1;
+                                               gint _tmp96_;
+                                               const gchar* _tmp97_;
+#line 814 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                               _tmp95_ = s;
+#line 814 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                               _tmp95__length1 = s_length1;
+#line 814 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                               _tmp96_ = i;
+#line 814 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                               _tmp97_ = _tmp95_[_tmp96_];
+#line 814 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                               _tmp91_ = g_strcmp0 (_tmp97_, "$global$") == 0;
+#line 5518 "Walker.c"
+                                       }
+#line 814 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       if (_tmp91_) {
+#line 5522 "Walker.c"
+                                               gchar* _tmp98_;
+#line 815 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                               _tmp98_ = g_strdup ("");
+#line 815 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                               _g_free0 (_s);
+#line 815 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                               _s = _tmp98_;
+#line 816 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                               continue;
+#line 5532 "Walker.c"
+                                       }
+#line 818 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp100_ = s;
+#line 818 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp100__length1 = s_length1;
+#line 818 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp101_ = i;
+#line 818 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp102_ = _tmp100_[_tmp101_];
+#line 818 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp103_ = strlen (_tmp102_);
+#line 818 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp104_ = _tmp103_;
+#line 818 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       if (_tmp104_ > 5) {
+#line 5548 "Walker.c"
+                                               gchar** _tmp105_;
+                                               gint _tmp105__length1;
+                                               gint _tmp106_;
+                                               const gchar* _tmp107_;
+                                               gchar* _tmp108_;
+                                               gchar* _tmp109_;
+#line 818 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                               _tmp105_ = s;
+#line 818 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                               _tmp105__length1 = s_length1;
+#line 818 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                               _tmp106_ = i;
+#line 818 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                               _tmp107_ = _tmp105_[_tmp106_];
+#line 818 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                               _tmp108_ = string_substring (_tmp107_, (glong) 0, (glong) 6);
+#line 818 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                               _tmp109_ = _tmp108_;
+#line 818 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                               _tmp99_ = g_strcmp0 (_tmp109_, "$this$") == 0;
+#line 818 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                               _g_free0 (_tmp109_);
+#line 5571 "Walker.c"
+                                       } else {
+#line 818 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                               _tmp99_ = FALSE;
+#line 5575 "Walker.c"
+                                       }
+#line 818 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       if (_tmp99_) {
+#line 5579 "Walker.c"
+                                               gchar** ts = NULL;
+                                               gchar** _tmp110_;
+                                               gint _tmp110__length1;
+                                               gint _tmp111_;
+                                               const gchar* _tmp112_;
+                                               gchar** _tmp113_;
+                                               gchar** _tmp114_;
+                                               gint ts_length1;
+                                               gint _ts_size_;
+                                               gchar** _tmp115_;
+                                               gint _tmp115__length1;
+                                               const gchar* _tmp116_;
+                                               gchar* _tmp117_;
+                                               gchar* _tmp118_;
+#line 819 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                               _tmp110_ = s;
+#line 819 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                               _tmp110__length1 = s_length1;
+#line 819 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                               _tmp111_ = i;
+#line 819 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                               _tmp112_ = _tmp110_[_tmp111_];
+#line 819 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                               _tmp114_ = _tmp113_ = g_strsplit (_tmp112_, "=", 0);
+#line 819 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                               ts = _tmp114_;
+#line 819 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                               ts_length1 = _vala_array_length (_tmp113_);
+#line 819 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                               _ts_size_ = ts_length1;
+#line 820 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                               _tmp115_ = ts;
+#line 820 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                               _tmp115__length1 = ts_length1;
+#line 820 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                               _tmp116_ = _tmp115_[1];
+#line 820 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                               _tmp117_ = g_strdup (_tmp116_);
+#line 820 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                               _g_free0 (_t);
+#line 820 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                               _t = _tmp117_;
+#line 821 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                               _tmp118_ = g_strdup ("");
+#line 821 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                               _g_free0 (_s);
+#line 821 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                               _s = _tmp118_;
+#line 822 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                               ts = (_vala_array_free (ts, ts_length1, (GDestroyNotify) g_free), NULL);
+#line 822 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                               continue;
+#line 5632 "Walker.c"
+                                       }
+#line 825 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp120_ = _s;
+#line 825 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp121_ = strlen (_tmp120_);
+#line 825 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp122_ = _tmp121_;
+#line 825 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       if (_tmp122_ > 0) {
+#line 825 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                               _tmp119_ = ".";
+#line 5644 "Walker.c"
+                                       } else {
+#line 825 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                               _tmp119_ = "";
+#line 5648 "Walker.c"
+                                       }
+#line 825 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp123_ = _s;
+#line 825 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp124_ = g_strconcat (_tmp123_, _tmp119_, NULL);
+#line 825 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _g_free0 (_s);
+#line 825 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _s = _tmp124_;
+#line 826 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp125_ = _s;
+#line 826 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp126_ = s;
+#line 826 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp126__length1 = s_length1;
+#line 826 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp127_ = i;
+#line 826 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp128_ = _tmp126_[_tmp127_];
+#line 826 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp129_ = g_strconcat (_tmp125_, _tmp128_, NULL);
+#line 826 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _g_free0 (_s);
+#line 826 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _s = _tmp129_;
+#line 5674 "Walker.c"
+                               }
+                       }
+               }
+#line 828 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp131_ = appendIt;
+#line 828 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               if (_tmp131_) {
+#line 828 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp130_ = "YES";
+#line 5684 "Walker.c"
+               } else {
+#line 828 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp130_ = "no";
+#line 5688 "Walker.c"
+               }
+#line 828 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp132_ = _s;
+#line 828 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               g_debug ("Walker.vala:828: FULLSCOPE: _s=%s (append = %s)", _tmp132_, _tmp130_);
+#line 835 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp134_ = appendIt;
+#line 835 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               if (_tmp134_) {
+#line 5698 "Walker.c"
+                       const gchar* _tmp135_;
+                       gint _tmp136_;
+                       gint _tmp137_;
+#line 835 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp135_ = lastIdent;
+#line 835 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp136_ = strlen (_tmp135_);
+#line 835 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp137_ = _tmp136_;
+#line 835 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp133_ = _tmp137_ < 1;
+#line 5710 "Walker.c"
+               } else {
+#line 835 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp133_ = FALSE;
+#line 5714 "Walker.c"
+               }
+#line 835 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               if (_tmp133_) {
+#line 5718 "Walker.c"
+                       JSDOCDocComment* _tmp138_;
+                       GeeArrayList* _tmp139_;
+                       GeeArrayList* _tmp140_;
+                       gint _tmp141_;
+                       gint _tmp142_;
+                       gboolean _tmp143_;
+                       gchar* _tmp161_ = NULL;
+                       const gchar* _tmp162_;
+                       const gchar* _tmp163_;
+                       gint _tmp164_;
+                       gint _tmp165_;
+                       gchar* _tmp166_;
+                       gchar* _tmp167_;
+                       GeeHashMap* _tmp168_;
+                       const gchar* _tmp169_;
+                       gboolean _tmp170_;
+                       const gchar* _tmp171_;
+#line 840 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp138_ = self->priv->currentDoc;
+#line 840 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp139_ = jsdoc_doc_comment_getTag (_tmp138_, JSDOC_DOC_TAG_TITLE_CLASS);
+#line 840 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp140_ = _tmp139_;
+#line 840 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp141_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp140_);
+#line 840 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp142_ = _tmp141_;
+#line 840 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp143_ = _tmp142_ > 0;
+#line 840 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _g_object_unref0 (_tmp140_);
+#line 840 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       if (_tmp143_) {
+#line 5752 "Walker.c"
+                               JSDOCDocComment* _tmp144_;
+                               GeeArrayList* _tmp145_;
+                               GeeArrayList* _tmp146_;
+                               gpointer _tmp147_;
+                               JSDOCDocTag* _tmp148_;
+                               const gchar* _tmp149_;
+                               gchar* _tmp150_;
+                               JSDOCSymbol* symbol = NULL;
+                               const gchar* _tmp151_;
+                               GeeArrayList* _tmp152_;
+                               GeeArrayList* _tmp153_;
+                               JSDOCDocComment* _tmp154_;
+                               JSDOCSymbol* _tmp155_;
+                               JSDOCSymbol* _tmp156_;
+                               JSDOCSymbol* _tmp157_;
+                               GeeHashMap* _tmp158_;
+                               const gchar* _tmp159_;
+                               JSDOCSymbol* _tmp160_;
+#line 841 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp144_ = self->priv->currentDoc;
+#line 841 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp145_ = jsdoc_doc_comment_getTag (_tmp144_, JSDOC_DOC_TAG_TITLE_CLASS);
+#line 841 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp146_ = _tmp145_;
+#line 841 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp147_ = gee_abstract_list_get ((GeeAbstractList*) _tmp146_, 0);
+#line 841 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp148_ = (JSDOCDocTag*) _tmp147_;
+#line 841 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp149_ = _tmp148_->desc;
+#line 841 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp150_ = g_strdup (_tmp149_);
+#line 841 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_free0 (_s);
+#line 841 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _s = _tmp150_;
+#line 841 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (_tmp148_);
+#line 841 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (_tmp146_);
+#line 842 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp151_ = _s;
+#line 842 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp152_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL);
+#line 842 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp153_ = _tmp152_;
+#line 842 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp154_ = self->priv->currentDoc;
+#line 842 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp155_ = jsdoc_symbol_new_new_populate_with_args (_tmp151_, _tmp153_, "CONSTRUCTOR", _tmp154_);
+#line 842 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp156_ = _tmp155_;
+#line 842 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (_tmp153_);
+#line 842 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               symbol = _tmp156_;
+#line 845 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp157_ = symbol;
+#line 845 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               jsdoc_doc_parser_addSymbol (_tmp157_);
+#line 846 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp158_ = self->priv->symbols;
+#line 846 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp159_ = _s;
+#line 846 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp160_ = symbol;
+#line 846 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               gee_abstract_map_set ((GeeAbstractMap*) _tmp158_, _tmp159_, _tmp160_);
+#line 847 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (symbol);
+#line 847 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_free0 (_t);
+#line 847 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               s = (_vala_array_free (s, s_length1, (GDestroyNotify) g_free), NULL);
+#line 847 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_free0 (_s);
+#line 847 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (token);
+#line 847 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_free0 (lastIdent);
+#line 847 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               return;
+#line 5835 "Walker.c"
+                       }
+#line 855 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp162_ = _s;
+#line 855 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp163_ = _s;
+#line 855 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp164_ = strlen (_tmp163_);
+#line 855 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp165_ = _tmp164_;
+#line 855 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp166_ = g_regex_replace (_thread_safe_regex_init (&_tmp_regex_5, "\\.prototype.*$", 0), _tmp162_, (gssize) _tmp165_, 0, "", 0, &_inner_error_);
+#line 855 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp161_ = _tmp166_;
+#line 855 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 855 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_free0 (_t);
+#line 855 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               s = (_vala_array_free (s, s_length1, (GDestroyNotify) g_free), NULL);
+#line 855 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_free0 (_s);
+#line 855 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (token);
+#line 855 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_free0 (lastIdent);
+#line 855 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               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);
+#line 855 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               g_clear_error (&_inner_error_);
+#line 855 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               return;
+#line 5867 "Walker.c"
+                       }
+#line 855 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp167_ = _tmp161_;
+#line 855 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp161_ = NULL;
+#line 855 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _g_free0 (_s);
+#line 855 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _s = _tmp167_;
+#line 857 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp168_ = self->priv->symbols;
+#line 857 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp169_ = _s;
+#line 857 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp170_ = gee_abstract_map_has_key ((GeeAbstractMap*) _tmp168_, _tmp169_);
+#line 857 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       if (!_tmp170_) {
+#line 866 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (self->priv->currentDoc);
+#line 866 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               self->priv->currentDoc = NULL;
+#line 867 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_free0 (_tmp161_);
+#line 867 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_free0 (_t);
+#line 867 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               s = (_vala_array_free (s, s_length1, (GDestroyNotify) g_free), NULL);
+#line 867 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_free0 (_s);
+#line 867 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (token);
+#line 867 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_free0 (lastIdent);
+#line 867 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               return;
+#line 5903 "Walker.c"
+                       }
+#line 870 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp171_ = _s;
+#line 870 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       g_debug ("Walker.vala:870: add to symbol  _s=%s  ", _tmp171_);
+#line 5909 "Walker.c"
+                       {
+                               gint i = 0;
+#line 871 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               i = 0;
+#line 5914 "Walker.c"
+                               {
+                                       gboolean _tmp172_ = FALSE;
+#line 871 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp172_ = TRUE;
+#line 871 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       while (TRUE) {
+#line 5921 "Walker.c"
+                                               gint _tmp174_;
+                                               JSDOCDocComment* _tmp175_;
+                                               GeeArrayList* _tmp176_;
+                                               gint _tmp177_;
+                                               gint _tmp178_;
+                                               GeeHashMap* _tmp179_;
+                                               const gchar* _tmp180_;
+                                               gpointer _tmp181_;
+                                               JSDOCSymbol* _tmp182_;
+                                               JSDOCDocComment* _tmp183_;
+                                               GeeArrayList* _tmp184_;
+                                               gint _tmp185_;
+                                               gpointer _tmp186_;
+                                               JSDOCDocTag* _tmp187_;
+#line 871 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                               if (!_tmp172_) {
+#line 5938 "Walker.c"
+                                                       gint _tmp173_;
+#line 871 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                                       _tmp173_ = i;
+#line 871 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                                       i = _tmp173_ + 1;
+#line 5944 "Walker.c"
+                                               }
+#line 871 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                               _tmp172_ = FALSE;
+#line 871 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                               _tmp174_ = i;
+#line 871 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                               _tmp175_ = self->priv->currentDoc;
+#line 871 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                               _tmp176_ = _tmp175_->tags;
+#line 871 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                               _tmp177_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp176_);
+#line 871 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                               _tmp178_ = _tmp177_;
+#line 871 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                               if (!(_tmp174_ < _tmp178_)) {
+#line 871 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                                       break;
+#line 5962 "Walker.c"
+                                               }
+#line 872 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                               _tmp179_ = self->priv->symbols;
+#line 872 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                               _tmp180_ = _s;
+#line 872 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                               _tmp181_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp179_, _tmp180_);
+#line 872 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                               _tmp182_ = (JSDOCSymbol*) _tmp181_;
+#line 872 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                               _tmp183_ = self->priv->currentDoc;
+#line 872 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                               _tmp184_ = _tmp183_->tags;
+#line 872 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                               _tmp185_ = i;
+#line 872 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                               _tmp186_ = gee_abstract_list_get ((GeeAbstractList*) _tmp184_, _tmp185_);
+#line 872 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                               _tmp187_ = (JSDOCDocTag*) _tmp186_;
+#line 872 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                               jsdoc_symbol_addDocTag (_tmp182_, _tmp187_);
+#line 872 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                               _g_object_unref0 (_tmp187_);
+#line 872 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                               _g_object_unref0 (_tmp182_);
+#line 5988 "Walker.c"
+                                       }
+                               }
+                       }
+#line 874 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _g_object_unref0 (self->priv->currentDoc);
+#line 874 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       self->priv->currentDoc = NULL;
+#line 875 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _g_free0 (_tmp161_);
+#line 875 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _g_free0 (_t);
+#line 875 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       s = (_vala_array_free (s, s_length1, (GDestroyNotify) g_free), NULL);
+#line 875 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _g_free0 (_s);
+#line 875 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _g_object_unref0 (token);
+#line 875 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _g_free0 (lastIdent);
+#line 875 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       return;
+#line 6010 "Walker.c"
+               }
+#line 785 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _g_free0 (_t);
+#line 785 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               s = (_vala_array_free (s, s_length1, (GDestroyNotify) g_free), NULL);
+#line 6016 "Walker.c"
+       }
+#line 879 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp188_ = self->priv->symbols;
+#line 879 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp189_ = _s;
+#line 879 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp190_ = gee_abstract_map_has_key ((GeeAbstractMap*) _tmp188_, _tmp189_);
+#line 879 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       if (_tmp190_) {
+#line 6026 "Walker.c"
+               GeeHashMap* _tmp191_;
+               const gchar* _tmp192_;
+               gpointer _tmp193_;
+               JSDOCSymbol* _tmp194_;
+               JSDOCDocComment* _tmp195_;
+               gboolean _tmp196_;
+               gboolean _tmp197_;
+#line 881 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp191_ = self->priv->symbols;
+#line 881 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp192_ = _s;
+#line 881 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp193_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp191_, _tmp192_);
+#line 881 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp194_ = (JSDOCSymbol*) _tmp193_;
+#line 881 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp195_ = _tmp194_->comment;
+#line 881 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp196_ = _tmp195_->hasTags;
+#line 881 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _tmp197_ = _tmp196_;
+#line 881 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               _g_object_unref0 (_tmp194_);
+#line 881 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               if (_tmp197_) {
+#line 887 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _g_free0 (_s);
+#line 887 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _g_object_unref0 (token);
+#line 887 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _g_free0 (lastIdent);
+#line 887 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       return;
+#line 6060 "Walker.c"
+               }
+       }
+#line 899 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp198_ = _s;
+#line 899 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp199_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL);
+#line 899 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp200_ = _tmp199_;
+#line 899 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp201_ = atype;
+#line 899 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp202_ = self->priv->currentDoc;
+#line 899 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp203_ = jsdoc_symbol_new_new_populate_with_args (_tmp198_, _tmp200_, _tmp201_, _tmp202_);
+#line 899 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp204_ = _tmp203_;
+#line 899 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _g_object_unref0 (_tmp200_);
+#line 899 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       symbol = _tmp204_;
+#line 902 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp205_ = symbol;
+#line 902 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       jsdoc_doc_parser_addSymbol (_tmp205_);
+#line 903 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp206_ = self->priv->symbols;
+#line 903 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp207_ = _s;
+#line 903 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp208_ = symbol;
+#line 903 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       gee_abstract_map_set ((GeeAbstractMap*) _tmp206_, _tmp207_, _tmp208_);
+#line 905 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _g_object_unref0 (self->priv->currentDoc);
+#line 905 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       self->priv->currentDoc = NULL;
+#line 756 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _g_object_unref0 (symbol);
+#line 756 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _g_free0 (_s);
+#line 756 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _g_object_unref0 (token);
+#line 756 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _g_free0 (lastIdent);
+#line 6105 "Walker.c"
+}
+
+
+static void jsdoc_walker_scopesIn (JSDOCWalker* self, JSDOCScope* s) {
+       GeeArrayList* _tmp0_;
+       JSDOCScope* _tmp1_;
+#line 912 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       g_return_if_fail (self != NULL);
+#line 912 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       g_return_if_fail (s != NULL);
+#line 914 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp0_ = self->priv->scopes;
+#line 914 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp1_ = s;
+#line 914 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       gee_abstract_collection_add ((GeeAbstractCollection*) _tmp0_, _tmp1_);
+#line 6122 "Walker.c"
+}
+
+
+static JSDOCScope* jsdoc_walker_scopeOut (JSDOCWalker* self) {
+       JSDOCScope* result = NULL;
+       GeeArrayList* _tmp0_;
+       GeeArrayList* _tmp1_;
+       gint _tmp2_;
+       gint _tmp3_;
+       gpointer _tmp4_;
+#line 918 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 922 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp0_ = self->priv->scopes;
+#line 922 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp1_ = self->priv->scopes;
+#line 922 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp2_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp1_);
+#line 922 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp3_ = _tmp2_;
+#line 922 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp4_ = gee_abstract_list_remove_at ((GeeAbstractList*) _tmp0_, _tmp3_ - 1);
+#line 922 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       result = (JSDOCScope*) _tmp4_;
+#line 922 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       return result;
+#line 6149 "Walker.c"
+}
+
+
+static void _vala_array_add7 (gchar** * array, int* length, int* size, gchar* value) {
+#line 930 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       if ((*length) == (*size)) {
+#line 930 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               *size = (*size) ? (2 * (*size)) : 4;
+#line 930 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               *array = g_renew (gchar*, *array, (*size) + 1);
+#line 6160 "Walker.c"
+       }
+#line 930 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       (*array)[(*length)++] = value;
+#line 930 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       (*array)[*length] = NULL;
+#line 6166 "Walker.c"
+}
+
+
+static gchar* jsdoc_walker_scopeListToStr (JSDOCWalker* self) {
+       gchar* result = NULL;
+       gchar** s = NULL;
+       gchar** _tmp0_;
+       gint s_length1;
+       gint _s_size_;
+       gchar** _tmp14_;
+       gint _tmp14__length1;
+       gchar* _tmp15_;
+#line 926 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 928 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp0_ = g_new0 (gchar*, 0 + 1);
+#line 928 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       s = _tmp0_;
+#line 928 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       s_length1 = 0;
+#line 928 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _s_size_ = s_length1;
+#line 6189 "Walker.c"
+       {
+               gint i = 0;
+#line 929 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+               i = 0;
+#line 6194 "Walker.c"
+               {
+                       gboolean _tmp1_ = FALSE;
+#line 929 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       _tmp1_ = TRUE;
+#line 929 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                       while (TRUE) {
+#line 6201 "Walker.c"
+                               gint _tmp3_;
+                               GeeArrayList* _tmp4_;
+                               gint _tmp5_;
+                               gint _tmp6_;
+                               gchar** _tmp7_;
+                               gint _tmp7__length1;
+                               GeeArrayList* _tmp8_;
+                               gint _tmp9_;
+                               gpointer _tmp10_;
+                               JSDOCScope* _tmp11_;
+                               const gchar* _tmp12_;
+                               gchar* _tmp13_;
+#line 929 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               if (!_tmp1_) {
+#line 6216 "Walker.c"
+                                       gint _tmp2_;
+#line 929 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       _tmp2_ = i;
+#line 929 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       i = _tmp2_ + 1;
+#line 6222 "Walker.c"
+                               }
+#line 929 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp1_ = FALSE;
+#line 929 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp3_ = i;
+#line 929 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp4_ = self->priv->scopes;
+#line 929 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp5_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp4_);
+#line 929 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp6_ = _tmp5_;
+#line 929 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               if (!(_tmp3_ < _tmp6_)) {
+#line 929 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                                       break;
+#line 6238 "Walker.c"
+                               }
+#line 930 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp7_ = s;
+#line 930 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp7__length1 = s_length1;
+#line 930 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp8_ = self->priv->scopes;
+#line 930 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp9_ = i;
+#line 930 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp10_ = gee_abstract_list_get ((GeeAbstractList*) _tmp8_, _tmp9_);
+#line 930 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp11_ = (JSDOCScope*) _tmp10_;
+#line 930 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp12_ = _tmp11_->ident;
+#line 930 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _tmp13_ = g_strdup (_tmp12_);
+#line 930 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _vala_array_add7 (&s, &s_length1, &_s_size_, _tmp13_);
+#line 930 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+                               _g_object_unref0 (_tmp11_);
+#line 6260 "Walker.c"
+                       }
+               }
+       }
+#line 932 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp14_ = s;
+#line 932 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp14__length1 = s_length1;
+#line 932 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _tmp15_ = _vala_g_strjoinv ("\n\t", _tmp14_, _tmp14__length1);
+#line 932 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       result = _tmp15_;
+#line 932 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       s = (_vala_array_free (s, s_length1, (GDestroyNotify) g_free), NULL);
+#line 932 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       return result;
+#line 6276 "Walker.c"
+}
+
+
+static void jsdoc_walker_class_init (JSDOCWalkerClass * klass) {
+#line 11 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       jsdoc_walker_parent_class = g_type_class_peek_parent (klass);
+#line 11 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       g_type_class_add_private (klass, sizeof (JSDOCWalkerPrivate));
+#line 11 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       G_OBJECT_CLASS (klass)->finalize = jsdoc_walker_finalize;
+#line 6287 "Walker.c"
+}
+
+
+static void jsdoc_walker_instance_init (JSDOCWalker * self) {
+#line 11 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       self->priv = JSDOC_WALKER_GET_PRIVATE (self);
+#line 21 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       self->priv->global = FALSE;
+#line 22 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       self->priv->mode = JSDOC_WALKER_MODE_XXX;
+#line 23 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       self->priv->braceNesting = 0;
+#line 25 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       self->priv->currentDoc = NULL;
+#line 27 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       self->priv->munge = TRUE;
+#line 6304 "Walker.c"
+}
+
+
+static void jsdoc_walker_finalize (GObject * obj) {
+       JSDOCWalker * self;
+#line 11 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       self = G_TYPE_CHECK_INSTANCE_CAST (obj, JSDOC_TYPE_WALKER, JSDOCWalker);
+#line 13 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _g_object_unref0 (self->priv->ts);
+#line 14 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _g_object_unref0 (self->priv->warnings);
+#line 15 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _g_object_unref0 (self->priv->scopes);
+#line 16 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _g_object_unref0 (self->priv->indexedScopes);
+#line 17 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _g_object_unref0 (self->priv->symbols);
+#line 18 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _g_object_unref0 (self->priv->aliases);
+#line 19 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _g_object_unref0 (self->priv->globalScope);
+#line 25 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       _g_object_unref0 (self->priv->currentDoc);
+#line 11 "/home/alan/gitlive/roojspacker/src/jsdoc/Walker.vala"
+       G_OBJECT_CLASS (jsdoc_walker_parent_class)->finalize (obj);
+#line 6330 "Walker.c"
+}
+
+
+GType jsdoc_walker_get_type (void) {
+       static volatile gsize jsdoc_walker_type_id__volatile = 0;
+       if (g_once_init_enter (&jsdoc_walker_type_id__volatile)) {
+               static const GTypeInfo g_define_type_info = { sizeof (JSDOCWalkerClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) jsdoc_walker_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (JSDOCWalker), 0, (GInstanceInitFunc) jsdoc_walker_instance_init, NULL };
+               GType jsdoc_walker_type_id;
+               jsdoc_walker_type_id = g_type_register_static (G_TYPE_OBJECT, "JSDOCWalker", &g_define_type_info, 0);
+               g_once_init_leave (&jsdoc_walker_type_id__volatile, jsdoc_walker_type_id);
+       }
+       return jsdoc_walker_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;
+}
+
+
+
diff --git a/jsdoc/Walker.vala b/jsdoc/Walker.vala
new file mode 100644 (file)
index 0000000..e1e1fd6
--- /dev/null
@@ -0,0 +1,939 @@
+// this walks through the code, and tries to find patterns that match documentable elements..
+
+
+namespace JSDOC {
+
+       enum WalkerMode {
+               BUILDING_SYMBOL_TREE,
+               XXX
+       }
+       
+       public class Walker  : Object
+       {
+               TokenStream ts;
+               Gee.ArrayList<string> warnings;
+               Gee.ArrayList<Scope> scopes;
+               Gee.HashMap<int,Scope> indexedScopes;
+               Gee.HashMap<string,Symbol> symbols;
+               Gee.HashMap<string,string> aliases;
+               Scope globalScope;
+               
+        bool global = false;
+        WalkerMode mode =  WalkerMode.XXX; //"BUILDING_SYMBOL_TREE",
+        int braceNesting = 0;
+        
+        DocComment? currentDoc =  null;
+
+        bool munge =  true;
+               
+               public Walker(TokenStream ts)
+               {
+                       this.ts  = ts;
+                       this.warnings= new Gee.ArrayList<string>();
+                       this.scopes = new Gee.ArrayList<Scope>();
+                       this.indexedScopes = new Gee.HashMap<int,Scope>();
+                       this.symbols = new Gee.HashMap<string,Symbol>();
+                       this.aliases = new Gee.HashMap<string,string>();
+                       this.braceNesting = 0;
+               }
+
+        //warn: function(s) {
+            //this.warnings.push(s);
+        //    print("WARNING:" + htmlescape(s) + "<BR>");
+        //},
+        // defaults should not be initialized here =- otherwise they get duped on new, rather than initalized..
+
+
+
+
+
+
+        public void buildSymbolTree()
+        {
+            //print("<PRE>");
+            
+            this.ts.rewind();
+            this.braceNesting = 0;
+            this.scopes = new Gee.ArrayList<Scope>();;
+                       this.aliases = new Gee.HashMap<string,string>();
+             
+            this.globalScope = new Scope(-1, null, -1,  "$global$", null);
+            this.indexedScopes = new Gee.HashMap<int,Scope>();
+            this.indexedScopes.set(  0,  this.globalScope );
+            
+            this.mode = WalkerMode.BUILDING_SYMBOL_TREE;
+            this.parseScope(this.globalScope,this.emptyAlias());
+            
+        }
+        Gee.HashMap<string,string>  emptyAlias()
+        {
+               return new Gee.HashMap<string,string> ();
+       }
+        
+        
+
+        string fixAlias (Gee.HashMap<string,string>aliases, string str, bool nomore = false)
+        {
+            var ar = str.split(".");
+            var m = ar[0];
+            
+            //print(str +"?=" +aliases.toSource());
+            if (!aliases.has_key(m)) {
+                return str;
+            }
+            ar[0] = aliases.get(m);
+            
+            var ret = string.joinv(".", ar);
+            if (nomore != true) {
+                ret = this.fixAlias(aliases, ret, true);
+            }
+            
+            
+            return ret;
+        }
+
+        
+
+        void parseScope (Scope in_scope, Gee.HashMap<string,string> ealiases) // parse a token stream..
+        {
+            //this.timerPrint("parseScope EnterScope"); 
+            
+            var scope = in_scope;
+            
+            var aliases = new Gee.HashMap<string,string>();
+
+            foreach(var i in ealiases.keys) {
+                aliases.set(i, ealiases.get(i));
+            }
+                
+            //print("STARTING SCOPE WITH: " + ealiases.toSource());
+             
+            var expressionBraceNesting = this.braceNesting;
+            var bracketNesting = 0;
+            var parensNesting = 0;
+           
+            
+            var l1 = "", l2 = "";
+            var scopeName = "";
+            
+            
+            var locBraceNest = 0;
+            // determines if we are in object literals...
+            
+            var isObjectLitAr = new Gee.ArrayList<bool>();
+            isObjectLitAr.add(false);
+            //print("SCOPE: ------------------START ----------------");
+
+            this.scopesIn(scope);
+            var scopeLen = this.scopes.size;
+            
+            if (this.ts.cursor < 1) {
+              // this.ts.cursor--; // hopeflly this kludge will work
+            }
+            
+            
+            //print(JSON.stringify(this.ts, null, 4)); Seed.quit();
+            Token token;
+            while (null != ( token = this.ts.next())) {
+                 //GLib.debug("TOK %s", token.asString());
+                //  this.timerPrint("parseScope AFTER lookT: " + token.toString()); 
+                  
+                if (token.isType(TokenType.COMM)) {
+                      
+                 
+                    if (!token.isName(TokenName.JSDOC)) {
+                        //print("Walker2 : spce is not JSDOC");
+                        continue; //skip.
+                    }
+                    if (this.currentDoc != null) {
+                        // add it to the current scope????
+                        
+                        this.addSymbol("", true);
+                        //print ( "Unconsumed Doc: " + token.toString())
+                        //throw "Unconsumed Doc (TOKwhitespace): " + this.currentDoc.toSource();
+                    }
+                    
+                   // print ( "NEW COMMENT: " + token.toString())
+                    var newDoc = new DocComment(token.data);
+                    
+                    // it"s a scope changer..
+                    
+                    if (newDoc.getTag(DocTagTitle.SCOPE).size > 0) {
+                        //print("Walker2 : doctag changes scope");
+                        //throw "done";
+                        scope.ident = "$private$|" + newDoc.getTag(DocTagTitle.SCOPE).get(0).desc;
+                        continue;
+                    } 
+                    
+                    // it"s a scope changer..
+                    if (newDoc.getTag(DocTagTitle.SCOPEALIAS).size > 0) {
+                        //print(newDoc.getTag("scopeAlias").toSource());
+                        // @scopeAlias a=b
+                        //print("Walker2 : doctag changes scope (alias)");
+                        var sal = newDoc.getTag(DocTagTitle.SCOPEALIAS).get(0).desc.split("=");
+                        aliases[sal[0].strip()] = sal[1].strip();
+                        
+                        continue;
+                    }
+                    
+                    
+                    /// got a  doc comment..
+                    //token.data might be this.??? (not sure though)
+                    //print("Walker2 : setting currentDoc");
+                    this.currentDoc = newDoc;
+                    continue;
+                }
+                
+                // catch the various issues .. - scoe changes or doc actions..
+                
+              
+                
+                // things that stop comments carrying on...??
+                
+                if (this.currentDoc != null && (
+                        token.data == ";" || 
+                        token.data == "}")) {
+                    this.addSymbol("", true);
+                    //throw "Unconsumed Doc ("+ token.toString() +"): " + this.currentDoc.toSource();
+                }
+                    
+                
+                // the rest are scoping issues...
+                
+                // var a = b;
+                
+                 if (token.isName(TokenName.VAR) &&
+                 
+                        this.ts.lookTok(1).isType(TokenType.NAME) &&
+                        this.ts.lookTok(2).data == "=" &&
+                        this.ts.lookTok(3).isType(TokenType.NAME) &&
+                        this.ts.lookTok(4).data == ";"  
+                        
+                 
+                 ) {
+                    //print("SET ALIAS:" + this.ts.lookTok(1).data +"=" + this.ts.lookTok(3).data);
+                     
+                    aliases.set(this.ts.lookTok(1).data, this.ts.lookTok(3).data);
+                
+                }
+                
+                if ((token.data == "eval") || /\.eval$/.match(token.data)) {
+                    this.currentDoc = null;
+                    continue;
+                }
+              
+                // extends scoping  *** not sure if the can be x = Roo.apply(....)
+                // xxx.extends(a,b, {
+                    // $this$=b|b.prototype
+                // xxx.apply(a, {
+                    // a  << scope
+                // xxx.applyIf(a, {
+                    // a  << scope
+                if (token.isType(TokenType.NAME) ) {
+                    
+                    //print("TOK(ident)"+ token.toString());
+                     
+                    if (/\.extend$/.match(token.data) &&
+                        this.ts.lookTok(1).data == "(" &&
+                        this.ts.lookTok(2).isType(TokenType.NAME)  &&
+                        this.ts.lookTok(3).data == "," &&
+                        this.ts.lookTok(4).isType(TokenType.NAME)  &&
+                        this.ts.lookTok(5).data == "," &&
+                        this.ts.lookTok(6).data == "{" 
+                           
+                        ) {
+                        // ignore test for ( a and ,
+                        this.ts.nextTok(); /// (
+                        token = this.ts.nextTok(); // a
+                        scopeName = token.data;
+                        
+                        if (this.currentDoc != null) {
+                            this.addSymbol(scopeName,false,"OBJECT");
+
+                        }
+                        this.ts.nextTok(); // ,
+                        this.ts.nextTok(); // b
+                        
+                        
+                        this.ts.nextTok(); // ,
+                        token = this.ts.nextTok(); // {
+                            
+                        scopeName = this.fixAlias(aliases, scopeName);
+                        
+                        var fnScope = new Scope(this.braceNesting, scope, token.id, // was token.n?
+                                       "$this$=" + scopeName  + "|"+scopeName+".prototype", null
+                                       );
+                        
+    
+                        this.indexedScopes.set(this.ts.cursor, fnScope);
+                        scope = fnScope;
+                        this.scopesIn(fnScope);
+                       
+                        locBraceNest++;
+                        //print(">>" +locBraceNest);
+                        continue; // no more processing..
+                        
+                    }
+                    
+                    // a = Roo.extend(parentname, {
+                        
+                     if (/\.extend$/.match(token.data) &&
+                        this.ts.lookTok(-2).isType(TokenType.NAME)  &&
+                        this.ts.lookTok(-1).data == "=" &&
+                        this.ts.lookTok(1).data == "(" &&
+                        this.ts.lookTok(2).isType(TokenType.NAME) &&
+                        this.ts.lookTok(3).data == "," &&
+                        this.ts.lookTok(4).data == "{" 
+                        ) {
+                        // ignore test for ( a and ,
+                        token = this.ts.lookTok(-2);
+                        scopeName = token.data;
+                        if (this.currentDoc != null) {
+                            this.addSymbol(scopeName,false,"OBJECT");
+
+                        }
+                        this.ts.nextTok(); /// (
+                        this.ts.nextTok(); // parent
+                        
+                        this.ts.nextTok(); // ,
+                        token =  this.ts.nextTok(); // {
+                             
+                        
+                        scopeName = this.fixAlias(aliases,scopeName);
+                        var fnScope =  new Scope(this.braceNesting, scope, token.id, // was token.n?
+                                        "$this$=" + scopeName  + "|"+scopeName+".prototype",
+                                                null
+                                       );
+                        
+                         
+                        this.indexedScopes.set(this.ts.cursor, fnScope);
+                        scope = fnScope;
+                        this.scopesIn(fnScope);
+                       
+                        locBraceNest++;
+                        //print(">>" +locBraceNest);
+                        continue; // no more processing..
+                        
+                    }
+                    
+                    
+                     // apply ( XXXX,  {
+                    /*
+                    print(JSON.stringify([
+                        token.data,
+                        this.ts.lookTok(1).data ,
+                        this.ts.lookTok(2).type ,
+                        this.ts.lookTok(3).data ,
+                        this.ts.lookTok(4).data 
+                    ], null, 4));
+                    */
+                    
+                    if (/\.(applyIf|apply)$/.match(token.data) && 
+                        this.ts.lookTok(1).data == "("  &&
+                        this.ts.lookTok(2).isType(TokenType.NAME) &&
+                        this.ts.lookTok(3).data == ","  &&
+                        this.ts.lookTok(4).data == "{" 
+                        
+                        ) {
+                        this.ts.nextTok(); /// (
+                         
+                        //print("GOT : applyIF!"); 
+                         
+                        token = this.ts.nextTok(); // b
+                        scopeName = token.data;
+                        
+                                      
+                        if (this.currentDoc != null) {
+                            this.addSymbol(scopeName,false,"OBJECT");
+                        }
+                     
+
+                        
+                        this.ts.nextTok(); /// ,
+                        this.ts.nextTok(); // {
+                        scopeName = this.fixAlias(aliases,scopeName);
+                        var fnScope =   new Scope(this.braceNesting, scope, token.id, // was token.n?
+                                       scopeName, null
+                                       );
+
+                        this.indexedScopes.set(this.ts.cursor, fnScope);
+                        scope = fnScope;
+                        this.scopesIn(fnScope);
+                         
+                        locBraceNest++;
+                        //print(">>" +locBraceNest);
+                        continue; // no more processing..
+                    }
+                    
+                    
+                    // xxx = new yyy ( {
+                        
+                    // change scope to xxxx
+                    /*
+                    print(JSON.stringify([
+                        this.ts.lookTok(1).data ,
+                        this.ts.lookTok(2).name ,
+                        this.ts.lookTok(3).type ,
+                        this.ts.lookTok(4).data ,
+                        this.ts.lookTok(5).data 
+                    ], null, 4));
+                    */
+                    if ( this.ts.lookTok(1).data == "=" &&
+                        this.ts.lookTok(2).isName(TokenName.NEW) &&
+                        this.ts.lookTok(3).isType(TokenType.NAME)&&
+                        this.ts.lookTok(4).data == "(" &&
+                        this.ts.lookTok(5).data == "{" 
+                        ) {
+                        scopeName = token.data;
+                        if (this.currentDoc != null) {
+                            this.addSymbol(scopeName,false,"OBJECT");
+                            
+                        }
+                        
+                        this.ts.nextTok(); /// =
+                        this.ts.nextTok(); /// new
+                        this.ts.nextTok(); /// yyy
+                        this.ts.nextTok(); /// (
+                        this.ts.nextTok(); /// {
+                            
+                        scopeName = this.fixAlias(aliases,scopeName);
+                        var fnScope =  new Scope(this.braceNesting, scope, token.id, // was token.n?
+                                       scopeName,null
+                                       ); 
+                        this.indexedScopes.set(this.ts.cursor,  fnScope);
+                        scope = fnScope;
+                        this.scopesIn(fnScope);
+                         
+                        locBraceNest++;
+                        //print(">>" +locBraceNest);
+                        
+                        continue; // no more processing..
+                    }
+                    
+
+                     
+                    
+                    
+                    
+                    
+                    // eval can be prefixed with a hint hider for the compresser..
+                    
+                    
+                    if (this.currentDoc != null) {
+                        //print(token.toString());
+                        
+                        // ident : function ()
+                        // ident = function ()
+                        var atype = "OBJECT";
+                        
+                        if (((this.ts.lookTok(1).data == ":" )|| (this.ts.lookTok(1).data == "=")) &&
+                            (this.ts.lookTok(2).isName(TokenName.FUNCTION))
+                            ) {
+                               // this.ts.nextTok();
+                               // this.ts.nextTok();
+                                atype = "FUNCTION";
+                        }
+                        
+                        //print("ADD SYM:" + atype + ":" + token.toString() + this.ts.lookTok(1).toString() + this.ts.lookTok(2).toString());
+                        
+                        this.addSymbol(
+                            this.ts.lookTok(-1).data == "." ? token.data :    this.fixAlias(aliases,token.data),
+                            false,
+                            atype);
+                        
+
+                        this.currentDoc = null;
+                        
+                        
+                        
+                        
+                        
+                        
+                    }
+                 
+                    
+                    continue; // dont care about other idents..
+                    
+                }
+                
+                //print ("NOT NAME");
+                
+                
+                if (token.isType(TokenType.STRN))   { // THIS WILL NOT HAPPEN HERE?!!?
+                    if (this.currentDoc != null) {
+                        this.addSymbol(token.data.substring(1,token.data.length-1),false,"OBJECT");
+                    }
+                }
+            
+                // really we only have to deal with object constructs and function calls that change the scope...
+                
+                
+                if (token.isName(TokenName.FUNCTION)) {
+                    //print("GOT FUNCTION");
+                    // see if we have an unconsumed doc...
+                    
+                       if (this.currentDoc != null) {
+                        GLib.error("Unhandled doc (TOKfunction) %s", token.asString());
+                    }
+                    
+                     
+                     
+                     
+                     
+                    /// foo = function() {} << really it set"s the "this" scope to foo.prototype
+                    //$this$=foo.prototype|$private$|foo.prototype
+        
+                    if (
+                            (this.ts.lookTok(-1).data == "=") && 
+                            (this.ts.lookTok(-2).isType(TokenType.NAME))
+                        ) {
+                        scopeName = this.ts.lookTok(-2).data;
+                        this.ts.balance(TokenName.LEFT_PAREN);
+                        token = this.ts.nextTok(); // should be {
+                        //print("FOO=FUNCITON() {}" + this.ts.context() + "\n" + token.toString());
+                        
+                        
+                        scopeName = this.fixAlias(aliases, scopeName);
+                        var fnScope =  new Scope(this.braceNesting, scope, token.id, // was token.n?
+                                       "$this$="+scopeName+".prototype|$private$|"+scopeName+".prototype",
+                                       null
+                                       ); 
+                        
+                        this.indexedScopes.set(this.ts.cursor, fnScope);
+                        //scope = fnScope;
+                        //this.scopesIn(fnScope);
+                        this.parseScope(fnScope, aliases);
+                        
+                        
+                       
+                        locBraceNest++;
+                        //print(">>" +locBraceNest);
+                        continue; // no more processing..    
+                          
+                        
+                    }
+                        
+                
+                // foo = new function() {}
+                        // is this actually used much!?!?!
+                        //$private$
+                        
+                    if (
+                            (this.ts.lookTok(-1).isName(TokenName.NEW)) && 
+                            (this.ts.lookTok(-2).data == "=") &&
+                            (this.ts.lookTok(-3).isName(TokenName.FUNCTION))
+                        ) {
+                        //scopeName = this.ts.look(-3).data;
+                        this.ts.balance(TokenName.LEFT_PAREN);
+                        token = this.ts.nextTok(); // should be {
+                        scopeName = this.fixAlias(aliases, scopeName);
+                        var fnScope =  new Scope(this.braceNesting, scope, token.id, // was token.n?
+                                       "$private$",null
+                                       ); 
+                        
+                        
+                        this.indexedScopes.set(this.ts.cursor,  fnScope);
+                        //scope = fnScope;
+                        //this.scopesIn(fnScope);
+                        this.parseScope(fnScope, aliases);
+                        
+                        locBraceNest++;
+                        //print(">>" +locBraceNest);
+                        continue; // no more processing..    
+                          
+                        
+                    }    
+                   
+                    
+    ///==== check/set isObjectLitAr ??                
+                    
+                    
+                 // foo: function() {}
+                        // no change to scoping..
+                        
+                    //print("checking for : function() {"); 
+                    //print( [this.ts.lookTok(-3).type , this.ts.lookTok(-2).type , this.ts.lookTok(-1).type ].join(":"));
+                    if (
+                            (this.ts.lookTok(-1).data == ":") && 
+                            (this.ts.lookTok(-2).isType(TokenType.NAME)) &&
+                            (this.ts.lookTok(-3).data == "(" || this.ts.lookTok(-3).data== ",") 
+                        ) {
+                        //print("got for : function() {"); 
+                            
+                        //scopeName = this.ts.look(-3).data;
+                        this.ts.balance(TokenName.LEFT_PAREN);
+                        //print(token.toString())
+                        token = this.ts.nextTok(); // should be {
+                        //print(token.toString())
+                        
+                        scopeName = this.fixAlias(aliases, scopeName);
+                        var fnScope =  new Scope(this.braceNesting, scope, token.id, // was token.n?
+                                       "", null
+                                       ); 
+
+                        this.indexedScopes.set(this.ts.cursor, fnScope);
+                        //scope = fnScope;
+                        //this.scopesIn(fnScope);
+                         this.parseScope(fnScope, aliases);
+                        locBraceNest++;
+                        //print(">>" +locBraceNest);
+                        continue; // no more processing..    
+                          
+                    } 
+               /// function foo() {} << really it set"s the "this" scope to foo.prototype
+                        //$this$=foo|$private$
+                        //$this$=foo
+                        
+                    if (
+                            (this.ts.lookTok(1).isType(TokenType.NAME)) 
+                        ) {
+                        //scopeName = this.ts.look(-3).data;
+                        this.ts.balance(TokenName.LEFT_PAREN);
+                        token = this.ts.nextTok(); // should be {
+                        var fnScope =  new Scope(this.braceNesting, scope, token.id, // was token.n?
+                                       "", null
+                                       ); 
+
+                        this.indexedScopes.set(this.ts.cursor, fnScope);
+                        //scope = fnScope;
+                        //this.scopesIn(fnScope);
+                        this.parseScope(fnScope, aliases);
+                        locBraceNest++;
+                        //print(">>" +locBraceNest);
+                        continue; // no more processing..    
+                          
+                    }
+                    
+                     
+                // foo = new (function() { }
+                // (function() { }
+                // RETURN function(...) {
+                    
+                    if (
+                           // (this.ts.lookTok(-1).tokN == Script.TOKlparen) && 
+                            (!this.ts.lookTok(1).isType(TokenType.NAME))   
+                            
+                        //    (this.ts.lookTok(-2).tokN == Script.TOKnew) &&
+                         //   (this.ts.lookTok(-3).tokN == Script.TOKassign) &&
+                         //   (this.ts.lookTok(-4).tokN == Script.TOKidentifier)
+                        ) {
+                        //scopeName = this.ts.look(-3).data;
+                        this.ts.balance(TokenName.LEFT_PAREN);
+                        token = this.ts.nextTok(); // should be {
+                        var fnScope =  new Scope(this.braceNesting, scope, token.id, // was token.n?
+                                               "$private$",null
+                                       ); 
+
+                        this.indexedScopes.set(this.ts.cursor, fnScope);
+                        //scope = ;
+                        //this.scopesIn(fnScope);
+                         this.parseScope(fnScope, aliases);
+                        locBraceNest++;
+                        //print(">>" +locBraceNest);
+                        continue; // no more processing..    
+                          
+                        
+                    }
+                    
+                    GLib.error( "dont know how to handle function syntax??\n %s" +
+                                token.asString());
+                    
+            
+                    
+                    continue;
+                    
+                    
+                    
+                    
+                } // end checking for TOKfunction
+                    
+                if (token.data == "{") {
+                    
+                     // foo = { // !var!!!
+                        //$this$=foo|Foo
+               
+                
+                    if (
+                            (this.ts.lookTok(-1).data == "=") &&
+                            (this.ts.lookTok(-2).isType(TokenType.NAME)) &&
+                            (!this.ts.lookTok(-3).isName(TokenName.VAR))  
+                        ) {
+                            
+                            scopeName = this.ts.lookTok(-2).data;
+                            //print(scopeName);
+                            scopeName = this.fixAlias(aliases, scopeName);
+                            GLib.debug("got %s = {", scopeName);
+                            
+                            //print(this.scopes.length);
+                            var fnScope =  new Scope(this.braceNesting, scope, token.id, // was token.n?
+                                                       "$this$=" + scopeName +"|"+scopeName, null
+                                               ); 
+                            
+                            this.indexedScopes.set(this.ts.cursor, fnScope);
+                            scope = fnScope;
+                            // push the same scope onto the stack..
+                            this.scopesIn(fnScope);
+                            //this.scopesIn(this.scopes[this.scopes.length-1]);
+                            
+                              
+                            locBraceNest++;
+                            //print(">>" +locBraceNest);
+                            continue; // no more processing..   
+                    }
+                    // foo : {
+                    // ?? add |foo| ????
+                      
+                    //print("GOT LBRACE : check for :");
+                    if (
+                            (this.ts.lookTok(-1).data == ":") &&
+                            (this.ts.lookTok(-2).isType(TokenType.NAME)) &&
+                            (!this.ts.lookTok(-3).isName(TokenName.VAR)) 
+                        ) {
+                            
+                            scopeName = this.ts.lookTok(-2).data;
+                            scopeName = this.fixAlias(aliases, scopeName);
+                            var fnScope =  new Scope(this.braceNesting, scope, token.id, // was token.n?
+                                                       scopeName, null
+                                               ); 
+
+                            this.indexedScopes.set(this.ts.cursor, fnScope);
+                            scope = fnScope;
+                            this.scopesIn(fnScope);
+                            
+                            locBraceNest++;
+                            //print(">>" +locBraceNest);
+                            continue; // no more processing..   
+                    }
+                    var fnScope =  new Scope(this.braceNesting, scope, token.id, // was token.n?
+                                               "", null
+                               ); 
+
+                    this.indexedScopes.set(this.ts.cursor, fnScope);
+                    scope = fnScope;
+                    this.scopesIn(fnScope);
+                   
+                    locBraceNest++;
+                    //print(">>" +locBraceNest);
+                    continue;
+                    
+                }
+                if (token.data == "}") {
+                    
+                     
+                        if (this.currentDoc != null) {
+                            this.addSymbol("", true);
+
+                            //throw "Unconsumed Doc: (TOKrbrace)" + this.currentDoc.toSource();
+                        }
+                        
+                       
+                        locBraceNest--;
+                        
+                            //assert braceNesting >= scope.getBraceNesting();
+                        var closescope = this.scopeOut();
+                        
+                        scope = this.scopes.get(this.scopes.size-1);
+                        
+                        //print("<<:" +  locBraceNest)
+                        //print("<<<<<< " + locBraceNest );
+                        if (locBraceNest < 0) {
+                           // print("POPED OF END OF SCOPE!");
+                            ///this.scopeOut();   
+                            //var ls = this.scopeOut();
+                            //ls.getUsedSymbols();
+                            return;
+                        }
+                        continue;
+                }
+              
+                
+            }
+            
+            
+        }
+     
+         
+        void addSymbol(string in_lastIdent, bool appendIt = false, string atype = "OBJECT")
+        {
+            
+            GLib.debug("addSymbol %s", in_lastIdent);
+            var lastIdent = in_lastIdent;
+            if (this.currentDoc.getTag(DocTagTitle.PRIVATE).size > 0) {
+                
+              
+                //print(this.currentDoc.toSource());
+                 this.currentDoc = null;
+                //print("SKIP ADD SYM:  it"s private");
+                return;
+            }
+            
+            var token = this.ts.lookTok(0);
+          
+          //  print(this.currentDoc.toSource(););
+            if (this.currentDoc.getTag(DocTagTitle.EVENT).size > 0) {
+                //?? why does it end up in desc - and not name/...
+                //print(this.currentDoc.getTag("event")[0]);
+                lastIdent = "*" + this.currentDoc.getTag(DocTagTitle.EVENT).get(0).desc;
+                //lastIdent = "*" + lastIdent ;
+            }
+            if (lastIdent.length < 1 && this.currentDoc.getTag(DocTagTitle.PROPERTY).size > 0) {
+                lastIdent = this.currentDoc.getTag(DocTagTitle.PROPERTY).get(0).name;
+                //lastIdent = "*" + lastIdent ;
+            }
+            
+            var _s = lastIdent;
+            if (!/\./.match(_s)) {
+                    
+                //print("WALKER ADDsymbol: " + lastIdent);
+                
+                string[] s = {};
+                GLib.debug("Checking Scopes %d", this.scopes.size);
+                for (var i = 0; i < this.scopes.size;i++) {
+                    GLib.debug("Scope %s", this.scopes.get(i).ident);
+                       var adds = this.scopes.get(i).ident;
+                       
+                    s = s + adds;
+                }
+                s += lastIdent;
+                
+                GLib.debug("FULLSCOPE: '%s'" , string.joinv("', '", s));
+                
+                
+                s = string.joinv("|", s).split("|");
+                //print("FULLSCOPE: " + s);
+             //  print("Walker:ADDSymbol: " + s.join("|") );
+                var _t = "";
+                 _s = "";
+                
+                /// fixme - needs
+                for (var i = 0; i < s.length;i++) {
+                    
+                    if (s[i].length < 1) {
+                        continue;
+                    }
+                    if ((s[i] == "$private$") || (s[i] == "$global$")) {
+                        _s = "";
+                        continue;
+                    }
+                    if (s[i].length > 5 &&  s[i].substring(0,6) == "$this$") {
+                        var ts = s[i].split("=");
+                        _t = ts[1];
+                        _s = ""; // ??? VERY QUESTIONABLE!!!
+                        continue;
+                    }
+                    // when to use $this$ (probabl for events)
+                    _s += _s.length > 0 ? "." : "";
+                    _s += s[i];
+                }
+                GLib.debug("FULLSCOPE: _s=%s (append = %s)" , _s, appendIt? "YES": "no");
+                
+                /// calc scope!!
+                //print("ADDING SYMBOL: "+ s.join("|") +"\n"+ _s + "\n" +Script.prettyDump(this.currentDoc.toSource()));
+                //print("Walker.addsymbol - add : " + _s);
+                
+                
+                if (appendIt && lastIdent.length < 1) {
+                    
+                    // append, and no symbol???
+                    
+                    // see if it"s a @class
+                    if (this.currentDoc.getTag(DocTagTitle.CLASS).size > 0) {
+                        _s = this.currentDoc.getTag(DocTagTitle.CLASS).get(0).desc;
+                        var symbol = new Symbol.new_populate_with_args(_s, new Gee.ArrayList<string>(),
+                                        "CONSTRUCTOR", this.currentDoc);
+                       
+                        DocParser.addSymbol(symbol);
+                        this.symbols[_s] = symbol;
+                        return;
+                    }
+                    
+                   // if (this.currentDoc.getTag("property").length) {
+                     //   print(Script.pretStringtyDump(this.currentDoc.toSource));
+                    //    throw "Add Prop?";
+                    //}
+
+                    _s = /\.prototype.*$/.replace(_s, _s.length,0, "");
+                    
+                    if (!this.symbols.has_key(_s)) {
+                        //print("Symbol:" + _s);
+                       //print(this.currentDoc.src);
+                        
+                        //throw {
+                        //    name: "ArgumentError", 
+                        //    message: "Trying to append symbol "" + _s + "", but no doc available\n" +
+                        //        this.ts.lookTok(0).toString()
+                        //};
+                        this.currentDoc = null;
+                        return;
+                     
+                    }
+                    GLib.debug("add to symbol  _s=%s  " , _s);    
+                    for (var i =0; i < this.currentDoc.tags.size;i++) {
+                        this.symbols.get(_s).addDocTag(this.currentDoc.tags.get(i));
+                    } 
+                    this.currentDoc = null;
+                    return;
+                }
+            }    
+            //print("Walker.addsymbol - chkdup: " + _s);
+            if (this.symbols.has_key(_s)) {
+                
+                if (this.symbols.get(_s).comment.hasTags) {
+                    // then existing comment doesnt has tags 
+                    //throw {
+                    //    name: "ArgumentError", 
+                     //   message:"DUPLICATE Symbol " + _s + "\n" + token.toString()
+                    //};
+                    return;
+                }
+                // otherwise existing comment has tags - overwrite..
+                
+                
+            }
+            //print("Walker.addsymbol - ATYPE: " + _s);
+
+
+
+            
+            //print("Walker.addsymbol - add : ");
+            var symbol = new Symbol.new_populate_with_args(
+                       _s, new Gee.ArrayList<string>(), atype, this.currentDoc);
+
+            DocParser.addSymbol(symbol);
+            this.symbols[_s] = symbol;
+            
+             this.currentDoc = null;
+            
+        }
+        
+        
+        
+        
+        void scopesIn  (Scope s)
+        {
+            this.scopes.add(s);
+            //print(">>>" + this.ts.context()  + "\n>>>"+this.scopes.length+":" +this.scopeListToStr());
+            
+        }
+        Scope scopeOut()
+        {
+            
+           // print("<<<" + this.ts.context()  + "\n<<<"+this.scopes.length+":" +this.scopeListToStr());
+            return this.scopes.remove_at(this.scopes.size -1 );
+            
+        }
+        
+        string scopeListToStr ()
+        {
+            string[] s = {};
+            for (var i = 0; i < this.scopes.size;i++) {
+                s +=(this.scopes[i].ident);
+            }
+            return  string.joinv("\n\t",s);
+            
+        }
+        
+    }
+    
+     
+}
\ No newline at end of file