1 /*
2 * Generated by ./misc/optlib2c from optlib/mesonOptions.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
initializeMesonOptionsParser(const langType language CTAGS_ATTR_UNUSED)11 static void initializeMesonOptionsParser (const langType language CTAGS_ATTR_UNUSED)
12 {
13 }
14
MesonOptionsParser(void)15 extern parserDefinition* MesonOptionsParser (void)
16 {
17 static const char *const extensions [] = {
18 NULL
19 };
20
21 static const char *const aliases [] = {
22 NULL
23 };
24
25 static const char *const patterns [] = {
26 "meson_options.txt",
27 NULL
28 };
29
30 static kindDefinition MesonOptionsKindTable [] = {
31 {
32 true, 's', "string", "strings",
33 },
34 {
35 true, 'b', "boolean", "booleans",
36 },
37 {
38 true, 'c', "combo", "combos",
39 },
40 {
41 true, 'i', "integer", "integers",
42 },
43 {
44 true, 'a', "array", "arrays",
45 },
46 {
47 true, 'f', "feature", "features",
48 },
49 };
50 static tagRegexTable MesonOptionsTagRegexTable [] = {
51 {"^option[ \t\n]*\\([ \t\n]*'([^']*[^\\\\])'[ \t\n]*,[ \t\n]*type[ \t\n]*:[ \t\n]*'([a-z]+)'", "",
52 "", ""
53 "{{\n"
54 " % \\1 points a tag name.\n"
55 " \\1\n"
56 " % \\2 may point a kind. This must be converted to a name from a string.\n"
57 " \\2 cvn\n"
58 " % Push the start position of the group 1.\n"
59 " 1 /start _matchloc\n"
60 " % To skip an unexpected kind name, _tag is wrapped with stopped.\n"
61 " { _tag } stopped {\n"
62 " % Unexpected kind. Clear the stack.\n"
63 " pop pop pop\n"
64 " } {\n"
65 " _commit pop\n"
66 " } ifelse\n"
67 "}}", NULL, true},
68 };
69
70
71 parserDefinition* const def = parserNew ("MesonOptions");
72
73 def->enabled = true;
74 def->extensions = extensions;
75 def->patterns = patterns;
76 def->aliases = aliases;
77 def->method = METHOD_NOT_CRAFTED|METHOD_REGEX;
78 def->useCork = CORK_QUEUE;
79 def->kindTable = MesonOptionsKindTable;
80 def->kindCount = ARRAY_SIZE(MesonOptionsKindTable);
81 def->tagRegexTable = MesonOptionsTagRegexTable;
82 def->tagRegexCount = ARRAY_SIZE(MesonOptionsTagRegexTable);
83 def->initialize = initializeMesonOptionsParser;
84
85 return def;
86 }
87