/* gtkdoccommentparser.c generated by valac, the Vala compiler * generated from gtkdoccommentparser.vala, do not modify */ /* gtkcommentparser.vala * * Copyright (C) 2011-2014 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 */ #include "valadoc.h" #include #include #include #include #include enum { VALADOC_GTKDOC_PARSER_0_PROPERTY, VALADOC_GTKDOC_PARSER_NUM_PROPERTIES }; static GParamSpec* valadoc_gtkdoc_parser_properties[VALADOC_GTKDOC_PARSER_NUM_PROPERTIES]; #define _valadoc_gtkdoc_scanner_unref0(var) ((var == NULL) ? NULL : (var = (valadoc_gtkdoc_scanner_unref (var), NULL))) #define _valadoc_gtkdoc_token_unref0(var) ((var == NULL) ? NULL : (var = (valadoc_gtkdoc_token_unref (var), NULL))) #define _vala_iterable_unref0(var) ((var == NULL) ? NULL : (var = (vala_iterable_unref (var), NULL))) #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) #define _valadoc_api_tree_unref0(var) ((var == NULL) ? NULL : (var = (valadoc_api_tree_unref (var), NULL))) #define _valadoc_api_source_comment_unref0(var) ((var == NULL) ? NULL : (var = (valadoc_api_source_comment_unref (var), NULL))) #define _g_regex_unref0(var) ((var == NULL) ? NULL : (var = (g_regex_unref (var), NULL))) #define _valadoc_importer_internal_id_registrar_unref0(var) ((var == NULL) ? NULL : (var = (valadoc_importer_internal_id_registrar_unref (var), NULL))) #define _g_free0(var) (var = (g_free (var), NULL)) #define _vala_map_iterator_unref0(var) ((var == NULL) ? NULL : (var = (vala_map_iterator_unref (var), NULL))) #define _g_string_free0(var) ((var == NULL) ? NULL : (var = (g_string_free (var, TRUE), NULL))) #define _g_match_info_unref0(var) ((var == NULL) ? NULL : (var = (g_match_info_unref (var), NULL))) #define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg); #define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; } #define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; } #define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg); struct _ValadocGtkdocParserPrivate { ValadocGtkdocScanner* scanner; ValadocGtkdocToken* current; ValaList* stack; ValaList* footnotes; ValadocContentContentFactory* factory; ValadocErrorReporter* reporter; ValadocSettings* settings; ValadocApiTree* tree; ValadocApiNode* element; gboolean show_warnings; ValadocApiSourceComment* comment; const gchar* instance_param_name; gchar** comment_lines; gint comment_lines_length1; gint _comment_lines_size_; GRegex* is_numeric_regex; GRegex* normalize_regex; GRegex* regex_source_lang; ValadocImporterInternalIdRegistrar* id_registrar; ValadocGirMetaData* current_metadata; }; static gint ValadocGtkdocParser_private_offset; static gpointer valadoc_gtkdoc_parser_parent_class = NULL; static ValadocResourceLocatorIface * valadoc_gtkdoc_parser_valadoc_resource_locator_parent_iface = NULL; static inline gchar* valadoc_gtkdoc_parser_fix_resource_path (ValadocGtkdocParser* self, const gchar* path); static void valadoc_gtkdoc_parser_reset (ValadocGtkdocParser* self, ValadocApiSourceComment* comment); static gchar* valadoc_gtkdoc_parser_normalize (ValadocGtkdocParser* self, const gchar* text); static gboolean valadoc_gtkdoc_parser_is_numeric (ValadocGtkdocParser* self, const gchar* str); static void valadoc_gtkdoc_parser_report_unexpected_token (ValadocGtkdocParser* self, ValadocGtkdocToken* got, const gchar* expected); static void valadoc_gtkdoc_parser_report_warning (ValadocGtkdocParser* self, ValadocGtkdocToken* got, const gchar* message); static ValadocContentNote* _valadoc_gtkdoc_parser_parse_note (ValadocGtkdocParser* self, ValadocApiSourceComment* comment); static ValadocContentComment* valadoc_gtkdoc_parser_parse_root_content (ValadocGtkdocParser* self, ValadocApiSourceComment* gir_comment); static void valadoc_gtkdoc_parser_add_note (ValadocGtkdocParser* self, ValadocContentComment* * comment, ValadocContentNote* note); static void valadoc_gtkdoc_parser_add_taglet (ValadocGtkdocParser* self, ValadocContentComment* * comment, ValadocContentTaglet* taglet); G_GNUC_INTERNAL void valadoc_importer_helper_extract_short_desc (ValadocContentComment* comment, ValadocContentContentFactory* factory); static ValadocContentTaglet* valadoc_gtkdoc_parser_parse_block_taglet (ValadocGtkdocParser* self, ValadocApiSourceComment* gir_comment, const gchar* taglet_name); G_GNUC_INTERNAL void valadoc_taglets_param_set_is_c_self_param (ValadocTagletsParam* self, gboolean value); G_GNUC_INTERNAL void valadoc_taglets_param_set_parameter_name (ValadocTagletsParam* self, const gchar* value); static ValadocGtkdocToken* valadoc_gtkdoc_parser_next (ValadocGtkdocParser* self); static void valadoc_gtkdoc_parser_parse_docbook_spaces (ValadocGtkdocParser* self, gboolean accept_paragraphs); static ValadocContentRun* valadoc_gtkdoc_parser_parse_inline_content (ValadocGtkdocParser* self); static ValaCollection* valadoc_gtkdoc_parser_parse_block_content (ValadocGtkdocParser* self); static gboolean valadoc_gtkdoc_parser_ignore_current_xml_close (ValadocGtkdocParser* self); static gboolean valadoc_gtkdoc_parser_check_xml_open_tag (ValadocGtkdocParser* self, const gchar* tagname); static gboolean valadoc_gtkdoc_parser_check_xml_close_tag (ValadocGtkdocParser* self, const gchar* tagname); static ValadocContentInline* valadoc_gtkdoc_parser_parse_docbook_link_tempalte (ValadocGtkdocParser* self, const gchar* tagname, gboolean is_internal); G_GNUC_INTERNAL void valadoc_content_link_set_id_registrar (ValadocContentLink* self, ValadocImporterInternalIdRegistrar* value); static ValadocContentInlineTaglet* valadoc_gtkdoc_parser_parse_symbol_link (ValadocGtkdocParser* self, const gchar* tagname); static ValadocContentInline* valadoc_gtkdoc_parser_create_type_link (ValadocGtkdocParser* self, const gchar* name, gboolean c_accept_plural); static void valadoc_gtkdoc_parser_parse_anchor (ValadocGtkdocParser* self); static ValadocContentLink* valadoc_gtkdoc_parser_parse_xref (ValadocGtkdocParser* self); static ValadocContentRun* valadoc_gtkdoc_parser_parse_highlighted_template (ValadocGtkdocParser* self, const gchar* tag_name, ValadocContentRunStyle style); static ValadocContentListItem* valadoc_gtkdoc_parser_parse_docbook_listitem (ValadocGtkdocParser* self); static ValaCollection* valadoc_gtkdoc_parser_parse_mixed_content (ValadocGtkdocParser* self); static ValadocContentBlockContent* valadoc_gtkdoc_parser_parse_docbook_information_box_template (ValadocGtkdocParser* self, const gchar* tagname, ValadocContentBlockContent* container); static ValadocContentNote* valadoc_gtkdoc_parser_parse_docbook_important (ValadocGtkdocParser* self); static ValadocContentNote* valadoc_gtkdoc_parser_parse_docbook_note (ValadocGtkdocParser* self); static ValadocContentWarning* valadoc_gtkdoc_parser_parse_docbook_warning (ValadocGtkdocParser* self); static inline ValaCollection* valadoc_gtkdoc_parser_parse_docbook_orderedlist (ValadocGtkdocParser* self); static ValaCollection* valadoc_gtkdoc_parser_parse_docbook_itemizedlist (ValadocGtkdocParser* self, const gchar* tag_name, ValadocContentListBullet bullet_type); static inline void valadoc_gtkdoc_parser_append_block_content_not_null (ValadocGtkdocParser* self, ValaCollection* run, ValadocContentBlock* element); static ValadocContentParagraph* valadoc_gtkdoc_parser_parse_docbook_title (ValadocGtkdocParser* self); static ValadocContentParagraph* valadoc_gtkdoc_parser_parse_gtkdoc_paragraph (ValadocGtkdocParser* self); static inline ValaCollection* valadoc_gtkdoc_parser_parse_docbook_simpara (ValadocGtkdocParser* self); static ValaCollection* valadoc_gtkdoc_parser_parse_docbook_para (ValadocGtkdocParser* self, const gchar* tag_name); static ValadocContentParagraph* valadoc_gtkdoc_parser_parse_gtkdoc_source (ValadocGtkdocParser* self); static ValadocContentSourceCodeLanguage* _valadoc_content_source_code_language_dup (ValadocContentSourceCodeLanguage* self); G_GNUC_INTERNAL gboolean valadoc_highlighter_xml_scanner_is_xml (const gchar* source); static ValadocContentParagraph* valadoc_gtkdoc_parser_parse_docbook_graphic (ValadocGtkdocParser* self); static ValadocContentEmbedded* valadoc_gtkdoc_parser_parse_docbook_inlinegraphic (ValadocGtkdocParser* self, const gchar* tag_name); static ValadocContentParagraph* valadoc_gtkdoc_parser_parse_docbook_programlisting (ValadocGtkdocParser* self); static inline ValaCollection* valadoc_gtkdoc_parser_parse_docbook_informalexample (ValadocGtkdocParser* self); static ValaCollection* valadoc_gtkdoc_parser_parse_docbook_example (ValadocGtkdocParser* self, const gchar* tag_name); static ValaList* valadoc_gtkdoc_parser_parse_docbook_refsect2 (ValadocGtkdocParser* self, gint nr); static inline void valadoc_gtkdoc_parser_append_block_content_not_null_all (ValadocGtkdocParser* self, ValaCollection* run, ValaCollection* elements); static ValaList* valadoc_gtkdoc_parser_parse_docbook_figure (ValadocGtkdocParser* self); static ValadocContentRun* valadoc_gtkdoc_parser_parse_docbook_footnote (ValadocGtkdocParser* self); static ValadocContentTableRow* valadoc_gtkdoc_parser_parse_docbook_thead (ValadocGtkdocParser* self); static ValadocContentTableRow* valadoc_gtkdoc_parser_parse_docbook_row (ValadocGtkdocParser* self, ValadocContentRunStyle default_style); static ValadocContentTableCell* valadoc_gtkdoc_parser_parse_docbook_entry (ValadocGtkdocParser* self, ValadocContentRunStyle default_style); static ValaCollection* valadoc_gtkdoc_parser_parse_docbook_tbody (ValadocGtkdocParser* self); static ValadocContentTable* valadoc_gtkdoc_parser_parse_docbook_tgroup (ValadocGtkdocParser* self); static ValadocContentTable* valadoc_gtkdoc_parser_parse_docbook_informaltable (ValadocGtkdocParser* self); static ValaCollection* valadoc_gtkdoc_parser_parse_docbook_section (ValadocGtkdocParser* self); static ValadocContentListItem* valadoc_gtkdoc_parser_parse_docbook_member (ValadocGtkdocParser* self); static ValadocContentList* valadoc_gtkdoc_parser_parse_docbook_simplelist (ValadocGtkdocParser* self); static ValadocContentParagraph* valadoc_gtkdoc_parser_parse_docbook_term (ValadocGtkdocParser* self); static ValadocContentListItem* valadoc_gtkdoc_parser_parse_docbook_varlistentry (ValadocGtkdocParser* self); static ValaCollection* valadoc_gtkdoc_parser_parse_docbook_variablelist (ValadocGtkdocParser* self); static ValadocContentRun* valadoc_gtkdoc_parser_parse_xml_tag (ValadocGtkdocParser* self); static void valadoc_gtkdoc_parser_append_inline_content_string (ValadocGtkdocParser* self, ValadocContentRun* run, const gchar* current); G_GNUC_INTERNAL void valadoc_taglets_link_set_c_accept_plural (ValadocTagletsLink* self, gboolean value); G_GNUC_INTERNAL void valadoc_taglets_link_set_symbol_name (ValadocTagletsLink* self, const gchar* value); static inline void valadoc_gtkdoc_parser_append_inline_content_not_null (ValadocGtkdocParser* self, ValadocContentRun* run, ValadocContentInline* element); G_GNUC_INTERNAL gchar* valadoc_importer_helper_resolve_parameter_ctype (ValadocApiTree* tree, ValadocApiNode* element, const gchar* parameter_name, gchar* * param_name, gchar* * param_array_name, gboolean* is_return_type_len); static gchar* valadoc_gtkdoc_parser_real_resolve (ValadocResourceLocator* base, const gchar* path); static void valadoc_gtkdoc_parser_finalize (GObject * obj); static GType valadoc_gtkdoc_parser_get_type_once (void); static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func); static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func); static gint _vala_array_length (gpointer array); static inline gpointer valadoc_gtkdoc_parser_get_instance_private (ValadocGtkdocParser* self) { return G_STRUCT_MEMBER_P (self, ValadocGtkdocParser_private_offset); } static inline gchar* valadoc_gtkdoc_parser_fix_resource_path (ValadocGtkdocParser* self, const gchar* path) { ValadocGirMetaData* _tmp0_; gchar* _tmp1_; gchar* result = NULL; g_return_val_if_fail (self != NULL, NULL); g_return_val_if_fail (path != NULL, NULL); _tmp0_ = self->priv->current_metadata; _tmp1_ = valadoc_gir_meta_data_get_resource_path (_tmp0_, path); result = _tmp1_; return result; } static gpointer _valadoc_api_source_comment_ref0 (gpointer self) { return self ? valadoc_api_source_comment_ref (self) : NULL; } static void valadoc_gtkdoc_parser_reset (ValadocGtkdocParser* self, ValadocApiSourceComment* comment) { ValadocGtkdocScanner* _tmp0_; const gchar* _tmp1_; const gchar* _tmp2_; ValadocApiSourceFile* _tmp3_; ValadocApiSourceFile* _tmp4_; ValadocApiPackage* _tmp5_; ValadocApiPackage* _tmp6_; gboolean _tmp7_; gboolean _tmp8_; ValaList* _tmp9_; ValadocApiSourceComment* _tmp10_; ValaList* _tmp11_; g_return_if_fail (self != NULL); g_return_if_fail (comment != NULL); _tmp0_ = self->priv->scanner; _tmp1_ = valadoc_api_source_comment_get_content (comment); _tmp2_ = _tmp1_; valadoc_gtkdoc_scanner_reset (_tmp0_, _tmp2_); _tmp3_ = valadoc_api_source_comment_get_file (comment); _tmp4_ = _tmp3_; _tmp5_ = valadoc_api_source_file_get_package (_tmp4_); _tmp6_ = _tmp5_; _tmp7_ = valadoc_api_package_get_is_package (_tmp6_); _tmp8_ = _tmp7_; self->priv->show_warnings = !_tmp8_; self->priv->comment_lines = (_vala_array_free (self->priv->comment_lines, self->priv->comment_lines_length1, (GDestroyNotify) g_free), NULL); self->priv->comment_lines = NULL; self->priv->comment_lines_length1 = 0; self->priv->_comment_lines_size_ = self->priv->comment_lines_length1; _tmp9_ = self->priv->footnotes; vala_collection_clear ((ValaCollection*) _tmp9_); _tmp10_ = _valadoc_api_source_comment_ref0 (comment); _valadoc_api_source_comment_unref0 (self->priv->comment); self->priv->comment = _tmp10_; _valadoc_gtkdoc_token_unref0 (self->priv->current); self->priv->current = NULL; _tmp11_ = self->priv->stack; vala_collection_clear ((ValaCollection*) _tmp11_); } static gchar* valadoc_gtkdoc_parser_normalize (ValadocGtkdocParser* self, const gchar* text) { GError* _inner_error0_ = NULL; gchar* result = NULL; g_return_val_if_fail (self != NULL, NULL); g_return_val_if_fail (text != NULL, NULL); { gchar* _tmp0_ = NULL; GRegex* _tmp1_; gchar* _tmp2_; gchar* _tmp3_; _tmp1_ = self->priv->normalize_regex; _tmp2_ = g_regex_replace (_tmp1_, text, (gssize) -1, 0, " ", 0, &_inner_error0_); _tmp0_ = _tmp2_; if (G_UNLIKELY (_inner_error0_ != NULL)) { if (_inner_error0_->domain == G_REGEX_ERROR) { goto __catch0_g_regex_error; } g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code); g_clear_error (&_inner_error0_); return NULL; } _tmp3_ = _tmp0_; _tmp0_ = NULL; result = _tmp3_; _g_free0 (_tmp0_); return result; } goto __finally0; __catch0_g_regex_error: { g_clear_error (&_inner_error0_); g_assert_not_reached (); } __finally0: g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code); g_clear_error (&_inner_error0_); return NULL; } static gboolean valadoc_gtkdoc_parser_is_numeric (ValadocGtkdocParser* self, const gchar* str) { GRegex* _tmp0_; gboolean result = FALSE; g_return_val_if_fail (self != NULL, FALSE); g_return_val_if_fail (str != NULL, FALSE); _tmp0_ = self->priv->is_numeric_regex; result = g_regex_match (_tmp0_, str, 0, NULL); return result; } static void valadoc_gtkdoc_parser_report_unexpected_token (ValadocGtkdocParser* self, ValadocGtkdocToken* got, const gchar* expected) { gchar* _tmp0_; gchar* _tmp1_; gchar* _tmp2_; gchar* _tmp3_; g_return_if_fail (self != NULL); g_return_if_fail (got != NULL); g_return_if_fail (expected != NULL); _tmp0_ = valadoc_gtkdoc_token_to_string (got); _tmp1_ = _tmp0_; _tmp2_ = g_strdup_printf ("Unexpected Token: %s (Expected: %s)", _tmp1_, expected); _tmp3_ = _tmp2_; valadoc_gtkdoc_parser_report_warning (self, got, _tmp3_); _g_free0 (_tmp3_); _g_free0 (_tmp1_); } static void valadoc_gtkdoc_parser_report_warning (ValadocGtkdocParser* self, ValadocGtkdocToken* got, const gchar* message) { gint _tmp0_ = 0; gint startpos = 0; gint _tmp4_ = 0; gint endpos = 0; gchar** _tmp8_; gint _tmp8__length1; ValadocErrorReporter* _tmp14_; ValadocApiSourceComment* _tmp15_; ValadocApiSourceFile* _tmp16_; ValadocApiSourceFile* _tmp17_; gchar* _tmp18_; gchar* _tmp19_; ValadocApiSourceComment* _tmp20_; gint _tmp21_; gint _tmp22_; gchar** _tmp23_; gint _tmp23__length1; const gchar* _tmp24_; g_return_if_fail (self != NULL); g_return_if_fail (got != NULL); g_return_if_fail (message != NULL); if (!self->priv->show_warnings) { return; } if (got->line == 0) { ValadocApiSourceComment* _tmp1_; gint _tmp2_; gint _tmp3_; _tmp1_ = self->priv->comment; _tmp2_ = valadoc_api_source_comment_get_first_column (_tmp1_); _tmp3_ = _tmp2_; _tmp0_ = _tmp3_ + got->first_column; } else { _tmp0_ = got->first_column; } startpos = _tmp0_; if (got->line == 0) { ValadocApiSourceComment* _tmp5_; gint _tmp6_; gint _tmp7_; _tmp5_ = self->priv->comment; _tmp6_ = valadoc_api_source_comment_get_first_column (_tmp5_); _tmp7_ = _tmp6_; _tmp4_ = _tmp7_ + got->last_column; } else { _tmp4_ = got->last_column; } endpos = _tmp4_; _tmp8_ = self->priv->comment_lines; _tmp8__length1 = self->priv->comment_lines_length1; if (_tmp8_ == NULL) { ValadocApiSourceComment* _tmp9_; const gchar* _tmp10_; const gchar* _tmp11_; gchar** _tmp12_; gchar** _tmp13_; _tmp9_ = self->priv->comment; _tmp10_ = valadoc_api_source_comment_get_content (_tmp9_); _tmp11_ = _tmp10_; _tmp13_ = _tmp12_ = g_strsplit (_tmp11_, "\n", 0); self->priv->comment_lines = (_vala_array_free (self->priv->comment_lines, self->priv->comment_lines_length1, (GDestroyNotify) g_free), NULL); self->priv->comment_lines = _tmp13_; self->priv->comment_lines_length1 = _vala_array_length (_tmp12_); self->priv->_comment_lines_size_ = self->priv->comment_lines_length1; } _tmp14_ = self->priv->reporter; _tmp15_ = self->priv->comment; _tmp16_ = valadoc_api_source_comment_get_file (_tmp15_); _tmp17_ = _tmp16_; _tmp18_ = valadoc_api_source_file_get_name (_tmp17_); _tmp19_ = _tmp18_; _tmp20_ = self->priv->comment; _tmp21_ = valadoc_api_source_comment_get_first_line (_tmp20_); _tmp22_ = _tmp21_; _tmp23_ = self->priv->comment_lines; _tmp23__length1 = self->priv->comment_lines_length1; _tmp24_ = _tmp23_[got->line]; valadoc_error_reporter_warning (_tmp14_, _tmp19_, (glong) (_tmp22_ + got->line), (glong) (startpos + 1), (glong) (endpos + 1), _tmp24_, "%s", message); _g_free0 (_tmp19_); } static gpointer _g_object_ref0 (gpointer self) { return self ? g_object_ref (self) : NULL; } static gpointer _valadoc_api_tree_ref0 (gpointer self) { return self ? valadoc_api_tree_ref (self) : NULL; } ValadocGtkdocParser* valadoc_gtkdoc_parser_construct (GType object_type, ValadocSettings* settings, ValadocErrorReporter* reporter, ValadocApiTree* tree, ValadocModuleLoader* modules) { ValadocGtkdocParser * self = NULL; ValadocContentContentFactory* _tmp0_; ValadocErrorReporter* _tmp1_; ValadocSettings* _tmp2_; ValadocApiTree* _tmp3_; GError* _inner_error0_ = NULL; g_return_val_if_fail (settings != NULL, NULL); g_return_val_if_fail (reporter != NULL, NULL); g_return_val_if_fail (tree != NULL, NULL); g_return_val_if_fail (modules != NULL, NULL); self = (ValadocGtkdocParser*) g_object_new (object_type, NULL); _tmp0_ = valadoc_content_content_factory_new (settings, (ValadocResourceLocator*) self, modules); _g_object_unref0 (self->priv->factory); self->priv->factory = _tmp0_; _tmp1_ = _g_object_ref0 (reporter); _g_object_unref0 (self->priv->reporter); self->priv->reporter = _tmp1_; _tmp2_ = _g_object_ref0 (settings); _g_object_unref0 (self->priv->settings); self->priv->settings = _tmp2_; _tmp3_ = _valadoc_api_tree_ref0 (tree); _valadoc_api_tree_unref0 (self->priv->tree); self->priv->tree = _tmp3_; { GRegex* _tmp4_ = NULL; GRegex* _tmp5_; GRegex* _tmp6_; GRegex* _tmp7_ = NULL; GRegex* _tmp8_; GRegex* _tmp9_; GRegex* _tmp10_ = NULL; GRegex* _tmp11_; GRegex* _tmp12_; _tmp5_ = g_regex_new ("^[+-]?([0-9]*\\.?[0-9]+|[0-9]+\\.?[0-9]*)([eE][+-]?[0-9]+)?$", G_REGEX_OPTIMIZE, 0, &_inner_error0_); _tmp4_ = _tmp5_; if (G_UNLIKELY (_inner_error0_ != NULL)) { if (_inner_error0_->domain == G_REGEX_ERROR) { goto __catch0_g_regex_error; } g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code); g_clear_error (&_inner_error0_); return NULL; } _tmp6_ = _tmp4_; _tmp4_ = NULL; _g_regex_unref0 (self->priv->is_numeric_regex); self->priv->is_numeric_regex = _tmp6_; _tmp8_ = g_regex_new ("( |\n|\t)+", G_REGEX_OPTIMIZE, 0, &_inner_error0_); _tmp7_ = _tmp8_; if (G_UNLIKELY (_inner_error0_ != NULL)) { _g_regex_unref0 (_tmp4_); if (_inner_error0_->domain == G_REGEX_ERROR) { goto __catch0_g_regex_error; } g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code); g_clear_error (&_inner_error0_); return NULL; } _tmp9_ = _tmp7_; _tmp7_ = NULL; _g_regex_unref0 (self->priv->normalize_regex); self->priv->normalize_regex = _tmp9_; _tmp11_ = g_regex_new ("^", 0, 0, &_inner_error0_); _tmp10_ = _tmp11_; if (G_UNLIKELY (_inner_error0_ != NULL)) { _g_regex_unref0 (_tmp7_); _g_regex_unref0 (_tmp4_); if (_inner_error0_->domain == G_REGEX_ERROR) { goto __catch0_g_regex_error; } g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code); g_clear_error (&_inner_error0_); return NULL; } _tmp12_ = _tmp10_; _tmp10_ = NULL; _g_regex_unref0 (self->priv->regex_source_lang); self->priv->regex_source_lang = _tmp12_; _g_regex_unref0 (_tmp10_); _g_regex_unref0 (_tmp7_); _g_regex_unref0 (_tmp4_); } goto __finally0; __catch0_g_regex_error: { g_clear_error (&_inner_error0_); g_assert_not_reached (); } __finally0: if (G_UNLIKELY (_inner_error0_ != NULL)) { g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code); g_clear_error (&_inner_error0_); return NULL; } return self; } ValadocGtkdocParser* valadoc_gtkdoc_parser_new (ValadocSettings* settings, ValadocErrorReporter* reporter, ValadocApiTree* tree, ValadocModuleLoader* modules) { return valadoc_gtkdoc_parser_construct (VALADOC_GTKDOC_TYPE_PARSER, settings, reporter, tree, modules); } static ValadocContentNote* _valadoc_gtkdoc_parser_parse_note (ValadocGtkdocParser* self, ValadocApiSourceComment* comment) { ValadocContentComment* cmnt = NULL; ValadocContentComment* _tmp0_; ValadocContentComment* _tmp1_; ValadocContentNote* note = NULL; ValadocContentContentFactory* _tmp2_; ValadocContentNote* _tmp3_; ValadocContentNote* _tmp4_; ValaList* _tmp5_; ValaList* _tmp6_; ValadocContentComment* _tmp7_; ValaList* _tmp8_; ValaList* _tmp9_; ValadocContentNote* result = NULL; g_return_val_if_fail (self != NULL, NULL); g_return_val_if_fail (comment != NULL, NULL); _tmp0_ = valadoc_gtkdoc_parser_parse_root_content (self, comment); cmnt = _tmp0_; _tmp1_ = cmnt; if (_tmp1_ == NULL) { result = NULL; _g_object_unref0 (cmnt); return result; } _tmp2_ = self->priv->factory; _tmp3_ = valadoc_content_content_factory_create_note (_tmp2_); note = _tmp3_; _tmp4_ = note; _tmp5_ = valadoc_content_block_content_get_content ((ValadocContentBlockContent*) _tmp4_); _tmp6_ = _tmp5_; _tmp7_ = cmnt; _tmp8_ = valadoc_content_block_content_get_content ((ValadocContentBlockContent*) _tmp7_); _tmp9_ = _tmp8_; vala_collection_add_all ((ValaCollection*) _tmp6_, (ValaCollection*) _tmp9_); result = note; _g_object_unref0 (cmnt); return result; } static void valadoc_gtkdoc_parser_add_note (ValadocGtkdocParser* self, ValadocContentComment* * comment, ValadocContentNote* note) { ValaList* _tmp2_; ValaList* _tmp3_; gint _tmp4_; gint _tmp5_; ValaList* _tmp11_; ValaList* _tmp12_; g_return_if_fail (self != NULL); if (note == NULL) { return; } if ((*comment) == NULL) { ValadocContentContentFactory* _tmp0_; ValadocContentComment* _tmp1_; _tmp0_ = self->priv->factory; _tmp1_ = valadoc_content_content_factory_create_comment (_tmp0_); _g_object_unref0 (*comment); *comment = _tmp1_; } _tmp2_ = valadoc_content_block_content_get_content ((ValadocContentBlockContent*) (*comment)); _tmp3_ = _tmp2_; _tmp4_ = vala_collection_get_size ((ValaCollection*) _tmp3_); _tmp5_ = _tmp4_; if (_tmp5_ == 0) { ValaList* _tmp6_; ValaList* _tmp7_; ValadocContentContentFactory* _tmp8_; ValadocContentParagraph* _tmp9_; ValadocContentParagraph* _tmp10_; _tmp6_ = valadoc_content_block_content_get_content ((ValadocContentBlockContent*) (*comment)); _tmp7_ = _tmp6_; _tmp8_ = self->priv->factory; _tmp9_ = valadoc_content_content_factory_create_paragraph (_tmp8_); _tmp10_ = _tmp9_; vala_collection_add ((ValaCollection*) _tmp7_, (ValadocContentBlock*) _tmp10_); _g_object_unref0 (_tmp10_); } _tmp11_ = valadoc_content_block_content_get_content ((ValadocContentBlockContent*) (*comment)); _tmp12_ = _tmp11_; vala_list_insert (_tmp12_, 1, (ValadocContentBlock*) note); } static void valadoc_gtkdoc_parser_add_taglet (ValadocGtkdocParser* self, ValadocContentComment* * comment, ValadocContentTaglet* taglet) { ValaList* _tmp2_; ValaList* _tmp3_; g_return_if_fail (self != NULL); if (taglet == NULL) { return; } if ((*comment) == NULL) { ValadocContentContentFactory* _tmp0_; ValadocContentComment* _tmp1_; _tmp0_ = self->priv->factory; _tmp1_ = valadoc_content_content_factory_create_comment (_tmp0_); _g_object_unref0 (*comment); *comment = _tmp1_; } _tmp2_ = valadoc_content_comment_get_taglets (*comment); _tmp3_ = _tmp2_; vala_collection_add ((ValaCollection*) _tmp3_, taglet); } static gpointer _valadoc_importer_internal_id_registrar_ref0 (gpointer self) { return self ? valadoc_importer_internal_id_registrar_ref (self) : NULL; } static gpointer _vala_iterable_ref0 (gpointer self) { return self ? vala_iterable_ref (self) : NULL; } ValadocContentComment* valadoc_gtkdoc_parser_parse (ValadocGtkdocParser* self, ValadocApiNode* element, ValadocApiGirSourceComment* gir_comment, ValadocGirMetaData* gir_metadata, ValadocImporterInternalIdRegistrar* id_registrar) { const gchar* _tmp0_; const gchar* _tmp1_; ValadocGirMetaData* _tmp2_; ValadocImporterInternalIdRegistrar* _tmp3_; ValadocApiNode* _tmp4_; ValadocContentComment* cmnt = NULL; ValadocContentComment* _tmp5_; ValadocContentComment* _tmp6_; ValadocApiSourceComment* _tmp9_; ValadocApiSourceComment* _tmp10_; ValadocApiSourceComment* _tmp15_; ValadocApiSourceComment* _tmp16_; ValadocApiSourceComment* _tmp21_; ValadocApiSourceComment* _tmp22_; ValadocApiSourceComment* _tmp27_; ValadocApiSourceComment* _tmp28_; ValaMapIterator* iter = NULL; ValaMapIterator* _tmp33_; gboolean first = FALSE; ValadocContentComment* result = NULL; g_return_val_if_fail (self != NULL, NULL); g_return_val_if_fail (element != NULL, NULL); g_return_val_if_fail (gir_comment != NULL, NULL); g_return_val_if_fail (gir_metadata != NULL, NULL); g_return_val_if_fail (id_registrar != NULL, NULL); _tmp0_ = valadoc_api_gir_source_comment_get_instance_param_name (gir_comment); _tmp1_ = _tmp0_; self->priv->instance_param_name = _tmp1_; _tmp2_ = _g_object_ref0 (gir_metadata); _g_object_unref0 (self->priv->current_metadata); self->priv->current_metadata = _tmp2_; _tmp3_ = _valadoc_importer_internal_id_registrar_ref0 (id_registrar); _valadoc_importer_internal_id_registrar_unref0 (self->priv->id_registrar); self->priv->id_registrar = _tmp3_; _tmp4_ = _g_object_ref0 (element); _g_object_unref0 (self->priv->element); self->priv->element = _tmp4_; _tmp5_ = valadoc_gtkdoc_parser_parse_root_content (self, (ValadocApiSourceComment*) gir_comment); cmnt = _tmp5_; _tmp6_ = cmnt; if (_tmp6_ != NULL) { ValadocContentComment* _tmp7_; ValadocContentContentFactory* _tmp8_; _tmp7_ = cmnt; _tmp8_ = self->priv->factory; valadoc_importer_helper_extract_short_desc (_tmp7_, _tmp8_); } _tmp9_ = valadoc_api_gir_source_comment_get_deprecated_comment (gir_comment); _tmp10_ = _tmp9_; if (_tmp10_ != NULL) { ValadocContentNote* note = NULL; ValadocApiSourceComment* _tmp11_; ValadocApiSourceComment* _tmp12_; ValadocContentNote* _tmp13_; ValadocContentNote* _tmp14_; _tmp11_ = valadoc_api_gir_source_comment_get_deprecated_comment (gir_comment); _tmp12_ = _tmp11_; _tmp13_ = _valadoc_gtkdoc_parser_parse_note (self, _tmp12_); note = _tmp13_; _tmp14_ = note; valadoc_gtkdoc_parser_add_note (self, &cmnt, _tmp14_); _g_object_unref0 (note); } _tmp15_ = valadoc_api_gir_source_comment_get_version_comment (gir_comment); _tmp16_ = _tmp15_; if (_tmp16_ != NULL) { ValadocContentNote* note = NULL; ValadocApiSourceComment* _tmp17_; ValadocApiSourceComment* _tmp18_; ValadocContentNote* _tmp19_; ValadocContentNote* _tmp20_; _tmp17_ = valadoc_api_gir_source_comment_get_version_comment (gir_comment); _tmp18_ = _tmp17_; _tmp19_ = _valadoc_gtkdoc_parser_parse_note (self, _tmp18_); note = _tmp19_; _tmp20_ = note; valadoc_gtkdoc_parser_add_note (self, &cmnt, _tmp20_); _g_object_unref0 (note); } _tmp21_ = valadoc_api_gir_source_comment_get_stability_comment (gir_comment); _tmp22_ = _tmp21_; if (_tmp22_ != NULL) { ValadocContentNote* note = NULL; ValadocApiSourceComment* _tmp23_; ValadocApiSourceComment* _tmp24_; ValadocContentNote* _tmp25_; ValadocContentNote* _tmp26_; _tmp23_ = valadoc_api_gir_source_comment_get_stability_comment (gir_comment); _tmp24_ = _tmp23_; _tmp25_ = _valadoc_gtkdoc_parser_parse_note (self, _tmp24_); note = _tmp25_; _tmp26_ = note; valadoc_gtkdoc_parser_add_note (self, &cmnt, _tmp26_); _g_object_unref0 (note); } _tmp27_ = valadoc_api_gir_source_comment_get_return_comment (gir_comment); _tmp28_ = _tmp27_; if (_tmp28_ != NULL) { ValadocContentTaglet* taglet = NULL; ValadocApiSourceComment* _tmp29_; ValadocApiSourceComment* _tmp30_; ValadocContentTaglet* _tmp31_; ValadocContentTaglet* _tmp32_; _tmp29_ = valadoc_api_gir_source_comment_get_return_comment (gir_comment); _tmp30_ = _tmp29_; _tmp31_ = valadoc_gtkdoc_parser_parse_block_taglet (self, _tmp30_, "return"); taglet = _tmp31_; _tmp32_ = taglet; valadoc_gtkdoc_parser_add_taglet (self, &cmnt, _tmp32_); _g_object_unref0 (taglet); } _tmp33_ = valadoc_api_gir_source_comment_parameter_iterator (gir_comment); iter = _tmp33_; { gboolean has_next = FALSE; ValaMapIterator* _tmp34_; _tmp34_ = iter; has_next = vala_map_iterator_next (_tmp34_); { gboolean _tmp35_ = FALSE; _tmp35_ = TRUE; while (TRUE) { ValadocTagletsParam* taglet = NULL; ValaMapIterator* _tmp37_; gpointer _tmp38_; ValadocApiSourceComment* _tmp39_; ValadocContentTaglet* _tmp40_; ValadocTagletsParam* _tmp41_; ValadocTagletsParam* _tmp42_; gchar* param_name = NULL; ValaMapIterator* _tmp43_; gpointer _tmp44_; ValadocTagletsParam* _tmp45_; const gchar* _tmp46_; const gchar* _tmp47_; const gchar* _tmp48_; ValadocTagletsParam* _tmp49_; const gchar* _tmp50_; ValadocTagletsParam* _tmp51_; if (!_tmp35_) { ValaMapIterator* _tmp36_; _tmp36_ = iter; has_next = vala_map_iterator_next (_tmp36_); } _tmp35_ = FALSE; if (!has_next) { break; } _tmp37_ = iter; _tmp38_ = vala_map_iterator_get_value (_tmp37_); _tmp39_ = (ValadocApiSourceComment*) _tmp38_; _tmp40_ = valadoc_gtkdoc_parser_parse_block_taglet (self, _tmp39_, "param"); _tmp41_ = VALADOC_TAGLETS_IS_PARAM (_tmp40_) ? ((ValadocTagletsParam*) _tmp40_) : NULL; if (_tmp41_ == NULL) { _g_object_unref0 (_tmp40_); } _tmp42_ = _tmp41_; _valadoc_api_source_comment_unref0 (_tmp39_); taglet = _tmp42_; _tmp43_ = iter; _tmp44_ = vala_map_iterator_get_key (_tmp43_); param_name = (gchar*) _tmp44_; _tmp45_ = taglet; _tmp46_ = param_name; _tmp47_ = valadoc_api_gir_source_comment_get_instance_param_name (gir_comment); _tmp48_ = _tmp47_; valadoc_taglets_param_set_is_c_self_param (_tmp45_, g_strcmp0 (_tmp46_, _tmp48_) == 0); _tmp49_ = taglet; _tmp50_ = param_name; valadoc_taglets_param_set_parameter_name (_tmp49_, _tmp50_); _tmp51_ = taglet; valadoc_gtkdoc_parser_add_taglet (self, &cmnt, (ValadocContentTaglet*) _tmp51_); _g_free0 (param_name); _g_object_unref0 (taglet); } } } first = TRUE; { ValaList* _note_list = NULL; ValaList* _tmp52_; ValaList* _tmp53_; gint _note_size = 0; ValaList* _tmp54_; gint _tmp55_; gint _tmp56_; gint _note_index = 0; _tmp52_ = self->priv->footnotes; _tmp53_ = _vala_iterable_ref0 (_tmp52_); _note_list = _tmp53_; _tmp54_ = _note_list; _tmp55_ = vala_collection_get_size ((ValaCollection*) _tmp54_); _tmp56_ = _tmp55_; _note_size = _tmp56_; _note_index = -1; while (TRUE) { gint _tmp57_; gint _tmp58_; ValaList* note = NULL; ValaList* _tmp59_; gpointer _tmp60_; gboolean _tmp61_ = FALSE; ValadocContentComment* _tmp82_; ValaList* _tmp83_; ValaList* _tmp84_; ValaList* _tmp85_; _note_index = _note_index + 1; _tmp57_ = _note_index; _tmp58_ = _note_size; if (!(_tmp57_ < _tmp58_)) { break; } _tmp59_ = _note_list; _tmp60_ = vala_list_get (_tmp59_, _note_index); note = (ValaList*) _tmp60_; if (first == TRUE) { ValaList* _tmp62_; gint _tmp63_; gint _tmp64_; _tmp62_ = note; _tmp63_ = vala_collection_get_size ((ValaCollection*) _tmp62_); _tmp64_ = _tmp63_; _tmp61_ = _tmp64_ > 0; } else { _tmp61_ = FALSE; } if (_tmp61_) { ValadocContentParagraph* p = NULL; ValaList* _tmp65_; gpointer _tmp66_; ValadocContentBlock* _tmp67_; ValadocContentParagraph* _tmp68_; ValadocContentParagraph* _tmp69_; ValadocContentParagraph* _tmp76_; ValaList* _tmp77_; ValaList* _tmp78_; ValadocContentContentFactory* _tmp79_; ValadocContentText* _tmp80_; ValadocContentText* _tmp81_; _tmp65_ = note; _tmp66_ = vala_list_first (_tmp65_); _tmp67_ = (ValadocContentBlock*) _tmp66_; _tmp68_ = VALADOC_CONTENT_IS_PARAGRAPH (_tmp67_) ? ((ValadocContentParagraph*) _tmp67_) : NULL; if (_tmp68_ == NULL) { _g_object_unref0 (_tmp67_); } p = _tmp68_; _tmp69_ = p; if (_tmp69_ == NULL) { ValadocContentContentFactory* _tmp70_; ValadocContentParagraph* _tmp71_; ValadocContentComment* _tmp72_; ValaList* _tmp73_; ValaList* _tmp74_; ValadocContentParagraph* _tmp75_; _tmp70_ = self->priv->factory; _tmp71_ = valadoc_content_content_factory_create_paragraph (_tmp70_); _g_object_unref0 (p); p = _tmp71_; _tmp72_ = cmnt; _tmp73_ = valadoc_content_block_content_get_content ((ValadocContentBlockContent*) _tmp72_); _tmp74_ = _tmp73_; _tmp75_ = p; vala_collection_add ((ValaCollection*) _tmp74_, (ValadocContentBlock*) _tmp75_); } _tmp76_ = p; _tmp77_ = valadoc_content_inline_content_get_content ((ValadocContentInlineContent*) _tmp76_); _tmp78_ = _tmp77_; _tmp79_ = self->priv->factory; _tmp80_ = valadoc_content_content_factory_create_text (_tmp79_, "\n"); _tmp81_ = _tmp80_; vala_list_insert (_tmp78_, 0, (ValadocContentInline*) _tmp81_); _g_object_unref0 (_tmp81_); _g_object_unref0 (p); } _tmp82_ = cmnt; _tmp83_ = valadoc_content_block_content_get_content ((ValadocContentBlockContent*) _tmp82_); _tmp84_ = _tmp83_; _tmp85_ = note; vala_collection_add_all ((ValaCollection*) _tmp84_, (ValaCollection*) _tmp85_); first = FALSE; _vala_iterable_unref0 (note); } _vala_iterable_unref0 (_note_list); } result = cmnt; _vala_map_iterator_unref0 (iter); return result; } static ValadocContentTaglet* valadoc_gtkdoc_parser_parse_block_taglet (ValadocGtkdocParser* self, ValadocApiSourceComment* gir_comment, const gchar* taglet_name) { ValadocGtkdocToken* _tmp0_; ValadocGtkdocToken* _tmp1_; ValadocContentRun* ic = NULL; ValadocContentRun* _tmp2_; ValadocContentBlockContent* taglet = NULL; ValadocContentContentFactory* _tmp3_; ValadocContentTaglet* _tmp4_; ValadocContentBlockContent* _tmp5_; ValadocContentBlockContent* _tmp6_; ValadocContentParagraph* paragraph = NULL; ValadocContentContentFactory* _tmp7_; ValadocContentParagraph* _tmp8_; ValadocGtkdocToken* _tmp9_; ValadocGtkdocTokenType _tmp10_; ValadocContentBlockContent* _tmp16_; ValaList* _tmp17_; ValaList* _tmp18_; ValadocContentParagraph* _tmp19_; ValadocContentBlockContent* _tmp20_; ValadocContentTaglet* _tmp21_; ValadocContentTaglet* result = NULL; g_return_val_if_fail (self != NULL, NULL); g_return_val_if_fail (gir_comment != NULL, NULL); g_return_val_if_fail (taglet_name != NULL, NULL); valadoc_gtkdoc_parser_reset (self, gir_comment); _valadoc_gtkdoc_token_unref0 (self->priv->current); self->priv->current = NULL; _tmp0_ = valadoc_gtkdoc_parser_next (self); _tmp1_ = _tmp0_; _valadoc_gtkdoc_token_unref0 (_tmp1_); valadoc_gtkdoc_parser_parse_docbook_spaces (self, FALSE); _tmp2_ = valadoc_gtkdoc_parser_parse_inline_content (self); ic = _tmp2_; valadoc_gtkdoc_parser_parse_docbook_spaces (self, FALSE); _tmp3_ = self->priv->factory; _tmp4_ = valadoc_content_content_factory_create_taglet (_tmp3_, taglet_name); _tmp5_ = VALADOC_CONTENT_IS_BLOCK_CONTENT (_tmp4_) ? ((ValadocContentBlockContent*) _tmp4_) : NULL; if (_tmp5_ == NULL) { _g_object_unref0 (_tmp4_); } taglet = _tmp5_; _tmp6_ = taglet; _vala_assert (_tmp6_ != NULL, "taglet != null"); _tmp7_ = self->priv->factory; _tmp8_ = valadoc_content_content_factory_create_paragraph (_tmp7_); paragraph = _tmp8_; _tmp9_ = self->priv->current; _tmp10_ = _tmp9_->type; if (_tmp10_ == VALADOC_GTKDOC_TOKEN_TYPE_EOF) { ValadocContentParagraph* _tmp11_; ValaList* _tmp12_; ValaList* _tmp13_; ValadocContentRun* _tmp14_; _tmp11_ = paragraph; _tmp12_ = valadoc_content_inline_content_get_content ((ValadocContentInlineContent*) _tmp11_); _tmp13_ = _tmp12_; _tmp14_ = ic; vala_collection_add ((ValaCollection*) _tmp13_, (ValadocContentInline*) _tmp14_); } else { ValadocGtkdocToken* _tmp15_; _tmp15_ = self->priv->current; valadoc_gtkdoc_parser_report_unexpected_token (self, _tmp15_, ""); } _tmp16_ = taglet; _tmp17_ = valadoc_content_block_content_get_content (_tmp16_); _tmp18_ = _tmp17_; _tmp19_ = paragraph; vala_collection_add ((ValaCollection*) _tmp18_, (ValadocContentBlock*) _tmp19_); _tmp20_ = taglet; _tmp21_ = _g_object_ref0 (VALADOC_CONTENT_IS_TAGLET (_tmp20_) ? ((ValadocContentTaglet*) _tmp20_) : NULL); result = _tmp21_; _g_object_unref0 (paragraph); _g_object_unref0 (taglet); _g_object_unref0 (ic); return result; } static gpointer _valadoc_gtkdoc_token_ref0 (gpointer self) { return self ? valadoc_gtkdoc_token_ref (self) : NULL; } static ValadocContentComment* valadoc_gtkdoc_parser_parse_root_content (ValadocGtkdocParser* self, ValadocApiSourceComment* gir_comment) { ValadocGtkdocToken* _tmp0_; ValadocGtkdocToken* _tmp1_; ValadocGtkdocToken* tmp = NULL; ValadocContentComment* comment = NULL; ValadocContentContentFactory* _tmp2_; ValadocContentComment* _tmp3_; ValadocGtkdocToken* _tmp39_; ValadocGtkdocTokenType _tmp40_; ValadocContentComment* _tmp42_; ValadocContentContentFactory* _tmp43_; ValadocContentComment* result = NULL; g_return_val_if_fail (self != NULL, NULL); g_return_val_if_fail (gir_comment != NULL, NULL); valadoc_gtkdoc_parser_reset (self, gir_comment); _valadoc_gtkdoc_token_unref0 (self->priv->current); self->priv->current = NULL; _tmp0_ = valadoc_gtkdoc_parser_next (self); _tmp1_ = _tmp0_; _valadoc_gtkdoc_token_unref0 (_tmp1_); tmp = NULL; valadoc_gtkdoc_parser_parse_docbook_spaces (self, FALSE); _tmp2_ = self->priv->factory; _tmp3_ = valadoc_content_content_factory_create_comment (_tmp2_); comment = _tmp3_; while (TRUE) { gboolean _tmp4_ = FALSE; ValadocGtkdocToken* _tmp5_; ValadocGtkdocTokenType _tmp6_; ValadocGtkdocToken* _tmp9_; ValadocGtkdocToken* _tmp10_; ValadocContentRun* ic = NULL; ValadocContentRun* _tmp11_; gboolean _tmp12_ = FALSE; ValadocContentRun* _tmp13_; ValaCollection* bc = NULL; ValaCollection* _tmp29_; gboolean _tmp30_ = FALSE; ValaCollection* _tmp31_; _tmp5_ = self->priv->current; _tmp6_ = _tmp5_->type; if (_tmp6_ != VALADOC_GTKDOC_TOKEN_TYPE_EOF) { ValadocGtkdocToken* _tmp7_; ValadocGtkdocToken* _tmp8_; _tmp7_ = tmp; _tmp8_ = self->priv->current; _tmp4_ = _tmp7_ != _tmp8_; } else { _tmp4_ = FALSE; } if (!_tmp4_) { break; } _tmp9_ = self->priv->current; _tmp10_ = _valadoc_gtkdoc_token_ref0 (_tmp9_); _valadoc_gtkdoc_token_unref0 (tmp); tmp = _tmp10_; _tmp11_ = valadoc_gtkdoc_parser_parse_inline_content (self); ic = _tmp11_; _tmp13_ = ic; if (_tmp13_ != NULL) { ValadocContentRun* _tmp14_; ValaList* _tmp15_; ValaList* _tmp16_; gint _tmp17_; gint _tmp18_; _tmp14_ = ic; _tmp15_ = valadoc_content_inline_content_get_content ((ValadocContentInlineContent*) _tmp14_); _tmp16_ = _tmp15_; _tmp17_ = vala_collection_get_size ((ValaCollection*) _tmp16_); _tmp18_ = _tmp17_; _tmp12_ = _tmp18_ > 0; } else { _tmp12_ = FALSE; } if (_tmp12_) { ValadocContentParagraph* p = NULL; ValadocContentContentFactory* _tmp19_; ValadocContentParagraph* _tmp20_; ValadocContentParagraph* _tmp21_; ValaList* _tmp22_; ValaList* _tmp23_; ValadocContentRun* _tmp24_; ValadocContentComment* _tmp25_; ValaList* _tmp26_; ValaList* _tmp27_; ValadocContentParagraph* _tmp28_; _tmp19_ = self->priv->factory; _tmp20_ = valadoc_content_content_factory_create_paragraph (_tmp19_); p = _tmp20_; _tmp21_ = p; _tmp22_ = valadoc_content_inline_content_get_content ((ValadocContentInlineContent*) _tmp21_); _tmp23_ = _tmp22_; _tmp24_ = ic; vala_collection_add ((ValaCollection*) _tmp23_, (ValadocContentInline*) _tmp24_); _tmp25_ = comment; _tmp26_ = valadoc_content_block_content_get_content ((ValadocContentBlockContent*) _tmp25_); _tmp27_ = _tmp26_; _tmp28_ = p; vala_collection_add ((ValaCollection*) _tmp27_, (ValadocContentBlock*) _tmp28_); _g_object_unref0 (p); } _tmp29_ = valadoc_gtkdoc_parser_parse_block_content (self); bc = _tmp29_; _tmp31_ = bc; if (_tmp31_ != NULL) { ValaCollection* _tmp32_; gint _tmp33_; gint _tmp34_; _tmp32_ = bc; _tmp33_ = vala_collection_get_size (_tmp32_); _tmp34_ = _tmp33_; _tmp30_ = _tmp34_ > 0; } else { _tmp30_ = FALSE; } if (_tmp30_) { ValadocContentComment* _tmp35_; ValaList* _tmp36_; ValaList* _tmp37_; ValaCollection* _tmp38_; _tmp35_ = comment; _tmp36_ = valadoc_content_block_content_get_content ((ValadocContentBlockContent*) _tmp35_); _tmp37_ = _tmp36_; _tmp38_ = bc; vala_collection_add_all ((ValaCollection*) _tmp37_, _tmp38_); } _vala_iterable_unref0 (bc); _g_object_unref0 (ic); } _tmp39_ = self->priv->current; _tmp40_ = _tmp39_->type; if (_tmp40_ != VALADOC_GTKDOC_TOKEN_TYPE_EOF) { ValadocGtkdocToken* _tmp41_; _tmp41_ = self->priv->current; valadoc_gtkdoc_parser_report_unexpected_token (self, _tmp41_, ""); result = NULL; _g_object_unref0 (comment); _valadoc_gtkdoc_token_unref0 (tmp); return result; } _tmp42_ = comment; _tmp43_ = self->priv->factory; valadoc_importer_helper_extract_short_desc (_tmp42_, _tmp43_); result = comment; _valadoc_gtkdoc_token_unref0 (tmp); return result; } static ValadocGtkdocToken* valadoc_gtkdoc_parser_next (ValadocGtkdocParser* self) { ValadocGtkdocScanner* _tmp0_; ValadocGtkdocToken* _tmp1_; ValadocGtkdocToken* _tmp2_; ValadocGtkdocToken* _tmp3_; ValadocGtkdocToken* result = NULL; g_return_val_if_fail (self != NULL, NULL); _tmp0_ = self->priv->scanner; _tmp1_ = valadoc_gtkdoc_scanner_next (_tmp0_); _valadoc_gtkdoc_token_unref0 (self->priv->current); self->priv->current = _tmp1_; _tmp2_ = self->priv->current; _tmp3_ = _valadoc_gtkdoc_token_ref0 (_tmp2_); result = _tmp3_; return result; } static gboolean valadoc_gtkdoc_parser_ignore_current_xml_close (ValadocGtkdocParser* self) { ValadocGtkdocToken* _tmp0_; ValadocGtkdocTokenType _tmp1_; gchar* name = NULL; ValadocGtkdocToken* _tmp2_; const gchar* _tmp3_; gchar* _tmp4_; ValaList* _tmp5_; const gchar* _tmp6_; gboolean result = FALSE; g_return_val_if_fail (self != NULL, FALSE); _tmp0_ = self->priv->current; _tmp1_ = _tmp0_->type; if (_tmp1_ != VALADOC_GTKDOC_TOKEN_TYPE_XML_CLOSE) { result = FALSE; return result; } _tmp2_ = self->priv->current; _tmp3_ = _tmp2_->content; _tmp4_ = g_strdup (_tmp3_); name = _tmp4_; _tmp5_ = self->priv->stack; _tmp6_ = name; if (vala_collection_contains ((ValaCollection*) _tmp5_, _tmp6_) == FALSE) { result = TRUE; _g_free0 (name); return result; } result = FALSE; _g_free0 (name); return result; } static gboolean valadoc_gtkdoc_parser_check_xml_open_tag (ValadocGtkdocParser* self, const gchar* tagname) { gboolean _tmp0_ = FALSE; gboolean _tmp1_ = FALSE; ValadocGtkdocToken* _tmp2_; ValadocGtkdocTokenType _tmp3_; ValaList* _tmp8_; gboolean result = FALSE; g_return_val_if_fail (self != NULL, FALSE); g_return_val_if_fail (tagname != NULL, FALSE); _tmp2_ = self->priv->current; _tmp3_ = _tmp2_->type; if (_tmp3_ == VALADOC_GTKDOC_TOKEN_TYPE_XML_OPEN) { ValadocGtkdocToken* _tmp4_; const gchar* _tmp5_; _tmp4_ = self->priv->current; _tmp5_ = _tmp4_->content; _tmp1_ = g_strcmp0 (_tmp5_, tagname) != 0; } else { _tmp1_ = FALSE; } if (_tmp1_) { _tmp0_ = TRUE; } else { ValadocGtkdocToken* _tmp6_; ValadocGtkdocTokenType _tmp7_; _tmp6_ = self->priv->current; _tmp7_ = _tmp6_->type; _tmp0_ = _tmp7_ != VALADOC_GTKDOC_TOKEN_TYPE_XML_OPEN; } if (_tmp0_) { result = FALSE; return result; } _tmp8_ = self->priv->stack; vala_list_insert (_tmp8_, 0, tagname); result = TRUE; return result; } static gboolean valadoc_gtkdoc_parser_check_xml_close_tag (ValadocGtkdocParser* self, const gchar* tagname) { gboolean _tmp0_ = FALSE; gboolean _tmp1_ = FALSE; ValadocGtkdocToken* _tmp2_; ValadocGtkdocTokenType _tmp3_; ValaList* _tmp8_; gpointer _tmp9_; gchar* _tmp10_; gboolean result = FALSE; g_return_val_if_fail (self != NULL, FALSE); g_return_val_if_fail (tagname != NULL, FALSE); _tmp2_ = self->priv->current; _tmp3_ = _tmp2_->type; if (_tmp3_ == VALADOC_GTKDOC_TOKEN_TYPE_XML_CLOSE) { ValadocGtkdocToken* _tmp4_; const gchar* _tmp5_; _tmp4_ = self->priv->current; _tmp5_ = _tmp4_->content; _tmp1_ = g_strcmp0 (_tmp5_, tagname) != 0; } else { _tmp1_ = FALSE; } if (_tmp1_) { _tmp0_ = TRUE; } else { ValadocGtkdocToken* _tmp6_; ValadocGtkdocTokenType _tmp7_; _tmp6_ = self->priv->current; _tmp7_ = _tmp6_->type; _tmp0_ = _tmp7_ != VALADOC_GTKDOC_TOKEN_TYPE_XML_CLOSE; } if (_tmp0_) { result = FALSE; return result; } _tmp8_ = self->priv->stack; _tmp9_ = vala_list_remove_at (_tmp8_, 0); _tmp10_ = (gchar*) _tmp9_; _vala_assert (g_strcmp0 (_tmp10_, tagname) == 0, "stack.remove_at (0) == tagname"); _g_free0 (_tmp10_); result = TRUE; return result; } static void valadoc_gtkdoc_parser_parse_docbook_spaces (ValadocGtkdocParser* self, gboolean accept_paragraphs) { g_return_if_fail (self != NULL); while (TRUE) { ValadocGtkdocToken* _tmp0_; ValadocGtkdocTokenType _tmp1_; _tmp0_ = self->priv->current; _tmp1_ = _tmp0_->type; if (_tmp1_ == VALADOC_GTKDOC_TOKEN_TYPE_SPACE) { ValadocGtkdocToken* _tmp2_; ValadocGtkdocToken* _tmp3_; _tmp2_ = valadoc_gtkdoc_parser_next (self); _tmp3_ = _tmp2_; _valadoc_gtkdoc_token_unref0 (_tmp3_); } else { ValadocGtkdocToken* _tmp4_; ValadocGtkdocTokenType _tmp5_; _tmp4_ = self->priv->current; _tmp5_ = _tmp4_->type; if (_tmp5_ == VALADOC_GTKDOC_TOKEN_TYPE_NEWLINE) { ValadocGtkdocToken* _tmp6_; ValadocGtkdocToken* _tmp7_; _tmp6_ = valadoc_gtkdoc_parser_next (self); _tmp7_ = _tmp6_; _valadoc_gtkdoc_token_unref0 (_tmp7_); } else { gboolean _tmp8_ = FALSE; if (accept_paragraphs) { ValadocGtkdocToken* _tmp9_; ValadocGtkdocTokenType _tmp10_; _tmp9_ = self->priv->current; _tmp10_ = _tmp9_->type; _tmp8_ = _tmp10_ == VALADOC_GTKDOC_TOKEN_TYPE_GTKDOC_PARAGRAPH; } else { _tmp8_ = FALSE; } if (_tmp8_) { ValadocGtkdocToken* _tmp11_; ValadocGtkdocToken* _tmp12_; _tmp11_ = valadoc_gtkdoc_parser_next (self); _tmp12_ = _tmp11_; _valadoc_gtkdoc_token_unref0 (_tmp12_); } else { break; } } } } } static ValadocContentInline* valadoc_gtkdoc_parser_parse_docbook_link_tempalte (ValadocGtkdocParser* self, const gchar* tagname, gboolean is_internal) { GString* builder = NULL; GString* _tmp3_; gchar* url = NULL; ValadocGtkdocToken* _tmp10_; ValadocGtkdocToken* _tmp11_; ValadocContentLink* link = NULL; ValadocContentContentFactory* _tmp31_; ValadocContentLink* _tmp32_; ValadocContentLink* _tmp35_; const gchar* _tmp36_; GString* _tmp37_; ValadocGtkdocToken* _tmp58_; ValadocGtkdocToken* _tmp59_; ValadocContentInline* result = NULL; g_return_val_if_fail (self != NULL, NULL); g_return_val_if_fail (tagname != NULL, NULL); if (!valadoc_gtkdoc_parser_check_xml_open_tag (self, tagname)) { ValadocGtkdocToken* _tmp0_; gchar* _tmp1_; gchar* _tmp2_; _tmp0_ = self->priv->current; _tmp1_ = g_strdup_printf ("<%s>", tagname); _tmp2_ = _tmp1_; valadoc_gtkdoc_parser_report_unexpected_token (self, _tmp0_, _tmp2_); _g_free0 (_tmp2_); result = NULL; return result; } _tmp3_ = g_string_new (""); builder = _tmp3_; if (is_internal) { ValadocGtkdocToken* _tmp4_; ValaHashMap* _tmp5_; gpointer _tmp6_; _tmp4_ = self->priv->current; _tmp5_ = _tmp4_->attributes; _tmp6_ = vala_map_get ((ValaMap*) _tmp5_, "linkend"); _g_free0 (url); url = (gchar*) _tmp6_; } else { ValadocGtkdocToken* _tmp7_; ValaHashMap* _tmp8_; gpointer _tmp9_; _tmp7_ = self->priv->current; _tmp8_ = _tmp7_->attributes; _tmp9_ = vala_map_get ((ValaMap*) _tmp8_, "url"); _g_free0 (url); url = (gchar*) _tmp9_; } _tmp10_ = valadoc_gtkdoc_parser_next (self); _tmp11_ = _tmp10_; _valadoc_gtkdoc_token_unref0 (_tmp11_); while (TRUE) { gboolean _tmp12_ = FALSE; gboolean _tmp13_ = FALSE; ValadocGtkdocToken* _tmp14_; ValadocGtkdocTokenType _tmp15_; ValadocGtkdocToken* _tmp20_; ValadocGtkdocTokenType _tmp21_; ValadocGtkdocToken* _tmp29_; ValadocGtkdocToken* _tmp30_; _tmp14_ = self->priv->current; _tmp15_ = _tmp14_->type; if (_tmp15_ == VALADOC_GTKDOC_TOKEN_TYPE_XML_CLOSE) { ValadocGtkdocToken* _tmp16_; const gchar* _tmp17_; _tmp16_ = self->priv->current; _tmp17_ = _tmp16_->content; _tmp13_ = g_strcmp0 (_tmp17_, tagname) == 0; } else { _tmp13_ = FALSE; } if (!_tmp13_) { ValadocGtkdocToken* _tmp18_; ValadocGtkdocTokenType _tmp19_; _tmp18_ = self->priv->current; _tmp19_ = _tmp18_->type; _tmp12_ = _tmp19_ != VALADOC_GTKDOC_TOKEN_TYPE_EOF; } else { _tmp12_ = FALSE; } if (!_tmp12_) { break; } _tmp20_ = self->priv->current; _tmp21_ = _tmp20_->type; if (_tmp21_ == VALADOC_GTKDOC_TOKEN_TYPE_XML_OPEN) { } else { ValadocGtkdocToken* _tmp22_; ValadocGtkdocTokenType _tmp23_; _tmp22_ = self->priv->current; _tmp23_ = _tmp22_->type; if (_tmp23_ == VALADOC_GTKDOC_TOKEN_TYPE_XML_CLOSE) { } else { ValadocGtkdocToken* _tmp24_; ValadocGtkdocTokenType _tmp25_; _tmp24_ = self->priv->current; _tmp25_ = _tmp24_->type; if (_tmp25_ == VALADOC_GTKDOC_TOKEN_TYPE_XML_COMMENT) { } else { GString* _tmp26_; ValadocGtkdocToken* _tmp27_; const gchar* _tmp28_; _tmp26_ = builder; _tmp27_ = self->priv->current; _tmp28_ = _tmp27_->content; g_string_append (_tmp26_, _tmp28_); } } } _tmp29_ = valadoc_gtkdoc_parser_next (self); _tmp30_ = _tmp29_; _valadoc_gtkdoc_token_unref0 (_tmp30_); } _tmp31_ = self->priv->factory; _tmp32_ = valadoc_content_content_factory_create_link (_tmp31_); link = _tmp32_; if (is_internal) { ValadocContentLink* _tmp33_; ValadocImporterInternalIdRegistrar* _tmp34_; _tmp33_ = link; _tmp34_ = self->priv->id_registrar; valadoc_content_link_set_id_registrar (_tmp33_, _tmp34_); } _tmp35_ = link; _tmp36_ = url; valadoc_content_link_set_url (_tmp35_, _tmp36_); _tmp37_ = builder; if (_tmp37_->len == ((gssize) 0)) { ValadocContentLink* _tmp38_; ValaList* _tmp39_; ValaList* _tmp40_; ValadocContentContentFactory* _tmp41_; const gchar* _tmp42_; ValadocContentText* _tmp43_; ValadocContentText* _tmp44_; _tmp38_ = link; _tmp39_ = valadoc_content_inline_content_get_content ((ValadocContentInlineContent*) _tmp38_); _tmp40_ = _tmp39_; _tmp41_ = self->priv->factory; _tmp42_ = url; _tmp43_ = valadoc_content_content_factory_create_text (_tmp41_, _tmp42_); _tmp44_ = _tmp43_; vala_collection_add ((ValaCollection*) _tmp40_, (ValadocContentInline*) _tmp44_); _g_object_unref0 (_tmp44_); } else { ValadocContentLink* _tmp45_; ValaList* _tmp46_; ValaList* _tmp47_; ValadocContentContentFactory* _tmp48_; GString* _tmp49_; const gchar* _tmp50_; gchar* _tmp51_; gchar* _tmp52_; ValadocContentText* _tmp53_; ValadocContentText* _tmp54_; _tmp45_ = link; _tmp46_ = valadoc_content_inline_content_get_content ((ValadocContentInlineContent*) _tmp45_); _tmp47_ = _tmp46_; _tmp48_ = self->priv->factory; _tmp49_ = builder; _tmp50_ = _tmp49_->str; _tmp51_ = valadoc_gtkdoc_parser_normalize (self, _tmp50_); _tmp52_ = _tmp51_; _tmp53_ = valadoc_content_content_factory_create_text (_tmp48_, _tmp52_); _tmp54_ = _tmp53_; vala_collection_add ((ValaCollection*) _tmp47_, (ValadocContentInline*) _tmp54_); _g_object_unref0 (_tmp54_); _g_free0 (_tmp52_); } if (!valadoc_gtkdoc_parser_check_xml_close_tag (self, tagname)) { ValadocGtkdocToken* _tmp55_; gchar* _tmp56_; gchar* _tmp57_; _tmp55_ = self->priv->current; _tmp56_ = g_strdup_printf ("", tagname); _tmp57_ = _tmp56_; valadoc_gtkdoc_parser_report_unexpected_token (self, _tmp55_, _tmp57_); _g_free0 (_tmp57_); result = (ValadocContentInline*) link; _g_free0 (url); _g_string_free0 (builder); return result; } _tmp58_ = valadoc_gtkdoc_parser_next (self); _tmp59_ = _tmp58_; _valadoc_gtkdoc_token_unref0 (_tmp59_); result = (ValadocContentInline*) link; _g_free0 (url); _g_string_free0 (builder); return result; } static ValadocContentInlineTaglet* valadoc_gtkdoc_parser_parse_symbol_link (ValadocGtkdocParser* self, const gchar* tagname) { ValadocGtkdocToken* _tmp3_; ValadocGtkdocToken* _tmp4_; ValadocGtkdocTokenType _tmp5_; gboolean _tmp6_; ValadocContentInlineTaglet* taglet = NULL; gboolean _tmp9_ = FALSE; ValadocGtkdocToken* _tmp10_; ValadocGtkdocTokenType _tmp11_; gboolean _tmp22_ = FALSE; gboolean _tmp23_ = FALSE; gboolean _tmp24_ = FALSE; gboolean _tmp25_ = FALSE; gboolean _tmp26_ = FALSE; ValadocGtkdocToken* _tmp27_; ValadocGtkdocTokenType _tmp28_; ValadocGtkdocToken* _tmp44_; ValadocGtkdocToken* _tmp45_; ValadocGtkdocTokenType _tmp46_; gboolean _tmp47_; ValadocGtkdocToken* _tmp53_; ValadocGtkdocToken* _tmp54_; ValadocContentInlineTaglet* result = NULL; g_return_val_if_fail (self != NULL, NULL); g_return_val_if_fail (tagname != NULL, NULL); if (!valadoc_gtkdoc_parser_check_xml_open_tag (self, tagname)) { ValadocGtkdocToken* _tmp0_; gchar* _tmp1_; gchar* _tmp2_; _tmp0_ = self->priv->current; _tmp1_ = g_strdup_printf ("<%s>", tagname); _tmp2_ = _tmp1_; valadoc_gtkdoc_parser_report_unexpected_token (self, _tmp0_, _tmp2_); _g_free0 (_tmp2_); result = NULL; return result; } _tmp3_ = valadoc_gtkdoc_parser_next (self); _tmp4_ = _tmp3_; _tmp5_ = _tmp4_->type; _tmp6_ = _tmp5_ == VALADOC_GTKDOC_TOKEN_TYPE_SPACE; _valadoc_gtkdoc_token_unref0 (_tmp4_); if (_tmp6_) { ValadocGtkdocToken* _tmp7_; ValadocGtkdocToken* _tmp8_; _tmp7_ = valadoc_gtkdoc_parser_next (self); _tmp8_ = _tmp7_; _valadoc_gtkdoc_token_unref0 (_tmp8_); } taglet = NULL; _tmp10_ = self->priv->current; _tmp11_ = _tmp10_->type; if (_tmp11_ == VALADOC_GTKDOC_TOKEN_TYPE_WORD) { ValadocGtkdocToken* _tmp12_; const gchar* _tmp13_; _tmp12_ = self->priv->current; _tmp13_ = _tmp12_->content; _tmp9_ = g_strcmp0 (_tmp13_, "struct") == 0; } else { _tmp9_ = FALSE; } if (_tmp9_) { ValadocGtkdocToken* _tmp14_; ValadocGtkdocToken* _tmp15_; ValadocGtkdocToken* _tmp16_; ValadocGtkdocToken* _tmp17_; ValadocGtkdocTokenType _tmp18_; gboolean _tmp19_; _tmp14_ = valadoc_gtkdoc_parser_next (self); _tmp15_ = _tmp14_; _valadoc_gtkdoc_token_unref0 (_tmp15_); _tmp16_ = valadoc_gtkdoc_parser_next (self); _tmp17_ = _tmp16_; _tmp18_ = _tmp17_->type; _tmp19_ = _tmp18_ == VALADOC_GTKDOC_TOKEN_TYPE_SPACE; _valadoc_gtkdoc_token_unref0 (_tmp17_); if (_tmp19_) { ValadocGtkdocToken* _tmp20_; ValadocGtkdocToken* _tmp21_; _tmp20_ = valadoc_gtkdoc_parser_next (self); _tmp21_ = _tmp20_; _valadoc_gtkdoc_token_unref0 (_tmp21_); } } _tmp27_ = self->priv->current; _tmp28_ = _tmp27_->type; if (_tmp28_ == VALADOC_GTKDOC_TOKEN_TYPE_GTKDOC_FUNCTION) { _tmp26_ = TRUE; } else { ValadocGtkdocToken* _tmp29_; ValadocGtkdocTokenType _tmp30_; _tmp29_ = self->priv->current; _tmp30_ = _tmp29_->type; _tmp26_ = _tmp30_ == VALADOC_GTKDOC_TOKEN_TYPE_GTKDOC_CONST; } if (_tmp26_) { _tmp25_ = TRUE; } else { ValadocGtkdocToken* _tmp31_; ValadocGtkdocTokenType _tmp32_; _tmp31_ = self->priv->current; _tmp32_ = _tmp31_->type; _tmp25_ = _tmp32_ == VALADOC_GTKDOC_TOKEN_TYPE_GTKDOC_TYPE; } if (_tmp25_) { _tmp24_ = TRUE; } else { ValadocGtkdocToken* _tmp33_; ValadocGtkdocTokenType _tmp34_; _tmp33_ = self->priv->current; _tmp34_ = _tmp33_->type; _tmp24_ = _tmp34_ == VALADOC_GTKDOC_TOKEN_TYPE_WORD; } if (_tmp24_) { _tmp23_ = TRUE; } else { ValadocGtkdocToken* _tmp35_; ValadocGtkdocTokenType _tmp36_; _tmp35_ = self->priv->current; _tmp36_ = _tmp35_->type; _tmp23_ = _tmp36_ == VALADOC_GTKDOC_TOKEN_TYPE_GTKDOC_PROPERTY; } if (_tmp23_) { _tmp22_ = TRUE; } else { ValadocGtkdocToken* _tmp37_; ValadocGtkdocTokenType _tmp38_; _tmp37_ = self->priv->current; _tmp38_ = _tmp37_->type; _tmp22_ = _tmp38_ == VALADOC_GTKDOC_TOKEN_TYPE_GTKDOC_SIGNAL; } if (_tmp22_) { ValadocGtkdocToken* _tmp39_; const gchar* _tmp40_; ValadocContentInline* _tmp41_; ValadocContentInlineTaglet* _tmp42_; ValadocContentInlineTaglet* _tmp43_; _tmp39_ = self->priv->current; _tmp40_ = _tmp39_->content; _tmp41_ = valadoc_gtkdoc_parser_create_type_link (self, _tmp40_, FALSE); _tmp42_ = VALADOC_CONTENT_IS_INLINE_TAGLET (_tmp41_) ? ((ValadocContentInlineTaglet*) _tmp41_) : NULL; if (_tmp42_ == NULL) { _g_object_unref0 (_tmp41_); } _g_object_unref0 (taglet); taglet = _tmp42_; _tmp43_ = taglet; _vala_assert (_tmp43_ != NULL, "taglet != null"); } _tmp44_ = valadoc_gtkdoc_parser_next (self); _tmp45_ = _tmp44_; _tmp46_ = _tmp45_->type; _tmp47_ = _tmp46_ == VALADOC_GTKDOC_TOKEN_TYPE_SPACE; _valadoc_gtkdoc_token_unref0 (_tmp45_); if (_tmp47_) { ValadocGtkdocToken* _tmp48_; ValadocGtkdocToken* _tmp49_; _tmp48_ = valadoc_gtkdoc_parser_next (self); _tmp49_ = _tmp48_; _valadoc_gtkdoc_token_unref0 (_tmp49_); } if (!valadoc_gtkdoc_parser_check_xml_close_tag (self, tagname)) { ValadocGtkdocToken* _tmp50_; gchar* _tmp51_; gchar* _tmp52_; _tmp50_ = self->priv->current; _tmp51_ = g_strdup_printf ("", tagname); _tmp52_ = _tmp51_; valadoc_gtkdoc_parser_report_unexpected_token (self, _tmp50_, _tmp52_); _g_free0 (_tmp52_); result = taglet; return result; } _tmp53_ = valadoc_gtkdoc_parser_next (self); _tmp54_ = _tmp53_; _valadoc_gtkdoc_token_unref0 (_tmp54_); result = taglet; return result; } static void valadoc_gtkdoc_parser_parse_anchor (ValadocGtkdocParser* self) { gchar* id = NULL; ValadocGtkdocToken* _tmp1_; ValaHashMap* _tmp2_; gpointer _tmp3_; const gchar* _tmp4_; ValadocGtkdocToken* _tmp8_; ValadocGtkdocToken* _tmp9_; ValadocGtkdocToken* _tmp11_; ValadocGtkdocToken* _tmp12_; g_return_if_fail (self != NULL); if (!valadoc_gtkdoc_parser_check_xml_open_tag (self, "anchor")) { ValadocGtkdocToken* _tmp0_; _tmp0_ = self->priv->current; valadoc_gtkdoc_parser_report_unexpected_token (self, _tmp0_, ""); return; } _tmp1_ = self->priv->current; _tmp2_ = _tmp1_->attributes; _tmp3_ = vala_map_get ((ValaMap*) _tmp2_, "id"); id = (gchar*) _tmp3_; _tmp4_ = id; if (_tmp4_ != NULL) { ValadocImporterInternalIdRegistrar* _tmp5_; const gchar* _tmp6_; ValadocApiNode* _tmp7_; _tmp5_ = self->priv->id_registrar; _tmp6_ = id; _tmp7_ = self->priv->element; valadoc_importer_internal_id_registrar_register_symbol (_tmp5_, _tmp6_, _tmp7_); } _tmp8_ = valadoc_gtkdoc_parser_next (self); _tmp9_ = _tmp8_; _valadoc_gtkdoc_token_unref0 (_tmp9_); if (!valadoc_gtkdoc_parser_check_xml_close_tag (self, "anchor")) { ValadocGtkdocToken* _tmp10_; _tmp10_ = self->priv->current; valadoc_gtkdoc_parser_report_unexpected_token (self, _tmp10_, ""); _g_free0 (id); return; } _tmp11_ = valadoc_gtkdoc_parser_next (self); _tmp12_ = _tmp11_; _valadoc_gtkdoc_token_unref0 (_tmp12_); _g_free0 (id); } static ValadocContentLink* valadoc_gtkdoc_parser_parse_xref (ValadocGtkdocParser* self) { gchar* linkend = NULL; ValadocGtkdocToken* _tmp1_; ValaHashMap* _tmp2_; gpointer _tmp3_; ValadocGtkdocToken* _tmp4_; ValadocGtkdocToken* _tmp5_; ValadocContentLink* link = NULL; ValadocContentContentFactory* _tmp6_; ValadocContentLink* _tmp7_; ValadocContentLink* _tmp8_; ValaList* _tmp9_; ValaList* _tmp10_; ValadocContentContentFactory* _tmp11_; const gchar* _tmp12_; ValadocContentText* _tmp13_; ValadocContentText* _tmp14_; ValadocContentLink* _tmp15_; ValadocImporterInternalIdRegistrar* _tmp16_; ValadocContentLink* _tmp17_; const gchar* _tmp18_; ValadocGtkdocToken* _tmp20_; ValadocGtkdocToken* _tmp21_; ValadocContentLink* result = NULL; g_return_val_if_fail (self != NULL, NULL); if (!valadoc_gtkdoc_parser_check_xml_open_tag (self, "xref")) { ValadocGtkdocToken* _tmp0_; _tmp0_ = self->priv->current; valadoc_gtkdoc_parser_report_unexpected_token (self, _tmp0_, ""); result = NULL; return result; } _tmp1_ = self->priv->current; _tmp2_ = _tmp1_->attributes; _tmp3_ = vala_map_get ((ValaMap*) _tmp2_, "linkend"); linkend = (gchar*) _tmp3_; _tmp4_ = valadoc_gtkdoc_parser_next (self); _tmp5_ = _tmp4_; _valadoc_gtkdoc_token_unref0 (_tmp5_); _tmp6_ = self->priv->factory; _tmp7_ = valadoc_content_content_factory_create_link (_tmp6_); link = _tmp7_; _tmp8_ = link; _tmp9_ = valadoc_content_inline_content_get_content ((ValadocContentInlineContent*) _tmp8_); _tmp10_ = _tmp9_; _tmp11_ = self->priv->factory; _tmp12_ = linkend; _tmp13_ = valadoc_content_content_factory_create_text (_tmp11_, _tmp12_); _tmp14_ = _tmp13_; vala_collection_add ((ValaCollection*) _tmp10_, (ValadocContentInline*) _tmp14_); _g_object_unref0 (_tmp14_); _tmp15_ = link; _tmp16_ = self->priv->id_registrar; valadoc_content_link_set_id_registrar (_tmp15_, _tmp16_); _tmp17_ = link; _tmp18_ = linkend; valadoc_content_link_set_url (_tmp17_, _tmp18_); if (!valadoc_gtkdoc_parser_check_xml_close_tag (self, "xref")) { ValadocGtkdocToken* _tmp19_; _tmp19_ = self->priv->current; valadoc_gtkdoc_parser_report_unexpected_token (self, _tmp19_, ""); result = link; _g_free0 (linkend); return result; } _tmp20_ = valadoc_gtkdoc_parser_next (self); _tmp21_ = _tmp20_; _valadoc_gtkdoc_token_unref0 (_tmp21_); result = link; _g_free0 (linkend); return result; } static ValadocContentRun* valadoc_gtkdoc_parser_parse_highlighted_template (ValadocGtkdocParser* self, const gchar* tag_name, ValadocContentRunStyle style) { ValadocGtkdocToken* _tmp3_; ValadocGtkdocToken* _tmp4_; ValadocContentRun* run = NULL; ValadocContentRun* _tmp5_; gboolean _tmp6_ = FALSE; ValadocContentRun* _tmp7_; ValadocContentRunStyle _tmp8_; ValadocContentRunStyle _tmp9_; ValadocGtkdocToken* _tmp25_; ValadocGtkdocToken* _tmp26_; ValadocContentRun* result = NULL; g_return_val_if_fail (self != NULL, NULL); g_return_val_if_fail (tag_name != NULL, NULL); if (!valadoc_gtkdoc_parser_check_xml_open_tag (self, tag_name)) { ValadocGtkdocToken* _tmp0_; gchar* _tmp1_; gchar* _tmp2_; _tmp0_ = self->priv->current; _tmp1_ = g_strdup_printf ("<%s>", tag_name); _tmp2_ = _tmp1_; valadoc_gtkdoc_parser_report_unexpected_token (self, _tmp0_, _tmp2_); _g_free0 (_tmp2_); result = NULL; return result; } _tmp3_ = valadoc_gtkdoc_parser_next (self); _tmp4_ = _tmp3_; _valadoc_gtkdoc_token_unref0 (_tmp4_); _tmp5_ = valadoc_gtkdoc_parser_parse_inline_content (self); run = _tmp5_; _tmp7_ = run; _tmp8_ = valadoc_content_run_get_style (_tmp7_); _tmp9_ = _tmp8_; if (_tmp9_ != VALADOC_CONTENT_RUN_STYLE_NONE) { ValadocContentRun* _tmp10_; ValadocContentRunStyle _tmp11_; ValadocContentRunStyle _tmp12_; _tmp10_ = run; _tmp11_ = valadoc_content_run_get_style (_tmp10_); _tmp12_ = _tmp11_; _tmp6_ = _tmp12_ != style; } else { _tmp6_ = FALSE; } if (_tmp6_) { ValadocContentRun* tmp = NULL; ValadocContentContentFactory* _tmp13_; ValadocContentRun* _tmp14_; ValadocContentRun* _tmp15_; ValaList* _tmp16_; ValaList* _tmp17_; ValadocContentRun* _tmp18_; ValadocContentRun* _tmp19_; ValadocContentRun* _tmp20_; _tmp13_ = self->priv->factory; _tmp14_ = valadoc_content_content_factory_create_run (_tmp13_, style); tmp = _tmp14_; _tmp15_ = tmp; _tmp16_ = valadoc_content_inline_content_get_content ((ValadocContentInlineContent*) _tmp15_); _tmp17_ = _tmp16_; _tmp18_ = run; vala_collection_add ((ValaCollection*) _tmp17_, (ValadocContentInline*) _tmp18_); _tmp19_ = tmp; _tmp20_ = _g_object_ref0 (_tmp19_); _g_object_unref0 (run); run = _tmp20_; _g_object_unref0 (tmp); } else { ValadocContentRun* _tmp21_; _tmp21_ = run; valadoc_content_run_set_style (_tmp21_, style); } if (!valadoc_gtkdoc_parser_check_xml_close_tag (self, tag_name)) { ValadocGtkdocToken* _tmp22_; gchar* _tmp23_; gchar* _tmp24_; _tmp22_ = self->priv->current; _tmp23_ = g_strdup_printf ("", tag_name); _tmp24_ = _tmp23_; valadoc_gtkdoc_parser_report_unexpected_token (self, _tmp22_, _tmp24_); _g_free0 (_tmp24_); result = run; return result; } _tmp25_ = valadoc_gtkdoc_parser_next (self); _tmp26_ = _tmp25_; _valadoc_gtkdoc_token_unref0 (_tmp26_); result = run; return result; } static ValadocContentListItem* valadoc_gtkdoc_parser_parse_docbook_listitem (ValadocGtkdocParser* self) { ValadocGtkdocToken* _tmp1_; ValadocGtkdocToken* _tmp2_; ValadocContentListItem* item = NULL; ValadocContentContentFactory* _tmp3_; ValadocContentListItem* _tmp4_; ValadocContentListItem* _tmp5_; ValaList* _tmp6_; ValaList* _tmp7_; ValaCollection* _tmp8_; ValaCollection* _tmp9_; ValadocGtkdocToken* _tmp11_; ValadocGtkdocToken* _tmp12_; ValadocContentListItem* result = NULL; g_return_val_if_fail (self != NULL, NULL); if (!valadoc_gtkdoc_parser_check_xml_open_tag (self, "listitem")) { ValadocGtkdocToken* _tmp0_; _tmp0_ = self->priv->current; valadoc_gtkdoc_parser_report_unexpected_token (self, _tmp0_, ""); result = NULL; return result; } _tmp1_ = valadoc_gtkdoc_parser_next (self); _tmp2_ = _tmp1_; _valadoc_gtkdoc_token_unref0 (_tmp2_); _tmp3_ = self->priv->factory; _tmp4_ = valadoc_content_content_factory_create_list_item (_tmp3_); item = _tmp4_; _tmp5_ = item; _tmp6_ = valadoc_content_block_content_get_content ((ValadocContentBlockContent*) _tmp5_); _tmp7_ = _tmp6_; _tmp8_ = valadoc_gtkdoc_parser_parse_mixed_content (self); _tmp9_ = _tmp8_; vala_collection_add_all ((ValaCollection*) _tmp7_, _tmp9_); _vala_iterable_unref0 (_tmp9_); if (!valadoc_gtkdoc_parser_check_xml_close_tag (self, "listitem")) { ValadocGtkdocToken* _tmp10_; _tmp10_ = self->priv->current; valadoc_gtkdoc_parser_report_unexpected_token (self, _tmp10_, ""); result = item; return result; } _tmp11_ = valadoc_gtkdoc_parser_next (self); _tmp12_ = _tmp11_; _valadoc_gtkdoc_token_unref0 (_tmp12_); result = item; return result; } static ValadocContentBlockContent* valadoc_gtkdoc_parser_parse_docbook_information_box_template (ValadocGtkdocParser* self, const gchar* tagname, ValadocContentBlockContent* container) { ValadocGtkdocToken* _tmp3_; ValadocGtkdocToken* _tmp4_; ValadocGtkdocToken* tmp = NULL; ValadocGtkdocToken* _tmp42_; ValadocGtkdocToken* _tmp43_; ValadocContentBlockContent* _tmp44_; ValadocContentBlockContent* result = NULL; g_return_val_if_fail (self != NULL, NULL); g_return_val_if_fail (tagname != NULL, NULL); g_return_val_if_fail (container != NULL, NULL); if (!valadoc_gtkdoc_parser_check_xml_open_tag (self, tagname)) { ValadocGtkdocToken* _tmp0_; gchar* _tmp1_; gchar* _tmp2_; _tmp0_ = self->priv->current; _tmp1_ = g_strdup_printf ("<%s>", tagname); _tmp2_ = _tmp1_; valadoc_gtkdoc_parser_report_unexpected_token (self, _tmp0_, _tmp2_); _g_free0 (_tmp2_); result = NULL; return result; } _tmp3_ = valadoc_gtkdoc_parser_next (self); _tmp4_ = _tmp3_; _valadoc_gtkdoc_token_unref0 (_tmp4_); valadoc_gtkdoc_parser_parse_docbook_spaces (self, TRUE); tmp = NULL; while (TRUE) { gboolean _tmp5_ = FALSE; ValadocGtkdocToken* _tmp6_; ValadocGtkdocTokenType _tmp7_; ValadocGtkdocToken* _tmp10_; ValadocGtkdocToken* _tmp11_; ValadocContentRun* ic = NULL; ValadocContentRun* _tmp12_; gboolean _tmp13_ = FALSE; ValadocContentRun* _tmp14_; ValaCollection* bc = NULL; ValaCollection* _tmp29_; gboolean _tmp30_ = FALSE; ValaCollection* _tmp31_; _tmp6_ = self->priv->current; _tmp7_ = _tmp6_->type; if (_tmp7_ != VALADOC_GTKDOC_TOKEN_TYPE_XML_CLOSE) { ValadocGtkdocToken* _tmp8_; ValadocGtkdocTokenType _tmp9_; _tmp8_ = self->priv->current; _tmp9_ = _tmp8_->type; _tmp5_ = _tmp9_ != VALADOC_GTKDOC_TOKEN_TYPE_EOF; } else { _tmp5_ = FALSE; } if (!_tmp5_) { break; } _tmp10_ = self->priv->current; _tmp11_ = _valadoc_gtkdoc_token_ref0 (_tmp10_); _valadoc_gtkdoc_token_unref0 (tmp); tmp = _tmp11_; _tmp12_ = valadoc_gtkdoc_parser_parse_inline_content (self); ic = _tmp12_; _tmp14_ = ic; if (_tmp14_ != NULL) { ValadocContentRun* _tmp15_; ValaList* _tmp16_; ValaList* _tmp17_; gint _tmp18_; gint _tmp19_; _tmp15_ = ic; _tmp16_ = valadoc_content_inline_content_get_content ((ValadocContentInlineContent*) _tmp15_); _tmp17_ = _tmp16_; _tmp18_ = vala_collection_get_size ((ValaCollection*) _tmp17_); _tmp19_ = _tmp18_; _tmp13_ = _tmp19_ > 0; } else { _tmp13_ = FALSE; } if (_tmp13_) { ValadocContentParagraph* p = NULL; ValadocContentContentFactory* _tmp20_; ValadocContentParagraph* _tmp21_; ValadocContentParagraph* _tmp22_; ValaList* _tmp23_; ValaList* _tmp24_; ValadocContentRun* _tmp25_; ValaList* _tmp26_; ValaList* _tmp27_; ValadocContentParagraph* _tmp28_; _tmp20_ = self->priv->factory; _tmp21_ = valadoc_content_content_factory_create_paragraph (_tmp20_); p = _tmp21_; _tmp22_ = p; _tmp23_ = valadoc_content_inline_content_get_content ((ValadocContentInlineContent*) _tmp22_); _tmp24_ = _tmp23_; _tmp25_ = ic; vala_collection_add ((ValaCollection*) _tmp24_, (ValadocContentInline*) _tmp25_); _tmp26_ = valadoc_content_block_content_get_content (container); _tmp27_ = _tmp26_; _tmp28_ = p; vala_collection_add ((ValaCollection*) _tmp27_, (ValadocContentBlock*) _tmp28_); _g_object_unref0 (p); } _tmp29_ = valadoc_gtkdoc_parser_parse_block_content (self); bc = _tmp29_; _tmp31_ = bc; if (_tmp31_ != NULL) { ValaCollection* _tmp32_; gint _tmp33_; gint _tmp34_; _tmp32_ = bc; _tmp33_ = vala_collection_get_size (_tmp32_); _tmp34_ = _tmp33_; _tmp30_ = _tmp34_ > 0; } else { _tmp30_ = FALSE; } if (_tmp30_) { ValaList* _tmp35_; ValaList* _tmp36_; ValaCollection* _tmp37_; _tmp35_ = valadoc_content_block_content_get_content (container); _tmp36_ = _tmp35_; _tmp37_ = bc; vala_collection_add_all ((ValaCollection*) _tmp36_, _tmp37_); } _vala_iterable_unref0 (bc); _g_object_unref0 (ic); } valadoc_gtkdoc_parser_parse_docbook_spaces (self, TRUE); if (!valadoc_gtkdoc_parser_check_xml_close_tag (self, tagname)) { ValadocGtkdocToken* _tmp38_; gchar* _tmp39_; gchar* _tmp40_; ValadocContentBlockContent* _tmp41_; _tmp38_ = self->priv->current; _tmp39_ = g_strdup_printf ("", tagname); _tmp40_ = _tmp39_; valadoc_gtkdoc_parser_report_unexpected_token (self, _tmp38_, _tmp40_); _g_free0 (_tmp40_); _tmp41_ = _g_object_ref0 (container); result = _tmp41_; _valadoc_gtkdoc_token_unref0 (tmp); return result; } _tmp42_ = valadoc_gtkdoc_parser_next (self); _tmp43_ = _tmp42_; _valadoc_gtkdoc_token_unref0 (_tmp43_); _tmp44_ = _g_object_ref0 (container); result = _tmp44_; _valadoc_gtkdoc_token_unref0 (tmp); return result; } static ValadocContentNote* valadoc_gtkdoc_parser_parse_docbook_important (ValadocGtkdocParser* self) { ValadocContentContentFactory* _tmp0_; ValadocContentNote* _tmp1_; ValadocContentNote* _tmp2_; ValadocContentBlockContent* _tmp3_; ValadocContentNote* _tmp4_; ValadocContentNote* result = NULL; g_return_val_if_fail (self != NULL, NULL); _tmp0_ = self->priv->factory; _tmp1_ = valadoc_content_content_factory_create_note (_tmp0_); _tmp2_ = _tmp1_; _tmp3_ = valadoc_gtkdoc_parser_parse_docbook_information_box_template (self, "important", (ValadocContentBlockContent*) _tmp2_); _tmp4_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, VALADOC_CONTENT_TYPE_NOTE, ValadocContentNote); _g_object_unref0 (_tmp2_); result = _tmp4_; return result; } static ValadocContentNote* valadoc_gtkdoc_parser_parse_docbook_note (ValadocGtkdocParser* self) { ValadocContentContentFactory* _tmp0_; ValadocContentNote* _tmp1_; ValadocContentNote* _tmp2_; ValadocContentBlockContent* _tmp3_; ValadocContentNote* _tmp4_; ValadocContentNote* result = NULL; g_return_val_if_fail (self != NULL, NULL); _tmp0_ = self->priv->factory; _tmp1_ = valadoc_content_content_factory_create_note (_tmp0_); _tmp2_ = _tmp1_; _tmp3_ = valadoc_gtkdoc_parser_parse_docbook_information_box_template (self, "note", (ValadocContentBlockContent*) _tmp2_); _tmp4_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, VALADOC_CONTENT_TYPE_NOTE, ValadocContentNote); _g_object_unref0 (_tmp2_); result = _tmp4_; return result; } static ValadocContentWarning* valadoc_gtkdoc_parser_parse_docbook_warning (ValadocGtkdocParser* self) { ValadocContentContentFactory* _tmp0_; ValadocContentWarning* _tmp1_; ValadocContentWarning* _tmp2_; ValadocContentBlockContent* _tmp3_; ValadocContentWarning* _tmp4_; ValadocContentWarning* result = NULL; g_return_val_if_fail (self != NULL, NULL); _tmp0_ = self->priv->factory; _tmp1_ = valadoc_content_content_factory_create_warning (_tmp0_); _tmp2_ = _tmp1_; _tmp3_ = valadoc_gtkdoc_parser_parse_docbook_information_box_template (self, "warning", (ValadocContentBlockContent*) _tmp2_); _tmp4_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, VALADOC_CONTENT_TYPE_WARNING, ValadocContentWarning); _g_object_unref0 (_tmp2_); result = _tmp4_; return result; } static inline ValaCollection* valadoc_gtkdoc_parser_parse_docbook_orderedlist (ValadocGtkdocParser* self) { ValaCollection* _tmp0_; ValaCollection* result = NULL; g_return_val_if_fail (self != NULL, NULL); _tmp0_ = valadoc_gtkdoc_parser_parse_docbook_itemizedlist (self, "orderedlist", VALADOC_CONTENT_LIST_BULLET_ORDERED); result = _tmp0_; return result; } static ValaCollection* valadoc_gtkdoc_parser_parse_docbook_itemizedlist (ValadocGtkdocParser* self, const gchar* tag_name, ValadocContentListBullet bullet_type) { ValadocGtkdocToken* _tmp3_; ValadocGtkdocToken* _tmp4_; ValaCollection* content = NULL; GEqualFunc _tmp5_; ValaArrayList* _tmp6_; gboolean _tmp7_ = FALSE; ValadocGtkdocToken* _tmp8_; ValadocGtkdocTokenType _tmp9_; ValadocContentList* list = NULL; ValadocContentContentFactory* _tmp15_; ValadocContentList* _tmp16_; ValadocContentList* _tmp17_; ValaCollection* _tmp18_; ValadocContentList* _tmp19_; ValadocGtkdocToken* _tmp32_; ValadocGtkdocToken* _tmp33_; ValaCollection* result = NULL; g_return_val_if_fail (self != NULL, NULL); g_return_val_if_fail (tag_name != NULL, NULL); if (!valadoc_gtkdoc_parser_check_xml_open_tag (self, tag_name)) { ValadocGtkdocToken* _tmp0_; gchar* _tmp1_; gchar* _tmp2_; _tmp0_ = self->priv->current; _tmp1_ = g_strdup_printf ("<%s>", tag_name); _tmp2_ = _tmp1_; valadoc_gtkdoc_parser_report_unexpected_token (self, _tmp0_, _tmp2_); _g_free0 (_tmp2_); result = NULL; return result; } _tmp3_ = valadoc_gtkdoc_parser_next (self); _tmp4_ = _tmp3_; _valadoc_gtkdoc_token_unref0 (_tmp4_); _tmp5_ = g_direct_equal; _tmp6_ = vala_array_list_new (VALADOC_CONTENT_TYPE_BLOCK, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, _tmp5_); content = (ValaCollection*) _tmp6_; valadoc_gtkdoc_parser_parse_docbook_spaces (self, TRUE); _tmp8_ = self->priv->current; _tmp9_ = _tmp8_->type; if (_tmp9_ == VALADOC_GTKDOC_TOKEN_TYPE_XML_OPEN) { ValadocGtkdocToken* _tmp10_; const gchar* _tmp11_; _tmp10_ = self->priv->current; _tmp11_ = _tmp10_->content; _tmp7_ = g_strcmp0 (_tmp11_, "title") == 0; } else { _tmp7_ = FALSE; } if (_tmp7_) { ValaCollection* _tmp12_; ValadocContentParagraph* _tmp13_; ValadocContentParagraph* _tmp14_; _tmp12_ = content; _tmp13_ = valadoc_gtkdoc_parser_parse_docbook_title (self); _tmp14_ = _tmp13_; valadoc_gtkdoc_parser_append_block_content_not_null (self, _tmp12_, (ValadocContentBlock*) _tmp14_); _g_object_unref0 (_tmp14_); valadoc_gtkdoc_parser_parse_docbook_spaces (self, TRUE); } _tmp15_ = self->priv->factory; _tmp16_ = valadoc_content_content_factory_create_list (_tmp15_); list = _tmp16_; _tmp17_ = list; valadoc_content_list_set_bullet (_tmp17_, bullet_type); _tmp18_ = content; _tmp19_ = list; vala_collection_add (_tmp18_, (ValadocContentBlock*) _tmp19_); while (TRUE) { ValadocGtkdocToken* _tmp20_; ValadocGtkdocTokenType _tmp21_; ValadocGtkdocToken* _tmp22_; const gchar* _tmp23_; _tmp20_ = self->priv->current; _tmp21_ = _tmp20_->type; if (!(_tmp21_ == VALADOC_GTKDOC_TOKEN_TYPE_XML_OPEN)) { break; } _tmp22_ = self->priv->current; _tmp23_ = _tmp22_->content; if (g_strcmp0 (_tmp23_, "listitem") == 0) { ValadocContentList* _tmp24_; ValaList* _tmp25_; ValaList* _tmp26_; ValadocContentListItem* _tmp27_; ValadocContentListItem* _tmp28_; _tmp24_ = list; _tmp25_ = valadoc_content_list_get_items (_tmp24_); _tmp26_ = _tmp25_; _tmp27_ = valadoc_gtkdoc_parser_parse_docbook_listitem (self); _tmp28_ = _tmp27_; vala_collection_add ((ValaCollection*) _tmp26_, _tmp28_); _g_object_unref0 (_tmp28_); } else { break; } valadoc_gtkdoc_parser_parse_docbook_spaces (self, TRUE); } if (!valadoc_gtkdoc_parser_check_xml_close_tag (self, tag_name)) { ValadocGtkdocToken* _tmp29_; gchar* _tmp30_; gchar* _tmp31_; _tmp29_ = self->priv->current; _tmp30_ = g_strdup_printf ("", tag_name); _tmp31_ = _tmp30_; valadoc_gtkdoc_parser_report_unexpected_token (self, _tmp29_, _tmp31_); _g_free0 (_tmp31_); result = content; _g_object_unref0 (list); return result; } _tmp32_ = valadoc_gtkdoc_parser_next (self); _tmp33_ = _tmp32_; _valadoc_gtkdoc_token_unref0 (_tmp33_); result = content; _g_object_unref0 (list); return result; } static ValadocContentParagraph* valadoc_gtkdoc_parser_parse_gtkdoc_paragraph (ValadocGtkdocParser* self) { ValadocGtkdocToken* _tmp0_; ValadocGtkdocTokenType _tmp1_; ValadocGtkdocToken* _tmp3_; ValadocGtkdocToken* _tmp4_; ValadocContentParagraph* p = NULL; ValadocContentContentFactory* _tmp5_; ValadocContentParagraph* _tmp6_; ValadocContentRun* run = NULL; ValadocContentRun* _tmp7_; ValadocContentParagraph* _tmp8_; ValaList* _tmp9_; ValaList* _tmp10_; ValadocContentRun* _tmp11_; ValadocContentParagraph* result = NULL; g_return_val_if_fail (self != NULL, NULL); _tmp0_ = self->priv->current; _tmp1_ = _tmp0_->type; if (_tmp1_ != VALADOC_GTKDOC_TOKEN_TYPE_GTKDOC_PARAGRAPH) { ValadocGtkdocToken* _tmp2_; _tmp2_ = self->priv->current; valadoc_gtkdoc_parser_report_unexpected_token (self, _tmp2_, ""); result = NULL; return result; } _tmp3_ = valadoc_gtkdoc_parser_next (self); _tmp4_ = _tmp3_; _valadoc_gtkdoc_token_unref0 (_tmp4_); _tmp5_ = self->priv->factory; _tmp6_ = valadoc_content_content_factory_create_paragraph (_tmp5_); p = _tmp6_; _tmp7_ = valadoc_gtkdoc_parser_parse_inline_content (self); run = _tmp7_; _tmp8_ = p; _tmp9_ = valadoc_content_inline_content_get_content ((ValadocContentInlineContent*) _tmp8_); _tmp10_ = _tmp9_; _tmp11_ = run; vala_collection_add ((ValaCollection*) _tmp10_, (ValadocContentInline*) _tmp11_); result = p; _g_object_unref0 (run); return result; } static ValaCollection* valadoc_gtkdoc_parser_parse_mixed_content (ValadocGtkdocParser* self) { ValaCollection* content = NULL; GEqualFunc _tmp0_; ValaArrayList* _tmp1_; ValadocGtkdocToken* tmp = NULL; ValaCollection* result = NULL; g_return_val_if_fail (self != NULL, NULL); _tmp0_ = g_direct_equal; _tmp1_ = vala_array_list_new (VALADOC_CONTENT_TYPE_BLOCK, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, _tmp0_); content = (ValaCollection*) _tmp1_; tmp = NULL; while (TRUE) { ValadocGtkdocToken* _tmp2_; ValadocGtkdocToken* _tmp3_; ValadocGtkdocToken* _tmp4_; ValadocGtkdocToken* _tmp5_; ValadocContentRun* run = NULL; ValadocContentRun* _tmp6_; gboolean _tmp7_ = FALSE; ValadocContentRun* _tmp8_; ValaCollection* lst = NULL; ValaCollection* _tmp22_; gboolean _tmp23_ = FALSE; ValaCollection* _tmp24_; _tmp2_ = tmp; _tmp3_ = self->priv->current; if (!(_tmp2_ != _tmp3_)) { break; } _tmp4_ = self->priv->current; _tmp5_ = _valadoc_gtkdoc_token_ref0 (_tmp4_); _valadoc_gtkdoc_token_unref0 (tmp); tmp = _tmp5_; valadoc_gtkdoc_parser_parse_docbook_spaces (self, TRUE); _tmp6_ = valadoc_gtkdoc_parser_parse_inline_content (self); run = _tmp6_; _tmp8_ = run; if (_tmp8_ != NULL) { ValadocContentRun* _tmp9_; ValaList* _tmp10_; ValaList* _tmp11_; gint _tmp12_; gint _tmp13_; _tmp9_ = run; _tmp10_ = valadoc_content_inline_content_get_content ((ValadocContentInlineContent*) _tmp9_); _tmp11_ = _tmp10_; _tmp12_ = vala_collection_get_size ((ValaCollection*) _tmp11_); _tmp13_ = _tmp12_; _tmp7_ = _tmp13_ > 0; } else { _tmp7_ = FALSE; } if (_tmp7_) { ValadocContentParagraph* p = NULL; ValadocContentContentFactory* _tmp14_; ValadocContentParagraph* _tmp15_; ValadocContentParagraph* _tmp16_; ValaList* _tmp17_; ValaList* _tmp18_; ValadocContentRun* _tmp19_; ValaCollection* _tmp20_; ValadocContentParagraph* _tmp21_; _tmp14_ = self->priv->factory; _tmp15_ = valadoc_content_content_factory_create_paragraph (_tmp14_); p = _tmp15_; _tmp16_ = p; _tmp17_ = valadoc_content_inline_content_get_content ((ValadocContentInlineContent*) _tmp16_); _tmp18_ = _tmp17_; _tmp19_ = run; vala_collection_add ((ValaCollection*) _tmp18_, (ValadocContentInline*) _tmp19_); _tmp20_ = content; _tmp21_ = p; vala_collection_add (_tmp20_, (ValadocContentBlock*) _tmp21_); _g_object_unref0 (p); _g_object_unref0 (run); continue; } _tmp22_ = valadoc_gtkdoc_parser_parse_block_content (self); lst = _tmp22_; _tmp24_ = lst; if (_tmp24_ != NULL) { ValaCollection* _tmp25_; gint _tmp26_; gint _tmp27_; _tmp25_ = lst; _tmp26_ = vala_collection_get_size (_tmp25_); _tmp27_ = _tmp26_; _tmp23_ = _tmp27_ > 0; } else { _tmp23_ = FALSE; } if (_tmp23_) { ValaCollection* _tmp28_; ValaCollection* _tmp29_; _tmp28_ = content; _tmp29_ = lst; vala_collection_add_all (_tmp28_, _tmp29_); _vala_iterable_unref0 (lst); _g_object_unref0 (run); continue; } _vala_iterable_unref0 (lst); _g_object_unref0 (run); } result = content; _valadoc_gtkdoc_token_unref0 (tmp); return result; } static inline ValaCollection* valadoc_gtkdoc_parser_parse_docbook_simpara (ValadocGtkdocParser* self) { ValaCollection* _tmp0_; ValaCollection* result = NULL; g_return_val_if_fail (self != NULL, NULL); _tmp0_ = valadoc_gtkdoc_parser_parse_docbook_para (self, "simpara"); result = _tmp0_; return result; } static ValaCollection* valadoc_gtkdoc_parser_parse_docbook_para (ValadocGtkdocParser* self, const gchar* tag_name) { ValadocGtkdocToken* _tmp3_; ValadocGtkdocToken* _tmp4_; ValaCollection* content = NULL; ValaCollection* _tmp5_; gboolean _tmp6_ = FALSE; ValadocGtkdocToken* _tmp12_; ValadocGtkdocToken* _tmp13_; ValaCollection* result = NULL; g_return_val_if_fail (self != NULL, NULL); g_return_val_if_fail (tag_name != NULL, NULL); if (!valadoc_gtkdoc_parser_check_xml_open_tag (self, tag_name)) { ValadocGtkdocToken* _tmp0_; gchar* _tmp1_; gchar* _tmp2_; _tmp0_ = self->priv->current; _tmp1_ = g_strdup_printf ("<%s>", tag_name); _tmp2_ = _tmp1_; valadoc_gtkdoc_parser_report_unexpected_token (self, _tmp0_, _tmp2_); _g_free0 (_tmp2_); result = NULL; return result; } _tmp3_ = valadoc_gtkdoc_parser_next (self); _tmp4_ = _tmp3_; _valadoc_gtkdoc_token_unref0 (_tmp4_); _tmp5_ = valadoc_gtkdoc_parser_parse_mixed_content (self); content = _tmp5_; if (!valadoc_gtkdoc_parser_check_xml_close_tag (self, tag_name)) { ValadocGtkdocToken* _tmp7_; ValadocGtkdocTokenType _tmp8_; _tmp7_ = self->priv->current; _tmp8_ = _tmp7_->type; _tmp6_ = _tmp8_ != VALADOC_GTKDOC_TOKEN_TYPE_EOF; } else { _tmp6_ = FALSE; } if (_tmp6_) { ValadocGtkdocToken* _tmp9_; gchar* _tmp10_; gchar* _tmp11_; _tmp9_ = self->priv->current; _tmp10_ = g_strdup_printf ("", tag_name); _tmp11_ = _tmp10_; valadoc_gtkdoc_parser_report_unexpected_token (self, _tmp9_, _tmp11_); _g_free0 (_tmp11_); result = content; return result; } _tmp12_ = valadoc_gtkdoc_parser_next (self); _tmp13_ = _tmp12_; _valadoc_gtkdoc_token_unref0 (_tmp13_); result = content; return result; } static ValadocContentSourceCodeLanguage* _valadoc_content_source_code_language_dup (ValadocContentSourceCodeLanguage* self) { ValadocContentSourceCodeLanguage* dup; dup = g_new0 (ValadocContentSourceCodeLanguage, 1); memcpy (dup, self, sizeof (ValadocContentSourceCodeLanguage)); return dup; } static gpointer __valadoc_content_source_code_language_dup0 (gpointer self) { return self ? _valadoc_content_source_code_language_dup (self) : NULL; } static const gchar* string_offset (const gchar* self, glong offset) { const gchar* result = NULL; g_return_val_if_fail (self != NULL, NULL); result = (const gchar*) (((gchar*) self) + offset); return result; } static gint string_index_of_char (const gchar* self, gunichar c, gint start_index) { gchar* _result_ = NULL; gchar* _tmp0_; gchar* _tmp1_; gint result = 0; g_return_val_if_fail (self != NULL, 0); _tmp0_ = g_utf8_strchr (((gchar*) self) + start_index, (gssize) -1, c); _result_ = _tmp0_; _tmp1_ = _result_; if (_tmp1_ != NULL) { gchar* _tmp2_; _tmp2_ = _result_; result = (gint) (_tmp2_ - ((gchar*) self)); return result; } else { result = -1; return result; } } static ValadocContentParagraph* valadoc_gtkdoc_parser_parse_gtkdoc_source (ValadocGtkdocParser* self) { ValadocGtkdocToken* _tmp0_; ValadocGtkdocTokenType _tmp1_; GString* builder = NULL; GString* _tmp3_; ValadocGtkdocToken* source_token = NULL; ValadocGtkdocToken* _tmp4_; ValadocGtkdocToken* _tmp5_; ValadocContentSourceCode* code = NULL; ValadocContentContentFactory* _tmp27_; ValadocContentSourceCode* _tmp28_; GMatchInfo* info = NULL; const gchar* source = NULL; GString* _tmp29_; const gchar* _tmp30_; GRegex* _tmp31_; const gchar* _tmp32_; GMatchInfo* _tmp33_ = NULL; gboolean _tmp34_; ValadocContentSourceCode* _tmp56_; const gchar* _tmp57_; ValadocContentParagraph* p = NULL; ValadocContentContentFactory* _tmp58_; ValadocContentParagraph* _tmp59_; ValadocContentParagraph* _tmp60_; ValaList* _tmp61_; ValaList* _tmp62_; ValadocContentSourceCode* _tmp63_; ValadocGtkdocToken* _tmp64_; ValadocGtkdocTokenType _tmp65_; ValadocGtkdocToken* _tmp67_; ValadocGtkdocToken* _tmp68_; ValadocContentParagraph* result = NULL; g_return_val_if_fail (self != NULL, NULL); _tmp0_ = self->priv->current; _tmp1_ = _tmp0_->type; if (_tmp1_ != VALADOC_GTKDOC_TOKEN_TYPE_GTKDOC_SOURCE_OPEN) { ValadocGtkdocToken* _tmp2_; _tmp2_ = self->priv->current; valadoc_gtkdoc_parser_report_unexpected_token (self, _tmp2_, "|["); result = NULL; return result; } _tmp3_ = g_string_new (""); builder = _tmp3_; _tmp4_ = self->priv->current; _tmp5_ = _valadoc_gtkdoc_token_ref0 (_tmp4_); source_token = _tmp5_; { ValadocGtkdocToken* _tmp6_; ValadocGtkdocToken* _tmp7_; gboolean _tmp8_ = FALSE; _tmp6_ = valadoc_gtkdoc_parser_next (self); _tmp7_ = _tmp6_; _valadoc_gtkdoc_token_unref0 (_tmp7_); _tmp8_ = TRUE; while (TRUE) { gboolean _tmp11_ = FALSE; ValadocGtkdocToken* _tmp12_; ValadocGtkdocTokenType _tmp13_; ValadocGtkdocToken* _tmp16_; ValadocGtkdocTokenType _tmp17_; if (!_tmp8_) { ValadocGtkdocToken* _tmp9_; ValadocGtkdocToken* _tmp10_; _tmp9_ = valadoc_gtkdoc_parser_next (self); _tmp10_ = _tmp9_; _valadoc_gtkdoc_token_unref0 (_tmp10_); } _tmp8_ = FALSE; _tmp12_ = self->priv->current; _tmp13_ = _tmp12_->type; if (_tmp13_ != VALADOC_GTKDOC_TOKEN_TYPE_EOF) { ValadocGtkdocToken* _tmp14_; ValadocGtkdocTokenType _tmp15_; _tmp14_ = self->priv->current; _tmp15_ = _tmp14_->type; _tmp11_ = _tmp15_ != VALADOC_GTKDOC_TOKEN_TYPE_GTKDOC_SOURCE_CLOSE; } else { _tmp11_ = FALSE; } if (!_tmp11_) { break; } _tmp16_ = self->priv->current; _tmp17_ = _tmp16_->type; if (_tmp17_ == VALADOC_GTKDOC_TOKEN_TYPE_WORD) { GString* _tmp18_; ValadocGtkdocToken* _tmp19_; const gchar* _tmp20_; _tmp18_ = builder; _tmp19_ = self->priv->current; _tmp20_ = _tmp19_->content; g_string_append (_tmp18_, _tmp20_); } else { ValadocGtkdocToken* _tmp21_; ValadocGtkdocTokenType _tmp22_; _tmp21_ = self->priv->current; _tmp22_ = _tmp21_->type; if (_tmp22_ != VALADOC_GTKDOC_TOKEN_TYPE_XML_COMMENT) { GString* _tmp23_; ValadocGtkdocToken* _tmp24_; const gchar* _tmp25_; ValadocGtkdocToken* _tmp26_; _tmp23_ = builder; _tmp24_ = self->priv->current; _tmp25_ = _tmp24_->start; _tmp26_ = self->priv->current; g_string_append_len (_tmp23_, _tmp25_, (gssize) _tmp26_->length); } } } } _tmp27_ = self->priv->factory; _tmp28_ = valadoc_content_content_factory_create_source_code (_tmp27_); code = _tmp28_; _tmp29_ = builder; _tmp30_ = _tmp29_->str; source = _tmp30_; _tmp31_ = self->priv->regex_source_lang; _tmp32_ = source; _tmp34_ = g_regex_match (_tmp31_, _tmp32_, 0, &_tmp33_); _g_match_info_unref0 (info); info = _tmp33_; if (_tmp34_) { gchar* lang_name = NULL; GMatchInfo* _tmp35_; gchar* _tmp36_; gchar* _tmp37_; gchar* _tmp38_; gchar* _tmp39_; ValadocContentSourceCodeLanguage* lang = NULL; const gchar* _tmp40_; ValadocContentSourceCodeLanguage _tmp41_; ValadocContentSourceCodeLanguage* _tmp42_; ValadocContentSourceCode* _tmp43_; ValadocContentSourceCodeLanguage* _tmp44_; ValadocContentSourceCodeLanguage* _tmp45_; const gchar* _tmp50_; const gchar* _tmp51_; const gchar* _tmp52_; _tmp35_ = info; _tmp36_ = g_match_info_fetch (_tmp35_, 1); _tmp37_ = _tmp36_; _tmp38_ = g_ascii_strdown (_tmp37_, (gssize) -1); _tmp39_ = _tmp38_; _g_free0 (_tmp37_); lang_name = _tmp39_; _tmp40_ = lang_name; _tmp41_ = valadoc_content_source_code_language_from_string (_tmp40_, FALSE); _tmp42_ = __valadoc_content_source_code_language_dup0 (&_tmp41_); lang = _tmp42_; _tmp43_ = code; _tmp44_ = lang; valadoc_content_source_code_set_language (_tmp43_, *_tmp44_); _tmp45_ = lang; if (_tmp45_ == NULL) { ValadocGtkdocToken* _tmp46_; const gchar* _tmp47_; gchar* _tmp48_; gchar* _tmp49_; _tmp46_ = source_token; _tmp47_ = lang_name; _tmp48_ = g_strdup_printf ("Unknown language `%s' in source code block |[