geany  1.38
About: Geany is a text editor (using GTK2) with basic features of an integrated development environment (syntax highlighting, code folding, symbol name auto-completion, ...). F: office T: editor programming GTK+ IDE
  Fossies Dox: geany-1.38.tar.bz2  ("unofficial" and yet experimental doxygen-generated source code documentation)  

tm_parser.h
Go to the documentation of this file.
1/*
2*
3* Copyright (c) 2014 The Geany contributors
4*
5* This source code is released for free distribution under the terms of the
6* GNU General Public License.
7*
8*/
9
10#ifndef TM_PARSER_H
11#define TM_PARSER_H
12
13#include <glib.h>
14
15G_BEGIN_DECLS
16
17/**
18 Types of tags. It is a bitmask so that multiple tag types can
19 be used simultaneously by 'OR'-ing them bitwise.
20 e.g. tm_tag_class_t | tm_tag_struct_t
21*/
22typedef enum
23{
24 tm_tag_undef_t = 0, /**< Unknown type */
25 tm_tag_class_t = 1, /**< Class declaration */
26 tm_tag_enum_t = 2, /**< Enum declaration */
27 tm_tag_enumerator_t = 4, /**< Enumerator value */
28 tm_tag_field_t = 8, /**< Field (Java only) */
29 tm_tag_function_t = 16, /**< Function definition */
30 tm_tag_interface_t = 32, /**< Interface (Java only) */
31 tm_tag_member_t = 64, /**< Member variable of class/struct */
32 tm_tag_method_t = 128, /**< Class method (Java only) */
33 tm_tag_namespace_t = 256, /**< Namespace declaration */
34 tm_tag_package_t = 512, /**< Package (Java only) */
35 tm_tag_prototype_t = 1024, /**< Function prototype */
36 tm_tag_struct_t = 2048, /**< Struct declaration */
37 tm_tag_typedef_t = 4096, /**< Typedef */
38 tm_tag_union_t = 8192, /**< Union */
39 tm_tag_variable_t = 16384, /**< Variable */
40 tm_tag_externvar_t = 32768, /**< Extern or forward declaration */
41 tm_tag_macro_t = 65536, /**< Macro (without arguments) */
42 tm_tag_macro_with_arg_t = 131072, /**< Parameterized macro */
43 tm_tag_file_t = 262144, /**< File (Pseudo tag) - obsolete */
44 tm_tag_other_t = 524288, /**< Other (non C/C++/Java tag) */
45 tm_tag_max_t = 1048575 /**< Maximum value of TMTagType */
47
48
49/** @gironly
50 * A integral type which can hold known parser type IDs
51 **/
52typedef gint TMParserType;
53
54
55#ifdef GEANY_PRIVATE
56
57/* keep in sync with tm_parsers.h and parser_map in tm_parser.c */
58enum
59{
60 TM_PARSER_NONE = -2, /* keep in sync with ctags LANG_IGNORE */
61 TM_PARSER_C = 0,
62 TM_PARSER_CPP,
63 TM_PARSER_JAVA,
64 TM_PARSER_MAKEFILE,
65 TM_PARSER_PASCAL,
66 TM_PARSER_PERL,
67 TM_PARSER_PHP,
68 TM_PARSER_PYTHON,
69 TM_PARSER_LATEX,
70 TM_PARSER_ASM,
71 TM_PARSER_CONF,
72 TM_PARSER_SQL,
73 TM_PARSER_DOCBOOK,
74 TM_PARSER_ERLANG,
75 TM_PARSER_CSS,
76 TM_PARSER_RUBY,
77 TM_PARSER_TCL,
78 TM_PARSER_SH,
79 TM_PARSER_D,
80 TM_PARSER_FORTRAN,
81 TM_PARSER_FERITE,
82 TM_PARSER_DIFF,
83 TM_PARSER_VHDL,
84 TM_PARSER_LUA,
85 TM_PARSER_JAVASCRIPT,
86 TM_PARSER_HASKELL,
87 TM_PARSER_CSHARP,
88 TM_PARSER_FREEBASIC,
89 TM_PARSER_HAXE,
90 TM_PARSER_REST,
91 TM_PARSER_HTML,
92 TM_PARSER_F77,
93 TM_PARSER_GLSL,
94 TM_PARSER_MATLAB,
95 TM_PARSER_VALA,
96 TM_PARSER_ACTIONSCRIPT,
97 TM_PARSER_NSIS,
98 TM_PARSER_MARKDOWN,
99 TM_PARSER_TXT2TAGS,
100 TM_PARSER_ABC,
101 TM_PARSER_VERILOG,
102 TM_PARSER_R,
103 TM_PARSER_COBOL,
104 TM_PARSER_OBJC,
105 TM_PARSER_ASCIIDOC,
106 TM_PARSER_ABAQUS,
107 TM_PARSER_RUST,
108 TM_PARSER_GO,
109 TM_PARSER_JSON,
110 TM_PARSER_ZEPHIR,
111 TM_PARSER_POWERSHELL,
112 TM_PARSER_JULIA,
113 TM_PARSER_BIBTEX,
114 TM_PARSER_COUNT
115};
116
117
119
121
123
125
127
129
131
132#endif /* GEANY_PRIVATE */
133
134G_END_DECLS
135
136#endif /* TM_PARSER_H */
gboolean tm_parser_has_full_context(TMParserType lang)
Definition: tm_parser.c:794
gchar tm_parser_get_tag_kind(TMTagType type, TMParserType lang)
Definition: tm_parser.c:629
const gchar * tm_parser_context_separator(TMParserType lang)
Definition: tm_parser.c:764
gboolean tm_parser_langs_compatible(TMParserType lang, TMParserType other)
Definition: tm_parser.c:838
void tm_parser_verify_type_mappings(void)
Definition: tm_parser.c:704
TMTagType tm_parser_get_subparser_type(TMParserType lang, TMParserType sublang, TMTagType type)
Definition: tm_parser.c:673
TMTagType tm_parser_get_tag_type(gchar kind, TMParserType lang)
Definition: tm_parser.c:613
TMTagType
Types of tags.
Definition: tm_parser.h:23
@ tm_tag_function_t
Function definition.
Definition: tm_parser.h:29
@ tm_tag_package_t
Package (Java only)
Definition: tm_parser.h:34
@ tm_tag_interface_t
Interface (Java only)
Definition: tm_parser.h:30
@ tm_tag_field_t
Field (Java only)
Definition: tm_parser.h:28
@ tm_tag_class_t
Class declaration.
Definition: tm_parser.h:25
@ tm_tag_enumerator_t
Enumerator value.
Definition: tm_parser.h:27
@ tm_tag_file_t
File (Pseudo tag) - obsolete.
Definition: tm_parser.h:43
@ tm_tag_undef_t
Unknown type.
Definition: tm_parser.h:24
@ tm_tag_max_t
Maximum value of TMTagType.
Definition: tm_parser.h:45
@ tm_tag_member_t
Member variable of class/struct.
Definition: tm_parser.h:31
@ tm_tag_method_t
Class method (Java only)
Definition: tm_parser.h:32
@ tm_tag_union_t
Union.
Definition: tm_parser.h:38
@ tm_tag_struct_t
Struct declaration.
Definition: tm_parser.h:36
@ tm_tag_macro_with_arg_t
Parameterized macro.
Definition: tm_parser.h:42
@ tm_tag_namespace_t
Namespace declaration.
Definition: tm_parser.h:33
@ tm_tag_variable_t
Variable.
Definition: tm_parser.h:39
@ tm_tag_other_t
Other (non C/C++/Java tag)
Definition: tm_parser.h:44
@ tm_tag_prototype_t
Function prototype.
Definition: tm_parser.h:35
@ tm_tag_typedef_t
Typedef.
Definition: tm_parser.h:37
@ tm_tag_externvar_t
Extern or forward declaration.
Definition: tm_parser.h:40
@ tm_tag_enum_t
Enum declaration.
Definition: tm_parser.h:26
@ tm_tag_macro_t
Macro (without arguments)
Definition: tm_parser.h:41
gint TMParserType
Definition: tm_parser.h:52