/* tokentype.c generated by valac, the Vala compiler
 * generated from tokentype.vala, do not modify */

/* tokentype.vala
 *
 * Copyright (C) 2008-2009 Florian Brosch, Didier Villevalois
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301  USA
 *
 * Author:
 * 	Didier 'Ptitjes Villevalois <ptitjes@free.fr>
 */

#include "valadoc.h"
#include <stdlib.h>
#include <string.h>
#include <glib.h>
#include <glib-object.h>

enum  {
	VALADOC_TOKEN_TYPE_0_PROPERTY,
	VALADOC_TOKEN_TYPE_NUM_PROPERTIES
};
static GParamSpec* valadoc_token_type_properties[VALADOC_TOKEN_TYPE_NUM_PROPERTIES];
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
typedef struct _Block6Data Block6Data;
#define _g_free0(var) (var = (g_free (var), NULL))

struct _ValadocTokenTypePrivate {
	gchar* _string_value;
	gchar* _pretty_string;
	gint _basic_value;
	ValadocTokenTypeAction _action;
	gpointer _action_target;
	GDestroyNotify _action_target_destroy_notify;
};

struct _Block6Data {
	int _ref_count_;
	ValadocTokenType* self;
	ValadocTokenTypeAction __action;
	gpointer __action_target;
};

static gint ValadocTokenType_private_offset;
static gpointer valadoc_token_type_parent_class = NULL;
ValadocTokenType* valadoc_token_type_ANY = NULL;
ValadocTokenType* valadoc_token_type_ANY_WORD = NULL;
ValadocTokenType* valadoc_token_type_ANY_NUMBER = NULL;
ValadocTokenType* valadoc_token_type_EOF = NULL;
ValadocTokenType* valadoc_token_type_EOL = NULL;
ValadocTokenType* valadoc_token_type_BREAK = NULL;
ValadocTokenType* valadoc_token_type_AROBASE = NULL;
ValadocTokenType* valadoc_token_type_SPACE = NULL;
ValadocTokenType* valadoc_token_type_TAB = NULL;
ValadocTokenType* valadoc_token_type_EQUAL_1 = NULL;
ValadocTokenType* valadoc_token_type_EQUAL_2 = NULL;
ValadocTokenType* valadoc_token_type_EQUAL_3 = NULL;
ValadocTokenType* valadoc_token_type_EQUAL_4 = NULL;
ValadocTokenType* valadoc_token_type_EQUAL_5 = NULL;
ValadocTokenType* valadoc_token_type_MINUS = NULL;
ValadocTokenType* valadoc_token_type_LESS_THAN = NULL;
ValadocTokenType* valadoc_token_type_GREATER_THAN = NULL;
ValadocTokenType* valadoc_token_type_ALIGN_TOP = NULL;
ValadocTokenType* valadoc_token_type_ALIGN_BOTTOM = NULL;
ValadocTokenType* valadoc_token_type_SINGLE_QUOTE_2 = NULL;
ValadocTokenType* valadoc_token_type_SLASH_2 = NULL;
ValadocTokenType* valadoc_token_type_UNDERSCORE_2 = NULL;
ValadocTokenType* valadoc_token_type_BACK_QUOTE_2 = NULL;
ValadocTokenType* valadoc_token_type_OPEN_BRACE = NULL;
ValadocTokenType* valadoc_token_type_CLOSED_BRACE = NULL;
ValadocTokenType* valadoc_token_type_DOUBLE_OPEN_BRACE = NULL;
ValadocTokenType* valadoc_token_type_DOUBLE_CLOSED_BRACE = NULL;
ValadocTokenType* valadoc_token_type_TRIPLE_OPEN_BRACE = NULL;
ValadocTokenType* valadoc_token_type_TRIPLE_CLOSED_BRACE = NULL;
ValadocTokenType* valadoc_token_type_DOUBLE_OPEN_BRACKET = NULL;
ValadocTokenType* valadoc_token_type_DOUBLE_CLOSED_BRACKET = NULL;
ValadocTokenType* valadoc_token_type_PIPE = NULL;
ValadocTokenType* valadoc_token_type_DOUBLE_PIPE = NULL;
ValadocTokenType* valadoc_token_type_ALIGN_RIGHT = NULL;
ValadocTokenType* valadoc_token_type_ALIGN_CENTER = NULL;
ValadocTokenType* valadoc_token_type_VALADOC_COMMENT_START = NULL;
ValadocTokenType* valadoc_token_type_VALADOC_COMMENT_END = NULL;
ValadocTokenType* valadoc_token_type_VALADOC_ANY_WORD = NULL;
ValadocTokenType* valadoc_token_type_VALADOC_SPACE = NULL;
ValadocTokenType* valadoc_token_type_VALADOC_TAB = NULL;
ValadocTokenType* valadoc_token_type_VALADOC_EOL = NULL;
ValadocTokenType* valadoc_token_type_MARKDOWN_PARAGRAPH = NULL;
ValadocTokenType* valadoc_token_type_MARKDOWN_ANY_WORD = NULL;
ValadocTokenType* valadoc_token_type_MARKDOWN_SPACE = NULL;
ValadocTokenType* valadoc_token_type_MARKDOWN_SOURCE = NULL;
ValadocTokenType* valadoc_token_type_MARKDOWN_PARAMETER = NULL;
ValadocTokenType* valadoc_token_type_MARKDOWN_CONSTANT = NULL;
ValadocTokenType* valadoc_token_type_MARKDOWN_SYMBOL = NULL;
ValadocTokenType* valadoc_token_type_MARKDOWN_LOCAL_GMEMBER = NULL;
ValadocTokenType* valadoc_token_type_MARKDOWN_FUNCTION = NULL;
ValadocTokenType* valadoc_token_type_MARKDOWN_MAIL = NULL;
ValadocTokenType* valadoc_token_type_MARKDOWN_LINK = NULL;
ValadocTokenType* valadoc_token_type_MARKDOWN_GREATER_THAN = NULL;
ValadocTokenType* valadoc_token_type_MARKDOWN_LESS_THAN = NULL;
ValadocTokenType* valadoc_token_type_MARKDOWN_OPEN_BRACKET = NULL;
ValadocTokenType* valadoc_token_type_MARKDOWN_CLOSE_BRACKET = NULL;
ValadocTokenType* valadoc_token_type_MARKDOWN_OPEN_PARENS = NULL;
ValadocTokenType* valadoc_token_type_MARKDOWN_CLOSE_PARENS = NULL;
ValadocTokenType* valadoc_token_type_MARKDOWN_EXCLAMATION_MARK = NULL;
ValadocTokenType* valadoc_token_type_MARKDOWN_HEADLINE_1 = NULL;
ValadocTokenType* valadoc_token_type_MARKDOWN_HEADLINE_2 = NULL;
ValadocTokenType* valadoc_token_type_MARKDOWN_HEADLINE_HASH = NULL;
ValadocTokenType* valadoc_token_type_MARKDOWN_HEADLINE_END = NULL;
ValadocTokenType* valadoc_token_type_MARKDOWN_UNORDERED_LIST_ITEM_START = NULL;
ValadocTokenType* valadoc_token_type_MARKDOWN_UNORDERED_LIST_ITEM_END = NULL;
ValadocTokenType* valadoc_token_type_MARKDOWN_ORDERED_LIST_ITEM_START = NULL;
ValadocTokenType* valadoc_token_type_MARKDOWN_ORDERED_LIST_ITEM_END = NULL;
ValadocTokenType* valadoc_token_type_MARKDOWN_BLOCK_START = NULL;
ValadocTokenType* valadoc_token_type_MARKDOWN_BLOCK_END = NULL;
ValadocTokenType* valadoc_token_type_MARKDOWN_EOC = NULL;
static gboolean valadoc_token_type_initialized;
static gboolean valadoc_token_type_initialized = FALSE;
static gint valadoc_token_type_EXACT_WORD;
static gint valadoc_token_type_EXACT_WORD = -1;
static gint valadoc_token_type__last_basic_value;
static gint valadoc_token_type__last_basic_value = -1;

 G_GNUC_INTERNAL void valadoc_token_type_init_token_types (void);
static ValadocTokenType* valadoc_token_type_new_basic (const gchar* string_value,
                                                const gchar* pretty_string);
static ValadocTokenType* valadoc_token_type_construct_basic (GType object_type,
                                                      const gchar* string_value,
                                                      const gchar* pretty_string);
static ValadocTokenType* valadoc_token_type_new (const gchar* string_value,
                                          gint basic_value,
                                          ValadocTokenTypeAction __action,
                                          gpointer __action_target);
static ValadocTokenType* valadoc_token_type_construct (GType object_type,
                                                const gchar* string_value,
                                                gint basic_value,
                                                ValadocTokenTypeAction __action,
                                                gpointer __action_target);
static Block6Data* block6_data_ref (Block6Data* _data6_);
static void block6_data_unref (void * _userdata_);
static void ___lambda4_ (Block6Data* _data6_,
                  ValadocToken* token,
                  GError** error);
static void ____lambda4__valadoc_token_type_action (ValadocToken* token,
                                             gpointer self,
                                             GError** error);
static void valadoc_token_type_finalize (GObject * obj);
static GType valadoc_token_type_get_type_once (void);

static inline gpointer
valadoc_token_type_get_instance_private (ValadocTokenType* self)
{
	return G_STRUCT_MEMBER_P (self, ValadocTokenType_private_offset);
}

static gpointer
_g_object_ref0 (gpointer self)
{
	return self ? g_object_ref (self) : NULL;
}

 G_GNUC_INTERNAL void
valadoc_token_type_init_token_types (void)
{
	if (!valadoc_token_type_initialized) {
		ValadocTokenType* _tmp0_;
		ValadocTokenType* _tmp1_;
		ValadocTokenType* _tmp2_;
		ValadocTokenType* _tmp3_;
		ValadocTokenType* _tmp4_;
		ValadocTokenType* _tmp5_;
		ValadocTokenType* _tmp6_;
		ValadocTokenType* _tmp7_;
		ValadocTokenType* _tmp8_;
		ValadocTokenType* _tmp9_;
		ValadocTokenType* _tmp10_;
		ValadocTokenType* _tmp11_;
		ValadocTokenType* _tmp12_;
		ValadocTokenType* _tmp13_;
		ValadocTokenType* _tmp14_;
		ValadocTokenType* _tmp15_;
		ValadocTokenType* _tmp16_;
		ValadocTokenType* _tmp17_;
		ValadocTokenType* _tmp18_;
		ValadocTokenType* _tmp19_;
		ValadocTokenType* _tmp20_;
		ValadocTokenType* _tmp21_;
		ValadocTokenType* _tmp22_;
		ValadocTokenType* _tmp23_;
		ValadocTokenType* _tmp24_;
		ValadocTokenType* _tmp25_;
		ValadocTokenType* _tmp26_;
		ValadocTokenType* _tmp27_;
		ValadocTokenType* _tmp28_;
		ValadocTokenType* _tmp29_;
		ValadocTokenType* _tmp30_;
		ValadocTokenType* _tmp31_;
		ValadocTokenType* _tmp32_;
		ValadocTokenType* _tmp33_;
		ValadocTokenType* _tmp34_;
		ValadocTokenType* _tmp35_;
		ValadocTokenType* _tmp36_;
		ValadocTokenType* _tmp37_;
		ValadocTokenType* _tmp38_;
		ValadocTokenType* _tmp39_;
		ValadocTokenType* _tmp40_;
		ValadocTokenType* _tmp41_;
		ValadocTokenType* _tmp42_;
		ValadocTokenType* _tmp43_;
		ValadocTokenType* _tmp44_;
		ValadocTokenType* _tmp45_;
		ValadocTokenType* _tmp46_;
		ValadocTokenType* _tmp47_;
		ValadocTokenType* _tmp48_;
		ValadocTokenType* _tmp49_;
		ValadocTokenType* _tmp50_;
		ValadocTokenType* _tmp51_;
		ValadocTokenType* _tmp52_;
		ValadocTokenType* _tmp53_;
		ValadocTokenType* _tmp54_;
		ValadocTokenType* _tmp55_;
		ValadocTokenType* _tmp56_;
		ValadocTokenType* _tmp57_;
		ValadocTokenType* _tmp58_;
		ValadocTokenType* _tmp59_;
		ValadocTokenType* _tmp60_;
		ValadocTokenType* _tmp61_;
		ValadocTokenType* _tmp62_;
		ValadocTokenType* _tmp63_;
		ValadocTokenType* _tmp64_;
		ValadocTokenType* _tmp65_;
		ValadocTokenType* _tmp66_;
		ValadocTokenType* _tmp67_;
		ValadocTokenType* _tmp68_;
		ValadocTokenType* _tmp69_;
		ValadocTokenType* _tmp70_;
		ValadocTokenType* _tmp71_;
		ValadocTokenType* _tmp72_;
		ValadocTokenType* _tmp73_;
		ValadocTokenType* _tmp74_;
		ValadocTokenType* _tmp75_;
		ValadocTokenType* _tmp76_;
		ValadocTokenType* _tmp77_;
		ValadocTokenType* _tmp78_;
		_tmp0_ = valadoc_token_type_new_basic ("<any>", NULL);
		_g_object_unref0 (valadoc_token_type_ANY);
		valadoc_token_type_ANY = _tmp0_;
		_tmp1_ = valadoc_token_type_new_basic ("<any-word>", NULL);
		_g_object_unref0 (valadoc_token_type_ANY_WORD);
		valadoc_token_type_ANY_WORD = _tmp1_;
		_tmp2_ = valadoc_token_type_new_basic ("<any-number>", NULL);
		_g_object_unref0 (valadoc_token_type_ANY_NUMBER);
		valadoc_token_type_ANY_NUMBER = _tmp2_;
		_tmp3_ = valadoc_token_type_new_basic ("\0", "<end-of-file>");
		_g_object_unref0 (valadoc_token_type_EOF);
		valadoc_token_type_EOF = _tmp3_;
		_tmp4_ = valadoc_token_type_new_basic ("\n", "<end-of-line>");
		_g_object_unref0 (valadoc_token_type_EOL);
		valadoc_token_type_EOL = _tmp4_;
		_tmp5_ = valadoc_token_type_new_basic ("<<BR>>", NULL);
		_g_object_unref0 (valadoc_token_type_BREAK);
		valadoc_token_type_BREAK = _tmp5_;
		_tmp6_ = valadoc_token_type_new_basic ("@", NULL);
		_g_object_unref0 (valadoc_token_type_AROBASE);
		valadoc_token_type_AROBASE = _tmp6_;
		_tmp7_ = valadoc_token_type_new_basic (" ", "<space>");
		_g_object_unref0 (valadoc_token_type_SPACE);
		valadoc_token_type_SPACE = _tmp7_;
		_tmp8_ = valadoc_token_type_new_basic ("\t", "<tab>");
		_g_object_unref0 (valadoc_token_type_TAB);
		valadoc_token_type_TAB = _tmp8_;
		_tmp9_ = valadoc_token_type_new_basic ("=", NULL);
		_g_object_unref0 (valadoc_token_type_EQUAL_1);
		valadoc_token_type_EQUAL_1 = _tmp9_;
		_tmp10_ = valadoc_token_type_new_basic ("==", NULL);
		_g_object_unref0 (valadoc_token_type_EQUAL_2);
		valadoc_token_type_EQUAL_2 = _tmp10_;
		_tmp11_ = valadoc_token_type_new_basic ("====", NULL);
		_g_object_unref0 (valadoc_token_type_EQUAL_3);
		valadoc_token_type_EQUAL_3 = _tmp11_;
		_tmp12_ = valadoc_token_type_new_basic ("=====", NULL);
		_g_object_unref0 (valadoc_token_type_EQUAL_4);
		valadoc_token_type_EQUAL_4 = _tmp12_;
		_tmp13_ = valadoc_token_type_new_basic ("======", NULL);
		_g_object_unref0 (valadoc_token_type_EQUAL_5);
		valadoc_token_type_EQUAL_5 = _tmp13_;
		_tmp14_ = valadoc_token_type_new_basic ("-", NULL);
		_g_object_unref0 (valadoc_token_type_MINUS);
		valadoc_token_type_MINUS = _tmp14_;
		_tmp15_ = valadoc_token_type_new_basic ("<", NULL);
		_g_object_unref0 (valadoc_token_type_LESS_THAN);
		valadoc_token_type_LESS_THAN = _tmp15_;
		_tmp16_ = valadoc_token_type_new_basic (">", NULL);
		_g_object_unref0 (valadoc_token_type_GREATER_THAN);
		valadoc_token_type_GREATER_THAN = _tmp16_;
		_tmp17_ = valadoc_token_type_new_basic ("^", NULL);
		_g_object_unref0 (valadoc_token_type_ALIGN_TOP);
		valadoc_token_type_ALIGN_TOP = _tmp17_;
		_tmp18_ = valadoc_token_type_new_basic ("v", NULL);
		_g_object_unref0 (valadoc_token_type_ALIGN_BOTTOM);
		valadoc_token_type_ALIGN_BOTTOM = _tmp18_;
		_tmp19_ = valadoc_token_type_new_basic ("''", NULL);
		_g_object_unref0 (valadoc_token_type_SINGLE_QUOTE_2);
		valadoc_token_type_SINGLE_QUOTE_2 = _tmp19_;
		_tmp20_ = valadoc_token_type_new_basic ("//", NULL);
		_g_object_unref0 (valadoc_token_type_SLASH_2);
		valadoc_token_type_SLASH_2 = _tmp20_;
		_tmp21_ = valadoc_token_type_new_basic ("__", NULL);
		_g_object_unref0 (valadoc_token_type_UNDERSCORE_2);
		valadoc_token_type_UNDERSCORE_2 = _tmp21_;
		_tmp22_ = valadoc_token_type_new_basic ("``", NULL);
		_g_object_unref0 (valadoc_token_type_BACK_QUOTE_2);
		valadoc_token_type_BACK_QUOTE_2 = _tmp22_;
		_tmp23_ = valadoc_token_type_new_basic ("{", NULL);
		_g_object_unref0 (valadoc_token_type_OPEN_BRACE);
		valadoc_token_type_OPEN_BRACE = _tmp23_;
		_tmp24_ = valadoc_token_type_new_basic ("}", NULL);
		_g_object_unref0 (valadoc_token_type_CLOSED_BRACE);
		valadoc_token_type_CLOSED_BRACE = _tmp24_;
		_tmp25_ = valadoc_token_type_new_basic ("{{", NULL);
		_g_object_unref0 (valadoc_token_type_DOUBLE_OPEN_BRACE);
		valadoc_token_type_DOUBLE_OPEN_BRACE = _tmp25_;
		_tmp26_ = valadoc_token_type_new_basic ("}}", NULL);
		_g_object_unref0 (valadoc_token_type_DOUBLE_CLOSED_BRACE);
		valadoc_token_type_DOUBLE_CLOSED_BRACE = _tmp26_;
		_tmp27_ = valadoc_token_type_new_basic ("{{{", NULL);
		_g_object_unref0 (valadoc_token_type_TRIPLE_OPEN_BRACE);
		valadoc_token_type_TRIPLE_OPEN_BRACE = _tmp27_;
		_tmp28_ = valadoc_token_type_new_basic ("}}}", NULL);
		_g_object_unref0 (valadoc_token_type_TRIPLE_CLOSED_BRACE);
		valadoc_token_type_TRIPLE_CLOSED_BRACE = _tmp28_;
		_tmp29_ = valadoc_token_type_new_basic ("[[", NULL);
		_g_object_unref0 (valadoc_token_type_DOUBLE_OPEN_BRACKET);
		valadoc_token_type_DOUBLE_OPEN_BRACKET = _tmp29_;
		_tmp30_ = valadoc_token_type_new_basic ("]]", NULL);
		_g_object_unref0 (valadoc_token_type_DOUBLE_CLOSED_BRACKET);
		valadoc_token_type_DOUBLE_CLOSED_BRACKET = _tmp30_;
		_tmp31_ = valadoc_token_type_new_basic ("|", NULL);
		_g_object_unref0 (valadoc_token_type_PIPE);
		valadoc_token_type_PIPE = _tmp31_;
		_tmp32_ = valadoc_token_type_new_basic ("||", NULL);
		_g_object_unref0 (valadoc_token_type_DOUBLE_PIPE);
		valadoc_token_type_DOUBLE_PIPE = _tmp32_;
		_tmp33_ = valadoc_token_type_new_basic ("))", NULL);
		_g_object_unref0 (valadoc_token_type_ALIGN_RIGHT);
		valadoc_token_type_ALIGN_RIGHT = _tmp33_;
		_tmp34_ = valadoc_token_type_new_basic (")(", NULL);
		_g_object_unref0 (valadoc_token_type_ALIGN_CENTER);
		valadoc_token_type_ALIGN_CENTER = _tmp34_;
		_tmp35_ = valadoc_token_type_new_basic ("/*", NULL);
		_g_object_unref0 (valadoc_token_type_VALADOC_COMMENT_START);
		valadoc_token_type_VALADOC_COMMENT_START = _tmp35_;
		_tmp36_ = valadoc_token_type_new_basic ("*/", NULL);
		_g_object_unref0 (valadoc_token_type_VALADOC_COMMENT_END);
		valadoc_token_type_VALADOC_COMMENT_END = _tmp36_;
		_tmp37_ = valadoc_token_type_ANY_WORD;
		_tmp38_ = _g_object_ref0 (_tmp37_);
		_g_object_unref0 (valadoc_token_type_VALADOC_ANY_WORD);
		valadoc_token_type_VALADOC_ANY_WORD = _tmp38_;
		_tmp39_ = valadoc_token_type_SPACE;
		_tmp40_ = _g_object_ref0 (_tmp39_);
		_g_object_unref0 (valadoc_token_type_VALADOC_SPACE);
		valadoc_token_type_VALADOC_SPACE = _tmp40_;
		_tmp41_ = valadoc_token_type_TAB;
		_tmp42_ = _g_object_ref0 (_tmp41_);
		_g_object_unref0 (valadoc_token_type_VALADOC_TAB);
		valadoc_token_type_VALADOC_TAB = _tmp42_;
		_tmp43_ = valadoc_token_type_EOL;
		_tmp44_ = _g_object_ref0 (_tmp43_);
		_g_object_unref0 (valadoc_token_type_VALADOC_EOL);
		valadoc_token_type_VALADOC_EOL = _tmp44_;
		valadoc_token_type_initialized = TRUE;
		_tmp45_ = valadoc_token_type_new_basic ("<paragraph>", NULL);
		_g_object_unref0 (valadoc_token_type_MARKDOWN_PARAGRAPH);
		valadoc_token_type_MARKDOWN_PARAGRAPH = _tmp45_;
		_tmp46_ = valadoc_token_type_new_basic ("<block>", NULL);
		_g_object_unref0 (valadoc_token_type_MARKDOWN_BLOCK_START);
		valadoc_token_type_MARKDOWN_BLOCK_START = _tmp46_;
		_tmp47_ = valadoc_token_type_new_basic ("</block>", NULL);
		_g_object_unref0 (valadoc_token_type_MARKDOWN_BLOCK_END);
		valadoc_token_type_MARKDOWN_BLOCK_END = _tmp47_;
		_tmp48_ = valadoc_token_type_new_basic ("<unordered-list>", NULL);
		_g_object_unref0 (valadoc_token_type_MARKDOWN_UNORDERED_LIST_ITEM_START);
		valadoc_token_type_MARKDOWN_UNORDERED_LIST_ITEM_START = _tmp48_;
		_tmp49_ = valadoc_token_type_new_basic ("</unordered-list>", NULL);
		_g_object_unref0 (valadoc_token_type_MARKDOWN_UNORDERED_LIST_ITEM_END);
		valadoc_token_type_MARKDOWN_UNORDERED_LIST_ITEM_END = _tmp49_;
		_tmp50_ = valadoc_token_type_new_basic ("<ordered-list>", NULL);
		_g_object_unref0 (valadoc_token_type_MARKDOWN_ORDERED_LIST_ITEM_START);
		valadoc_token_type_MARKDOWN_ORDERED_LIST_ITEM_START = _tmp50_;
		_tmp51_ = valadoc_token_type_new_basic ("</ordered-list>", NULL);
		_g_object_unref0 (valadoc_token_type_MARKDOWN_ORDERED_LIST_ITEM_END);
		valadoc_token_type_MARKDOWN_ORDERED_LIST_ITEM_END = _tmp51_;
		_tmp52_ = valadoc_token_type_new_basic ("<headline-1>", NULL);
		_g_object_unref0 (valadoc_token_type_MARKDOWN_HEADLINE_1);
		valadoc_token_type_MARKDOWN_HEADLINE_1 = _tmp52_;
		_tmp53_ = valadoc_token_type_new_basic ("<headline-2>", NULL);
		_g_object_unref0 (valadoc_token_type_MARKDOWN_HEADLINE_2);
		valadoc_token_type_MARKDOWN_HEADLINE_2 = _tmp53_;
		_tmp54_ = valadoc_token_type_new_basic ("<hash>", NULL);
		_g_object_unref0 (valadoc_token_type_MARKDOWN_HEADLINE_HASH);
		valadoc_token_type_MARKDOWN_HEADLINE_HASH = _tmp54_;
		_tmp55_ = valadoc_token_type_new_basic ("</headline>", NULL);
		_g_object_unref0 (valadoc_token_type_MARKDOWN_HEADLINE_END);
		valadoc_token_type_MARKDOWN_HEADLINE_END = _tmp55_;
		_tmp56_ = valadoc_token_type_new_basic ("<source>", NULL);
		_g_object_unref0 (valadoc_token_type_MARKDOWN_SOURCE);
		valadoc_token_type_MARKDOWN_SOURCE = _tmp56_;
		_tmp57_ = valadoc_token_type_new_basic ("<parameter>", NULL);
		_g_object_unref0 (valadoc_token_type_MARKDOWN_PARAMETER);
		valadoc_token_type_MARKDOWN_PARAMETER = _tmp57_;
		_tmp58_ = valadoc_token_type_new_basic ("<constant>", NULL);
		_g_object_unref0 (valadoc_token_type_MARKDOWN_CONSTANT);
		valadoc_token_type_MARKDOWN_CONSTANT = _tmp58_;
		_tmp59_ = valadoc_token_type_new_basic ("<function>", NULL);
		_g_object_unref0 (valadoc_token_type_MARKDOWN_FUNCTION);
		valadoc_token_type_MARKDOWN_FUNCTION = _tmp59_;
		_tmp60_ = valadoc_token_type_new_basic ("<symbol>", NULL);
		_g_object_unref0 (valadoc_token_type_MARKDOWN_SYMBOL);
		valadoc_token_type_MARKDOWN_SYMBOL = _tmp60_;
		_tmp61_ = valadoc_token_type_new_basic ("<local-gmember>", NULL);
		_g_object_unref0 (valadoc_token_type_MARKDOWN_LOCAL_GMEMBER);
		valadoc_token_type_MARKDOWN_LOCAL_GMEMBER = _tmp61_;
		_tmp62_ = valadoc_token_type_new_basic ("<mail>", NULL);
		_g_object_unref0 (valadoc_token_type_MARKDOWN_MAIL);
		valadoc_token_type_MARKDOWN_MAIL = _tmp62_;
		_tmp63_ = valadoc_token_type_new_basic ("<link>", NULL);
		_g_object_unref0 (valadoc_token_type_MARKDOWN_LINK);
		valadoc_token_type_MARKDOWN_LINK = _tmp63_;
		_tmp64_ = valadoc_token_type_new_basic ("[", NULL);
		_g_object_unref0 (valadoc_token_type_MARKDOWN_OPEN_BRACKET);
		valadoc_token_type_MARKDOWN_OPEN_BRACKET = _tmp64_;
		_tmp65_ = valadoc_token_type_new_basic ("]", NULL);
		_g_object_unref0 (valadoc_token_type_MARKDOWN_CLOSE_BRACKET);
		valadoc_token_type_MARKDOWN_CLOSE_BRACKET = _tmp65_;
		_tmp66_ = valadoc_token_type_new_basic ("(", NULL);
		_g_object_unref0 (valadoc_token_type_MARKDOWN_OPEN_PARENS);
		valadoc_token_type_MARKDOWN_OPEN_PARENS = _tmp66_;
		_tmp67_ = valadoc_token_type_new_basic (")", NULL);
		_g_object_unref0 (valadoc_token_type_MARKDOWN_CLOSE_PARENS);
		valadoc_token_type_MARKDOWN_CLOSE_PARENS = _tmp67_;
		_tmp68_ = valadoc_token_type_new_basic ("!", NULL);
		_g_object_unref0 (valadoc_token_type_MARKDOWN_EXCLAMATION_MARK);
		valadoc_token_type_MARKDOWN_EXCLAMATION_MARK = _tmp68_;
		_tmp69_ = valadoc_token_type_GREATER_THAN;
		_tmp70_ = _g_object_ref0 (_tmp69_);
		_g_object_unref0 (valadoc_token_type_MARKDOWN_GREATER_THAN);
		valadoc_token_type_MARKDOWN_GREATER_THAN = _tmp70_;
		_tmp71_ = valadoc_token_type_LESS_THAN;
		_tmp72_ = _g_object_ref0 (_tmp71_);
		_g_object_unref0 (valadoc_token_type_MARKDOWN_LESS_THAN);
		valadoc_token_type_MARKDOWN_LESS_THAN = _tmp72_;
		_tmp73_ = valadoc_token_type_ANY_WORD;
		_tmp74_ = _g_object_ref0 (_tmp73_);
		_g_object_unref0 (valadoc_token_type_MARKDOWN_ANY_WORD);
		valadoc_token_type_MARKDOWN_ANY_WORD = _tmp74_;
		_tmp75_ = valadoc_token_type_SPACE;
		_tmp76_ = _g_object_ref0 (_tmp75_);
		_g_object_unref0 (valadoc_token_type_MARKDOWN_SPACE);
		valadoc_token_type_MARKDOWN_SPACE = _tmp76_;
		_tmp77_ = valadoc_token_type_EOL;
		_tmp78_ = _g_object_ref0 (_tmp77_);
		_g_object_unref0 (valadoc_token_type_MARKDOWN_EOC);
		valadoc_token_type_MARKDOWN_EOC = _tmp78_;
	}
}

ValadocTokenType*
valadoc_token_type_str (const gchar* str)
{
	ValadocTokenType* _tmp0_;
	ValadocTokenType* result;
	g_return_val_if_fail (str != NULL, NULL);
	_tmp0_ = valadoc_token_type_new (str, valadoc_token_type_EXACT_WORD, NULL, NULL);
	result = _tmp0_;
	return result;
}

ValadocTokenType*
valadoc_token_type_any (void)
{
	ValadocTokenType* _tmp0_;
	ValadocTokenType* _tmp1_;
	ValadocTokenType* result;
	_tmp0_ = valadoc_token_type_ANY;
	_tmp1_ = _g_object_ref0 (_tmp0_);
	result = _tmp1_;
	return result;
}

ValadocTokenType*
valadoc_token_type_any_word (void)
{
	ValadocTokenType* _tmp0_;
	ValadocTokenType* _tmp1_;
	ValadocTokenType* result;
	_tmp0_ = valadoc_token_type_ANY_WORD;
	_tmp1_ = _g_object_ref0 (_tmp0_);
	result = _tmp1_;
	return result;
}

ValadocTokenType*
valadoc_token_type_any_number (void)
{
	ValadocTokenType* _tmp0_;
	ValadocTokenType* _tmp1_;
	ValadocTokenType* result;
	_tmp0_ = valadoc_token_type_ANY_NUMBER;
	_tmp1_ = _g_object_ref0 (_tmp0_);
	result = _tmp1_;
	return result;
}

static Block6Data*
block6_data_ref (Block6Data* _data6_)
{
	g_atomic_int_inc (&_data6_->_ref_count_);
	return _data6_;
}

static void
block6_data_unref (void * _userdata_)
{
	Block6Data* _data6_;
	_data6_ = (Block6Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data6_->_ref_count_)) {
		ValadocTokenType* self;
		self = _data6_->self;
		_g_object_unref0 (self);
		g_slice_free (Block6Data, _data6_);
	}
}

static void
___lambda4_ (Block6Data* _data6_,
             ValadocToken* token,
             GError** error)
{
	ValadocTokenType* self;
	GError* _inner_error0_ = NULL;
	self = _data6_->self;
	g_return_if_fail (token != NULL);
	_data6_->__action (token, _data6_->__action_target, &_inner_error0_);
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		if (_inner_error0_->domain == VALADOC_PARSER_ERROR) {
			g_propagate_error (error, _inner_error0_);
			return;
		} else {
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
			g_clear_error (&_inner_error0_);
			return;
		}
	}
}

static void
____lambda4__valadoc_token_type_action (ValadocToken* token,
                                        gpointer self,
                                        GError** error)
{
	___lambda4_ (self, token, error);
}

static ValadocTokenType*
valadoc_token_type_construct (GType object_type,
                              const gchar* string_value,
                              gint basic_value,
                              ValadocTokenTypeAction __action,
                              gpointer __action_target)
{
	ValadocTokenType * self = NULL;
	Block6Data* _data6_;
	gchar* _tmp0_;
	g_return_val_if_fail (string_value != NULL, NULL);
	_data6_ = g_slice_new0 (Block6Data);
	_data6_->_ref_count_ = 1;
	_data6_->__action = __action;
	_data6_->__action_target = __action_target;
	self = (ValadocTokenType*) g_object_new (object_type, NULL);
	_data6_->self = g_object_ref (self);
	_tmp0_ = g_strdup (string_value);
	_g_free0 (self->priv->_string_value);
	self->priv->_string_value = _tmp0_;
	self->priv->_basic_value = basic_value;
	if (_data6_->__action != NULL) {
		(self->priv->_action_target_destroy_notify == NULL) ? NULL : (self->priv->_action_target_destroy_notify (self->priv->_action_target), NULL);
		self->priv->_action = NULL;
		self->priv->_action_target = NULL;
		self->priv->_action_target_destroy_notify = NULL;
		self->priv->_action = ____lambda4__valadoc_token_type_action;
		self->priv->_action_target = block6_data_ref (_data6_);
		self->priv->_action_target_destroy_notify = block6_data_unref;
	} else {
		(self->priv->_action_target_destroy_notify == NULL) ? NULL : (self->priv->_action_target_destroy_notify (self->priv->_action_target), NULL);
		self->priv->_action = NULL;
		self->priv->_action_target = NULL;
		self->priv->_action_target_destroy_notify = NULL;
		self->priv->_action = NULL;
		self->priv->_action_target = NULL;
		self->priv->_action_target_destroy_notify = NULL;
	}
	block6_data_unref (_data6_);
	_data6_ = NULL;
	return self;
}

static ValadocTokenType*
valadoc_token_type_new (const gchar* string_value,
                        gint basic_value,
                        ValadocTokenTypeAction __action,
                        gpointer __action_target)
{
	return valadoc_token_type_construct (VALADOC_TYPE_TOKEN_TYPE, string_value, basic_value, __action, __action_target);
}

static ValadocTokenType*
valadoc_token_type_construct_basic (GType object_type,
                                    const gchar* string_value,
                                    const gchar* pretty_string)
{
	ValadocTokenType * self = NULL;
	gchar* _tmp0_;
	gchar* _tmp1_;
	gint _tmp2_;
	g_return_val_if_fail (string_value != NULL, NULL);
	self = (ValadocTokenType*) g_object_new (object_type, NULL);
	_tmp0_ = g_strdup (string_value);
	_g_free0 (self->priv->_string_value);
	self->priv->_string_value = _tmp0_;
	_tmp1_ = g_strdup (pretty_string);
	_g_free0 (self->priv->_pretty_string);
	self->priv->_pretty_string = _tmp1_;
	valadoc_token_type__last_basic_value = valadoc_token_type__last_basic_value + 1;
	_tmp2_ = valadoc_token_type__last_basic_value;
	self->priv->_basic_value = _tmp2_;
	return self;
}

static ValadocTokenType*
valadoc_token_type_new_basic (const gchar* string_value,
                              const gchar* pretty_string)
{
	return valadoc_token_type_construct_basic (VALADOC_TYPE_TOKEN_TYPE, string_value, pretty_string);
}

ValadocTokenType*
valadoc_token_type_action (ValadocTokenType* self,
                           ValadocTokenTypeAction action,
                           gpointer action_target)
{
	const gchar* _tmp0_;
	ValadocTokenType* _tmp1_;
	ValadocTokenType* result;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_string_value;
	_tmp1_ = valadoc_token_type_new (_tmp0_, self->priv->_basic_value, action, action_target);
	result = _tmp1_;
	return result;
}

void
valadoc_token_type_do_action (ValadocTokenType* self,
                              ValadocToken* matched_token,
                              GError** error)
{
	ValadocTokenTypeAction _tmp0_;
	gpointer _tmp0__target;
	GError* _inner_error0_ = NULL;
	g_return_if_fail (self != NULL);
	g_return_if_fail (matched_token != NULL);
	_tmp0_ = self->priv->_action;
	_tmp0__target = self->priv->_action_target;
	if (_tmp0_ != NULL) {
		ValadocTokenTypeAction _tmp1_;
		gpointer _tmp1__target;
		_tmp1_ = self->priv->_action;
		_tmp1__target = self->priv->_action_target;
		_tmp1_ (matched_token, _tmp1__target, &_inner_error0_);
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
			if (_inner_error0_->domain == VALADOC_PARSER_ERROR) {
				g_propagate_error (error, _inner_error0_);
				return;
			} else {
				g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
				g_clear_error (&_inner_error0_);
				return;
			}
		}
	}
}

gboolean
valadoc_token_type_matches (ValadocTokenType* self,
                            ValadocToken* token)
{
	ValadocTokenType* _tmp0_;
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	g_return_val_if_fail (token != NULL, FALSE);
	_tmp0_ = valadoc_token_type_ANY;
	if (self->priv->_basic_value == _tmp0_->priv->_basic_value) {
		result = TRUE;
		return result;
	} else {
		gboolean _tmp1_ = FALSE;
		ValadocTokenType* _tmp2_;
		_tmp2_ = valadoc_token_type_ANY_WORD;
		if (self->priv->_basic_value == _tmp2_->priv->_basic_value) {
			gboolean _tmp3_;
			gboolean _tmp4_;
			_tmp3_ = valadoc_token_get_is_word (token);
			_tmp4_ = _tmp3_;
			_tmp1_ = _tmp4_;
		} else {
			_tmp1_ = FALSE;
		}
		if (_tmp1_) {
			result = TRUE;
			return result;
		} else {
			gboolean _tmp5_ = FALSE;
			ValadocTokenType* _tmp6_;
			_tmp6_ = valadoc_token_type_ANY_NUMBER;
			if (self->priv->_basic_value == _tmp6_->priv->_basic_value) {
				gboolean _tmp7_;
				gboolean _tmp8_;
				_tmp7_ = valadoc_token_get_is_number (token);
				_tmp8_ = _tmp7_;
				_tmp5_ = _tmp8_;
			} else {
				_tmp5_ = FALSE;
			}
			if (_tmp5_) {
				result = TRUE;
				return result;
			} else {
				gboolean _tmp9_ = FALSE;
				gboolean _tmp10_ = FALSE;
				if (self->priv->_basic_value == valadoc_token_type_EXACT_WORD) {
					gboolean _tmp11_;
					gboolean _tmp12_;
					_tmp11_ = valadoc_token_get_is_word (token);
					_tmp12_ = _tmp11_;
					_tmp10_ = _tmp12_;
				} else {
					_tmp10_ = FALSE;
				}
				if (_tmp10_) {
					const gchar* _tmp13_;
					const gchar* _tmp14_;
					const gchar* _tmp15_;
					_tmp13_ = valadoc_token_get_word (token);
					_tmp14_ = _tmp13_;
					_tmp15_ = self->priv->_string_value;
					_tmp9_ = g_strcmp0 (_tmp14_, _tmp15_) == 0;
				} else {
					_tmp9_ = FALSE;
				}
				if (_tmp9_) {
					result = TRUE;
					return result;
				} else {
					gboolean _tmp16_ = FALSE;
					ValadocTokenType* _tmp17_;
					ValadocTokenType* _tmp18_;
					_tmp17_ = valadoc_token_get_token_type (token);
					_tmp18_ = _tmp17_;
					if (_tmp18_ != NULL) {
						ValadocTokenType* _tmp19_;
						ValadocTokenType* _tmp20_;
						_tmp19_ = valadoc_token_get_token_type (token);
						_tmp20_ = _tmp19_;
						_tmp16_ = _tmp20_->priv->_basic_value == self->priv->_basic_value;
					} else {
						_tmp16_ = FALSE;
					}
					if (_tmp16_) {
						result = TRUE;
						return result;
					}
				}
			}
		}
	}
	result = FALSE;
	return result;
}

const gchar*
valadoc_token_type_to_string (ValadocTokenType* self)
{
	const gchar* _tmp0_;
	const gchar* result;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_string_value;
	result = _tmp0_;
	return result;
}

const gchar*
valadoc_token_type_to_pretty_string (ValadocTokenType* self)
{
	const gchar* _tmp0_;
	const gchar* _tmp2_;
	const gchar* result;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_pretty_string;
	if (_tmp0_ != NULL) {
		const gchar* _tmp1_;
		_tmp1_ = self->priv->_pretty_string;
		result = _tmp1_;
		return result;
	}
	_tmp2_ = self->priv->_string_value;
	result = _tmp2_;
	return result;
}

static void
valadoc_token_type_class_init (ValadocTokenTypeClass * klass,
                               gpointer klass_data)
{
	valadoc_token_type_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &ValadocTokenType_private_offset);
	G_OBJECT_CLASS (klass)->finalize = valadoc_token_type_finalize;
}

static void
valadoc_token_type_instance_init (ValadocTokenType * self,
                                  gpointer klass)
{
	self->priv = valadoc_token_type_get_instance_private (self);
	self->priv->_basic_value = -1;
	self->priv->_action = NULL;
	self->priv->_action_target = NULL;
	self->priv->_action_target_destroy_notify = NULL;
}

static void
valadoc_token_type_finalize (GObject * obj)
{
	ValadocTokenType * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, VALADOC_TYPE_TOKEN_TYPE, ValadocTokenType);
	_g_free0 (self->priv->_string_value);
	_g_free0 (self->priv->_pretty_string);
	(self->priv->_action_target_destroy_notify == NULL) ? NULL : (self->priv->_action_target_destroy_notify (self->priv->_action_target), NULL);
	self->priv->_action = NULL;
	self->priv->_action_target = NULL;
	self->priv->_action_target_destroy_notify = NULL;
	G_OBJECT_CLASS (valadoc_token_type_parent_class)->finalize (obj);
}

static GType
valadoc_token_type_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (ValadocTokenTypeClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) valadoc_token_type_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ValadocTokenType), 0, (GInstanceInitFunc) valadoc_token_type_instance_init, NULL };
	GType valadoc_token_type_type_id;
	valadoc_token_type_type_id = g_type_register_static (G_TYPE_OBJECT, "ValadocTokenType", &g_define_type_info, 0);
	ValadocTokenType_private_offset = g_type_add_instance_private (valadoc_token_type_type_id, sizeof (ValadocTokenTypePrivate));
	return valadoc_token_type_type_id;
}

GType
valadoc_token_type_get_type (void)
{
	static volatile gsize valadoc_token_type_type_id__once = 0;
	if (g_once_init_enter (&valadoc_token_type_type_id__once)) {
		GType valadoc_token_type_type_id;
		valadoc_token_type_type_id = valadoc_token_type_get_type_once ();
		g_once_init_leave (&valadoc_token_type_type_id__once, valadoc_token_type_type_id);
	}
	return valadoc_token_type_type_id__once;
}

