1 /*
2 * Generated by ./misc/optlib2c from optlib/org.ctags, Don't edit this manually.
3 */
4 #include "general.h"
5 #include "parse.h"
6 #include "routines.h"
7 #include "field.h"
8 #include "xtag.h"
9
10
initializeOrgParser(const langType language)11 static void initializeOrgParser (const langType language)
12 {
13
14 addLanguageRegexTable (language, "toplevel");
15 addLanguageRegexTable (language, "srcblock");
16
17 addLanguageTagMultiTableRegex (language, "toplevel",
18 "^[:blank:]*#\\+begin_src[ ]+([a-zA-Z0-9][-#+a-zA-Z0-9]*)",
19 "", "", "{tenter=srcblock}{_guest=\\1,0end,}", NULL);
20 addLanguageTagMultiTableRegex (language, "toplevel",
21 "^\\*\\*\\*\\*\\*\\*\\*[ \t]+([[:graph:][:blank:]]+)([\n])?",
22 "\\1", "G", "", NULL);
23 addLanguageTagMultiTableRegex (language, "toplevel",
24 "^\\*\\*\\*\\*\\*\\*[ \t]+([[:graph:][:blank:]]+)([\n])?",
25 "\\1", "P", "", NULL);
26 addLanguageTagMultiTableRegex (language, "toplevel",
27 "^\\*\\*\\*\\*\\*[ \t]+([[:graph:][:blank:]]+)([\n])?",
28 "\\1", "b", "", NULL);
29 addLanguageTagMultiTableRegex (language, "toplevel",
30 "^\\*\\*\\*\\*[ \t]+([[:graph:][:blank:]]+)([\n])?",
31 "\\1", "u", "", NULL);
32 addLanguageTagMultiTableRegex (language, "toplevel",
33 "^\\*\\*\\*[ \t]+([[:graph:][:blank:]]+)([\n])?",
34 "\\1", "s", "", NULL);
35 addLanguageTagMultiTableRegex (language, "toplevel",
36 "^\\*\\*[ \t]+([[:graph:][:blank:]]+)([\n])?",
37 "\\1", "c", "", NULL);
38 addLanguageTagMultiTableRegex (language, "toplevel",
39 "^\\*[ \t]+([[:graph:][:blank:]]+)([\n])?",
40 "\\1", "p", "", NULL);
41 addLanguageTagMultiTableRegex (language, "toplevel",
42 "^<<([^>]+)>>",
43 "\\1", "d", "", NULL);
44 addLanguageTagMultiTableRegex (language, "toplevel",
45 "^#\\+(NAME|name):[[:blank:]]+([[:graph:][:blank:]]+)([\n])?",
46 "\\2", "d", "", NULL);
47 addLanguageTagMultiTableRegex (language, "toplevel",
48 "^.",
49 "", "", "", NULL);
50 addLanguageTagMultiTableRegex (language, "srcblock",
51 "^[:blank:]*#\\+end_src",
52 "", "", "{tleave}{_guest=,,0end}", NULL);
53 addLanguageTagMultiTableRegex (language, "srcblock",
54 "^.",
55 "", "", "", NULL);
56 }
57
OrgParser(void)58 extern parserDefinition* OrgParser (void)
59 {
60 static const char *const extensions [] = {
61 "org",
62 NULL
63 };
64
65 static const char *const aliases [] = {
66 NULL
67 };
68
69 static const char *const patterns [] = {
70 NULL
71 };
72
73 static kindDefinition OrgKindTable [] = {
74 {
75 true, 'd', "definition", "definitions",
76 },
77 {
78 true, 'p', "part", "parts",
79 },
80 {
81 true, 'c', "chapter", "chapters",
82 },
83 {
84 true, 's', "section", "sections",
85 },
86 {
87 true, 'u', "subsection", "subsections",
88 },
89 {
90 true, 'b', "subsubsection", "subsubsections",
91 },
92 {
93 true, 'P', "paragraph", "paragraphs",
94 },
95 {
96 true, 'G', "subparagraph", "subparagraphs",
97 },
98 };
99
100 parserDefinition* const def = parserNew ("Org");
101
102 def->enabled = true;
103 def->extensions = extensions;
104 def->patterns = patterns;
105 def->aliases = aliases;
106 def->method = METHOD_NOT_CRAFTED|METHOD_REGEX;
107 def->kindTable = OrgKindTable;
108 def->kindCount = ARRAY_SIZE(OrgKindTable);
109 def->initialize = initializeOrgParser;
110
111 return def;
112 }
113