1
/* ctags-visitor.c generated by valac 0.11.2, the Vala compiler
2
* generated from ctags-visitor.vala, do not modify */
7
* Copyright 2008, 2010 Abderrahim Kitouni <a.kitouni@gmail.com>
9
* This program is free software; you can redistribute it and/or modify
10
* it under the terms of the GNU General Public License as published by
11
* the Free Software Foundation; either version 2 of the License, or
12
* (at your option) any later version.
14
* This program is distributed in the hope that it will be useful,
15
* but WITHOUT ANY WARRANTY; without even the implied warranty of
16
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
* GNU General Public License for more details.
19
* You should have received a copy of the GNU General Public License
20
* along with this program; if not, write to the Free Software
21
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
26
#include <glib-object.h>
33
#define TYPE_CTAGS_ENTRY (ctags_entry_get_type ())
34
typedef struct _CTagsEntry CTagsEntry;
35
#define _g_free0(var) (var = (g_free (var), NULL))
37
#define TYPE_DUMMY_REPORT (dummy_report_get_type ())
38
#define DUMMY_REPORT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DUMMY_REPORT, DummyReport))
39
#define DUMMY_REPORT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DUMMY_REPORT, DummyReportClass))
40
#define IS_DUMMY_REPORT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DUMMY_REPORT))
41
#define IS_DUMMY_REPORT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DUMMY_REPORT))
42
#define DUMMY_REPORT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DUMMY_REPORT, DummyReportClass))
44
typedef struct _DummyReport DummyReport;
45
typedef struct _DummyReportClass DummyReportClass;
46
typedef struct _DummyReportPrivate DummyReportPrivate;
48
#define TYPE_CTAGS_VISITOR (ctags_visitor_get_type ())
49
#define CTAGS_VISITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CTAGS_VISITOR, CTagsVisitor))
50
#define CTAGS_VISITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CTAGS_VISITOR, CTagsVisitorClass))
51
#define IS_CTAGS_VISITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CTAGS_VISITOR))
52
#define IS_CTAGS_VISITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CTAGS_VISITOR))
53
#define CTAGS_VISITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CTAGS_VISITOR, CTagsVisitorClass))
55
typedef struct _CTagsVisitor CTagsVisitor;
56
typedef struct _CTagsVisitorClass CTagsVisitorClass;
57
typedef struct _CTagsVisitorPrivate CTagsVisitorPrivate;
58
#define _vala_code_visitor_unref0(var) ((var == NULL) ? NULL : (var = (vala_code_visitor_unref (var), NULL)))
59
#define __g_list_free__ctags_entry_free0_0(var) ((var == NULL) ? NULL : (var = (_g_list_free__ctags_entry_free0_ (var), NULL)))
60
#define _vala_code_node_unref0(var) ((var == NULL) ? NULL : (var = (vala_code_node_unref (var), NULL)))
61
#define _vala_iterator_unref0(var) ((var == NULL) ? NULL : (var = (vala_iterator_unref (var), NULL)))
62
#define _g_string_free0(var) ((var == NULL) ? NULL : (var = (g_string_free (var, TRUE), NULL)))
63
#define __g_list_free__g_free0_0(var) ((var == NULL) ? NULL : (var = (_g_list_free__g_free0_ (var), NULL)))
64
#define _vala_iterable_unref0(var) ((var == NULL) ? NULL : (var = (vala_iterable_unref (var), NULL)))
65
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
66
#define _ctags_entry_free0(var) ((var == NULL) ? NULL : (var = (ctags_entry_free (var), NULL)))
67
#define _vala_source_file_unref0(var) ((var == NULL) ? NULL : (var = (vala_source_file_unref (var), NULL)))
68
#define _vala_code_context_unref0(var) ((var == NULL) ? NULL : (var = (vala_code_context_unref (var), NULL)))
76
gchar* implementation;
85
ValaReport parent_instance;
86
DummyReportPrivate * priv;
89
struct _DummyReportClass {
90
ValaReportClass parent_class;
93
typedef void (*CTagsEntryMaker) (CTagsEntry* entry);
94
struct _CTagsVisitor {
95
ValaCodeVisitor parent_instance;
96
CTagsVisitorPrivate * priv;
99
struct _CTagsVisitorClass {
100
ValaCodeVisitorClass parent_class;
103
struct _CTagsVisitorPrivate {
104
ValaParser* vala_parser;
105
ValaGenieParser* genie_parser;
110
static gpointer dummy_report_parent_class = NULL;
111
static gpointer ctags_visitor_parent_class = NULL;
113
GType ctags_entry_get_type (void) G_GNUC_CONST;
114
CTagsEntry* ctags_entry_dup (const CTagsEntry* self);
115
void ctags_entry_free (CTagsEntry* self);
116
void ctags_entry_copy (const CTagsEntry* self, CTagsEntry* dest);
117
void ctags_entry_destroy (CTagsEntry* self);
118
static void _vala_array_copy1 (gchar** self, gchar** dest);
119
GType dummy_report_get_type (void) G_GNUC_CONST;
121
DUMMY_REPORT_DUMMY_PROPERTY
123
static void dummy_report_real_warn (ValaReport* base, ValaSourceReference* source, const gchar* message);
124
static void dummy_report_real_err (ValaReport* base, ValaSourceReference* source, const gchar* message);
125
DummyReport* dummy_report_new (void);
126
DummyReport* dummy_report_construct (GType object_type);
127
GType ctags_visitor_get_type (void) G_GNUC_CONST;
128
#define CTAGS_VISITOR_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_CTAGS_VISITOR, CTagsVisitorPrivate))
130
CTAGS_VISITOR_DUMMY_PROPERTY
132
static void _ctags_entry_free0_ (gpointer var);
133
static void _g_list_free__ctags_entry_free0_ (GList* self);
134
CTagsVisitor* ctags_visitor_new (void);
135
CTagsVisitor* ctags_visitor_construct (GType object_type);
136
static gchar* ctags_visitor_get_access (ValaSymbol* sym);
137
static gchar* ctags_visitor_to_string (ValaIterable* seq, const gchar* sep);
138
static gchar* ctags_visitor_implementation (ValaSymbol* sym);
139
static void _g_free0_ (gpointer var);
140
static void _g_list_free__g_free0_ (GList* self);
141
static gchar* ctags_visitor_signature (ValaList* parameter);
142
static void ctags_visitor_scope (ValaSymbol* s, gchar** scope, int scope_length1);
143
static void ctags_visitor_real_visit_source_file (ValaCodeVisitor* base, ValaSourceFile* source_file);
144
static void ctags_visitor_real_visit_class (ValaCodeVisitor* base, ValaClass* cl);
145
static void ctags_visitor_real_visit_struct (ValaCodeVisitor* base, ValaStruct* st);
146
static void ctags_visitor_real_visit_interface (ValaCodeVisitor* base, ValaInterface* iface);
147
static void ctags_visitor_real_visit_enum (ValaCodeVisitor* base, ValaEnum* en);
148
static void ctags_visitor_real_visit_error_domain (ValaCodeVisitor* base, ValaErrorDomain* edomain);
149
static void ctags_visitor_real_visit_enum_value (ValaCodeVisitor* base, ValaEnumValue* ev);
150
static void ctags_visitor_real_visit_error_code (ValaCodeVisitor* base, ValaErrorCode* ecode);
151
static void ctags_visitor_real_visit_delegate (ValaCodeVisitor* base, ValaDelegate* d);
152
static void ctags_visitor_real_visit_signal (ValaCodeVisitor* base, ValaSignal* sig);
153
static void ctags_visitor_real_visit_field (ValaCodeVisitor* base, ValaField* f);
154
static void ctags_visitor_real_visit_constant (ValaCodeVisitor* base, ValaConstant* c);
155
static void ctags_visitor_real_visit_property (ValaCodeVisitor* base, ValaProperty* prop);
156
static void ctags_visitor_real_visit_method (ValaCodeVisitor* base, ValaMethod* m);
157
static void ctags_visitor_real_visit_local_variable (ValaCodeVisitor* base, ValaLocalVariable* local);
158
void ctags_visitor_parse_vala (CTagsVisitor* self, const gchar* filename, CTagsEntryMaker maker);
159
void ctags_visitor_parse_genie (CTagsVisitor* self, const gchar* filename, CTagsEntryMaker maker);
160
static void ctags_visitor_finalize (ValaCodeVisitor* obj);
161
static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
162
static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
165
static void _vala_array_copy1 (gchar** self, gchar** dest) {
167
for (i = 0; i < 2; i++) {
168
dest[i] = g_strdup (self[i]);
173
void ctags_entry_copy (const CTagsEntry* self, CTagsEntry* dest) {
174
gchar* _tmp0_[2] = {0};
175
dest->line_number = self->line_number;
176
dest->name = g_strdup (self->name);
177
dest->kind_name = g_strdup (self->kind_name);
178
dest->kind = self->kind;
179
dest->access = g_strdup (self->access);
180
dest->implementation = g_strdup (self->implementation);
181
dest->inheritance = g_strdup (self->inheritance);
182
memcpy (dest->scope, (_vala_array_copy1 (self->scope, _tmp0_), _tmp0_), 2 * sizeof (gchar*));
183
dest->signature = g_strdup (self->signature);
184
dest->typeref = g_strdup (self->typeref);
185
dest->returntype = g_strdup (self->returntype);
189
void ctags_entry_destroy (CTagsEntry* self) {
190
_g_free0 (self->name);
191
_g_free0 (self->kind_name);
192
_g_free0 (self->access);
193
_g_free0 (self->implementation);
194
_g_free0 (self->inheritance);
195
_vala_array_destroy (self->scope, 2, (GDestroyNotify) g_free);
196
_g_free0 (self->signature);
197
_g_free0 (self->typeref);
198
_g_free0 (self->returntype);
202
CTagsEntry* ctags_entry_dup (const CTagsEntry* self) {
204
dup = g_new0 (CTagsEntry, 1);
205
ctags_entry_copy (self, dup);
210
void ctags_entry_free (CTagsEntry* self) {
211
ctags_entry_destroy (self);
216
GType ctags_entry_get_type (void) {
217
static volatile gsize ctags_entry_type_id__volatile = 0;
218
if (g_once_init_enter (&ctags_entry_type_id__volatile)) {
219
GType ctags_entry_type_id;
220
ctags_entry_type_id = g_boxed_type_register_static ("CTagsEntry", (GBoxedCopyFunc) ctags_entry_dup, (GBoxedFreeFunc) ctags_entry_free);
221
g_once_init_leave (&ctags_entry_type_id__volatile, ctags_entry_type_id);
223
return ctags_entry_type_id__volatile;
227
static void dummy_report_real_warn (ValaReport* base, ValaSourceReference* source, const gchar* message) {
229
self = (DummyReport*) base;
230
g_return_if_fail (message != NULL);
234
static void dummy_report_real_err (ValaReport* base, ValaSourceReference* source, const gchar* message) {
236
self = (DummyReport*) base;
237
g_return_if_fail (message != NULL);
241
DummyReport* dummy_report_construct (GType object_type) {
242
DummyReport * self = NULL;
243
self = (DummyReport*) vala_report_construct (object_type);
248
DummyReport* dummy_report_new (void) {
249
return dummy_report_construct (TYPE_DUMMY_REPORT);
253
static void dummy_report_class_init (DummyReportClass * klass) {
254
dummy_report_parent_class = g_type_class_peek_parent (klass);
255
VALA_REPORT_CLASS (klass)->warn = dummy_report_real_warn;
256
VALA_REPORT_CLASS (klass)->err = dummy_report_real_err;
260
static void dummy_report_instance_init (DummyReport * self) {
264
GType dummy_report_get_type (void) {
265
static volatile gsize dummy_report_type_id__volatile = 0;
266
if (g_once_init_enter (&dummy_report_type_id__volatile)) {
267
static const GTypeInfo g_define_type_info = { sizeof (DummyReportClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) dummy_report_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DummyReport), 0, (GInstanceInitFunc) dummy_report_instance_init, NULL };
268
GType dummy_report_type_id;
269
dummy_report_type_id = g_type_register_static (VALA_TYPE_REPORT, "DummyReport", &g_define_type_info, 0);
270
g_once_init_leave (&dummy_report_type_id__volatile, dummy_report_type_id);
272
return dummy_report_type_id__volatile;
276
static void _ctags_entry_free0_ (gpointer var) {
277
(var == NULL) ? NULL : (var = (ctags_entry_free (var), NULL));
281
static void _g_list_free__ctags_entry_free0_ (GList* self) {
282
g_list_foreach (self, (GFunc) _ctags_entry_free0_, NULL);
287
CTagsVisitor* ctags_visitor_construct (GType object_type) {
288
CTagsVisitor* self = NULL;
289
ValaParser* _tmp0_ = NULL;
291
ValaGenieParser* _tmp2_ = NULL;
292
ValaGenieParser* _tmp3_;
293
self = (CTagsVisitor*) vala_code_visitor_construct (object_type);
294
_tmp0_ = vala_parser_new ();
296
_vala_code_visitor_unref0 (self->priv->vala_parser);
297
self->priv->vala_parser = _tmp1_;
298
_tmp2_ = vala_genie_parser_new ();
300
_vala_code_visitor_unref0 (self->priv->genie_parser);
301
self->priv->genie_parser = _tmp3_;
306
CTagsVisitor* ctags_visitor_new (void) {
307
return ctags_visitor_construct (TYPE_CTAGS_VISITOR);
311
static gchar* ctags_visitor_get_access (ValaSymbol* sym) {
312
gchar* result = NULL;
313
ValaSymbolAccessibility _tmp0_;
314
g_return_val_if_fail (sym != NULL, NULL);
315
_tmp0_ = vala_symbol_get_access (sym);
317
case VALA_SYMBOL_ACCESSIBILITY_PRIVATE:
320
_tmp1_ = g_strdup ("private");
324
case VALA_SYMBOL_ACCESSIBILITY_INTERNAL:
327
_tmp2_ = g_strdup ("internal");
331
case VALA_SYMBOL_ACCESSIBILITY_PROTECTED:
334
_tmp3_ = g_strdup ("protected");
338
case VALA_SYMBOL_ACCESSIBILITY_PUBLIC:
341
_tmp4_ = g_strdup ("public");
346
g_assert_not_reached ();
350
static gchar* ctags_visitor_to_string (ValaIterable* seq, const gchar* sep) {
351
gchar* result = NULL;
352
GString* _tmp0_ = NULL;
356
g_return_val_if_fail (seq != NULL, NULL);
357
g_return_val_if_fail (sep != NULL, NULL);
358
_tmp0_ = g_string_new ("");
362
ValaIterator* _tmp1_ = NULL;
363
ValaIterator* _type_it;
364
_tmp1_ = vala_iterable_iterator (seq);
368
gpointer _tmp3_ = NULL;
370
gchar* _tmp4_ = NULL;
372
_tmp2_ = vala_iterator_next (_type_it);
376
_tmp3_ = vala_iterator_get (_type_it);
377
type = (ValaDataType*) _tmp3_;
381
g_string_append (str, sep);
383
_tmp4_ = vala_data_type_to_qualified_string (type, NULL);
385
g_string_append (str, _tmp5_);
387
_vala_code_node_unref0 (type);
389
_vala_iterator_unref0 (_type_it);
391
_tmp6_ = g_strdup (str->str);
393
_g_string_free0 (str);
398
static gpointer _vala_code_node_ref0 (gpointer self) {
399
return self ? vala_code_node_ref (self) : NULL;
403
static void _g_free0_ (gpointer var) {
404
var = (g_free (var), NULL);
408
static void _g_list_free__g_free0_ (GList* self) {
409
g_list_foreach (self, (GFunc) _g_free0_, NULL);
414
static gchar* ctags_visitor_implementation (ValaSymbol* sym) {
415
gchar* result = NULL;
417
GString* _tmp16_ = NULL;
421
g_return_val_if_fail (sym != NULL, NULL);
423
if (VALA_IS_SIGNAL (sym)) {
427
_tmp0_ = _vala_code_node_ref0 (VALA_SIGNAL (sym));
429
_tmp1_ = vala_signal_get_is_virtual (sig);
432
_tmp2_ = g_strdup ("virtual");
433
list = g_list_append (list, _tmp2_);
435
_vala_code_node_unref0 (sig);
437
if (VALA_IS_CLASS (sym)) {
441
_tmp3_ = _vala_code_node_ref0 (VALA_CLASS (sym));
443
_tmp4_ = vala_class_get_is_abstract (cls);
446
_tmp5_ = g_strdup ("abstract");
447
list = g_list_append (list, _tmp5_);
449
_vala_code_node_unref0 (cls);
451
if (VALA_IS_METHOD (sym)) {
455
_tmp6_ = _vala_code_node_ref0 (VALA_METHOD (sym));
457
_tmp7_ = vala_method_get_is_abstract (meth);
460
_tmp8_ = g_strdup ("abstract");
461
list = g_list_append (list, _tmp8_);
464
_tmp9_ = vala_method_get_is_virtual (meth);
467
_tmp10_ = g_strdup ("virtual");
468
list = g_list_append (list, _tmp10_);
471
_vala_code_node_unref0 (meth);
473
if (VALA_IS_PROPERTY (sym)) {
474
ValaProperty* _tmp11_;
477
_tmp11_ = _vala_code_node_ref0 (VALA_PROPERTY (sym));
479
_tmp12_ = vala_property_get_is_abstract (prop);
482
_tmp13_ = g_strdup ("abstract");
483
list = g_list_append (list, _tmp13_);
486
_tmp14_ = vala_property_get_is_virtual (prop);
489
_tmp15_ = g_strdup ("virtual");
490
list = g_list_append (list, _tmp15_);
493
_vala_code_node_unref0 (prop);
495
g_return_val_if_reached (NULL);
500
_tmp16_ = g_string_new ("");
504
GList* str_collection;
506
str_collection = list;
507
for (str_it = str_collection; str_it != NULL; str_it = str_it->next) {
510
_tmp17_ = g_strdup ((const gchar*) str_it->data);
516
g_string_append (ret, ",");
518
g_string_append (ret, str);
523
_tmp18_ = g_strdup (ret->str);
525
_g_string_free0 (ret);
526
__g_list_free__g_free0_0 (list);
531
static gpointer _vala_iterable_ref0 (gpointer self) {
532
return self ? vala_iterable_ref (self) : NULL;
536
static gchar* ctags_visitor_signature (ValaList* parameter) {
537
gchar* result = NULL;
538
GString* _tmp0_ = NULL;
542
g_return_val_if_fail (parameter != NULL, NULL);
543
_tmp0_ = g_string_new ("(");
552
_tmp1_ = _vala_iterable_ref0 (parameter);
554
_tmp2_ = vala_collection_get_size ((ValaCollection*) _p_list);
558
gpointer _tmp3_ = NULL;
561
_p_index = _p_index + 1;
562
if (!(_p_index < _p_size)) {
565
_tmp3_ = vala_list_get (_p_list, _p_index);
566
p = (ValaParameter*) _tmp3_;
570
g_string_append (ret, ",");
572
_tmp4_ = vala_parameter_get_ellipsis (p);
574
g_string_append (ret, "...");
576
ValaDataType* _tmp5_ = NULL;
577
gchar* _tmp6_ = NULL;
579
const gchar* _tmp8_ = NULL;
580
_tmp5_ = vala_variable_get_variable_type ((ValaVariable*) p);
581
_tmp6_ = vala_data_type_to_qualified_string (_tmp5_, NULL);
583
g_string_append (ret, _tmp7_);
585
g_string_append (ret, " ");
586
_tmp8_ = vala_symbol_get_name ((ValaSymbol*) p);
587
g_string_append (ret, _tmp8_);
589
_vala_code_node_unref0 (p);
591
_vala_iterable_unref0 (_p_list);
593
g_string_append (ret, ")");
594
_tmp9_ = g_strdup (ret->str);
596
_g_string_free0 (ret);
601
static void ctags_visitor_scope (ValaSymbol* s, gchar** scope, int scope_length1) {
602
ValaSymbol* _tmp0_ = NULL;
605
gboolean _tmp2_ = FALSE;
606
g_return_if_fail (s != NULL);
607
_tmp0_ = vala_symbol_get_parent_symbol (s);
608
_tmp1_ = _vala_code_node_ref0 (_tmp0_);
611
const gchar* _tmp3_ = NULL;
612
_tmp3_ = vala_symbol_get_name (par);
613
_tmp2_ = _tmp3_ != NULL;
618
const gchar* _tmp10_ = NULL;
621
if (VALA_IS_CLASS (par)) {
624
_tmp4_ = g_strdup ("class");
629
if (VALA_IS_STRUCT (par)) {
632
_tmp6_ = g_strdup ("struct");
637
if (VALA_IS_INTERFACE (par)) {
640
_tmp8_ = g_strdup ("interface");
645
_vala_code_node_unref0 (par);
650
_tmp10_ = vala_symbol_get_name (par);
651
_tmp11_ = g_strdup (_tmp10_);
656
_vala_code_node_unref0 (par);
660
static void ctags_visitor_real_visit_source_file (ValaCodeVisitor* base, ValaSourceFile* source_file) {
662
self = (CTagsVisitor*) base;
663
g_return_if_fail (source_file != NULL);
664
vala_source_file_accept_children (source_file, (ValaCodeVisitor*) self);
668
static gpointer _ctags_entry_dup0 (gpointer self) {
669
return self ? ctags_entry_dup (self) : NULL;
673
static void ctags_visitor_real_visit_class (ValaCodeVisitor* base, ValaClass* cl) {
675
CTagsEntry entry = {0};
676
ValaSourceReference* _tmp0_ = NULL;
678
const gchar* _tmp2_ = NULL;
683
gchar* _tmp7_ = NULL;
685
gchar* _tmp9_ = NULL;
687
ValaList* _tmp11_ = NULL;
689
gchar* _tmp13_ = NULL;
692
self = (CTagsVisitor*) base;
693
g_return_if_fail (cl != NULL);
694
memset (&entry, 0, sizeof (CTagsEntry));
695
_tmp0_ = vala_code_node_get_source_reference ((ValaCodeNode*) cl);
696
_tmp1_ = vala_source_reference_get_first_line (_tmp0_);
697
entry.line_number = _tmp1_;
698
_tmp2_ = vala_symbol_get_name ((ValaSymbol*) cl);
699
_tmp3_ = g_strdup (_tmp2_);
701
_g_free0 (entry.name);
703
_tmp5_ = g_strdup ("class");
705
_g_free0 (entry.kind_name);
706
entry.kind_name = _tmp6_;
708
_tmp7_ = ctags_visitor_get_access ((ValaSymbol*) cl);
710
_g_free0 (entry.access);
711
entry.access = _tmp8_;
712
_tmp9_ = ctags_visitor_implementation ((ValaSymbol*) cl);
714
_g_free0 (entry.implementation);
715
entry.implementation = _tmp10_;
716
_tmp11_ = vala_class_get_base_types (cl);
718
_tmp13_ = ctags_visitor_to_string ((ValaIterable*) _tmp12_, ",");
720
_g_free0 (entry.inheritance);
721
entry.inheritance = _tmp14_;
722
_vala_iterable_unref0 (_tmp12_);
723
ctags_visitor_scope ((ValaSymbol*) cl, entry.scope, 2);
724
_tmp15_ = _ctags_entry_dup0 (&entry);
725
self->priv->taglist = g_list_append (self->priv->taglist, _tmp15_);
726
vala_code_node_accept_children ((ValaCodeNode*) cl, (ValaCodeVisitor*) self);
727
ctags_entry_destroy (&entry);
731
static void ctags_visitor_real_visit_struct (ValaCodeVisitor* base, ValaStruct* st) {
733
CTagsEntry entry = {0};
734
ValaSourceReference* _tmp0_ = NULL;
736
const gchar* _tmp2_ = NULL;
741
gchar* _tmp7_ = NULL;
744
self = (CTagsVisitor*) base;
745
g_return_if_fail (st != NULL);
746
memset (&entry, 0, sizeof (CTagsEntry));
747
_tmp0_ = vala_code_node_get_source_reference ((ValaCodeNode*) st);
748
_tmp1_ = vala_source_reference_get_first_line (_tmp0_);
749
entry.line_number = _tmp1_;
750
_tmp2_ = vala_symbol_get_name ((ValaSymbol*) st);
751
_tmp3_ = g_strdup (_tmp2_);
753
_g_free0 (entry.name);
755
_tmp5_ = g_strdup ("struct");
757
_g_free0 (entry.kind_name);
758
entry.kind_name = _tmp6_;
760
_tmp7_ = ctags_visitor_get_access ((ValaSymbol*) st);
762
_g_free0 (entry.access);
763
entry.access = _tmp8_;
764
ctags_visitor_scope ((ValaSymbol*) st, entry.scope, 2);
765
_tmp9_ = _ctags_entry_dup0 (&entry);
766
self->priv->taglist = g_list_append (self->priv->taglist, _tmp9_);
767
vala_code_node_accept_children ((ValaCodeNode*) st, (ValaCodeVisitor*) self);
768
ctags_entry_destroy (&entry);
772
static void ctags_visitor_real_visit_interface (ValaCodeVisitor* base, ValaInterface* iface) {
774
CTagsEntry entry = {0};
775
ValaSourceReference* _tmp0_ = NULL;
777
const gchar* _tmp2_ = NULL;
782
gchar* _tmp7_ = NULL;
784
ValaList* _tmp9_ = NULL;
786
gchar* _tmp11_ = NULL;
789
self = (CTagsVisitor*) base;
790
g_return_if_fail (iface != NULL);
791
memset (&entry, 0, sizeof (CTagsEntry));
792
_tmp0_ = vala_code_node_get_source_reference ((ValaCodeNode*) iface);
793
_tmp1_ = vala_source_reference_get_first_line (_tmp0_);
794
entry.line_number = _tmp1_;
795
_tmp2_ = vala_symbol_get_name ((ValaSymbol*) iface);
796
_tmp3_ = g_strdup (_tmp2_);
798
_g_free0 (entry.name);
800
_tmp5_ = g_strdup ("interface");
802
_g_free0 (entry.kind_name);
803
entry.kind_name = _tmp6_;
805
_tmp7_ = ctags_visitor_get_access ((ValaSymbol*) iface);
807
_g_free0 (entry.access);
808
entry.access = _tmp8_;
809
_tmp9_ = vala_interface_get_prerequisites (iface);
811
_tmp11_ = ctags_visitor_to_string ((ValaIterable*) _tmp10_, ",");
813
_g_free0 (entry.inheritance);
814
entry.inheritance = _tmp12_;
815
_vala_iterable_unref0 (_tmp10_);
816
ctags_visitor_scope ((ValaSymbol*) iface, entry.scope, 2);
817
_tmp13_ = _ctags_entry_dup0 (&entry);
818
self->priv->taglist = g_list_append (self->priv->taglist, _tmp13_);
819
vala_code_node_accept_children ((ValaCodeNode*) iface, (ValaCodeVisitor*) self);
820
ctags_entry_destroy (&entry);
824
static void ctags_visitor_real_visit_enum (ValaCodeVisitor* base, ValaEnum* en) {
826
CTagsEntry entry = {0};
827
ValaSourceReference* _tmp0_ = NULL;
829
const gchar* _tmp2_ = NULL;
834
gchar* _tmp7_ = NULL;
837
self = (CTagsVisitor*) base;
838
g_return_if_fail (en != NULL);
839
memset (&entry, 0, sizeof (CTagsEntry));
840
_tmp0_ = vala_code_node_get_source_reference ((ValaCodeNode*) en);
841
_tmp1_ = vala_source_reference_get_first_line (_tmp0_);
842
entry.line_number = _tmp1_;
843
_tmp2_ = vala_symbol_get_name ((ValaSymbol*) en);
844
_tmp3_ = g_strdup (_tmp2_);
846
_g_free0 (entry.name);
848
_tmp5_ = g_strdup ("enum");
850
_g_free0 (entry.kind_name);
851
entry.kind_name = _tmp6_;
853
_tmp7_ = ctags_visitor_get_access ((ValaSymbol*) en);
855
_g_free0 (entry.access);
856
entry.access = _tmp8_;
857
ctags_visitor_scope ((ValaSymbol*) en, entry.scope, 2);
858
_tmp9_ = _ctags_entry_dup0 (&entry);
859
self->priv->taglist = g_list_append (self->priv->taglist, _tmp9_);
860
vala_code_node_accept_children ((ValaCodeNode*) en, (ValaCodeVisitor*) self);
861
ctags_entry_destroy (&entry);
865
static void ctags_visitor_real_visit_error_domain (ValaCodeVisitor* base, ValaErrorDomain* edomain) {
867
CTagsEntry entry = {0};
868
ValaSourceReference* _tmp0_ = NULL;
870
const gchar* _tmp2_ = NULL;
875
gchar* _tmp7_ = NULL;
878
self = (CTagsVisitor*) base;
879
g_return_if_fail (edomain != NULL);
880
memset (&entry, 0, sizeof (CTagsEntry));
881
_tmp0_ = vala_code_node_get_source_reference ((ValaCodeNode*) edomain);
882
_tmp1_ = vala_source_reference_get_first_line (_tmp0_);
883
entry.line_number = _tmp1_;
884
_tmp2_ = vala_symbol_get_name ((ValaSymbol*) edomain);
885
_tmp3_ = g_strdup (_tmp2_);
887
_g_free0 (entry.name);
889
_tmp5_ = g_strdup ("errordomain");
891
_g_free0 (entry.kind_name);
892
entry.kind_name = _tmp6_;
894
_tmp7_ = ctags_visitor_get_access ((ValaSymbol*) edomain);
896
_g_free0 (entry.access);
897
entry.access = _tmp8_;
898
ctags_visitor_scope ((ValaSymbol*) edomain, entry.scope, 2);
899
_tmp9_ = _ctags_entry_dup0 (&entry);
900
self->priv->taglist = g_list_append (self->priv->taglist, _tmp9_);
901
vala_code_node_accept_children ((ValaCodeNode*) edomain, (ValaCodeVisitor*) self);
902
ctags_entry_destroy (&entry);
906
static void ctags_visitor_real_visit_enum_value (ValaCodeVisitor* base, ValaEnumValue* ev) {
908
CTagsEntry entry = {0};
909
ValaSourceReference* _tmp0_ = NULL;
911
const gchar* _tmp2_ = NULL;
916
gchar* _tmp7_ = NULL;
919
self = (CTagsVisitor*) base;
920
g_return_if_fail (ev != NULL);
921
memset (&entry, 0, sizeof (CTagsEntry));
922
_tmp0_ = vala_code_node_get_source_reference ((ValaCodeNode*) ev);
923
_tmp1_ = vala_source_reference_get_first_line (_tmp0_);
924
entry.line_number = _tmp1_;
925
_tmp2_ = vala_symbol_get_name ((ValaSymbol*) ev);
926
_tmp3_ = g_strdup (_tmp2_);
928
_g_free0 (entry.name);
930
_tmp5_ = g_strdup ("enumvalue");
932
_g_free0 (entry.kind_name);
933
entry.kind_name = _tmp6_;
935
_tmp7_ = ctags_visitor_get_access ((ValaSymbol*) ev);
937
_g_free0 (entry.access);
938
entry.access = _tmp8_;
939
ctags_visitor_scope ((ValaSymbol*) ev, entry.scope, 2);
940
_tmp9_ = _ctags_entry_dup0 (&entry);
941
self->priv->taglist = g_list_append (self->priv->taglist, _tmp9_);
942
ctags_entry_destroy (&entry);
946
static void ctags_visitor_real_visit_error_code (ValaCodeVisitor* base, ValaErrorCode* ecode) {
948
CTagsEntry entry = {0};
949
const gchar* _tmp0_ = NULL;
954
gchar* _tmp5_ = NULL;
957
self = (CTagsVisitor*) base;
958
g_return_if_fail (ecode != NULL);
959
memset (&entry, 0, sizeof (CTagsEntry));
960
_tmp0_ = vala_symbol_get_name ((ValaSymbol*) ecode);
961
_tmp1_ = g_strdup (_tmp0_);
963
_g_free0 (entry.name);
965
_tmp3_ = g_strdup ("errorcode");
967
_g_free0 (entry.kind_name);
968
entry.kind_name = _tmp4_;
970
_tmp5_ = ctags_visitor_get_access ((ValaSymbol*) ecode);
972
_g_free0 (entry.access);
973
entry.access = _tmp6_;
974
ctags_visitor_scope ((ValaSymbol*) ecode, entry.scope, 2);
975
_tmp7_ = _ctags_entry_dup0 (&entry);
976
self->priv->taglist = g_list_append (self->priv->taglist, _tmp7_);
977
ctags_entry_destroy (&entry);
981
static void ctags_visitor_real_visit_delegate (ValaCodeVisitor* base, ValaDelegate* d) {
983
CTagsEntry entry = {0};
984
ValaSourceReference* _tmp0_ = NULL;
986
const gchar* _tmp2_ = NULL;
991
gchar* _tmp7_ = NULL;
993
ValaDataType* _tmp9_ = NULL;
994
gchar* _tmp10_ = NULL;
996
ValaList* _tmp12_ = NULL;
998
gchar* _tmp14_ = NULL;
1000
CTagsEntry* _tmp16_;
1001
self = (CTagsVisitor*) base;
1002
g_return_if_fail (d != NULL);
1003
memset (&entry, 0, sizeof (CTagsEntry));
1004
_tmp0_ = vala_code_node_get_source_reference ((ValaCodeNode*) d);
1005
_tmp1_ = vala_source_reference_get_first_line (_tmp0_);
1006
entry.line_number = _tmp1_;
1007
_tmp2_ = vala_symbol_get_name ((ValaSymbol*) d);
1008
_tmp3_ = g_strdup (_tmp2_);
1010
_g_free0 (entry.name);
1011
entry.name = _tmp4_;
1012
_tmp5_ = g_strdup ("delegate");
1014
_g_free0 (entry.kind_name);
1015
entry.kind_name = _tmp6_;
1017
_tmp7_ = ctags_visitor_get_access ((ValaSymbol*) d);
1019
_g_free0 (entry.access);
1020
entry.access = _tmp8_;
1021
ctags_visitor_scope ((ValaSymbol*) d, entry.scope, 2);
1022
_tmp9_ = vala_delegate_get_return_type (d);
1023
_tmp10_ = vala_data_type_to_qualified_string (_tmp9_, NULL);
1025
_g_free0 (entry.returntype);
1026
entry.returntype = _tmp11_;
1027
_tmp12_ = vala_delegate_get_parameters (d);
1029
_tmp14_ = ctags_visitor_signature (_tmp13_);
1031
_g_free0 (entry.signature);
1032
entry.signature = _tmp15_;
1033
_vala_iterable_unref0 (_tmp13_);
1034
_tmp16_ = _ctags_entry_dup0 (&entry);
1035
self->priv->taglist = g_list_append (self->priv->taglist, _tmp16_);
1036
ctags_entry_destroy (&entry);
1040
static void ctags_visitor_real_visit_signal (ValaCodeVisitor* base, ValaSignal* sig) {
1041
CTagsVisitor * self;
1042
CTagsEntry entry = {0};
1043
ValaSourceReference* _tmp0_ = NULL;
1045
const gchar* _tmp2_ = NULL;
1050
gchar* _tmp7_ = NULL;
1052
gchar* _tmp9_ = NULL;
1054
ValaDataType* _tmp11_ = NULL;
1055
gchar* _tmp12_ = NULL;
1057
ValaList* _tmp14_ = NULL;
1059
gchar* _tmp16_ = NULL;
1061
CTagsEntry* _tmp18_;
1062
self = (CTagsVisitor*) base;
1063
g_return_if_fail (sig != NULL);
1064
memset (&entry, 0, sizeof (CTagsEntry));
1065
_tmp0_ = vala_code_node_get_source_reference ((ValaCodeNode*) sig);
1066
_tmp1_ = vala_source_reference_get_first_line (_tmp0_);
1067
entry.line_number = _tmp1_;
1068
_tmp2_ = vala_symbol_get_name ((ValaSymbol*) sig);
1069
_tmp3_ = g_strdup (_tmp2_);
1071
_g_free0 (entry.name);
1072
entry.name = _tmp4_;
1073
_tmp5_ = g_strdup ("signal");
1075
_g_free0 (entry.kind_name);
1076
entry.kind_name = _tmp6_;
1078
_tmp7_ = ctags_visitor_get_access ((ValaSymbol*) sig);
1080
_g_free0 (entry.access);
1081
entry.access = _tmp8_;
1082
_tmp9_ = ctags_visitor_implementation ((ValaSymbol*) sig);
1084
_g_free0 (entry.implementation);
1085
entry.implementation = _tmp10_;
1086
ctags_visitor_scope ((ValaSymbol*) sig, entry.scope, 2);
1087
_tmp11_ = vala_signal_get_return_type (sig);
1088
_tmp12_ = vala_data_type_to_qualified_string (_tmp11_, NULL);
1090
_g_free0 (entry.returntype);
1091
entry.returntype = _tmp13_;
1092
_tmp14_ = vala_signal_get_parameters (sig);
1094
_tmp16_ = ctags_visitor_signature (_tmp15_);
1096
_g_free0 (entry.signature);
1097
entry.signature = _tmp17_;
1098
_vala_iterable_unref0 (_tmp15_);
1099
_tmp18_ = _ctags_entry_dup0 (&entry);
1100
self->priv->taglist = g_list_append (self->priv->taglist, _tmp18_);
1101
ctags_entry_destroy (&entry);
1105
static void ctags_visitor_real_visit_field (ValaCodeVisitor* base, ValaField* f) {
1106
CTagsVisitor * self;
1107
CTagsEntry entry = {0};
1108
ValaSourceReference* _tmp0_ = NULL;
1110
const gchar* _tmp2_ = NULL;
1115
gchar* _tmp7_ = NULL;
1117
ValaDataType* _tmp9_ = NULL;
1118
gchar* _tmp10_ = NULL;
1120
CTagsEntry* _tmp12_;
1121
self = (CTagsVisitor*) base;
1122
g_return_if_fail (f != NULL);
1123
memset (&entry, 0, sizeof (CTagsEntry));
1124
_tmp0_ = vala_code_node_get_source_reference ((ValaCodeNode*) f);
1125
_tmp1_ = vala_source_reference_get_first_line (_tmp0_);
1126
entry.line_number = _tmp1_;
1127
_tmp2_ = vala_symbol_get_name ((ValaSymbol*) f);
1128
_tmp3_ = g_strdup (_tmp2_);
1130
_g_free0 (entry.name);
1131
entry.name = _tmp4_;
1132
_tmp5_ = g_strdup ("field");
1134
_g_free0 (entry.kind_name);
1135
entry.kind_name = _tmp6_;
1137
_tmp7_ = ctags_visitor_get_access ((ValaSymbol*) f);
1139
_g_free0 (entry.access);
1140
entry.access = _tmp8_;
1141
ctags_visitor_scope ((ValaSymbol*) f, entry.scope, 2);
1142
_tmp9_ = vala_variable_get_variable_type ((ValaVariable*) f);
1143
_tmp10_ = vala_data_type_to_qualified_string (_tmp9_, NULL);
1145
_g_free0 (entry.typeref);
1146
entry.typeref = _tmp11_;
1147
_tmp12_ = _ctags_entry_dup0 (&entry);
1148
self->priv->taglist = g_list_append (self->priv->taglist, _tmp12_);
1149
ctags_entry_destroy (&entry);
1153
static void ctags_visitor_real_visit_constant (ValaCodeVisitor* base, ValaConstant* c) {
1154
CTagsVisitor * self;
1155
CTagsEntry entry = {0};
1156
ValaSourceReference* _tmp0_ = NULL;
1158
const gchar* _tmp2_ = NULL;
1163
gchar* _tmp7_ = NULL;
1165
ValaDataType* _tmp9_ = NULL;
1166
gchar* _tmp10_ = NULL;
1168
CTagsEntry* _tmp12_;
1169
self = (CTagsVisitor*) base;
1170
g_return_if_fail (c != NULL);
1171
memset (&entry, 0, sizeof (CTagsEntry));
1172
_tmp0_ = vala_code_node_get_source_reference ((ValaCodeNode*) c);
1173
_tmp1_ = vala_source_reference_get_first_line (_tmp0_);
1174
entry.line_number = _tmp1_;
1175
_tmp2_ = vala_symbol_get_name ((ValaSymbol*) c);
1176
_tmp3_ = g_strdup (_tmp2_);
1178
_g_free0 (entry.name);
1179
entry.name = _tmp4_;
1180
_tmp5_ = g_strdup ("field");
1182
_g_free0 (entry.kind_name);
1183
entry.kind_name = _tmp6_;
1185
_tmp7_ = ctags_visitor_get_access ((ValaSymbol*) c);
1187
_g_free0 (entry.access);
1188
entry.access = _tmp8_;
1189
ctags_visitor_scope ((ValaSymbol*) c, entry.scope, 2);
1190
_tmp9_ = vala_constant_get_type_reference (c);
1191
_tmp10_ = vala_data_type_to_qualified_string (_tmp9_, NULL);
1193
_g_free0 (entry.typeref);
1194
entry.typeref = _tmp11_;
1195
_tmp12_ = _ctags_entry_dup0 (&entry);
1196
self->priv->taglist = g_list_append (self->priv->taglist, _tmp12_);
1197
ctags_entry_destroy (&entry);
1201
static void ctags_visitor_real_visit_property (ValaCodeVisitor* base, ValaProperty* prop) {
1202
CTagsVisitor * self;
1203
CTagsEntry entry = {0};
1204
ValaSourceReference* _tmp0_ = NULL;
1206
const gchar* _tmp2_ = NULL;
1211
gchar* _tmp7_ = NULL;
1213
gchar* _tmp9_ = NULL;
1215
ValaDataType* _tmp11_ = NULL;
1216
gchar* _tmp12_ = NULL;
1218
CTagsEntry* _tmp14_;
1219
self = (CTagsVisitor*) base;
1220
g_return_if_fail (prop != NULL);
1221
memset (&entry, 0, sizeof (CTagsEntry));
1222
_tmp0_ = vala_code_node_get_source_reference ((ValaCodeNode*) prop);
1223
_tmp1_ = vala_source_reference_get_first_line (_tmp0_);
1224
entry.line_number = _tmp1_;
1225
_tmp2_ = vala_symbol_get_name ((ValaSymbol*) prop);
1226
_tmp3_ = g_strdup (_tmp2_);
1228
_g_free0 (entry.name);
1229
entry.name = _tmp4_;
1230
_tmp5_ = g_strdup ("property");
1232
_g_free0 (entry.kind_name);
1233
entry.kind_name = _tmp6_;
1235
_tmp7_ = ctags_visitor_get_access ((ValaSymbol*) prop);
1237
_g_free0 (entry.access);
1238
entry.access = _tmp8_;
1239
_tmp9_ = ctags_visitor_implementation ((ValaSymbol*) prop);
1241
_g_free0 (entry.implementation);
1242
entry.implementation = _tmp10_;
1243
ctags_visitor_scope ((ValaSymbol*) prop, entry.scope, 2);
1244
_tmp11_ = vala_property_get_property_type (prop);
1245
_tmp12_ = vala_data_type_to_qualified_string (_tmp11_, NULL);
1247
_g_free0 (entry.typeref);
1248
entry.typeref = _tmp13_;
1249
_tmp14_ = _ctags_entry_dup0 (&entry);
1250
self->priv->taglist = g_list_append (self->priv->taglist, _tmp14_);
1251
ctags_entry_destroy (&entry);
1255
static void ctags_visitor_real_visit_method (ValaCodeVisitor* base, ValaMethod* m) {
1256
CTagsVisitor * self;
1257
CTagsEntry entry = {0};
1258
ValaSourceReference* _tmp0_ = NULL;
1260
const gchar* _tmp2_ = NULL;
1265
gchar* _tmp7_ = NULL;
1267
gchar* _tmp9_ = NULL;
1269
ValaDataType* _tmp11_ = NULL;
1270
gchar* _tmp12_ = NULL;
1272
ValaList* _tmp14_ = NULL;
1274
gchar* _tmp16_ = NULL;
1276
CTagsEntry* _tmp18_;
1277
self = (CTagsVisitor*) base;
1278
g_return_if_fail (m != NULL);
1279
memset (&entry, 0, sizeof (CTagsEntry));
1280
_tmp0_ = vala_code_node_get_source_reference ((ValaCodeNode*) m);
1281
_tmp1_ = vala_source_reference_get_first_line (_tmp0_);
1282
entry.line_number = _tmp1_;
1283
_tmp2_ = vala_symbol_get_name ((ValaSymbol*) m);
1284
_tmp3_ = g_strdup (_tmp2_);
1286
_g_free0 (entry.name);
1287
entry.name = _tmp4_;
1288
_tmp5_ = g_strdup ("method");
1290
_g_free0 (entry.kind_name);
1291
entry.kind_name = _tmp6_;
1293
_tmp7_ = ctags_visitor_get_access ((ValaSymbol*) m);
1295
_g_free0 (entry.access);
1296
entry.access = _tmp8_;
1297
_tmp9_ = ctags_visitor_implementation ((ValaSymbol*) m);
1299
_g_free0 (entry.implementation);
1300
entry.implementation = _tmp10_;
1301
ctags_visitor_scope ((ValaSymbol*) m, entry.scope, 2);
1302
_tmp11_ = vala_method_get_return_type (m);
1303
_tmp12_ = vala_data_type_to_qualified_string (_tmp11_, NULL);
1305
_g_free0 (entry.returntype);
1306
entry.returntype = _tmp13_;
1307
_tmp14_ = vala_method_get_parameters (m);
1309
_tmp16_ = ctags_visitor_signature (_tmp15_);
1311
_g_free0 (entry.signature);
1312
entry.signature = _tmp17_;
1313
_vala_iterable_unref0 (_tmp15_);
1314
_tmp18_ = _ctags_entry_dup0 (&entry);
1315
self->priv->taglist = g_list_append (self->priv->taglist, _tmp18_);
1316
ctags_entry_destroy (&entry);
1320
static void ctags_visitor_real_visit_local_variable (ValaCodeVisitor* base, ValaLocalVariable* local) {
1321
CTagsVisitor * self;
1322
CTagsEntry entry = {0};
1323
ValaSourceReference* _tmp0_ = NULL;
1325
const gchar* _tmp2_ = NULL;
1330
gchar* _tmp7_ = NULL;
1333
self = (CTagsVisitor*) base;
1334
g_return_if_fail (local != NULL);
1335
memset (&entry, 0, sizeof (CTagsEntry));
1336
_tmp0_ = vala_code_node_get_source_reference ((ValaCodeNode*) local);
1337
_tmp1_ = vala_source_reference_get_first_line (_tmp0_);
1338
entry.line_number = _tmp1_;
1339
_tmp2_ = vala_symbol_get_name ((ValaSymbol*) local);
1340
_tmp3_ = g_strdup (_tmp2_);
1342
_g_free0 (entry.name);
1343
entry.name = _tmp4_;
1344
_tmp5_ = g_strdup ("local");
1346
_g_free0 (entry.kind_name);
1347
entry.kind_name = _tmp6_;
1349
_tmp7_ = ctags_visitor_get_access ((ValaSymbol*) local);
1351
_g_free0 (entry.access);
1352
entry.access = _tmp8_;
1353
_tmp9_ = _ctags_entry_dup0 (&entry);
1354
self->priv->taglist = g_list_append (self->priv->taglist, _tmp9_);
1355
ctags_entry_destroy (&entry);
1359
void ctags_visitor_parse_vala (CTagsVisitor* self, const gchar* filename, CTagsEntryMaker maker) {
1361
ValaCodeContext* _tmp1_ = NULL;
1362
ValaCodeContext* context;
1363
DummyReport* _tmp2_ = NULL;
1364
DummyReport* _tmp3_;
1365
ValaSourceFileType _tmp4_ = 0;
1367
ValaSourceFile* _tmp6_ = NULL;
1368
ValaSourceFile* source_file;
1370
g_return_if_fail (self != NULL);
1371
g_return_if_fail (filename != NULL);
1373
__g_list_free__ctags_entry_free0_0 (self->priv->taglist);
1374
self->priv->taglist = _tmp0_;
1375
_tmp1_ = vala_code_context_new ();
1377
_tmp2_ = dummy_report_new ();
1379
vala_code_context_set_report (context, (ValaReport*) _tmp3_);
1380
_g_object_unref0 (_tmp3_);
1381
_tmp5_ = g_str_has_suffix (filename, "vapi");
1383
_tmp4_ = VALA_SOURCE_FILE_TYPE_PACKAGE;
1385
_tmp4_ = VALA_SOURCE_FILE_TYPE_SOURCE;
1387
_tmp6_ = vala_source_file_new (context, _tmp4_, filename, NULL);
1388
source_file = _tmp6_;
1389
vala_code_context_push (context);
1390
vala_code_context_add_source_file (context, source_file);
1391
vala_parser_parse (self->priv->vala_parser, context);
1392
vala_code_context_accept (context, (ValaCodeVisitor*) self);
1394
GList* tagentry_collection;
1396
tagentry_collection = self->priv->taglist;
1397
for (tagentry_it = tagentry_collection; tagentry_it != NULL; tagentry_it = tagentry_it->next) {
1399
CTagsEntry* tagentry;
1400
_tmp7_ = _ctags_entry_dup0 ((CTagsEntry*) tagentry_it->data);
1404
_ctags_entry_free0 (tagentry);
1409
__g_list_free__ctags_entry_free0_0 (self->priv->taglist);
1410
self->priv->taglist = _tmp8_;
1411
vala_code_context_pop ();
1412
_vala_source_file_unref0 (source_file);
1413
_vala_code_context_unref0 (context);
1417
void ctags_visitor_parse_genie (CTagsVisitor* self, const gchar* filename, CTagsEntryMaker maker) {
1419
ValaCodeContext* _tmp1_ = NULL;
1420
ValaCodeContext* context;
1421
DummyReport* _tmp2_ = NULL;
1422
DummyReport* _tmp3_;
1423
ValaSourceFile* _tmp4_ = NULL;
1424
ValaSourceFile* source_file;
1426
g_return_if_fail (self != NULL);
1427
g_return_if_fail (filename != NULL);
1429
__g_list_free__ctags_entry_free0_0 (self->priv->taglist);
1430
self->priv->taglist = _tmp0_;
1431
_tmp1_ = vala_code_context_new ();
1433
_tmp2_ = dummy_report_new ();
1435
vala_code_context_set_report (context, (ValaReport*) _tmp3_);
1436
_g_object_unref0 (_tmp3_);
1437
_tmp4_ = vala_source_file_new (context, VALA_SOURCE_FILE_TYPE_SOURCE, filename, NULL);
1438
source_file = _tmp4_;
1439
vala_code_context_add_source_file (context, source_file);
1440
vala_code_context_push (context);
1441
vala_genie_parser_parse (self->priv->genie_parser, context);
1442
vala_code_context_accept (context, (ValaCodeVisitor*) self);
1444
GList* tagentry_collection;
1446
tagentry_collection = self->priv->taglist;
1447
for (tagentry_it = tagentry_collection; tagentry_it != NULL; tagentry_it = tagentry_it->next) {
1449
CTagsEntry* tagentry;
1450
_tmp5_ = _ctags_entry_dup0 ((CTagsEntry*) tagentry_it->data);
1454
_ctags_entry_free0 (tagentry);
1459
__g_list_free__ctags_entry_free0_0 (self->priv->taglist);
1460
self->priv->taglist = _tmp6_;
1461
vala_code_context_pop ();
1462
_vala_source_file_unref0 (source_file);
1463
_vala_code_context_unref0 (context);
1467
static void ctags_visitor_class_init (CTagsVisitorClass * klass) {
1468
ctags_visitor_parent_class = g_type_class_peek_parent (klass);
1469
VALA_CODE_VISITOR_CLASS (klass)->finalize = ctags_visitor_finalize;
1470
g_type_class_add_private (klass, sizeof (CTagsVisitorPrivate));
1471
VALA_CODE_VISITOR_CLASS (klass)->visit_source_file = ctags_visitor_real_visit_source_file;
1472
VALA_CODE_VISITOR_CLASS (klass)->visit_class = ctags_visitor_real_visit_class;
1473
VALA_CODE_VISITOR_CLASS (klass)->visit_struct = ctags_visitor_real_visit_struct;
1474
VALA_CODE_VISITOR_CLASS (klass)->visit_interface = ctags_visitor_real_visit_interface;
1475
VALA_CODE_VISITOR_CLASS (klass)->visit_enum = ctags_visitor_real_visit_enum;
1476
VALA_CODE_VISITOR_CLASS (klass)->visit_error_domain = ctags_visitor_real_visit_error_domain;
1477
VALA_CODE_VISITOR_CLASS (klass)->visit_enum_value = ctags_visitor_real_visit_enum_value;
1478
VALA_CODE_VISITOR_CLASS (klass)->visit_error_code = ctags_visitor_real_visit_error_code;
1479
VALA_CODE_VISITOR_CLASS (klass)->visit_delegate = ctags_visitor_real_visit_delegate;
1480
VALA_CODE_VISITOR_CLASS (klass)->visit_signal = ctags_visitor_real_visit_signal;
1481
VALA_CODE_VISITOR_CLASS (klass)->visit_field = ctags_visitor_real_visit_field;
1482
VALA_CODE_VISITOR_CLASS (klass)->visit_constant = ctags_visitor_real_visit_constant;
1483
VALA_CODE_VISITOR_CLASS (klass)->visit_property = ctags_visitor_real_visit_property;
1484
VALA_CODE_VISITOR_CLASS (klass)->visit_method = ctags_visitor_real_visit_method;
1485
VALA_CODE_VISITOR_CLASS (klass)->visit_local_variable = ctags_visitor_real_visit_local_variable;
1489
static void ctags_visitor_instance_init (CTagsVisitor * self) {
1490
self->priv = CTAGS_VISITOR_GET_PRIVATE (self);
1494
static void ctags_visitor_finalize (ValaCodeVisitor* obj) {
1495
CTagsVisitor * self;
1496
self = CTAGS_VISITOR (obj);
1497
_vala_code_visitor_unref0 (self->priv->vala_parser);
1498
_vala_code_visitor_unref0 (self->priv->genie_parser);
1499
__g_list_free__ctags_entry_free0_0 (self->priv->taglist);
1500
VALA_CODE_VISITOR_CLASS (ctags_visitor_parent_class)->finalize (obj);
1504
GType ctags_visitor_get_type (void) {
1505
static volatile gsize ctags_visitor_type_id__volatile = 0;
1506
if (g_once_init_enter (&ctags_visitor_type_id__volatile)) {
1507
static const GTypeInfo g_define_type_info = { sizeof (CTagsVisitorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) ctags_visitor_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (CTagsVisitor), 0, (GInstanceInitFunc) ctags_visitor_instance_init, NULL };
1508
GType ctags_visitor_type_id;
1509
ctags_visitor_type_id = g_type_register_static (VALA_TYPE_CODE_VISITOR, "CTagsVisitor", &g_define_type_info, 0);
1510
g_once_init_leave (&ctags_visitor_type_id__volatile, ctags_visitor_type_id);
1512
return ctags_visitor_type_id__volatile;
1516
static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
1517
if ((array != NULL) && (destroy_func != NULL)) {
1519
for (i = 0; i < array_length; i = i + 1) {
1520
if (((gpointer*) array)[i] != NULL) {
1521
destroy_func (((gpointer*) array)[i]);
1528
static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
1529
_vala_array_destroy (array, array_length, destroy_func);