xref: /Universal-ctags/optlib/mesonOptions.c (revision 57835cd4fc9319a16d4806aee3f34b951b88a1e3) !
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