xref: /Universal-ctags/optlib/meson.c (revision 57835cd4fc9319a16d4806aee3f34b951b88a1e3)
10cf77973SMasatake YAMATO /*
20cf77973SMasatake YAMATO  * Generated by ./misc/optlib2c from optlib/meson.ctags, Don't edit this manually.
30cf77973SMasatake YAMATO  */
40cf77973SMasatake YAMATO #include "general.h"
50cf77973SMasatake YAMATO #include "parse.h"
60cf77973SMasatake YAMATO #include "routines.h"
70cf77973SMasatake YAMATO #include "field.h"
80cf77973SMasatake YAMATO #include "xtag.h"
90cf77973SMasatake YAMATO 
100cf77973SMasatake YAMATO 
initializeMesonParser(const langType language)110cf77973SMasatake YAMATO static void initializeMesonParser (const langType language)
120cf77973SMasatake YAMATO {
130cf77973SMasatake YAMATO 
140cf77973SMasatake YAMATO 	addLanguageRegexTable (language, "main");
150cf77973SMasatake YAMATO 	addLanguageRegexTable (language, "mline_string");
160cf77973SMasatake YAMATO 	addLanguageRegexTable (language, "string");
170cf77973SMasatake YAMATO 	addLanguageRegexTable (language, "comment");
180cf77973SMasatake YAMATO 	addLanguageRegexTable (language, "skipPair");
190cf77973SMasatake YAMATO 	addLanguageRegexTable (language, "common");
200cf77973SMasatake YAMATO 	addLanguageRegexTable (language, "skipToArgEnd");
210cf77973SMasatake YAMATO 
220cf77973SMasatake YAMATO 	addLanguageTagMultiTableRegex (language, "main",
230cf77973SMasatake YAMATO 	                               "^[ \t\n]+",
240cf77973SMasatake YAMATO 	                               "", "", "", NULL);
250cf77973SMasatake YAMATO 	addLanguageTagMultiTableRegex (language, "main",
260cf77973SMasatake YAMATO 	                               "^#",
270cf77973SMasatake YAMATO 	                               "", "", "{tenter=comment}", NULL);
280cf77973SMasatake YAMATO 	addLanguageTagMultiTableRegex (language, "main",
290cf77973SMasatake YAMATO 	                               "^'''",
300cf77973SMasatake YAMATO 	                               "", "", "{tenter=mline_string}", NULL);
310cf77973SMasatake YAMATO 	addLanguageTagMultiTableRegex (language, "main",
320cf77973SMasatake YAMATO 	                               "^'",
330cf77973SMasatake YAMATO 	                               "", "", "{tenter=string}", NULL);
340cf77973SMasatake YAMATO 	addLanguageTagMultiTableRegex (language, "main",
350cf77973SMasatake YAMATO 	                               "^[[({]",
360cf77973SMasatake YAMATO 	                               "", "", "{tenter=skipPair}", NULL);
370cf77973SMasatake YAMATO 	addLanguageTagMultiTableRegex (language, "main",
38*57835cd4SMasatake YAMATO 	                               "^(jar|executable|shared_module|(both_|shared_|static_)?library)[ \t\n]*\\([ \t\n]*'([^']*[^\\\\])'[ \t\n]*",
390cf77973SMasatake YAMATO 	                               "\\3", "B", "{tenter=skipToArgEnd}", NULL);
400cf77973SMasatake YAMATO 	addLanguageTagMultiTableRegex (language, "main",
41*57835cd4SMasatake YAMATO 	                               "^custom_target[ \t\n]*\\([ \t\n]*'([^']*[^\\\\])'[ \t\n]*",
420cf77973SMasatake YAMATO 	                               "\\1", "c", "{tenter=skipToArgEnd}", NULL);
430cf77973SMasatake YAMATO 	addLanguageTagMultiTableRegex (language, "main",
44*57835cd4SMasatake YAMATO 	                               "^(alias|run)_target[ \t\n]*\\([ \t\n]*'([^']*[^\\\\])'[ \t\n]*",
450cf77973SMasatake YAMATO 	                               "\\2", "r", "{tenter=skipToArgEnd}", NULL);
460cf77973SMasatake YAMATO 	addLanguageTagMultiTableRegex (language, "main",
47*57835cd4SMasatake YAMATO 	                               "^bench_mark[ \t\n]*\\([ \t\n]*'([^']*[^\\\\])'[ \t\n]*",
480cf77973SMasatake YAMATO 	                               "\\1", "b", "{tenter=skipToArgEnd}", NULL);
490cf77973SMasatake YAMATO 	addLanguageTagMultiTableRegex (language, "main",
50*57835cd4SMasatake YAMATO 	                               "^project[ \t\n]*\\([ \t\n]*'([^']*[^\\\\])'[ \t\n]*",
510cf77973SMasatake YAMATO 	                               "\\1", "P", "{tenter=skipToArgEnd}", NULL);
520cf77973SMasatake YAMATO 	addLanguageTagMultiTableRegex (language, "main",
53*57835cd4SMasatake YAMATO 	                               "^subdir[ \t\n]*\\([ \t\n]*'([^']*[^\\\\])'[ \t\n]*",
540cf77973SMasatake YAMATO 	                               "\\1", "S", "{tenter=skipToArgEnd}", NULL);
550cf77973SMasatake YAMATO 	addLanguageTagMultiTableRegex (language, "main",
56*57835cd4SMasatake YAMATO 	                               "^test[ \t\n]*\\([ \t\n]*'([^']*[^\\\\])'[ \t\n]*",
570cf77973SMasatake YAMATO 	                               "\\1", "t", "{tenter=skipToArgEnd}", NULL);
580cf77973SMasatake YAMATO 	addLanguageTagMultiTableRegex (language, "main",
590cf77973SMasatake YAMATO 	                               "^([a-zA-Z_][a-zA-Z_0-9]*)[ \t\n]*=[ \t\n]*",
600cf77973SMasatake YAMATO 	                               "\\1", "V", "", NULL);
610cf77973SMasatake YAMATO 	addLanguageTagMultiTableRegex (language, "main",
620cf77973SMasatake YAMATO 	                               "^.",
630cf77973SMasatake YAMATO 	                               "", "", "", NULL);
640cf77973SMasatake YAMATO 	addLanguageTagMultiTableRegex (language, "mline_string",
650cf77973SMasatake YAMATO 	                               "^'''",
660cf77973SMasatake YAMATO 	                               "", "", "{tleave}", NULL);
670cf77973SMasatake YAMATO 	addLanguageTagMultiTableRegex (language, "mline_string",
680cf77973SMasatake YAMATO 	                               "^[^']+",
690cf77973SMasatake YAMATO 	                               "", "", "", NULL);
700cf77973SMasatake YAMATO 	addLanguageTagMultiTableRegex (language, "mline_string",
710cf77973SMasatake YAMATO 	                               "^.",
720cf77973SMasatake YAMATO 	                               "", "", "", NULL);
730cf77973SMasatake YAMATO 	addLanguageTagMultiTableRegex (language, "string",
740cf77973SMasatake YAMATO 	                               "^\\\\'",
750cf77973SMasatake YAMATO 	                               "", "", "", NULL);
760cf77973SMasatake YAMATO 	addLanguageTagMultiTableRegex (language, "string",
77*57835cd4SMasatake YAMATO 	                               "^[^\\\\']+",
780cf77973SMasatake YAMATO 	                               "", "", "", NULL);
790cf77973SMasatake YAMATO 	addLanguageTagMultiTableRegex (language, "string",
800cf77973SMasatake YAMATO 	                               "^'",
810cf77973SMasatake YAMATO 	                               "", "", "{tleave}", NULL);
820cf77973SMasatake YAMATO 	addLanguageTagMultiTableRegex (language, "comment",
830cf77973SMasatake YAMATO 	                               "^[^\n]+",
840cf77973SMasatake YAMATO 	                               "", "", "", NULL);
850cf77973SMasatake YAMATO 	addLanguageTagMultiTableRegex (language, "comment",
860cf77973SMasatake YAMATO 	                               "^\n",
870cf77973SMasatake YAMATO 	                               "", "", "{tleave}", NULL);
880cf77973SMasatake YAMATO 	addLanguageTagMultiTableRegex (language, "skipPair",
890cf77973SMasatake YAMATO 	                               "^[ \t\n]+",
900cf77973SMasatake YAMATO 	                               "", "", "", NULL);
910cf77973SMasatake YAMATO 	addLanguageTagMultiTableRegex (language, "skipPair",
920cf77973SMasatake YAMATO 	                               "^#",
930cf77973SMasatake YAMATO 	                               "", "", "{tenter=comment}", NULL);
940cf77973SMasatake YAMATO 	addLanguageTagMultiTableRegex (language, "skipPair",
950cf77973SMasatake YAMATO 	                               "^'''",
960cf77973SMasatake YAMATO 	                               "", "", "{tenter=mline_string}", NULL);
970cf77973SMasatake YAMATO 	addLanguageTagMultiTableRegex (language, "skipPair",
980cf77973SMasatake YAMATO 	                               "^'",
990cf77973SMasatake YAMATO 	                               "", "", "{tenter=string}", NULL);
1000cf77973SMasatake YAMATO 	addLanguageTagMultiTableRegex (language, "skipPair",
1010cf77973SMasatake YAMATO 	                               "^[[({]",
1020cf77973SMasatake YAMATO 	                               "", "", "{tenter=skipPair}", NULL);
1030cf77973SMasatake YAMATO 	addLanguageTagMultiTableRegex (language, "skipPair",
104*57835cd4SMasatake YAMATO 	                               "^(jar|executable|shared_module|(both_|shared_|static_)?library)[ \t\n]*\\([ \t\n]*'([^']*[^\\\\])'[ \t\n]*",
1050cf77973SMasatake YAMATO 	                               "\\3", "B", "{tenter=skipToArgEnd}", NULL);
1060cf77973SMasatake YAMATO 	addLanguageTagMultiTableRegex (language, "skipPair",
107*57835cd4SMasatake YAMATO 	                               "^custom_target[ \t\n]*\\([ \t\n]*'([^']*[^\\\\])'[ \t\n]*",
1080cf77973SMasatake YAMATO 	                               "\\1", "c", "{tenter=skipToArgEnd}", NULL);
1090cf77973SMasatake YAMATO 	addLanguageTagMultiTableRegex (language, "skipPair",
110*57835cd4SMasatake YAMATO 	                               "^(alias|run)_target[ \t\n]*\\([ \t\n]*'([^']*[^\\\\])'[ \t\n]*",
1110cf77973SMasatake YAMATO 	                               "\\2", "r", "{tenter=skipToArgEnd}", NULL);
1120cf77973SMasatake YAMATO 	addLanguageTagMultiTableRegex (language, "skipPair",
113*57835cd4SMasatake YAMATO 	                               "^bench_mark[ \t\n]*\\([ \t\n]*'([^']*[^\\\\])'[ \t\n]*",
1140cf77973SMasatake YAMATO 	                               "\\1", "b", "{tenter=skipToArgEnd}", NULL);
1150cf77973SMasatake YAMATO 	addLanguageTagMultiTableRegex (language, "skipPair",
1160cf77973SMasatake YAMATO 	                               "^[])}]",
1170cf77973SMasatake YAMATO 	                               "", "", "{tleave}", NULL);
1180cf77973SMasatake YAMATO 	addLanguageTagMultiTableRegex (language, "skipPair",
1190cf77973SMasatake YAMATO 	                               "^.",
1200cf77973SMasatake YAMATO 	                               "", "", "", NULL);
1210cf77973SMasatake YAMATO 	addLanguageTagMultiTableRegex (language, "common",
1220cf77973SMasatake YAMATO 	                               "^[ \t\n]+",
1230cf77973SMasatake YAMATO 	                               "", "", "", NULL);
1240cf77973SMasatake YAMATO 	addLanguageTagMultiTableRegex (language, "common",
1250cf77973SMasatake YAMATO 	                               "^#",
1260cf77973SMasatake YAMATO 	                               "", "", "{tenter=comment}", NULL);
1270cf77973SMasatake YAMATO 	addLanguageTagMultiTableRegex (language, "common",
1280cf77973SMasatake YAMATO 	                               "^'''",
1290cf77973SMasatake YAMATO 	                               "", "", "{tenter=mline_string}", NULL);
1300cf77973SMasatake YAMATO 	addLanguageTagMultiTableRegex (language, "common",
1310cf77973SMasatake YAMATO 	                               "^'",
1320cf77973SMasatake YAMATO 	                               "", "", "{tenter=string}", NULL);
1330cf77973SMasatake YAMATO 	addLanguageTagMultiTableRegex (language, "common",
1340cf77973SMasatake YAMATO 	                               "^[[({]",
1350cf77973SMasatake YAMATO 	                               "", "", "{tenter=skipPair}", NULL);
1360cf77973SMasatake YAMATO 	addLanguageTagMultiTableRegex (language, "common",
137*57835cd4SMasatake YAMATO 	                               "^(jar|executable|shared_module|(both_|shared_|static_)?library)[ \t\n]*\\([ \t\n]*'([^']*[^\\\\])'[ \t\n]*",
1380cf77973SMasatake YAMATO 	                               "\\3", "B", "{tenter=skipToArgEnd}", NULL);
1390cf77973SMasatake YAMATO 	addLanguageTagMultiTableRegex (language, "common",
140*57835cd4SMasatake YAMATO 	                               "^custom_target[ \t\n]*\\([ \t\n]*'([^']*[^\\\\])'[ \t\n]*",
1410cf77973SMasatake YAMATO 	                               "\\1", "c", "{tenter=skipToArgEnd}", NULL);
1420cf77973SMasatake YAMATO 	addLanguageTagMultiTableRegex (language, "common",
143*57835cd4SMasatake YAMATO 	                               "^(alias|run)_target[ \t\n]*\\([ \t\n]*'([^']*[^\\\\])'[ \t\n]*",
1440cf77973SMasatake YAMATO 	                               "\\2", "r", "{tenter=skipToArgEnd}", NULL);
1450cf77973SMasatake YAMATO 	addLanguageTagMultiTableRegex (language, "common",
146*57835cd4SMasatake YAMATO 	                               "^bench_mark[ \t\n]*\\([ \t\n]*'([^']*[^\\\\])'[ \t\n]*",
1470cf77973SMasatake YAMATO 	                               "\\1", "b", "{tenter=skipToArgEnd}", NULL);
1480cf77973SMasatake YAMATO 	addLanguageTagMultiTableRegex (language, "skipToArgEnd",
1490cf77973SMasatake YAMATO 	                               "^[ \t\n]+",
1500cf77973SMasatake YAMATO 	                               "", "", "", NULL);
1510cf77973SMasatake YAMATO 	addLanguageTagMultiTableRegex (language, "skipToArgEnd",
1520cf77973SMasatake YAMATO 	                               "^#",
1530cf77973SMasatake YAMATO 	                               "", "", "{tenter=comment}", NULL);
1540cf77973SMasatake YAMATO 	addLanguageTagMultiTableRegex (language, "skipToArgEnd",
1550cf77973SMasatake YAMATO 	                               "^'''",
1560cf77973SMasatake YAMATO 	                               "", "", "{tenter=mline_string}", NULL);
1570cf77973SMasatake YAMATO 	addLanguageTagMultiTableRegex (language, "skipToArgEnd",
1580cf77973SMasatake YAMATO 	                               "^'",
1590cf77973SMasatake YAMATO 	                               "", "", "{tenter=string}", NULL);
1600cf77973SMasatake YAMATO 	addLanguageTagMultiTableRegex (language, "skipToArgEnd",
1610cf77973SMasatake YAMATO 	                               "^[[({]",
1620cf77973SMasatake YAMATO 	                               "", "", "{tenter=skipPair}", NULL);
1630cf77973SMasatake YAMATO 	addLanguageTagMultiTableRegex (language, "skipToArgEnd",
164*57835cd4SMasatake YAMATO 	                               "^(jar|executable|shared_module|(both_|shared_|static_)?library)[ \t\n]*\\([ \t\n]*'([^']*[^\\\\])'[ \t\n]*",
1650cf77973SMasatake YAMATO 	                               "\\3", "B", "{tenter=skipToArgEnd}", NULL);
1660cf77973SMasatake YAMATO 	addLanguageTagMultiTableRegex (language, "skipToArgEnd",
167*57835cd4SMasatake YAMATO 	                               "^custom_target[ \t\n]*\\([ \t\n]*'([^']*[^\\\\])'[ \t\n]*",
1680cf77973SMasatake YAMATO 	                               "\\1", "c", "{tenter=skipToArgEnd}", NULL);
1690cf77973SMasatake YAMATO 	addLanguageTagMultiTableRegex (language, "skipToArgEnd",
170*57835cd4SMasatake YAMATO 	                               "^(alias|run)_target[ \t\n]*\\([ \t\n]*'([^']*[^\\\\])'[ \t\n]*",
1710cf77973SMasatake YAMATO 	                               "\\2", "r", "{tenter=skipToArgEnd}", NULL);
1720cf77973SMasatake YAMATO 	addLanguageTagMultiTableRegex (language, "skipToArgEnd",
173*57835cd4SMasatake YAMATO 	                               "^bench_mark[ \t\n]*\\([ \t\n]*'([^']*[^\\\\])'[ \t\n]*",
1740cf77973SMasatake YAMATO 	                               "\\1", "b", "{tenter=skipToArgEnd}", NULL);
1750cf77973SMasatake YAMATO 	addLanguageTagMultiTableRegex (language, "skipToArgEnd",
1760cf77973SMasatake YAMATO 	                               "^[])}]",
1770cf77973SMasatake YAMATO 	                               "", "", "{tleave}", NULL);
1780cf77973SMasatake YAMATO 	addLanguageTagMultiTableRegex (language, "skipToArgEnd",
1790cf77973SMasatake YAMATO 	                               "^.",
1800cf77973SMasatake YAMATO 	                               "", "", "", NULL);
1810cf77973SMasatake YAMATO }
1820cf77973SMasatake YAMATO 
MesonParser(void)1830cf77973SMasatake YAMATO extern parserDefinition* MesonParser (void)
1840cf77973SMasatake YAMATO {
1850cf77973SMasatake YAMATO 	static const char *const extensions [] = {
1860cf77973SMasatake YAMATO 		NULL
1870cf77973SMasatake YAMATO 	};
1880cf77973SMasatake YAMATO 
1890cf77973SMasatake YAMATO 	static const char *const aliases [] = {
1900cf77973SMasatake YAMATO 		NULL
1910cf77973SMasatake YAMATO 	};
1920cf77973SMasatake YAMATO 
1930cf77973SMasatake YAMATO 	static const char *const patterns [] = {
1940cf77973SMasatake YAMATO 		"meson.build",
1950cf77973SMasatake YAMATO 		NULL
1960cf77973SMasatake YAMATO 	};
1970cf77973SMasatake YAMATO 
1980cf77973SMasatake YAMATO 	static kindDefinition MesonKindTable [] = {
1990cf77973SMasatake YAMATO 		{
2000cf77973SMasatake YAMATO 		  true, 'P', "project", "projects",
2010cf77973SMasatake YAMATO 		},
2020cf77973SMasatake YAMATO 		{
2030cf77973SMasatake YAMATO 		  true, 'V', "variable", "variables",
2040cf77973SMasatake YAMATO 		},
2050cf77973SMasatake YAMATO 		{
2060cf77973SMasatake YAMATO 		  true, 'S', "subdir", "subdirs",
2070cf77973SMasatake YAMATO 		},
2080cf77973SMasatake YAMATO 		{
2090cf77973SMasatake YAMATO 		  true, 'B', "build", "build targets",
2100cf77973SMasatake YAMATO 		},
2110cf77973SMasatake YAMATO 		{
2120cf77973SMasatake YAMATO 		  true, 'c', "custom", "custom targets",
2130cf77973SMasatake YAMATO 		},
2140cf77973SMasatake YAMATO 		{
2150cf77973SMasatake YAMATO 		  true, 't', "test", "tests",
2160cf77973SMasatake YAMATO 		},
2170cf77973SMasatake YAMATO 		{
2180cf77973SMasatake YAMATO 		  true, 'b', "benchmark", "benchmark targets",
2190cf77973SMasatake YAMATO 		},
2200cf77973SMasatake YAMATO 		{
2210cf77973SMasatake YAMATO 		  true, 'r', "run", "run targets",
2220cf77973SMasatake YAMATO 		},
2230cf77973SMasatake YAMATO 	};
2240cf77973SMasatake YAMATO 
2250cf77973SMasatake YAMATO 	parserDefinition* const def = parserNew ("Meson");
2260cf77973SMasatake YAMATO 
2270cf77973SMasatake YAMATO 	def->enabled       = true;
2280cf77973SMasatake YAMATO 	def->extensions    = extensions;
2290cf77973SMasatake YAMATO 	def->patterns      = patterns;
2300cf77973SMasatake YAMATO 	def->aliases       = aliases;
2310cf77973SMasatake YAMATO 	def->method        = METHOD_NOT_CRAFTED|METHOD_REGEX;
2320cf77973SMasatake YAMATO 	def->kindTable     = MesonKindTable;
2330cf77973SMasatake YAMATO 	def->kindCount     = ARRAY_SIZE(MesonKindTable);
2340cf77973SMasatake YAMATO 	def->initialize    = initializeMesonParser;
2350cf77973SMasatake YAMATO 
2360cf77973SMasatake YAMATO 	return def;
2370cf77973SMasatake YAMATO }
238