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