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

/* codehighlighter.vala
 *
 * Copyright (C) 2015       Florian Brosch
 *
 * 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:
 * 	Florian Brosch <flo.brosch@gmail.com>
 */

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

enum  {
	VALADOC_HIGHLIGHTER_HIGHLIGHTER_0_PROPERTY,
	VALADOC_HIGHLIGHTER_HIGHLIGHTER_NUM_PROPERTIES
};
static GParamSpec* valadoc_highlighter_highlighter_properties[VALADOC_HIGHLIGHTER_HIGHLIGHTER_NUM_PROPERTIES];
#define _vala_map_unref0(var) ((var == NULL) ? NULL : (var = (vala_map_unref (var), NULL)))
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
#define _valadoc_highlighter_code_token_unref0(var) ((var == NULL) ? NULL : (var = (valadoc_highlighter_code_token_unref (var), NULL)))

struct _ValadocHighlighterHighlighterPrivate {
	ValaHashMap* vala_keywords;
	ValaHashMap* c_keywords;
};


static gpointer valadoc_highlighter_highlighter_parent_class = NULL;

#define VALADOC_HIGHLIGHTER_HIGHLIGHTER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), VALADOC_HIGHLIGHTER_TYPE_HIGHLIGHTER, ValadocHighlighterHighlighterPrivate))
static ValadocHighlighterCodeTokenType* _valadoc_highlighter_code_token_type_dup (ValadocHighlighterCodeTokenType* self);
static ValadocContentRun* valadoc_highlighter_highlighter_highlight_code (ValadocHighlighterHighlighter* self, ValadocHighlighterScanner* scanner);
G_GNUC_INTERNAL ValadocContentRun* valadoc_content_run_new (ValadocContentRunStyle style);
G_GNUC_INTERNAL ValadocContentRun* valadoc_content_run_construct (GType object_type, ValadocContentRunStyle style);
G_GNUC_INTERNAL ValadocContentText* valadoc_content_text_new (const gchar* text);
G_GNUC_INTERNAL ValadocContentText* valadoc_content_text_construct (GType object_type, const gchar* text);
static void valadoc_highlighter_highlighter_finalize (GObject * obj);


/**
 * Used to highlight vala source code.
 */
static ValadocHighlighterCodeTokenType* _valadoc_highlighter_code_token_type_dup (ValadocHighlighterCodeTokenType* self) {
	ValadocHighlighterCodeTokenType* dup;
	dup = g_new0 (ValadocHighlighterCodeTokenType, 1);
	memcpy (dup, self, sizeof (ValadocHighlighterCodeTokenType));
	return dup;
}


ValadocContentRun* valadoc_highlighter_highlighter_highlight_vala (ValadocHighlighterHighlighter* self, const gchar* source_code) {
	ValadocContentRun* result = NULL;
	ValaHashMap* _tmp0_;
	gboolean enable_string_templates = FALSE;
	gboolean enable_preprocessor_define = FALSE;
	gboolean enable_preprocessor_include = FALSE;
	gboolean enable_keyword_escape = FALSE;
	gboolean enabel_verbatim_string = FALSE;
	ValadocHighlighterCodeScanner* scanner = NULL;
	const gchar* _tmp193_;
	ValaHashMap* _tmp194_;
	ValadocHighlighterCodeScanner* _tmp195_;
	ValadocContentRun* _tmp196_;
	g_return_val_if_fail (self != NULL, NULL);
	g_return_val_if_fail (source_code != NULL, NULL);
	_tmp0_ = self->priv->vala_keywords;
	if (_tmp0_ == NULL) {
		GHashFunc _tmp1_;
		GEqualFunc _tmp2_;
		GEqualFunc _tmp3_;
		ValaHashMap* _tmp4_;
		ValaHashMap* _tmp5_;
		ValadocHighlighterCodeTokenType _tmp6_;
		ValaHashMap* _tmp7_;
		ValadocHighlighterCodeTokenType _tmp8_;
		ValaHashMap* _tmp9_;
		ValadocHighlighterCodeTokenType _tmp10_;
		ValaHashMap* _tmp11_;
		ValadocHighlighterCodeTokenType _tmp12_;
		ValaHashMap* _tmp13_;
		ValadocHighlighterCodeTokenType _tmp14_;
		ValaHashMap* _tmp15_;
		ValadocHighlighterCodeTokenType _tmp16_;
		ValaHashMap* _tmp17_;
		ValadocHighlighterCodeTokenType _tmp18_;
		ValaHashMap* _tmp19_;
		ValadocHighlighterCodeTokenType _tmp20_;
		ValaHashMap* _tmp21_;
		ValadocHighlighterCodeTokenType _tmp22_;
		ValaHashMap* _tmp23_;
		ValadocHighlighterCodeTokenType _tmp24_;
		ValaHashMap* _tmp25_;
		ValadocHighlighterCodeTokenType _tmp26_;
		ValaHashMap* _tmp27_;
		ValadocHighlighterCodeTokenType _tmp28_;
		ValaHashMap* _tmp29_;
		ValadocHighlighterCodeTokenType _tmp30_;
		ValaHashMap* _tmp31_;
		ValadocHighlighterCodeTokenType _tmp32_;
		ValaHashMap* _tmp33_;
		ValadocHighlighterCodeTokenType _tmp34_;
		ValaHashMap* _tmp35_;
		ValadocHighlighterCodeTokenType _tmp36_;
		ValaHashMap* _tmp37_;
		ValadocHighlighterCodeTokenType _tmp38_;
		ValaHashMap* _tmp39_;
		ValadocHighlighterCodeTokenType _tmp40_;
		ValaHashMap* _tmp41_;
		ValadocHighlighterCodeTokenType _tmp42_;
		ValaHashMap* _tmp43_;
		ValadocHighlighterCodeTokenType _tmp44_;
		ValaHashMap* _tmp45_;
		ValadocHighlighterCodeTokenType _tmp46_;
		ValaHashMap* _tmp47_;
		ValadocHighlighterCodeTokenType _tmp48_;
		ValaHashMap* _tmp49_;
		ValadocHighlighterCodeTokenType _tmp50_;
		ValaHashMap* _tmp51_;
		ValadocHighlighterCodeTokenType _tmp52_;
		ValaHashMap* _tmp53_;
		ValadocHighlighterCodeTokenType _tmp54_;
		ValaHashMap* _tmp55_;
		ValadocHighlighterCodeTokenType _tmp56_;
		ValaHashMap* _tmp57_;
		ValadocHighlighterCodeTokenType _tmp58_;
		ValaHashMap* _tmp59_;
		ValadocHighlighterCodeTokenType _tmp60_;
		ValaHashMap* _tmp61_;
		ValadocHighlighterCodeTokenType _tmp62_;
		ValaHashMap* _tmp63_;
		ValadocHighlighterCodeTokenType _tmp64_;
		ValaHashMap* _tmp65_;
		ValadocHighlighterCodeTokenType _tmp66_;
		ValaHashMap* _tmp67_;
		ValadocHighlighterCodeTokenType _tmp68_;
		ValaHashMap* _tmp69_;
		ValadocHighlighterCodeTokenType _tmp70_;
		ValaHashMap* _tmp71_;
		ValadocHighlighterCodeTokenType _tmp72_;
		ValaHashMap* _tmp73_;
		ValadocHighlighterCodeTokenType _tmp74_;
		ValaHashMap* _tmp75_;
		ValadocHighlighterCodeTokenType _tmp76_;
		ValaHashMap* _tmp77_;
		ValadocHighlighterCodeTokenType _tmp78_;
		ValaHashMap* _tmp79_;
		ValadocHighlighterCodeTokenType _tmp80_;
		ValaHashMap* _tmp81_;
		ValadocHighlighterCodeTokenType _tmp82_;
		ValaHashMap* _tmp83_;
		ValadocHighlighterCodeTokenType _tmp84_;
		ValaHashMap* _tmp85_;
		ValadocHighlighterCodeTokenType _tmp86_;
		ValaHashMap* _tmp87_;
		ValadocHighlighterCodeTokenType _tmp88_;
		ValaHashMap* _tmp89_;
		ValadocHighlighterCodeTokenType _tmp90_;
		ValaHashMap* _tmp91_;
		ValadocHighlighterCodeTokenType _tmp92_;
		ValaHashMap* _tmp93_;
		ValadocHighlighterCodeTokenType _tmp94_;
		ValaHashMap* _tmp95_;
		ValadocHighlighterCodeTokenType _tmp96_;
		ValaHashMap* _tmp97_;
		ValadocHighlighterCodeTokenType _tmp98_;
		ValaHashMap* _tmp99_;
		ValadocHighlighterCodeTokenType _tmp100_;
		ValaHashMap* _tmp101_;
		ValadocHighlighterCodeTokenType _tmp102_;
		ValaHashMap* _tmp103_;
		ValadocHighlighterCodeTokenType _tmp104_;
		ValaHashMap* _tmp105_;
		ValadocHighlighterCodeTokenType _tmp106_;
		ValaHashMap* _tmp107_;
		ValadocHighlighterCodeTokenType _tmp108_;
		ValaHashMap* _tmp109_;
		ValadocHighlighterCodeTokenType _tmp110_;
		ValaHashMap* _tmp111_;
		ValadocHighlighterCodeTokenType _tmp112_;
		ValaHashMap* _tmp113_;
		ValadocHighlighterCodeTokenType _tmp114_;
		ValaHashMap* _tmp115_;
		ValadocHighlighterCodeTokenType _tmp116_;
		ValaHashMap* _tmp117_;
		ValadocHighlighterCodeTokenType _tmp118_;
		ValaHashMap* _tmp119_;
		ValadocHighlighterCodeTokenType _tmp120_;
		ValaHashMap* _tmp121_;
		ValadocHighlighterCodeTokenType _tmp122_;
		ValaHashMap* _tmp123_;
		ValadocHighlighterCodeTokenType _tmp124_;
		ValaHashMap* _tmp125_;
		ValadocHighlighterCodeTokenType _tmp126_;
		ValaHashMap* _tmp127_;
		ValadocHighlighterCodeTokenType _tmp128_;
		ValaHashMap* _tmp129_;
		ValadocHighlighterCodeTokenType _tmp130_;
		ValaHashMap* _tmp131_;
		ValadocHighlighterCodeTokenType _tmp132_;
		ValaHashMap* _tmp133_;
		ValadocHighlighterCodeTokenType _tmp134_;
		ValaHashMap* _tmp135_;
		ValadocHighlighterCodeTokenType _tmp136_;
		ValaHashMap* _tmp137_;
		ValadocHighlighterCodeTokenType _tmp138_;
		ValaHashMap* _tmp139_;
		ValadocHighlighterCodeTokenType _tmp140_;
		ValaHashMap* _tmp141_;
		ValadocHighlighterCodeTokenType _tmp142_;
		ValaHashMap* _tmp143_;
		ValadocHighlighterCodeTokenType _tmp144_;
		ValaHashMap* _tmp145_;
		ValadocHighlighterCodeTokenType _tmp146_;
		ValaHashMap* _tmp147_;
		ValadocHighlighterCodeTokenType _tmp148_;
		ValaHashMap* _tmp149_;
		ValadocHighlighterCodeTokenType _tmp150_;
		ValaHashMap* _tmp151_;
		ValadocHighlighterCodeTokenType _tmp152_;
		ValaHashMap* _tmp153_;
		ValadocHighlighterCodeTokenType _tmp154_;
		ValaHashMap* _tmp155_;
		ValadocHighlighterCodeTokenType _tmp156_;
		ValaHashMap* _tmp157_;
		ValadocHighlighterCodeTokenType _tmp158_;
		ValaHashMap* _tmp159_;
		ValadocHighlighterCodeTokenType _tmp160_;
		ValaHashMap* _tmp161_;
		ValadocHighlighterCodeTokenType _tmp162_;
		ValaHashMap* _tmp163_;
		ValadocHighlighterCodeTokenType _tmp164_;
		ValaHashMap* _tmp165_;
		ValadocHighlighterCodeTokenType _tmp166_;
		ValaHashMap* _tmp167_;
		ValadocHighlighterCodeTokenType _tmp168_;
		ValaHashMap* _tmp169_;
		ValadocHighlighterCodeTokenType _tmp170_;
		ValaHashMap* _tmp171_;
		ValadocHighlighterCodeTokenType _tmp172_;
		ValaHashMap* _tmp173_;
		ValadocHighlighterCodeTokenType _tmp174_;
		ValaHashMap* _tmp175_;
		ValadocHighlighterCodeTokenType _tmp176_;
		ValaHashMap* _tmp177_;
		ValadocHighlighterCodeTokenType _tmp178_;
		ValaHashMap* _tmp179_;
		ValadocHighlighterCodeTokenType _tmp180_;
		ValaHashMap* _tmp181_;
		ValadocHighlighterCodeTokenType _tmp182_;
		ValaHashMap* _tmp183_;
		ValadocHighlighterCodeTokenType _tmp184_;
		ValaHashMap* _tmp185_;
		ValadocHighlighterCodeTokenType _tmp186_;
		ValaHashMap* _tmp187_;
		ValadocHighlighterCodeTokenType _tmp188_;
		ValaHashMap* _tmp189_;
		ValadocHighlighterCodeTokenType _tmp190_;
		ValaHashMap* _tmp191_;
		ValadocHighlighterCodeTokenType _tmp192_;
		_tmp1_ = g_str_hash;
		_tmp2_ = g_str_equal;
		_tmp3_ = g_direct_equal;
		_tmp4_ = vala_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, VALADOC_HIGHLIGHTER_TYPE_CODE_TOKEN_TYPE, (GBoxedCopyFunc) _valadoc_highlighter_code_token_type_dup, (GDestroyNotify) g_free, _tmp1_, _tmp2_, _tmp3_);
		_vala_map_unref0 (self->priv->vala_keywords);
		self->priv->vala_keywords = _tmp4_;
		_tmp5_ = self->priv->vala_keywords;
		_tmp6_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_TYPE;
		vala_map_set ((ValaMap*) _tmp5_, "string", (gpointer) ((gintptr) (&_tmp6_)));
		_tmp7_ = self->priv->vala_keywords;
		_tmp8_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_TYPE;
		vala_map_set ((ValaMap*) _tmp7_, "bool", (gpointer) ((gintptr) (&_tmp8_)));
		_tmp9_ = self->priv->vala_keywords;
		_tmp10_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_TYPE;
		vala_map_set ((ValaMap*) _tmp9_, "void", (gpointer) ((gintptr) (&_tmp10_)));
		_tmp11_ = self->priv->vala_keywords;
		_tmp12_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_TYPE;
		vala_map_set ((ValaMap*) _tmp11_, "double", (gpointer) ((gintptr) (&_tmp12_)));
		_tmp13_ = self->priv->vala_keywords;
		_tmp14_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_TYPE;
		vala_map_set ((ValaMap*) _tmp13_, "float", (gpointer) ((gintptr) (&_tmp14_)));
		_tmp15_ = self->priv->vala_keywords;
		_tmp16_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_TYPE;
		vala_map_set ((ValaMap*) _tmp15_, "char", (gpointer) ((gintptr) (&_tmp16_)));
		_tmp17_ = self->priv->vala_keywords;
		_tmp18_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_TYPE;
		vala_map_set ((ValaMap*) _tmp17_, "uchar", (gpointer) ((gintptr) (&_tmp18_)));
		_tmp19_ = self->priv->vala_keywords;
		_tmp20_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_TYPE;
		vala_map_set ((ValaMap*) _tmp19_, "unichar", (gpointer) ((gintptr) (&_tmp20_)));
		_tmp21_ = self->priv->vala_keywords;
		_tmp22_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_TYPE;
		vala_map_set ((ValaMap*) _tmp21_, "short", (gpointer) ((gintptr) (&_tmp22_)));
		_tmp23_ = self->priv->vala_keywords;
		_tmp24_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_TYPE;
		vala_map_set ((ValaMap*) _tmp23_, "ushort", (gpointer) ((gintptr) (&_tmp24_)));
		_tmp25_ = self->priv->vala_keywords;
		_tmp26_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_TYPE;
		vala_map_set ((ValaMap*) _tmp25_, "long", (gpointer) ((gintptr) (&_tmp26_)));
		_tmp27_ = self->priv->vala_keywords;
		_tmp28_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_TYPE;
		vala_map_set ((ValaMap*) _tmp27_, "ulong", (gpointer) ((gintptr) (&_tmp28_)));
		_tmp29_ = self->priv->vala_keywords;
		_tmp30_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_TYPE;
		vala_map_set ((ValaMap*) _tmp29_, "size_t", (gpointer) ((gintptr) (&_tmp30_)));
		_tmp31_ = self->priv->vala_keywords;
		_tmp32_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_TYPE;
		vala_map_set ((ValaMap*) _tmp31_, "ssize_t", (gpointer) ((gintptr) (&_tmp32_)));
		_tmp33_ = self->priv->vala_keywords;
		_tmp34_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_TYPE;
		vala_map_set ((ValaMap*) _tmp33_, "int", (gpointer) ((gintptr) (&_tmp34_)));
		_tmp35_ = self->priv->vala_keywords;
		_tmp36_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_TYPE;
		vala_map_set ((ValaMap*) _tmp35_, "int8", (gpointer) ((gintptr) (&_tmp36_)));
		_tmp37_ = self->priv->vala_keywords;
		_tmp38_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_TYPE;
		vala_map_set ((ValaMap*) _tmp37_, "int16", (gpointer) ((gintptr) (&_tmp38_)));
		_tmp39_ = self->priv->vala_keywords;
		_tmp40_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_TYPE;
		vala_map_set ((ValaMap*) _tmp39_, "int32", (gpointer) ((gintptr) (&_tmp40_)));
		_tmp41_ = self->priv->vala_keywords;
		_tmp42_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_TYPE;
		vala_map_set ((ValaMap*) _tmp41_, "int64", (gpointer) ((gintptr) (&_tmp42_)));
		_tmp43_ = self->priv->vala_keywords;
		_tmp44_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_TYPE;
		vala_map_set ((ValaMap*) _tmp43_, "uint", (gpointer) ((gintptr) (&_tmp44_)));
		_tmp45_ = self->priv->vala_keywords;
		_tmp46_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_TYPE;
		vala_map_set ((ValaMap*) _tmp45_, "uint8", (gpointer) ((gintptr) (&_tmp46_)));
		_tmp47_ = self->priv->vala_keywords;
		_tmp48_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_TYPE;
		vala_map_set ((ValaMap*) _tmp47_, "uint16", (gpointer) ((gintptr) (&_tmp48_)));
		_tmp49_ = self->priv->vala_keywords;
		_tmp50_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_TYPE;
		vala_map_set ((ValaMap*) _tmp49_, "uint32", (gpointer) ((gintptr) (&_tmp50_)));
		_tmp51_ = self->priv->vala_keywords;
		_tmp52_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_TYPE;
		vala_map_set ((ValaMap*) _tmp51_, "uint64", (gpointer) ((gintptr) (&_tmp52_)));
		_tmp53_ = self->priv->vala_keywords;
		_tmp54_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_LITERAL;
		vala_map_set ((ValaMap*) _tmp53_, "null", (gpointer) ((gintptr) (&_tmp54_)));
		_tmp55_ = self->priv->vala_keywords;
		_tmp56_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_LITERAL;
		vala_map_set ((ValaMap*) _tmp55_, "true", (gpointer) ((gintptr) (&_tmp56_)));
		_tmp57_ = self->priv->vala_keywords;
		_tmp58_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_LITERAL;
		vala_map_set ((ValaMap*) _tmp57_, "false", (gpointer) ((gintptr) (&_tmp58_)));
		_tmp59_ = self->priv->vala_keywords;
		_tmp60_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp59_, "return", (gpointer) ((gintptr) (&_tmp60_)));
		_tmp61_ = self->priv->vala_keywords;
		_tmp62_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp61_, "lock", (gpointer) ((gintptr) (&_tmp62_)));
		_tmp63_ = self->priv->vala_keywords;
		_tmp64_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp63_, "var", (gpointer) ((gintptr) (&_tmp64_)));
		_tmp65_ = self->priv->vala_keywords;
		_tmp66_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp65_, "yield", (gpointer) ((gintptr) (&_tmp66_)));
		_tmp67_ = self->priv->vala_keywords;
		_tmp68_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp67_, "global", (gpointer) ((gintptr) (&_tmp68_)));
		_tmp69_ = self->priv->vala_keywords;
		_tmp70_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp69_, "construct", (gpointer) ((gintptr) (&_tmp70_)));
		_tmp71_ = self->priv->vala_keywords;
		_tmp72_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp71_, "value", (gpointer) ((gintptr) (&_tmp72_)));
		_tmp73_ = self->priv->vala_keywords;
		_tmp74_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp73_, "get", (gpointer) ((gintptr) (&_tmp74_)));
		_tmp75_ = self->priv->vala_keywords;
		_tmp76_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp75_, "set", (gpointer) ((gintptr) (&_tmp76_)));
		_tmp77_ = self->priv->vala_keywords;
		_tmp78_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp77_, "owned", (gpointer) ((gintptr) (&_tmp78_)));
		_tmp79_ = self->priv->vala_keywords;
		_tmp80_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp79_, "unowned", (gpointer) ((gintptr) (&_tmp80_)));
		_tmp81_ = self->priv->vala_keywords;
		_tmp82_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp81_, "const", (gpointer) ((gintptr) (&_tmp82_)));
		_tmp83_ = self->priv->vala_keywords;
		_tmp84_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp83_, "weak", (gpointer) ((gintptr) (&_tmp84_)));
		_tmp85_ = self->priv->vala_keywords;
		_tmp86_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp85_, "dynamic", (gpointer) ((gintptr) (&_tmp86_)));
		_tmp87_ = self->priv->vala_keywords;
		_tmp88_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp87_, "out", (gpointer) ((gintptr) (&_tmp88_)));
		_tmp89_ = self->priv->vala_keywords;
		_tmp90_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp89_, "ref", (gpointer) ((gintptr) (&_tmp90_)));
		_tmp91_ = self->priv->vala_keywords;
		_tmp92_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp91_, "break", (gpointer) ((gintptr) (&_tmp92_)));
		_tmp93_ = self->priv->vala_keywords;
		_tmp94_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp93_, "continue", (gpointer) ((gintptr) (&_tmp94_)));
		_tmp95_ = self->priv->vala_keywords;
		_tmp96_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp95_, "return", (gpointer) ((gintptr) (&_tmp96_)));
		_tmp97_ = self->priv->vala_keywords;
		_tmp98_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp97_, "if", (gpointer) ((gintptr) (&_tmp98_)));
		_tmp99_ = self->priv->vala_keywords;
		_tmp100_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp99_, "else", (gpointer) ((gintptr) (&_tmp100_)));
		_tmp101_ = self->priv->vala_keywords;
		_tmp102_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp101_, "switch", (gpointer) ((gintptr) (&_tmp102_)));
		_tmp103_ = self->priv->vala_keywords;
		_tmp104_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp103_, "case", (gpointer) ((gintptr) (&_tmp104_)));
		_tmp105_ = self->priv->vala_keywords;
		_tmp106_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp105_, "default", (gpointer) ((gintptr) (&_tmp106_)));
		_tmp107_ = self->priv->vala_keywords;
		_tmp108_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp107_, "do", (gpointer) ((gintptr) (&_tmp108_)));
		_tmp109_ = self->priv->vala_keywords;
		_tmp110_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp109_, "while", (gpointer) ((gintptr) (&_tmp110_)));
		_tmp111_ = self->priv->vala_keywords;
		_tmp112_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp111_, "for", (gpointer) ((gintptr) (&_tmp112_)));
		_tmp113_ = self->priv->vala_keywords;
		_tmp114_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp113_, "foreach", (gpointer) ((gintptr) (&_tmp114_)));
		_tmp115_ = self->priv->vala_keywords;
		_tmp116_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp115_, "in", (gpointer) ((gintptr) (&_tmp116_)));
		_tmp117_ = self->priv->vala_keywords;
		_tmp118_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp117_, "try", (gpointer) ((gintptr) (&_tmp118_)));
		_tmp119_ = self->priv->vala_keywords;
		_tmp120_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp119_, "catch", (gpointer) ((gintptr) (&_tmp120_)));
		_tmp121_ = self->priv->vala_keywords;
		_tmp122_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp121_, "finally", (gpointer) ((gintptr) (&_tmp122_)));
		_tmp123_ = self->priv->vala_keywords;
		_tmp124_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp123_, "throw", (gpointer) ((gintptr) (&_tmp124_)));
		_tmp125_ = self->priv->vala_keywords;
		_tmp126_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp125_, "class", (gpointer) ((gintptr) (&_tmp126_)));
		_tmp127_ = self->priv->vala_keywords;
		_tmp128_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp127_, "interface", (gpointer) ((gintptr) (&_tmp128_)));
		_tmp129_ = self->priv->vala_keywords;
		_tmp130_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp129_, "struct", (gpointer) ((gintptr) (&_tmp130_)));
		_tmp131_ = self->priv->vala_keywords;
		_tmp132_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp131_, "enum", (gpointer) ((gintptr) (&_tmp132_)));
		_tmp133_ = self->priv->vala_keywords;
		_tmp134_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp133_, "delegate", (gpointer) ((gintptr) (&_tmp134_)));
		_tmp135_ = self->priv->vala_keywords;
		_tmp136_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp135_, "errordomain", (gpointer) ((gintptr) (&_tmp136_)));
		_tmp137_ = self->priv->vala_keywords;
		_tmp138_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp137_, "abstract", (gpointer) ((gintptr) (&_tmp138_)));
		_tmp139_ = self->priv->vala_keywords;
		_tmp140_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp139_, "virtual", (gpointer) ((gintptr) (&_tmp140_)));
		_tmp141_ = self->priv->vala_keywords;
		_tmp142_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp141_, "override", (gpointer) ((gintptr) (&_tmp142_)));
		_tmp143_ = self->priv->vala_keywords;
		_tmp144_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp143_, "signal", (gpointer) ((gintptr) (&_tmp144_)));
		_tmp145_ = self->priv->vala_keywords;
		_tmp146_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp145_, "extern", (gpointer) ((gintptr) (&_tmp146_)));
		_tmp147_ = self->priv->vala_keywords;
		_tmp148_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp147_, "static", (gpointer) ((gintptr) (&_tmp148_)));
		_tmp149_ = self->priv->vala_keywords;
		_tmp150_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp149_, "async", (gpointer) ((gintptr) (&_tmp150_)));
		_tmp151_ = self->priv->vala_keywords;
		_tmp152_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp151_, "inline", (gpointer) ((gintptr) (&_tmp152_)));
		_tmp153_ = self->priv->vala_keywords;
		_tmp154_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp153_, "new", (gpointer) ((gintptr) (&_tmp154_)));
		_tmp155_ = self->priv->vala_keywords;
		_tmp156_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp155_, "public", (gpointer) ((gintptr) (&_tmp156_)));
		_tmp157_ = self->priv->vala_keywords;
		_tmp158_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp157_, "private", (gpointer) ((gintptr) (&_tmp158_)));
		_tmp159_ = self->priv->vala_keywords;
		_tmp160_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp159_, "protected", (gpointer) ((gintptr) (&_tmp160_)));
		_tmp161_ = self->priv->vala_keywords;
		_tmp162_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp161_, "internal", (gpointer) ((gintptr) (&_tmp162_)));
		_tmp163_ = self->priv->vala_keywords;
		_tmp164_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp163_, "throws", (gpointer) ((gintptr) (&_tmp164_)));
		_tmp165_ = self->priv->vala_keywords;
		_tmp166_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp165_, "requires", (gpointer) ((gintptr) (&_tmp166_)));
		_tmp167_ = self->priv->vala_keywords;
		_tmp168_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp167_, "ensures", (gpointer) ((gintptr) (&_tmp168_)));
		_tmp169_ = self->priv->vala_keywords;
		_tmp170_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp169_, "assert", (gpointer) ((gintptr) (&_tmp170_)));
		_tmp171_ = self->priv->vala_keywords;
		_tmp172_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp171_, "namespace", (gpointer) ((gintptr) (&_tmp172_)));
		_tmp173_ = self->priv->vala_keywords;
		_tmp174_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp173_, "using", (gpointer) ((gintptr) (&_tmp174_)));
		_tmp175_ = self->priv->vala_keywords;
		_tmp176_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp175_, "as", (gpointer) ((gintptr) (&_tmp176_)));
		_tmp177_ = self->priv->vala_keywords;
		_tmp178_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp177_, "is", (gpointer) ((gintptr) (&_tmp178_)));
		_tmp179_ = self->priv->vala_keywords;
		_tmp180_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp179_, "in", (gpointer) ((gintptr) (&_tmp180_)));
		_tmp181_ = self->priv->vala_keywords;
		_tmp182_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp181_, "new", (gpointer) ((gintptr) (&_tmp182_)));
		_tmp183_ = self->priv->vala_keywords;
		_tmp184_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp183_, "delete", (gpointer) ((gintptr) (&_tmp184_)));
		_tmp185_ = self->priv->vala_keywords;
		_tmp186_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp185_, "sizeof", (gpointer) ((gintptr) (&_tmp186_)));
		_tmp187_ = self->priv->vala_keywords;
		_tmp188_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp187_, "typeof", (gpointer) ((gintptr) (&_tmp188_)));
		_tmp189_ = self->priv->vala_keywords;
		_tmp190_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp189_, "this", (gpointer) ((gintptr) (&_tmp190_)));
		_tmp191_ = self->priv->vala_keywords;
		_tmp192_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp191_, "base", (gpointer) ((gintptr) (&_tmp192_)));
	}
	enable_string_templates = TRUE;
	enable_preprocessor_define = FALSE;
	enable_preprocessor_include = FALSE;
	enable_keyword_escape = TRUE;
	enabel_verbatim_string = TRUE;
	_tmp193_ = source_code;
	_tmp194_ = self->priv->vala_keywords;
	_tmp195_ = valadoc_highlighter_code_scanner_new (_tmp193_, enable_string_templates, enabel_verbatim_string, enable_preprocessor_define, enable_preprocessor_include, enable_keyword_escape, _tmp194_);
	scanner = _tmp195_;
	_tmp196_ = valadoc_highlighter_highlighter_highlight_code (self, (ValadocHighlighterScanner*) scanner);
	result = _tmp196_;
	_g_object_unref0 (scanner);
	return result;
}


/**
 * Used to highlight C source code.
 */
ValadocContentRun* valadoc_highlighter_highlighter_highlight_c (ValadocHighlighterHighlighter* self, const gchar* source_code) {
	ValadocContentRun* result = NULL;
	ValaHashMap* _tmp0_;
	gboolean enable_string_templates = FALSE;
	gboolean enable_preprocessor_define = FALSE;
	gboolean enable_preprocessor_include = FALSE;
	gboolean enable_keyword_escape = FALSE;
	gboolean enabel_verbatim_string = FALSE;
	ValadocHighlighterCodeScanner* scanner = NULL;
	const gchar* _tmp129_;
	ValaHashMap* _tmp130_;
	ValadocHighlighterCodeScanner* _tmp131_;
	ValadocContentRun* _tmp132_;
	g_return_val_if_fail (self != NULL, NULL);
	g_return_val_if_fail (source_code != NULL, NULL);
	_tmp0_ = self->priv->c_keywords;
	if (_tmp0_ == NULL) {
		GHashFunc _tmp1_;
		GEqualFunc _tmp2_;
		GEqualFunc _tmp3_;
		ValaHashMap* _tmp4_;
		ValaHashMap* _tmp5_;
		ValadocHighlighterCodeTokenType _tmp6_;
		ValaHashMap* _tmp7_;
		ValadocHighlighterCodeTokenType _tmp8_;
		ValaHashMap* _tmp9_;
		ValadocHighlighterCodeTokenType _tmp10_;
		ValaHashMap* _tmp11_;
		ValadocHighlighterCodeTokenType _tmp12_;
		ValaHashMap* _tmp13_;
		ValadocHighlighterCodeTokenType _tmp14_;
		ValaHashMap* _tmp15_;
		ValadocHighlighterCodeTokenType _tmp16_;
		ValaHashMap* _tmp17_;
		ValadocHighlighterCodeTokenType _tmp18_;
		ValaHashMap* _tmp19_;
		ValadocHighlighterCodeTokenType _tmp20_;
		ValaHashMap* _tmp21_;
		ValadocHighlighterCodeTokenType _tmp22_;
		ValaHashMap* _tmp23_;
		ValadocHighlighterCodeTokenType _tmp24_;
		ValaHashMap* _tmp25_;
		ValadocHighlighterCodeTokenType _tmp26_;
		ValaHashMap* _tmp27_;
		ValadocHighlighterCodeTokenType _tmp28_;
		ValaHashMap* _tmp29_;
		ValadocHighlighterCodeTokenType _tmp30_;
		ValaHashMap* _tmp31_;
		ValadocHighlighterCodeTokenType _tmp32_;
		ValaHashMap* _tmp33_;
		ValadocHighlighterCodeTokenType _tmp34_;
		ValaHashMap* _tmp35_;
		ValadocHighlighterCodeTokenType _tmp36_;
		ValaHashMap* _tmp37_;
		ValadocHighlighterCodeTokenType _tmp38_;
		ValaHashMap* _tmp39_;
		ValadocHighlighterCodeTokenType _tmp40_;
		ValaHashMap* _tmp41_;
		ValadocHighlighterCodeTokenType _tmp42_;
		ValaHashMap* _tmp43_;
		ValadocHighlighterCodeTokenType _tmp44_;
		ValaHashMap* _tmp45_;
		ValadocHighlighterCodeTokenType _tmp46_;
		ValaHashMap* _tmp47_;
		ValadocHighlighterCodeTokenType _tmp48_;
		ValaHashMap* _tmp49_;
		ValadocHighlighterCodeTokenType _tmp50_;
		ValaHashMap* _tmp51_;
		ValadocHighlighterCodeTokenType _tmp52_;
		ValaHashMap* _tmp53_;
		ValadocHighlighterCodeTokenType _tmp54_;
		ValaHashMap* _tmp55_;
		ValadocHighlighterCodeTokenType _tmp56_;
		ValaHashMap* _tmp57_;
		ValadocHighlighterCodeTokenType _tmp58_;
		ValaHashMap* _tmp59_;
		ValadocHighlighterCodeTokenType _tmp60_;
		ValaHashMap* _tmp61_;
		ValadocHighlighterCodeTokenType _tmp62_;
		ValaHashMap* _tmp63_;
		ValadocHighlighterCodeTokenType _tmp64_;
		ValaHashMap* _tmp65_;
		ValadocHighlighterCodeTokenType _tmp66_;
		ValaHashMap* _tmp67_;
		ValadocHighlighterCodeTokenType _tmp68_;
		ValaHashMap* _tmp69_;
		ValadocHighlighterCodeTokenType _tmp70_;
		ValaHashMap* _tmp71_;
		ValadocHighlighterCodeTokenType _tmp72_;
		ValaHashMap* _tmp73_;
		ValadocHighlighterCodeTokenType _tmp74_;
		ValaHashMap* _tmp75_;
		ValadocHighlighterCodeTokenType _tmp76_;
		ValaHashMap* _tmp77_;
		ValadocHighlighterCodeTokenType _tmp78_;
		ValaHashMap* _tmp79_;
		ValadocHighlighterCodeTokenType _tmp80_;
		ValaHashMap* _tmp81_;
		ValadocHighlighterCodeTokenType _tmp82_;
		ValaHashMap* _tmp83_;
		ValadocHighlighterCodeTokenType _tmp84_;
		ValaHashMap* _tmp85_;
		ValadocHighlighterCodeTokenType _tmp86_;
		ValaHashMap* _tmp87_;
		ValadocHighlighterCodeTokenType _tmp88_;
		ValaHashMap* _tmp89_;
		ValadocHighlighterCodeTokenType _tmp90_;
		ValaHashMap* _tmp91_;
		ValadocHighlighterCodeTokenType _tmp92_;
		ValaHashMap* _tmp93_;
		ValadocHighlighterCodeTokenType _tmp94_;
		ValaHashMap* _tmp95_;
		ValadocHighlighterCodeTokenType _tmp96_;
		ValaHashMap* _tmp97_;
		ValadocHighlighterCodeTokenType _tmp98_;
		ValaHashMap* _tmp99_;
		ValadocHighlighterCodeTokenType _tmp100_;
		ValaHashMap* _tmp101_;
		ValadocHighlighterCodeTokenType _tmp102_;
		ValaHashMap* _tmp103_;
		ValadocHighlighterCodeTokenType _tmp104_;
		ValaHashMap* _tmp105_;
		ValadocHighlighterCodeTokenType _tmp106_;
		ValaHashMap* _tmp107_;
		ValadocHighlighterCodeTokenType _tmp108_;
		ValaHashMap* _tmp109_;
		ValadocHighlighterCodeTokenType _tmp110_;
		ValaHashMap* _tmp111_;
		ValadocHighlighterCodeTokenType _tmp112_;
		ValaHashMap* _tmp113_;
		ValadocHighlighterCodeTokenType _tmp114_;
		ValaHashMap* _tmp115_;
		ValadocHighlighterCodeTokenType _tmp116_;
		ValaHashMap* _tmp117_;
		ValadocHighlighterCodeTokenType _tmp118_;
		ValaHashMap* _tmp119_;
		ValadocHighlighterCodeTokenType _tmp120_;
		ValaHashMap* _tmp121_;
		ValadocHighlighterCodeTokenType _tmp122_;
		ValaHashMap* _tmp123_;
		ValadocHighlighterCodeTokenType _tmp124_;
		ValaHashMap* _tmp125_;
		ValadocHighlighterCodeTokenType _tmp126_;
		ValaHashMap* _tmp127_;
		ValadocHighlighterCodeTokenType _tmp128_;
		_tmp1_ = g_str_hash;
		_tmp2_ = g_str_equal;
		_tmp3_ = g_direct_equal;
		_tmp4_ = vala_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, VALADOC_HIGHLIGHTER_TYPE_CODE_TOKEN_TYPE, (GBoxedCopyFunc) _valadoc_highlighter_code_token_type_dup, (GDestroyNotify) g_free, _tmp1_, _tmp2_, _tmp3_);
		_vala_map_unref0 (self->priv->c_keywords);
		self->priv->c_keywords = _tmp4_;
		_tmp5_ = self->priv->c_keywords;
		_tmp6_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_TYPE;
		vala_map_set ((ValaMap*) _tmp5_, "auto", (gpointer) ((gintptr) (&_tmp6_)));
		_tmp7_ = self->priv->c_keywords;
		_tmp8_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_TYPE;
		vala_map_set ((ValaMap*) _tmp7_, "char", (gpointer) ((gintptr) (&_tmp8_)));
		_tmp9_ = self->priv->c_keywords;
		_tmp10_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_TYPE;
		vala_map_set ((ValaMap*) _tmp9_, "const", (gpointer) ((gintptr) (&_tmp10_)));
		_tmp11_ = self->priv->c_keywords;
		_tmp12_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_TYPE;
		vala_map_set ((ValaMap*) _tmp11_, "double", (gpointer) ((gintptr) (&_tmp12_)));
		_tmp13_ = self->priv->c_keywords;
		_tmp14_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_TYPE;
		vala_map_set ((ValaMap*) _tmp13_, "extern", (gpointer) ((gintptr) (&_tmp14_)));
		_tmp15_ = self->priv->c_keywords;
		_tmp16_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_TYPE;
		vala_map_set ((ValaMap*) _tmp15_, "int", (gpointer) ((gintptr) (&_tmp16_)));
		_tmp17_ = self->priv->c_keywords;
		_tmp18_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_TYPE;
		vala_map_set ((ValaMap*) _tmp17_, "float", (gpointer) ((gintptr) (&_tmp18_)));
		_tmp19_ = self->priv->c_keywords;
		_tmp20_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_TYPE;
		vala_map_set ((ValaMap*) _tmp19_, "long", (gpointer) ((gintptr) (&_tmp20_)));
		_tmp21_ = self->priv->c_keywords;
		_tmp22_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_TYPE;
		vala_map_set ((ValaMap*) _tmp21_, "register", (gpointer) ((gintptr) (&_tmp22_)));
		_tmp23_ = self->priv->c_keywords;
		_tmp24_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_TYPE;
		vala_map_set ((ValaMap*) _tmp23_, "short", (gpointer) ((gintptr) (&_tmp24_)));
		_tmp25_ = self->priv->c_keywords;
		_tmp26_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_TYPE;
		vala_map_set ((ValaMap*) _tmp25_, "signed", (gpointer) ((gintptr) (&_tmp26_)));
		_tmp27_ = self->priv->c_keywords;
		_tmp28_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_TYPE;
		vala_map_set ((ValaMap*) _tmp27_, "static", (gpointer) ((gintptr) (&_tmp28_)));
		_tmp29_ = self->priv->c_keywords;
		_tmp30_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_TYPE;
		vala_map_set ((ValaMap*) _tmp29_, "unsigned", (gpointer) ((gintptr) (&_tmp30_)));
		_tmp31_ = self->priv->c_keywords;
		_tmp32_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_TYPE;
		vala_map_set ((ValaMap*) _tmp31_, "void", (gpointer) ((gintptr) (&_tmp32_)));
		_tmp33_ = self->priv->c_keywords;
		_tmp34_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_TYPE;
		vala_map_set ((ValaMap*) _tmp33_, "volatile", (gpointer) ((gintptr) (&_tmp34_)));
		_tmp35_ = self->priv->c_keywords;
		_tmp36_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_TYPE;
		vala_map_set ((ValaMap*) _tmp35_, "gboolean", (gpointer) ((gintptr) (&_tmp36_)));
		_tmp37_ = self->priv->c_keywords;
		_tmp38_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_TYPE;
		vala_map_set ((ValaMap*) _tmp37_, "gpointer", (gpointer) ((gintptr) (&_tmp38_)));
		_tmp39_ = self->priv->c_keywords;
		_tmp40_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_TYPE;
		vala_map_set ((ValaMap*) _tmp39_, "gconstpointer", (gpointer) ((gintptr) (&_tmp40_)));
		_tmp41_ = self->priv->c_keywords;
		_tmp42_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_TYPE;
		vala_map_set ((ValaMap*) _tmp41_, "gchar", (gpointer) ((gintptr) (&_tmp42_)));
		_tmp43_ = self->priv->c_keywords;
		_tmp44_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_TYPE;
		vala_map_set ((ValaMap*) _tmp43_, "guchar", (gpointer) ((gintptr) (&_tmp44_)));
		_tmp45_ = self->priv->c_keywords;
		_tmp46_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_TYPE;
		vala_map_set ((ValaMap*) _tmp45_, "gint", (gpointer) ((gintptr) (&_tmp46_)));
		_tmp47_ = self->priv->c_keywords;
		_tmp48_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_TYPE;
		vala_map_set ((ValaMap*) _tmp47_, "guint", (gpointer) ((gintptr) (&_tmp48_)));
		_tmp49_ = self->priv->c_keywords;
		_tmp50_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_TYPE;
		vala_map_set ((ValaMap*) _tmp49_, "gshort", (gpointer) ((gintptr) (&_tmp50_)));
		_tmp51_ = self->priv->c_keywords;
		_tmp52_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_TYPE;
		vala_map_set ((ValaMap*) _tmp51_, "gushort", (gpointer) ((gintptr) (&_tmp52_)));
		_tmp53_ = self->priv->c_keywords;
		_tmp54_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_TYPE;
		vala_map_set ((ValaMap*) _tmp53_, "glong", (gpointer) ((gintptr) (&_tmp54_)));
		_tmp55_ = self->priv->c_keywords;
		_tmp56_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_TYPE;
		vala_map_set ((ValaMap*) _tmp55_, "gulong", (gpointer) ((gintptr) (&_tmp56_)));
		_tmp57_ = self->priv->c_keywords;
		_tmp58_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_TYPE;
		vala_map_set ((ValaMap*) _tmp57_, "gint8", (gpointer) ((gintptr) (&_tmp58_)));
		_tmp59_ = self->priv->c_keywords;
		_tmp60_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_TYPE;
		vala_map_set ((ValaMap*) _tmp59_, "guint8", (gpointer) ((gintptr) (&_tmp60_)));
		_tmp61_ = self->priv->c_keywords;
		_tmp62_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_TYPE;
		vala_map_set ((ValaMap*) _tmp61_, "gint16", (gpointer) ((gintptr) (&_tmp62_)));
		_tmp63_ = self->priv->c_keywords;
		_tmp64_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_TYPE;
		vala_map_set ((ValaMap*) _tmp63_, "guint16", (gpointer) ((gintptr) (&_tmp64_)));
		_tmp65_ = self->priv->c_keywords;
		_tmp66_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_TYPE;
		vala_map_set ((ValaMap*) _tmp65_, "gint32", (gpointer) ((gintptr) (&_tmp66_)));
		_tmp67_ = self->priv->c_keywords;
		_tmp68_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_TYPE;
		vala_map_set ((ValaMap*) _tmp67_, "guint32", (gpointer) ((gintptr) (&_tmp68_)));
		_tmp69_ = self->priv->c_keywords;
		_tmp70_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_TYPE;
		vala_map_set ((ValaMap*) _tmp69_, "gint64", (gpointer) ((gintptr) (&_tmp70_)));
		_tmp71_ = self->priv->c_keywords;
		_tmp72_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_TYPE;
		vala_map_set ((ValaMap*) _tmp71_, "guint64", (gpointer) ((gintptr) (&_tmp72_)));
		_tmp73_ = self->priv->c_keywords;
		_tmp74_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_TYPE;
		vala_map_set ((ValaMap*) _tmp73_, "gfloat", (gpointer) ((gintptr) (&_tmp74_)));
		_tmp75_ = self->priv->c_keywords;
		_tmp76_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_TYPE;
		vala_map_set ((ValaMap*) _tmp75_, "gdouble", (gpointer) ((gintptr) (&_tmp76_)));
		_tmp77_ = self->priv->c_keywords;
		_tmp78_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_TYPE;
		vala_map_set ((ValaMap*) _tmp77_, "gsize", (gpointer) ((gintptr) (&_tmp78_)));
		_tmp79_ = self->priv->c_keywords;
		_tmp80_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_TYPE;
		vala_map_set ((ValaMap*) _tmp79_, "gssize", (gpointer) ((gintptr) (&_tmp80_)));
		_tmp81_ = self->priv->c_keywords;
		_tmp82_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_TYPE;
		vala_map_set ((ValaMap*) _tmp81_, "goffset", (gpointer) ((gintptr) (&_tmp82_)));
		_tmp83_ = self->priv->c_keywords;
		_tmp84_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_TYPE;
		vala_map_set ((ValaMap*) _tmp83_, "gintptr", (gpointer) ((gintptr) (&_tmp84_)));
		_tmp85_ = self->priv->c_keywords;
		_tmp86_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_TYPE;
		vala_map_set ((ValaMap*) _tmp85_, "guintptr", (gpointer) ((gintptr) (&_tmp86_)));
		_tmp87_ = self->priv->c_keywords;
		_tmp88_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_LITERAL;
		vala_map_set ((ValaMap*) _tmp87_, "NULL", (gpointer) ((gintptr) (&_tmp88_)));
		_tmp89_ = self->priv->c_keywords;
		_tmp90_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_LITERAL;
		vala_map_set ((ValaMap*) _tmp89_, "TRUE", (gpointer) ((gintptr) (&_tmp90_)));
		_tmp91_ = self->priv->c_keywords;
		_tmp92_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_LITERAL;
		vala_map_set ((ValaMap*) _tmp91_, "FALSE", (gpointer) ((gintptr) (&_tmp92_)));
		_tmp93_ = self->priv->c_keywords;
		_tmp94_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp93_, "break", (gpointer) ((gintptr) (&_tmp94_)));
		_tmp95_ = self->priv->c_keywords;
		_tmp96_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp95_, "case", (gpointer) ((gintptr) (&_tmp96_)));
		_tmp97_ = self->priv->c_keywords;
		_tmp98_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp97_, "continue", (gpointer) ((gintptr) (&_tmp98_)));
		_tmp99_ = self->priv->c_keywords;
		_tmp100_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp99_, "default", (gpointer) ((gintptr) (&_tmp100_)));
		_tmp101_ = self->priv->c_keywords;
		_tmp102_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp101_, "do", (gpointer) ((gintptr) (&_tmp102_)));
		_tmp103_ = self->priv->c_keywords;
		_tmp104_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp103_, "else", (gpointer) ((gintptr) (&_tmp104_)));
		_tmp105_ = self->priv->c_keywords;
		_tmp106_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp105_, "enum", (gpointer) ((gintptr) (&_tmp106_)));
		_tmp107_ = self->priv->c_keywords;
		_tmp108_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp107_, "for", (gpointer) ((gintptr) (&_tmp108_)));
		_tmp109_ = self->priv->c_keywords;
		_tmp110_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp109_, "goto", (gpointer) ((gintptr) (&_tmp110_)));
		_tmp111_ = self->priv->c_keywords;
		_tmp112_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp111_, "if", (gpointer) ((gintptr) (&_tmp112_)));
		_tmp113_ = self->priv->c_keywords;
		_tmp114_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp113_, "return", (gpointer) ((gintptr) (&_tmp114_)));
		_tmp115_ = self->priv->c_keywords;
		_tmp116_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp115_, "sizeof", (gpointer) ((gintptr) (&_tmp116_)));
		_tmp117_ = self->priv->c_keywords;
		_tmp118_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp117_, "struct", (gpointer) ((gintptr) (&_tmp118_)));
		_tmp119_ = self->priv->c_keywords;
		_tmp120_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp119_, "switch", (gpointer) ((gintptr) (&_tmp120_)));
		_tmp121_ = self->priv->c_keywords;
		_tmp122_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp121_, "typedef", (gpointer) ((gintptr) (&_tmp122_)));
		_tmp123_ = self->priv->c_keywords;
		_tmp124_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp123_, "union", (gpointer) ((gintptr) (&_tmp124_)));
		_tmp125_ = self->priv->c_keywords;
		_tmp126_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp125_, "while", (gpointer) ((gintptr) (&_tmp126_)));
		_tmp127_ = self->priv->c_keywords;
		_tmp128_ = VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD;
		vala_map_set ((ValaMap*) _tmp127_, "assert", (gpointer) ((gintptr) (&_tmp128_)));
	}
	enable_string_templates = FALSE;
	enable_preprocessor_define = TRUE;
	enable_preprocessor_include = TRUE;
	enable_keyword_escape = FALSE;
	enabel_verbatim_string = FALSE;
	_tmp129_ = source_code;
	_tmp130_ = self->priv->c_keywords;
	_tmp131_ = valadoc_highlighter_code_scanner_new (_tmp129_, enable_string_templates, enabel_verbatim_string, enable_preprocessor_define, enable_preprocessor_include, enable_keyword_escape, _tmp130_);
	scanner = _tmp131_;
	_tmp132_ = valadoc_highlighter_highlighter_highlight_code (self, (ValadocHighlighterScanner*) scanner);
	result = _tmp132_;
	_g_object_unref0 (scanner);
	return result;
}


/**
 * Used to highlight C source code.
 */
ValadocContentRun* valadoc_highlighter_highlighter_highlight_xml (ValadocHighlighterHighlighter* self, const gchar* source_code) {
	ValadocContentRun* result = NULL;
	ValadocHighlighterXmlScanner* scanner = NULL;
	const gchar* _tmp0_;
	ValadocHighlighterXmlScanner* _tmp1_;
	ValadocContentRun* _tmp2_;
	g_return_val_if_fail (self != NULL, NULL);
	g_return_val_if_fail (source_code != NULL, NULL);
	_tmp0_ = source_code;
	_tmp1_ = valadoc_highlighter_xml_scanner_new (_tmp0_);
	scanner = _tmp1_;
	_tmp2_ = valadoc_highlighter_highlighter_highlight_code (self, (ValadocHighlighterScanner*) scanner);
	result = _tmp2_;
	_g_object_unref0 (scanner);
	return result;
}


/**
 * Used to highlight source code.
 */
static ValadocContentRun* valadoc_highlighter_highlighter_highlight_code (ValadocHighlighterHighlighter* self, ValadocHighlighterScanner* scanner) {
	ValadocContentRun* result = NULL;
	ValadocContentRun* code = NULL;
	ValadocContentRun* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	g_return_val_if_fail (scanner != NULL, NULL);
	_tmp0_ = valadoc_content_run_new (VALADOC_CONTENT_RUN_STYLE_MONOSPACED);
	code = _tmp0_;
	{
		ValadocHighlighterCodeToken* token = NULL;
		ValadocHighlighterScanner* _tmp1_;
		ValadocHighlighterCodeToken* _tmp2_;
		_tmp1_ = scanner;
		_tmp2_ = valadoc_highlighter_scanner_next (_tmp1_);
		token = _tmp2_;
		{
			gboolean _tmp3_ = FALSE;
			_tmp3_ = TRUE;
			while (TRUE) {
				ValadocHighlighterCodeToken* _tmp6_;
				ValadocHighlighterCodeTokenType _tmp7_;
				ValadocHighlighterCodeTokenType _tmp8_;
				ValadocHighlighterCodeToken* _tmp9_;
				ValadocHighlighterCodeTokenType _tmp10_;
				ValadocHighlighterCodeTokenType _tmp11_;
				if (!_tmp3_) {
					ValadocHighlighterScanner* _tmp4_;
					ValadocHighlighterCodeToken* _tmp5_;
					_tmp4_ = scanner;
					_tmp5_ = valadoc_highlighter_scanner_next (_tmp4_);
					_valadoc_highlighter_code_token_unref0 (token);
					token = _tmp5_;
				}
				_tmp3_ = FALSE;
				_tmp6_ = token;
				_tmp7_ = valadoc_highlighter_code_token_get_token_type (_tmp6_);
				_tmp8_ = _tmp7_;
				if (!(_tmp8_ != VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_EOF)) {
					break;
				}
				_tmp9_ = token;
				_tmp10_ = valadoc_highlighter_code_token_get_token_type (_tmp9_);
				_tmp11_ = _tmp10_;
				switch (_tmp11_) {
					case VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_PREPROCESSOR:
					{
						ValadocContentRun* run = NULL;
						ValadocContentRun* _tmp12_;
						ValadocContentRun* _tmp13_;
						ValaList* _tmp14_;
						ValaList* _tmp15_;
						ValadocHighlighterCodeToken* _tmp16_;
						const gchar* _tmp17_;
						const gchar* _tmp18_;
						ValadocContentText* _tmp19_;
						ValadocContentText* _tmp20_;
						ValadocContentRun* _tmp21_;
						ValaList* _tmp22_;
						ValaList* _tmp23_;
						ValadocContentRun* _tmp24_;
						_tmp12_ = valadoc_content_run_new (VALADOC_CONTENT_RUN_STYLE_LANG_PREPROCESSOR);
						run = _tmp12_;
						_tmp13_ = run;
						_tmp14_ = valadoc_content_inline_content_get_content ((ValadocContentInlineContent*) _tmp13_);
						_tmp15_ = _tmp14_;
						_tmp16_ = token;
						_tmp17_ = valadoc_highlighter_code_token_get_content (_tmp16_);
						_tmp18_ = _tmp17_;
						_tmp19_ = valadoc_content_text_new (_tmp18_);
						_tmp20_ = _tmp19_;
						vala_collection_add ((ValaCollection*) _tmp15_, (ValadocContentInline*) _tmp20_);
						_g_object_unref0 (_tmp20_);
						_tmp21_ = code;
						_tmp22_ = valadoc_content_inline_content_get_content ((ValadocContentInlineContent*) _tmp21_);
						_tmp23_ = _tmp22_;
						_tmp24_ = run;
						vala_collection_add ((ValaCollection*) _tmp23_, (ValadocContentInline*) _tmp24_);
						_g_object_unref0 (run);
						break;
					}
					case VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_COMMENT:
					{
						ValadocContentRun* run = NULL;
						ValadocContentRun* _tmp25_;
						ValadocContentRun* _tmp26_;
						ValaList* _tmp27_;
						ValaList* _tmp28_;
						ValadocHighlighterCodeToken* _tmp29_;
						const gchar* _tmp30_;
						const gchar* _tmp31_;
						ValadocContentText* _tmp32_;
						ValadocContentText* _tmp33_;
						ValadocContentRun* _tmp34_;
						ValaList* _tmp35_;
						ValaList* _tmp36_;
						ValadocContentRun* _tmp37_;
						_tmp25_ = valadoc_content_run_new (VALADOC_CONTENT_RUN_STYLE_LANG_COMMENT);
						run = _tmp25_;
						_tmp26_ = run;
						_tmp27_ = valadoc_content_inline_content_get_content ((ValadocContentInlineContent*) _tmp26_);
						_tmp28_ = _tmp27_;
						_tmp29_ = token;
						_tmp30_ = valadoc_highlighter_code_token_get_content (_tmp29_);
						_tmp31_ = _tmp30_;
						_tmp32_ = valadoc_content_text_new (_tmp31_);
						_tmp33_ = _tmp32_;
						vala_collection_add ((ValaCollection*) _tmp28_, (ValadocContentInline*) _tmp33_);
						_g_object_unref0 (_tmp33_);
						_tmp34_ = code;
						_tmp35_ = valadoc_content_inline_content_get_content ((ValadocContentInlineContent*) _tmp34_);
						_tmp36_ = _tmp35_;
						_tmp37_ = run;
						vala_collection_add ((ValaCollection*) _tmp36_, (ValadocContentInline*) _tmp37_);
						_g_object_unref0 (run);
						break;
					}
					case VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_KEYWORD:
					{
						ValadocContentRun* run = NULL;
						ValadocContentRun* _tmp38_;
						ValadocContentRun* _tmp39_;
						ValaList* _tmp40_;
						ValaList* _tmp41_;
						ValadocHighlighterCodeToken* _tmp42_;
						const gchar* _tmp43_;
						const gchar* _tmp44_;
						ValadocContentText* _tmp45_;
						ValadocContentText* _tmp46_;
						ValadocContentRun* _tmp47_;
						ValaList* _tmp48_;
						ValaList* _tmp49_;
						ValadocContentRun* _tmp50_;
						_tmp38_ = valadoc_content_run_new (VALADOC_CONTENT_RUN_STYLE_LANG_KEYWORD);
						run = _tmp38_;
						_tmp39_ = run;
						_tmp40_ = valadoc_content_inline_content_get_content ((ValadocContentInlineContent*) _tmp39_);
						_tmp41_ = _tmp40_;
						_tmp42_ = token;
						_tmp43_ = valadoc_highlighter_code_token_get_content (_tmp42_);
						_tmp44_ = _tmp43_;
						_tmp45_ = valadoc_content_text_new (_tmp44_);
						_tmp46_ = _tmp45_;
						vala_collection_add ((ValaCollection*) _tmp41_, (ValadocContentInline*) _tmp46_);
						_g_object_unref0 (_tmp46_);
						_tmp47_ = code;
						_tmp48_ = valadoc_content_inline_content_get_content ((ValadocContentInlineContent*) _tmp47_);
						_tmp49_ = _tmp48_;
						_tmp50_ = run;
						vala_collection_add ((ValaCollection*) _tmp49_, (ValadocContentInline*) _tmp50_);
						_g_object_unref0 (run);
						break;
					}
					case VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_LITERAL:
					{
						ValadocContentRun* run = NULL;
						ValadocContentRun* _tmp51_;
						ValadocContentRun* _tmp52_;
						ValaList* _tmp53_;
						ValaList* _tmp54_;
						ValadocHighlighterCodeToken* _tmp55_;
						const gchar* _tmp56_;
						const gchar* _tmp57_;
						ValadocContentText* _tmp58_;
						ValadocContentText* _tmp59_;
						ValadocContentRun* _tmp60_;
						ValaList* _tmp61_;
						ValaList* _tmp62_;
						ValadocContentRun* _tmp63_;
						_tmp51_ = valadoc_content_run_new (VALADOC_CONTENT_RUN_STYLE_LANG_LITERAL);
						run = _tmp51_;
						_tmp52_ = run;
						_tmp53_ = valadoc_content_inline_content_get_content ((ValadocContentInlineContent*) _tmp52_);
						_tmp54_ = _tmp53_;
						_tmp55_ = token;
						_tmp56_ = valadoc_highlighter_code_token_get_content (_tmp55_);
						_tmp57_ = _tmp56_;
						_tmp58_ = valadoc_content_text_new (_tmp57_);
						_tmp59_ = _tmp58_;
						vala_collection_add ((ValaCollection*) _tmp54_, (ValadocContentInline*) _tmp59_);
						_g_object_unref0 (_tmp59_);
						_tmp60_ = code;
						_tmp61_ = valadoc_content_inline_content_get_content ((ValadocContentInlineContent*) _tmp60_);
						_tmp62_ = _tmp61_;
						_tmp63_ = run;
						vala_collection_add ((ValaCollection*) _tmp62_, (ValadocContentInline*) _tmp63_);
						_g_object_unref0 (run);
						break;
					}
					case VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_TYPE:
					{
						ValadocContentRun* run = NULL;
						ValadocContentRun* _tmp64_;
						ValadocContentRun* _tmp65_;
						ValaList* _tmp66_;
						ValaList* _tmp67_;
						ValadocHighlighterCodeToken* _tmp68_;
						const gchar* _tmp69_;
						const gchar* _tmp70_;
						ValadocContentText* _tmp71_;
						ValadocContentText* _tmp72_;
						ValadocContentRun* _tmp73_;
						ValaList* _tmp74_;
						ValaList* _tmp75_;
						ValadocContentRun* _tmp76_;
						_tmp64_ = valadoc_content_run_new (VALADOC_CONTENT_RUN_STYLE_LANG_BASIC_TYPE);
						run = _tmp64_;
						_tmp65_ = run;
						_tmp66_ = valadoc_content_inline_content_get_content ((ValadocContentInlineContent*) _tmp65_);
						_tmp67_ = _tmp66_;
						_tmp68_ = token;
						_tmp69_ = valadoc_highlighter_code_token_get_content (_tmp68_);
						_tmp70_ = _tmp69_;
						_tmp71_ = valadoc_content_text_new (_tmp70_);
						_tmp72_ = _tmp71_;
						vala_collection_add ((ValaCollection*) _tmp67_, (ValadocContentInline*) _tmp72_);
						_g_object_unref0 (_tmp72_);
						_tmp73_ = code;
						_tmp74_ = valadoc_content_inline_content_get_content ((ValadocContentInlineContent*) _tmp73_);
						_tmp75_ = _tmp74_;
						_tmp76_ = run;
						vala_collection_add ((ValaCollection*) _tmp75_, (ValadocContentInline*) _tmp76_);
						_g_object_unref0 (run);
						break;
					}
					case VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_ESCAPE:
					{
						ValadocContentRun* run = NULL;
						ValadocContentRun* _tmp77_;
						ValadocContentRun* _tmp78_;
						ValaList* _tmp79_;
						ValaList* _tmp80_;
						ValadocHighlighterCodeToken* _tmp81_;
						const gchar* _tmp82_;
						const gchar* _tmp83_;
						ValadocContentText* _tmp84_;
						ValadocContentText* _tmp85_;
						ValadocContentRun* _tmp86_;
						ValaList* _tmp87_;
						ValaList* _tmp88_;
						ValadocContentRun* _tmp89_;
						_tmp77_ = valadoc_content_run_new (VALADOC_CONTENT_RUN_STYLE_LANG_ESCAPE);
						run = _tmp77_;
						_tmp78_ = run;
						_tmp79_ = valadoc_content_inline_content_get_content ((ValadocContentInlineContent*) _tmp78_);
						_tmp80_ = _tmp79_;
						_tmp81_ = token;
						_tmp82_ = valadoc_highlighter_code_token_get_content (_tmp81_);
						_tmp83_ = _tmp82_;
						_tmp84_ = valadoc_content_text_new (_tmp83_);
						_tmp85_ = _tmp84_;
						vala_collection_add ((ValaCollection*) _tmp80_, (ValadocContentInline*) _tmp85_);
						_g_object_unref0 (_tmp85_);
						_tmp86_ = code;
						_tmp87_ = valadoc_content_inline_content_get_content ((ValadocContentInlineContent*) _tmp86_);
						_tmp88_ = _tmp87_;
						_tmp89_ = run;
						vala_collection_add ((ValaCollection*) _tmp88_, (ValadocContentInline*) _tmp89_);
						_g_object_unref0 (run);
						break;
					}
					case VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_XML_ESCAPE:
					{
						ValadocContentRun* run = NULL;
						ValadocContentRun* _tmp90_;
						ValadocContentRun* _tmp91_;
						ValaList* _tmp92_;
						ValaList* _tmp93_;
						ValadocHighlighterCodeToken* _tmp94_;
						const gchar* _tmp95_;
						const gchar* _tmp96_;
						ValadocContentText* _tmp97_;
						ValadocContentText* _tmp98_;
						ValadocContentRun* _tmp99_;
						ValaList* _tmp100_;
						ValaList* _tmp101_;
						ValadocContentRun* _tmp102_;
						_tmp90_ = valadoc_content_run_new (VALADOC_CONTENT_RUN_STYLE_XML_ESCAPE);
						run = _tmp90_;
						_tmp91_ = run;
						_tmp92_ = valadoc_content_inline_content_get_content ((ValadocContentInlineContent*) _tmp91_);
						_tmp93_ = _tmp92_;
						_tmp94_ = token;
						_tmp95_ = valadoc_highlighter_code_token_get_content (_tmp94_);
						_tmp96_ = _tmp95_;
						_tmp97_ = valadoc_content_text_new (_tmp96_);
						_tmp98_ = _tmp97_;
						vala_collection_add ((ValaCollection*) _tmp93_, (ValadocContentInline*) _tmp98_);
						_g_object_unref0 (_tmp98_);
						_tmp99_ = code;
						_tmp100_ = valadoc_content_inline_content_get_content ((ValadocContentInlineContent*) _tmp99_);
						_tmp101_ = _tmp100_;
						_tmp102_ = run;
						vala_collection_add ((ValaCollection*) _tmp101_, (ValadocContentInline*) _tmp102_);
						_g_object_unref0 (run);
						break;
					}
					case VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_XML_ELEMENT:
					{
						ValadocContentRun* run = NULL;
						ValadocContentRun* _tmp103_;
						ValadocContentRun* _tmp104_;
						ValaList* _tmp105_;
						ValaList* _tmp106_;
						ValadocHighlighterCodeToken* _tmp107_;
						const gchar* _tmp108_;
						const gchar* _tmp109_;
						ValadocContentText* _tmp110_;
						ValadocContentText* _tmp111_;
						ValadocContentRun* _tmp112_;
						ValaList* _tmp113_;
						ValaList* _tmp114_;
						ValadocContentRun* _tmp115_;
						_tmp103_ = valadoc_content_run_new (VALADOC_CONTENT_RUN_STYLE_XML_ELEMENT);
						run = _tmp103_;
						_tmp104_ = run;
						_tmp105_ = valadoc_content_inline_content_get_content ((ValadocContentInlineContent*) _tmp104_);
						_tmp106_ = _tmp105_;
						_tmp107_ = token;
						_tmp108_ = valadoc_highlighter_code_token_get_content (_tmp107_);
						_tmp109_ = _tmp108_;
						_tmp110_ = valadoc_content_text_new (_tmp109_);
						_tmp111_ = _tmp110_;
						vala_collection_add ((ValaCollection*) _tmp106_, (ValadocContentInline*) _tmp111_);
						_g_object_unref0 (_tmp111_);
						_tmp112_ = code;
						_tmp113_ = valadoc_content_inline_content_get_content ((ValadocContentInlineContent*) _tmp112_);
						_tmp114_ = _tmp113_;
						_tmp115_ = run;
						vala_collection_add ((ValaCollection*) _tmp114_, (ValadocContentInline*) _tmp115_);
						_g_object_unref0 (run);
						break;
					}
					case VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_XML_ATTRIBUTE:
					{
						ValadocContentRun* run = NULL;
						ValadocContentRun* _tmp116_;
						ValadocContentRun* _tmp117_;
						ValaList* _tmp118_;
						ValaList* _tmp119_;
						ValadocHighlighterCodeToken* _tmp120_;
						const gchar* _tmp121_;
						const gchar* _tmp122_;
						ValadocContentText* _tmp123_;
						ValadocContentText* _tmp124_;
						ValadocContentRun* _tmp125_;
						ValaList* _tmp126_;
						ValaList* _tmp127_;
						ValadocContentRun* _tmp128_;
						_tmp116_ = valadoc_content_run_new (VALADOC_CONTENT_RUN_STYLE_XML_ATTRIBUTE);
						run = _tmp116_;
						_tmp117_ = run;
						_tmp118_ = valadoc_content_inline_content_get_content ((ValadocContentInlineContent*) _tmp117_);
						_tmp119_ = _tmp118_;
						_tmp120_ = token;
						_tmp121_ = valadoc_highlighter_code_token_get_content (_tmp120_);
						_tmp122_ = _tmp121_;
						_tmp123_ = valadoc_content_text_new (_tmp122_);
						_tmp124_ = _tmp123_;
						vala_collection_add ((ValaCollection*) _tmp119_, (ValadocContentInline*) _tmp124_);
						_g_object_unref0 (_tmp124_);
						_tmp125_ = code;
						_tmp126_ = valadoc_content_inline_content_get_content ((ValadocContentInlineContent*) _tmp125_);
						_tmp127_ = _tmp126_;
						_tmp128_ = run;
						vala_collection_add ((ValaCollection*) _tmp127_, (ValadocContentInline*) _tmp128_);
						_g_object_unref0 (run);
						break;
					}
					case VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_XML_ATTRIBUTE_VALUE:
					{
						ValadocContentRun* run = NULL;
						ValadocContentRun* _tmp129_;
						ValadocContentRun* _tmp130_;
						ValaList* _tmp131_;
						ValaList* _tmp132_;
						ValadocHighlighterCodeToken* _tmp133_;
						const gchar* _tmp134_;
						const gchar* _tmp135_;
						ValadocContentText* _tmp136_;
						ValadocContentText* _tmp137_;
						ValadocContentRun* _tmp138_;
						ValaList* _tmp139_;
						ValaList* _tmp140_;
						ValadocContentRun* _tmp141_;
						_tmp129_ = valadoc_content_run_new (VALADOC_CONTENT_RUN_STYLE_XML_ATTRIBUTE_VALUE);
						run = _tmp129_;
						_tmp130_ = run;
						_tmp131_ = valadoc_content_inline_content_get_content ((ValadocContentInlineContent*) _tmp130_);
						_tmp132_ = _tmp131_;
						_tmp133_ = token;
						_tmp134_ = valadoc_highlighter_code_token_get_content (_tmp133_);
						_tmp135_ = _tmp134_;
						_tmp136_ = valadoc_content_text_new (_tmp135_);
						_tmp137_ = _tmp136_;
						vala_collection_add ((ValaCollection*) _tmp132_, (ValadocContentInline*) _tmp137_);
						_g_object_unref0 (_tmp137_);
						_tmp138_ = code;
						_tmp139_ = valadoc_content_inline_content_get_content ((ValadocContentInlineContent*) _tmp138_);
						_tmp140_ = _tmp139_;
						_tmp141_ = run;
						vala_collection_add ((ValaCollection*) _tmp140_, (ValadocContentInline*) _tmp141_);
						_g_object_unref0 (run);
						break;
					}
					case VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_XML_COMMENT:
					{
						ValadocContentRun* run = NULL;
						ValadocContentRun* _tmp142_;
						ValadocContentRun* _tmp143_;
						ValaList* _tmp144_;
						ValaList* _tmp145_;
						ValadocHighlighterCodeToken* _tmp146_;
						const gchar* _tmp147_;
						const gchar* _tmp148_;
						ValadocContentText* _tmp149_;
						ValadocContentText* _tmp150_;
						ValadocContentRun* _tmp151_;
						ValaList* _tmp152_;
						ValaList* _tmp153_;
						ValadocContentRun* _tmp154_;
						_tmp142_ = valadoc_content_run_new (VALADOC_CONTENT_RUN_STYLE_XML_COMMENT);
						run = _tmp142_;
						_tmp143_ = run;
						_tmp144_ = valadoc_content_inline_content_get_content ((ValadocContentInlineContent*) _tmp143_);
						_tmp145_ = _tmp144_;
						_tmp146_ = token;
						_tmp147_ = valadoc_highlighter_code_token_get_content (_tmp146_);
						_tmp148_ = _tmp147_;
						_tmp149_ = valadoc_content_text_new (_tmp148_);
						_tmp150_ = _tmp149_;
						vala_collection_add ((ValaCollection*) _tmp145_, (ValadocContentInline*) _tmp150_);
						_g_object_unref0 (_tmp150_);
						_tmp151_ = code;
						_tmp152_ = valadoc_content_inline_content_get_content ((ValadocContentInlineContent*) _tmp151_);
						_tmp153_ = _tmp152_;
						_tmp154_ = run;
						vala_collection_add ((ValaCollection*) _tmp153_, (ValadocContentInline*) _tmp154_);
						_g_object_unref0 (run);
						break;
					}
					case VALADOC_HIGHLIGHTER_CODE_TOKEN_TYPE_XML_CDATA:
					{
						ValadocContentRun* run = NULL;
						ValadocContentRun* _tmp155_;
						ValadocContentRun* _tmp156_;
						ValaList* _tmp157_;
						ValaList* _tmp158_;
						ValadocHighlighterCodeToken* _tmp159_;
						const gchar* _tmp160_;
						const gchar* _tmp161_;
						ValadocContentText* _tmp162_;
						ValadocContentText* _tmp163_;
						ValadocContentRun* _tmp164_;
						ValaList* _tmp165_;
						ValaList* _tmp166_;
						ValadocContentRun* _tmp167_;
						_tmp155_ = valadoc_content_run_new (VALADOC_CONTENT_RUN_STYLE_XML_CDATA);
						run = _tmp155_;
						_tmp156_ = run;
						_tmp157_ = valadoc_content_inline_content_get_content ((ValadocContentInlineContent*) _tmp156_);
						_tmp158_ = _tmp157_;
						_tmp159_ = token;
						_tmp160_ = valadoc_highlighter_code_token_get_content (_tmp159_);
						_tmp161_ = _tmp160_;
						_tmp162_ = valadoc_content_text_new (_tmp161_);
						_tmp163_ = _tmp162_;
						vala_collection_add ((ValaCollection*) _tmp158_, (ValadocContentInline*) _tmp163_);
						_g_object_unref0 (_tmp163_);
						_tmp164_ = code;
						_tmp165_ = valadoc_content_inline_content_get_content ((ValadocContentInlineContent*) _tmp164_);
						_tmp166_ = _tmp165_;
						_tmp167_ = run;
						vala_collection_add ((ValaCollection*) _tmp166_, (ValadocContentInline*) _tmp167_);
						_g_object_unref0 (run);
						break;
					}
					default:
					{
						ValadocContentRun* _tmp168_;
						ValaList* _tmp169_;
						ValaList* _tmp170_;
						ValadocHighlighterCodeToken* _tmp171_;
						const gchar* _tmp172_;
						const gchar* _tmp173_;
						ValadocContentText* _tmp174_;
						ValadocContentText* _tmp175_;
						_tmp168_ = code;
						_tmp169_ = valadoc_content_inline_content_get_content ((ValadocContentInlineContent*) _tmp168_);
						_tmp170_ = _tmp169_;
						_tmp171_ = token;
						_tmp172_ = valadoc_highlighter_code_token_get_content (_tmp171_);
						_tmp173_ = _tmp172_;
						_tmp174_ = valadoc_content_text_new (_tmp173_);
						_tmp175_ = _tmp174_;
						vala_collection_add ((ValaCollection*) _tmp170_, (ValadocContentInline*) _tmp175_);
						_g_object_unref0 (_tmp175_);
						break;
					}
				}
			}
		}
		_valadoc_highlighter_code_token_unref0 (token);
	}
	result = code;
	return result;
}


ValadocHighlighterHighlighter* valadoc_highlighter_highlighter_construct (GType object_type) {
	ValadocHighlighterHighlighter * self = NULL;
	self = (ValadocHighlighterHighlighter*) g_object_new (object_type, NULL);
	return self;
}


ValadocHighlighterHighlighter* valadoc_highlighter_highlighter_new (void) {
	return valadoc_highlighter_highlighter_construct (VALADOC_HIGHLIGHTER_TYPE_HIGHLIGHTER);
}


static void valadoc_highlighter_highlighter_class_init (ValadocHighlighterHighlighterClass * klass) {
	valadoc_highlighter_highlighter_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (ValadocHighlighterHighlighterPrivate));
	G_OBJECT_CLASS (klass)->finalize = valadoc_highlighter_highlighter_finalize;
}


static void valadoc_highlighter_highlighter_instance_init (ValadocHighlighterHighlighter * self) {
	self->priv = VALADOC_HIGHLIGHTER_HIGHLIGHTER_GET_PRIVATE (self);
}


static void valadoc_highlighter_highlighter_finalize (GObject * obj) {
	ValadocHighlighterHighlighter * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, VALADOC_HIGHLIGHTER_TYPE_HIGHLIGHTER, ValadocHighlighterHighlighter);
	_vala_map_unref0 (self->priv->vala_keywords);
	_vala_map_unref0 (self->priv->c_keywords);
	G_OBJECT_CLASS (valadoc_highlighter_highlighter_parent_class)->finalize (obj);
}


GType valadoc_highlighter_highlighter_get_type (void) {
	static volatile gsize valadoc_highlighter_highlighter_type_id__volatile = 0;
	if (g_once_init_enter (&valadoc_highlighter_highlighter_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (ValadocHighlighterHighlighterClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) valadoc_highlighter_highlighter_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ValadocHighlighterHighlighter), 0, (GInstanceInitFunc) valadoc_highlighter_highlighter_instance_init, NULL };
		GType valadoc_highlighter_highlighter_type_id;
		valadoc_highlighter_highlighter_type_id = g_type_register_static (G_TYPE_OBJECT, "ValadocHighlighterHighlighter", &g_define_type_info, 0);
		g_once_init_leave (&valadoc_highlighter_highlighter_type_id__volatile, valadoc_highlighter_highlighter_type_id);
	}
	return valadoc_highlighter_highlighter_type_id__volatile;
}



