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