xref: /Universal-ctags/optlib/org.c (revision 85c6b72e6cc3de8120bd79a27f976f0dac8e9403)
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