/* 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 <glib.h>
#include <glib-object.h>
#include "valadoc.h"
#include <stdlib.h>
#include <string.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_free0(var) (var = (g_free (var), NULL))
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
typedef struct _Block6Data Block6Data;

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 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;

#define VALADOC_TOKEN_TYPE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), VALADOC_TYPE_TOKEN_TYPE, ValadocTokenTypePrivate))
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, void* __action_target);
static ValadocTokenType* valadoc_token_type_construct (GType object_type, const gchar* string_value, gint basic_value, ValadocTokenTypeAction __action, void* __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 gpointer _g_object_ref0 (gpointer self) {
	return self ? g_object_ref (self) : NULL;
}


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


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


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


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


ValadocTokenType* valadoc_token_type_any_number (void) {
	ValadocTokenType* result = NULL;
	ValadocTokenType* _tmp0_;
	ValadocTokenType* _tmp1_;
	_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;
	ValadocTokenTypeAction _tmp0_;
	void* _tmp0__target;
	ValadocToken* _tmp1_;
	GError * _inner_error_ = NULL;
	self = _data6_->self;
	g_return_if_fail (token != NULL);
	_tmp0_ = _data6_->__action;
	_tmp0__target = _data6_->__action_target;
	_tmp1_ = token;
	_tmp0_ (_tmp1_, _tmp0__target, &_inner_error_);
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		if (_inner_error_->domain == VALADOC_PARSER_ERROR) {
			g_propagate_error (error, _inner_error_);
			return;
		} else {
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
			g_clear_error (&_inner_error_);
			return;
		}
	}
}


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, void* __action_target) {
	ValadocTokenType * self = NULL;
	Block6Data* _data6_;
	ValadocTokenTypeAction _tmp0_;
	void* _tmp0__target;
	const gchar* _tmp1_;
	gchar* _tmp2_;
	gint _tmp3_;
	ValadocTokenTypeAction _tmp4_;
	void* _tmp4__target;
	g_return_val_if_fail (string_value != NULL, NULL);
	_data6_ = g_slice_new0 (Block6Data);
	_data6_->_ref_count_ = 1;
	_tmp0_ = __action;
	_tmp0__target = __action_target;
	_data6_->__action = _tmp0_;
	_data6_->__action_target = _tmp0__target;
	self = (ValadocTokenType*) g_object_new (object_type, NULL);
	_data6_->self = g_object_ref (self);
	_tmp1_ = string_value;
	_tmp2_ = g_strdup (_tmp1_);
	_g_free0 (self->priv->_string_value);
	self->priv->_string_value = _tmp2_;
	_tmp3_ = basic_value;
	self->priv->_basic_value = _tmp3_;
	_tmp4_ = _data6_->__action;
	_tmp4__target = _data6_->__action_target;
	if (_tmp4_ != 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, void* __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;
	const gchar* _tmp0_;
	gchar* _tmp1_;
	const gchar* _tmp2_;
	gchar* _tmp3_;
	gint _tmp4_;
	gint _tmp5_;
	g_return_val_if_fail (string_value != NULL, NULL);
	self = (ValadocTokenType*) g_object_new (object_type, NULL);
	_tmp0_ = string_value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_string_value);
	self->priv->_string_value = _tmp1_;
	_tmp2_ = pretty_string;
	_tmp3_ = g_strdup (_tmp2_);
	_g_free0 (self->priv->_pretty_string);
	self->priv->_pretty_string = _tmp3_;
	_tmp4_ = valadoc_token_type__last_basic_value;
	valadoc_token_type__last_basic_value = _tmp4_ + 1;
	_tmp5_ = valadoc_token_type__last_basic_value;
	self->priv->_basic_value = _tmp5_;
	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, void* action_target) {
	ValadocTokenType* result = NULL;
	const gchar* _tmp0_;
	gint _tmp1_;
	ValadocTokenTypeAction _tmp2_;
	void* _tmp2__target;
	ValadocTokenType* _tmp3_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_string_value;
	_tmp1_ = self->priv->_basic_value;
	_tmp2_ = action;
	_tmp2__target = action_target;
	_tmp3_ = valadoc_token_type_new (_tmp0_, _tmp1_, _tmp2_, _tmp2__target);
	result = _tmp3_;
	return result;
}


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


gboolean valadoc_token_type_matches (ValadocTokenType* self, ValadocToken* token) {
	gboolean result = FALSE;
	gint _tmp0_;
	ValadocTokenType* _tmp1_;
	gint _tmp2_;
	g_return_val_if_fail (self != NULL, FALSE);
	g_return_val_if_fail (token != NULL, FALSE);
	_tmp0_ = self->priv->_basic_value;
	_tmp1_ = valadoc_token_type_ANY;
	_tmp2_ = _tmp1_->priv->_basic_value;
	if (_tmp0_ == _tmp2_) {
		result = TRUE;
		return result;
	} else {
		gboolean _tmp3_ = FALSE;
		gint _tmp4_;
		ValadocTokenType* _tmp5_;
		gint _tmp6_;
		_tmp4_ = self->priv->_basic_value;
		_tmp5_ = valadoc_token_type_ANY_WORD;
		_tmp6_ = _tmp5_->priv->_basic_value;
		if (_tmp4_ == _tmp6_) {
			ValadocToken* _tmp7_;
			gboolean _tmp8_;
			gboolean _tmp9_;
			_tmp7_ = token;
			_tmp8_ = valadoc_token_get_is_word (_tmp7_);
			_tmp9_ = _tmp8_;
			_tmp3_ = _tmp9_;
		} else {
			_tmp3_ = FALSE;
		}
		if (_tmp3_) {
			result = TRUE;
			return result;
		} else {
			gboolean _tmp10_ = FALSE;
			gint _tmp11_;
			ValadocTokenType* _tmp12_;
			gint _tmp13_;
			_tmp11_ = self->priv->_basic_value;
			_tmp12_ = valadoc_token_type_ANY_NUMBER;
			_tmp13_ = _tmp12_->priv->_basic_value;
			if (_tmp11_ == _tmp13_) {
				ValadocToken* _tmp14_;
				gboolean _tmp15_;
				gboolean _tmp16_;
				_tmp14_ = token;
				_tmp15_ = valadoc_token_get_is_number (_tmp14_);
				_tmp16_ = _tmp15_;
				_tmp10_ = _tmp16_;
			} else {
				_tmp10_ = FALSE;
			}
			if (_tmp10_) {
				result = TRUE;
				return result;
			} else {
				gboolean _tmp17_ = FALSE;
				gboolean _tmp18_ = FALSE;
				gint _tmp19_;
				gint _tmp20_;
				_tmp19_ = self->priv->_basic_value;
				_tmp20_ = valadoc_token_type_EXACT_WORD;
				if (_tmp19_ == _tmp20_) {
					ValadocToken* _tmp21_;
					gboolean _tmp22_;
					gboolean _tmp23_;
					_tmp21_ = token;
					_tmp22_ = valadoc_token_get_is_word (_tmp21_);
					_tmp23_ = _tmp22_;
					_tmp18_ = _tmp23_;
				} else {
					_tmp18_ = FALSE;
				}
				if (_tmp18_) {
					ValadocToken* _tmp24_;
					const gchar* _tmp25_;
					const gchar* _tmp26_;
					const gchar* _tmp27_;
					_tmp24_ = token;
					_tmp25_ = valadoc_token_get_word (_tmp24_);
					_tmp26_ = _tmp25_;
					_tmp27_ = self->priv->_string_value;
					_tmp17_ = g_strcmp0 (_tmp26_, _tmp27_) == 0;
				} else {
					_tmp17_ = FALSE;
				}
				if (_tmp17_) {
					result = TRUE;
					return result;
				} else {
					gboolean _tmp28_ = FALSE;
					ValadocToken* _tmp29_;
					ValadocTokenType* _tmp30_;
					ValadocTokenType* _tmp31_;
					_tmp29_ = token;
					_tmp30_ = valadoc_token_get_token_type (_tmp29_);
					_tmp31_ = _tmp30_;
					if (_tmp31_ != NULL) {
						ValadocToken* _tmp32_;
						ValadocTokenType* _tmp33_;
						ValadocTokenType* _tmp34_;
						gint _tmp35_;
						gint _tmp36_;
						_tmp32_ = token;
						_tmp33_ = valadoc_token_get_token_type (_tmp32_);
						_tmp34_ = _tmp33_;
						_tmp35_ = _tmp34_->priv->_basic_value;
						_tmp36_ = self->priv->_basic_value;
						_tmp28_ = _tmp35_ == _tmp36_;
					} else {
						_tmp28_ = FALSE;
					}
					if (_tmp28_) {
						result = TRUE;
						return result;
					}
				}
			}
		}
	}
	result = FALSE;
	return result;
}


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


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


static void valadoc_token_type_class_init (ValadocTokenTypeClass * klass) {
	valadoc_token_type_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (ValadocTokenTypePrivate));
	G_OBJECT_CLASS (klass)->finalize = valadoc_token_type_finalize;
}


static void valadoc_token_type_instance_init (ValadocTokenType * self) {
	self->priv = VALADOC_TOKEN_TYPE_GET_PRIVATE (self);
	self->priv->_basic_value = -1;
	self->priv->_action = NULL;
	self->priv->_action_target = self;
	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);
}


GType valadoc_token_type_get_type (void) {
	static volatile gsize valadoc_token_type_type_id__volatile = 0;
	if (g_once_init_enter (&valadoc_token_type_type_id__volatile)) {
		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);
		g_once_init_leave (&valadoc_token_type_type_id__volatile, valadoc_token_type_type_id);
	}
	return valadoc_token_type_type_id__volatile;
}



