xref: /Universal-ctags/optlib/rpmMacros.c (revision 29197a38632d1338f634b72a1c8f368d57352778)
1*936b20ceSMasatake YAMATO /*
2*936b20ceSMasatake YAMATO  * Generated by ./misc/optlib2c from optlib/rpmMacros.ctags, Don't edit this manually.
3*936b20ceSMasatake YAMATO  */
4*936b20ceSMasatake YAMATO #include "general.h"
5*936b20ceSMasatake YAMATO #include "parse.h"
6*936b20ceSMasatake YAMATO #include "routines.h"
7*936b20ceSMasatake YAMATO #include "field.h"
8*936b20ceSMasatake YAMATO #include "xtag.h"
9*936b20ceSMasatake YAMATO 
10*936b20ceSMasatake YAMATO 
initializeRpmMacrosParser(const langType language)11*936b20ceSMasatake YAMATO static void initializeRpmMacrosParser (const langType language)
12*936b20ceSMasatake YAMATO {
13*936b20ceSMasatake YAMATO 
14*936b20ceSMasatake YAMATO 	addLanguageRegexTable (language, "main");
15*936b20ceSMasatake YAMATO 	addLanguageRegexTable (language, "contline");
16*936b20ceSMasatake YAMATO 
17*936b20ceSMasatake YAMATO 	addLanguageTagMultiTableRegex (language, "main",
18*936b20ceSMasatake YAMATO 	                               "^#[^\n]*\n?",
19*936b20ceSMasatake YAMATO 	                               "", "", "", NULL);
20*936b20ceSMasatake YAMATO 	addLanguageTagMultiTableRegex (language, "main",
21*936b20ceSMasatake YAMATO 	                               "^%([_a-zA-Z0-9]+)(\\([^)]*\\))*[^\n]*([^\n])\n?",
22*936b20ceSMasatake YAMATO 	                               "\\1", "m", ""
23*936b20ceSMasatake YAMATO 		"{{\n"
24*936b20ceSMasatake YAMATO 		"    \\2 false ne {\n"
25*936b20ceSMasatake YAMATO 		"       . \\2 signature:\n"
26*936b20ceSMasatake YAMATO 		"    } if\n"
27*936b20ceSMasatake YAMATO 		"    \\3 (\\\\) eq {\n"
28*936b20ceSMasatake YAMATO 		"       % push the current tag for attaching end: later\n"
29*936b20ceSMasatake YAMATO 		"       .\n"
30*936b20ceSMasatake YAMATO 		"       % Skip next line if \\ is at the enf of the current line.\n"
31*936b20ceSMasatake YAMATO 		"       /contline _tenter\n"
32*936b20ceSMasatake YAMATO 		"    } if\n"
33*936b20ceSMasatake YAMATO 		"}}", NULL);
34*936b20ceSMasatake YAMATO 	addLanguageTagMultiTableRegex (language, "main",
35*936b20ceSMasatake YAMATO 	                               "^.",
36*936b20ceSMasatake YAMATO 	                               "", "", "", NULL);
37*936b20ceSMasatake YAMATO 	addLanguageTagMultiTableRegex (language, "contline",
38*936b20ceSMasatake YAMATO 	                               "^(\n)",
39*936b20ceSMasatake YAMATO 	                               "", "", ""
40*936b20ceSMasatake YAMATO 		"{{\n"
41*936b20ceSMasatake YAMATO 		"   1 /start _matchloc end:\n"
42*936b20ceSMasatake YAMATO 		"   _tleave\n"
43*936b20ceSMasatake YAMATO 		"}}", NULL);
44*936b20ceSMasatake YAMATO 	addLanguageTagMultiTableRegex (language, "contline",
45*936b20ceSMasatake YAMATO 	                               "^[^\n]*([^\n])\n?",
46*936b20ceSMasatake YAMATO 	                               "", "", ""
47*936b20ceSMasatake YAMATO 		"{{\n"
48*936b20ceSMasatake YAMATO 		"    \\1 (\\\\) eq not {\n"
49*936b20ceSMasatake YAMATO 		"       1 /end _matchloc end:\n"
50*936b20ceSMasatake YAMATO 		"       _tleave\n"
51*936b20ceSMasatake YAMATO 		"    } if\n"
52*936b20ceSMasatake YAMATO 		"}}", NULL);
53*936b20ceSMasatake YAMATO }
54*936b20ceSMasatake YAMATO 
RpmMacrosParser(void)55*936b20ceSMasatake YAMATO extern parserDefinition* RpmMacrosParser (void)
56*936b20ceSMasatake YAMATO {
57*936b20ceSMasatake YAMATO 	static const char *const extensions [] = {
58*936b20ceSMasatake YAMATO 		NULL
59*936b20ceSMasatake YAMATO 	};
60*936b20ceSMasatake YAMATO 
61*936b20ceSMasatake YAMATO 	static const char *const aliases [] = {
62*936b20ceSMasatake YAMATO 		NULL
63*936b20ceSMasatake YAMATO 	};
64*936b20ceSMasatake YAMATO 
65*936b20ceSMasatake YAMATO 	static const char *const patterns [] = {
66*936b20ceSMasatake YAMATO 		NULL
67*936b20ceSMasatake YAMATO 	};
68*936b20ceSMasatake YAMATO 
69*936b20ceSMasatake YAMATO 	static kindDefinition RpmMacrosKindTable [] = {
70*936b20ceSMasatake YAMATO 		{
71*936b20ceSMasatake YAMATO 		  true, 'm', "macro", "macros",
72*936b20ceSMasatake YAMATO 		},
73*936b20ceSMasatake YAMATO 	};
74*936b20ceSMasatake YAMATO 
75*936b20ceSMasatake YAMATO 	parserDefinition* const def = parserNew ("RpmMacros");
76*936b20ceSMasatake YAMATO 
77*936b20ceSMasatake YAMATO 	def->enabled       = true;
78*936b20ceSMasatake YAMATO 	def->extensions    = extensions;
79*936b20ceSMasatake YAMATO 	def->patterns      = patterns;
80*936b20ceSMasatake YAMATO 	def->aliases       = aliases;
81*936b20ceSMasatake YAMATO 	def->method        = METHOD_NOT_CRAFTED|METHOD_REGEX;
82*936b20ceSMasatake YAMATO 	def->useCork       = CORK_QUEUE;
83*936b20ceSMasatake YAMATO 	def->kindTable     = RpmMacrosKindTable;
84*936b20ceSMasatake YAMATO 	def->kindCount     = ARRAY_SIZE(RpmMacrosKindTable);
85*936b20ceSMasatake YAMATO 	def->initialize    = initializeRpmMacrosParser;
86*936b20ceSMasatake YAMATO 
87*936b20ceSMasatake YAMATO 	return def;
88*936b20ceSMasatake YAMATO }
89