16bc1a8acSMasatake YAMATO /*
26bc1a8acSMasatake YAMATO * Generated by ./misc/optlib2c from optlib/systemtap.ctags, Don't edit this manually.
36bc1a8acSMasatake YAMATO */
46bc1a8acSMasatake YAMATO #include "general.h"
56bc1a8acSMasatake YAMATO #include "parse.h"
66bc1a8acSMasatake YAMATO #include "routines.h"
76bc1a8acSMasatake YAMATO #include "field.h"
86bc1a8acSMasatake YAMATO #include "xtag.h"
96bc1a8acSMasatake YAMATO
106bc1a8acSMasatake YAMATO
initializeSystemTapParser(const langType language)116bc1a8acSMasatake YAMATO static void initializeSystemTapParser (const langType language)
126bc1a8acSMasatake YAMATO {
136bc1a8acSMasatake YAMATO
146bc1a8acSMasatake YAMATO addLanguageRegexTable (language, "main");
156bc1a8acSMasatake YAMATO addLanguageRegexTable (language, "comment");
166bc1a8acSMasatake YAMATO addLanguageRegexTable (language, "any");
176bc1a8acSMasatake YAMATO addLanguageRegexTable (language, "skipWhiteSpace");
186bc1a8acSMasatake YAMATO addLanguageRegexTable (language, "skipLiteral");
196bc1a8acSMasatake YAMATO addLanguageRegexTable (language, "ssliteral");
206bc1a8acSMasatake YAMATO addLanguageRegexTable (language, "dsliteral");
216bc1a8acSMasatake YAMATO addLanguageRegexTable (language, "arraysize");
226bc1a8acSMasatake YAMATO addLanguageRegexTable (language, "stmtend");
236bc1a8acSMasatake YAMATO addLanguageRegexTable (language, "probe");
246bc1a8acSMasatake YAMATO addLanguageRegexTable (language, "probeBody");
256bc1a8acSMasatake YAMATO addLanguageRegexTable (language, "probeStmt");
266bc1a8acSMasatake YAMATO addLanguageRegexTable (language, "func");
276bc1a8acSMasatake YAMATO addLanguageRegexTable (language, "funcSig");
286bc1a8acSMasatake YAMATO addLanguageRegexTable (language, "funcBody");
296bc1a8acSMasatake YAMATO addLanguageRegexTable (language, "funcStmt");
306bc1a8acSMasatake YAMATO addLanguageRegexTable (language, "cfuncStmt");
316bc1a8acSMasatake YAMATO addLanguageRegexTable (language, "vars");
326bc1a8acSMasatake YAMATO addLanguageRegexTable (language, "macro");
336bc1a8acSMasatake YAMATO addLanguageRegexTable (language, "macroSig");
346bc1a8acSMasatake YAMATO addLanguageRegexTable (language, "macroBody");
356bc1a8acSMasatake YAMATO addLanguageRegexTable (language, "macroStmt");
366bc1a8acSMasatake YAMATO addLanguageRegexTable (language, "comment_multiline");
376bc1a8acSMasatake YAMATO addLanguageRegexTable (language, "comment_oneline");
386bc1a8acSMasatake YAMATO
396bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "main",
406bc1a8acSMasatake YAMATO "^[^#/'\"pfg@%]+",
416bc1a8acSMasatake YAMATO "", "", "", NULL);
426bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "main",
436bc1a8acSMasatake YAMATO "^probe[[:space:]]+",
446bc1a8acSMasatake YAMATO "", "", "{tenter=probe}", NULL);
456bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "main",
466bc1a8acSMasatake YAMATO "^\\#",
476bc1a8acSMasatake YAMATO "", "", "{tenter=comment_oneline}", NULL);
486bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "main",
496bc1a8acSMasatake YAMATO "^/\\*",
506bc1a8acSMasatake YAMATO "", "", "{tenter=comment_multiline}", NULL);
516bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "main",
526bc1a8acSMasatake YAMATO "^//",
536bc1a8acSMasatake YAMATO "", "", "{tenter=comment_oneline}", NULL);
546bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "main",
556bc1a8acSMasatake YAMATO "^@define[[:space:]]+",
566bc1a8acSMasatake YAMATO "", "", "{tenter=macro}", NULL);
576bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "main",
586bc1a8acSMasatake YAMATO "^function[[:space:]]+",
596bc1a8acSMasatake YAMATO "", "", "{tenter=func}", NULL);
606bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "main",
616bc1a8acSMasatake YAMATO "^global[[:space:]]+",
626bc1a8acSMasatake YAMATO "", "", "{tenter=vars}", NULL);
636bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "main",
646bc1a8acSMasatake YAMATO "^%[\\{(]",
656bc1a8acSMasatake YAMATO "", "", "{tenter=cfuncStmt}", NULL);
666bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "main",
676bc1a8acSMasatake YAMATO "^.",
686bc1a8acSMasatake YAMATO "", "", "", NULL);
696bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "comment",
706bc1a8acSMasatake YAMATO "^\\#",
716bc1a8acSMasatake YAMATO "", "", "{tenter=comment_oneline}", NULL);
726bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "comment",
736bc1a8acSMasatake YAMATO "^/\\*",
746bc1a8acSMasatake YAMATO "", "", "{tenter=comment_multiline}", NULL);
756bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "comment",
766bc1a8acSMasatake YAMATO "^//",
776bc1a8acSMasatake YAMATO "", "", "{tenter=comment_oneline}", NULL);
786bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "any",
796bc1a8acSMasatake YAMATO "^.",
806bc1a8acSMasatake YAMATO "", "", "", NULL);
816bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "skipWhiteSpace",
826bc1a8acSMasatake YAMATO "^[ \t\n]+",
836bc1a8acSMasatake YAMATO "", "", "", NULL);
846bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "skipLiteral",
856bc1a8acSMasatake YAMATO "^\"",
866bc1a8acSMasatake YAMATO "", "", "{tenter=dsliteral}", NULL);
876bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "skipLiteral",
886bc1a8acSMasatake YAMATO "^'",
896bc1a8acSMasatake YAMATO "", "", "{tenter=ssliteral}", NULL);
906bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "ssliteral",
916bc1a8acSMasatake YAMATO "^[^']*'",
926bc1a8acSMasatake YAMATO "", "", "{tleave}", NULL);
936bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "ssliteral",
946bc1a8acSMasatake YAMATO "^[^']+",
956bc1a8acSMasatake YAMATO "", "", "", NULL);
966bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "dsliteral",
976bc1a8acSMasatake YAMATO "^[^\"\\\\]+",
986bc1a8acSMasatake YAMATO "", "", "", NULL);
996bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "dsliteral",
1006bc1a8acSMasatake YAMATO "^\"",
1016bc1a8acSMasatake YAMATO "", "", "{tleave}", NULL);
1026bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "dsliteral",
1036bc1a8acSMasatake YAMATO "^\\\\.",
1046bc1a8acSMasatake YAMATO "", "", "", NULL);
1056bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "arraysize",
1066bc1a8acSMasatake YAMATO "^[^]/#]+",
1076bc1a8acSMasatake YAMATO "", "", "", NULL);
1086bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "arraysize",
1096bc1a8acSMasatake YAMATO "^]",
1106bc1a8acSMasatake YAMATO "", "", "{tleave}", NULL);
1116bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "arraysize",
1126bc1a8acSMasatake YAMATO "^.",
1136bc1a8acSMasatake YAMATO "", "", "", NULL);
1146bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "stmtend",
1156bc1a8acSMasatake YAMATO "^",
1166bc1a8acSMasatake YAMATO "", "", "{tleave}{scope=pop}", NULL);
1176bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "probe",
1186bc1a8acSMasatake YAMATO "^([[:alpha:]_][[:alnum:]_.]*)[[:space:]]*\\+?=[[:space:]]*",
1196bc1a8acSMasatake YAMATO "\\1", "p", "{tenter=probeBody}{scope=push}", NULL);
1206bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "probe",
1216bc1a8acSMasatake YAMATO "^([[:alpha:]_][[:alnum:]_.]*)[[:space:]]*",
1226bc1a8acSMasatake YAMATO "", "", "{tenter=probeBody}{scope=push}", NULL);
1236bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "probeBody",
1246bc1a8acSMasatake YAMATO "^[^\\{/#'\"]+",
1256bc1a8acSMasatake YAMATO "", "", "", NULL);
1266bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "probeBody",
1276bc1a8acSMasatake YAMATO "^\\{",
1286bc1a8acSMasatake YAMATO "", "", "{tenter=probeStmt,stmtend}", NULL);
1296bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "probeBody",
1306bc1a8acSMasatake YAMATO "^\"",
1316bc1a8acSMasatake YAMATO "", "", "{tenter=dsliteral}", NULL);
1326bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "probeBody",
1336bc1a8acSMasatake YAMATO "^'",
1346bc1a8acSMasatake YAMATO "", "", "{tenter=ssliteral}", NULL);
1356bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "probeBody",
1366bc1a8acSMasatake YAMATO "^\\#",
1376bc1a8acSMasatake YAMATO "", "", "{tenter=comment_oneline}", NULL);
1386bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "probeBody",
1396bc1a8acSMasatake YAMATO "^/\\*",
1406bc1a8acSMasatake YAMATO "", "", "{tenter=comment_multiline}", NULL);
1416bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "probeBody",
1426bc1a8acSMasatake YAMATO "^//",
1436bc1a8acSMasatake YAMATO "", "", "{tenter=comment_oneline}", NULL);
1446bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "probeBody",
1456bc1a8acSMasatake YAMATO "^.",
1466bc1a8acSMasatake YAMATO "", "", "", NULL);
1476bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "probeStmt",
1486bc1a8acSMasatake YAMATO "^[^\\{\\}/#'\"]+",
1496bc1a8acSMasatake YAMATO "", "", "", NULL);
1506bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "probeStmt",
1516bc1a8acSMasatake YAMATO "^\\}",
1526bc1a8acSMasatake YAMATO "", "", "{tleave}", NULL);
1536bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "probeStmt",
1546bc1a8acSMasatake YAMATO "^\"",
1556bc1a8acSMasatake YAMATO "", "", "{tenter=dsliteral}", NULL);
1566bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "probeStmt",
1576bc1a8acSMasatake YAMATO "^'",
1586bc1a8acSMasatake YAMATO "", "", "{tenter=ssliteral}", NULL);
1596bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "probeStmt",
1606bc1a8acSMasatake YAMATO "^\\{",
1616bc1a8acSMasatake YAMATO "", "", "{tenter=probeStmt}", NULL);
1626bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "probeStmt",
1636bc1a8acSMasatake YAMATO "^\\#",
1646bc1a8acSMasatake YAMATO "", "", "{tenter=comment_oneline}", NULL);
1656bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "probeStmt",
1666bc1a8acSMasatake YAMATO "^/\\*",
1676bc1a8acSMasatake YAMATO "", "", "{tenter=comment_multiline}", NULL);
1686bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "probeStmt",
1696bc1a8acSMasatake YAMATO "^//",
1706bc1a8acSMasatake YAMATO "", "", "{tenter=comment_oneline}", NULL);
1716bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "probeStmt",
1726bc1a8acSMasatake YAMATO "^.",
1736bc1a8acSMasatake YAMATO "", "", "", NULL);
1746bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "func",
1756bc1a8acSMasatake YAMATO "^([[:alpha:]_][[:alnum:]_]*)(:[[:alpha:]_][[:alnum:]_]*)?[[:space:]]*\\(",
1766bc1a8acSMasatake YAMATO "\\1", "f", "{tenter=funcSig,funcBody}{scope=push}", NULL);
1776bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "funcSig",
1786bc1a8acSMasatake YAMATO "^[^)/]+",
1796bc1a8acSMasatake YAMATO "", "", "", NULL);
1806bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "funcSig",
1816bc1a8acSMasatake YAMATO "^\\)(:[0-9]+)?",
1826bc1a8acSMasatake YAMATO "", "", "{tleave}", NULL);
1836bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "funcSig",
1846bc1a8acSMasatake YAMATO "^\\#",
1856bc1a8acSMasatake YAMATO "", "", "{tenter=comment_oneline}", NULL);
1866bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "funcSig",
1876bc1a8acSMasatake YAMATO "^/\\*",
1886bc1a8acSMasatake YAMATO "", "", "{tenter=comment_multiline}", NULL);
1896bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "funcSig",
1906bc1a8acSMasatake YAMATO "^//",
1916bc1a8acSMasatake YAMATO "", "", "{tenter=comment_oneline}", NULL);
1926bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "funcSig",
1936bc1a8acSMasatake YAMATO "^.",
1946bc1a8acSMasatake YAMATO "", "", "", NULL);
1956bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "funcBody",
1966bc1a8acSMasatake YAMATO "^[^\\{%'\"#]+",
1976bc1a8acSMasatake YAMATO "", "", "", NULL);
1986bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "funcBody",
1996bc1a8acSMasatake YAMATO "^\\{",
2006bc1a8acSMasatake YAMATO "", "", "{tenter=funcStmt,stmtend}", NULL);
2016bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "funcBody",
2026bc1a8acSMasatake YAMATO "^%[\\{(]",
2036bc1a8acSMasatake YAMATO "", "", "{tenter=cfuncStmt,stmtend}", NULL);
2046bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "funcBody",
2056bc1a8acSMasatake YAMATO "^\\#",
2066bc1a8acSMasatake YAMATO "", "", "{tenter=comment_oneline}", NULL);
2076bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "funcBody",
2086bc1a8acSMasatake YAMATO "^/\\*",
2096bc1a8acSMasatake YAMATO "", "", "{tenter=comment_multiline}", NULL);
2106bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "funcBody",
2116bc1a8acSMasatake YAMATO "^//",
2126bc1a8acSMasatake YAMATO "", "", "{tenter=comment_oneline}", NULL);
2136bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "funcBody",
2146bc1a8acSMasatake YAMATO "^.",
2156bc1a8acSMasatake YAMATO "", "", "", NULL);
2166bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "funcStmt",
2176bc1a8acSMasatake YAMATO "^[^%/#'\"\\{\\}]+",
2186bc1a8acSMasatake YAMATO "", "", "", NULL);
2196bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "funcStmt",
2206bc1a8acSMasatake YAMATO "^\\}",
2216bc1a8acSMasatake YAMATO "", "", "{tleave}", NULL);
2226bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "funcStmt",
2236bc1a8acSMasatake YAMATO "^\"",
2246bc1a8acSMasatake YAMATO "", "", "{tenter=dsliteral}", NULL);
2256bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "funcStmt",
2266bc1a8acSMasatake YAMATO "^'",
2276bc1a8acSMasatake YAMATO "", "", "{tenter=ssliteral}", NULL);
2286bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "funcStmt",
2296bc1a8acSMasatake YAMATO "^\\#",
2306bc1a8acSMasatake YAMATO "", "", "{tenter=comment_oneline}", NULL);
2316bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "funcStmt",
2326bc1a8acSMasatake YAMATO "^/\\*",
2336bc1a8acSMasatake YAMATO "", "", "{tenter=comment_multiline}", NULL);
2346bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "funcStmt",
2356bc1a8acSMasatake YAMATO "^//",
2366bc1a8acSMasatake YAMATO "", "", "{tenter=comment_oneline}", NULL);
2376bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "funcStmt",
2386bc1a8acSMasatake YAMATO "^%[\\{(]",
2396bc1a8acSMasatake YAMATO "", "", "{tenter=cfuncStmt}", NULL);
2406bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "funcStmt",
2416bc1a8acSMasatake YAMATO "^\\{",
2426bc1a8acSMasatake YAMATO "", "", "{tenter=funcStmt}", NULL);
2436bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "funcStmt",
2446bc1a8acSMasatake YAMATO "^.",
2456bc1a8acSMasatake YAMATO "", "", "", NULL);
2466bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "cfuncStmt",
2476bc1a8acSMasatake YAMATO "^[^%/#'\"]+",
2486bc1a8acSMasatake YAMATO "", "", "", NULL);
2496bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "cfuncStmt",
2506bc1a8acSMasatake YAMATO "^\\#",
2516bc1a8acSMasatake YAMATO "", "", "{tenter=comment_oneline}", NULL);
2526bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "cfuncStmt",
2536bc1a8acSMasatake YAMATO "^/\\*",
2546bc1a8acSMasatake YAMATO "", "", "{tenter=comment_multiline}", NULL);
2556bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "cfuncStmt",
2566bc1a8acSMasatake YAMATO "^//",
2576bc1a8acSMasatake YAMATO "", "", "{tenter=comment_oneline}", NULL);
2586bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "cfuncStmt",
2596bc1a8acSMasatake YAMATO "^\"",
2606bc1a8acSMasatake YAMATO "", "", "{tenter=dsliteral}", NULL);
2616bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "cfuncStmt",
2626bc1a8acSMasatake YAMATO "^'",
2636bc1a8acSMasatake YAMATO "", "", "{tenter=ssliteral}", NULL);
2646bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "cfuncStmt",
2656bc1a8acSMasatake YAMATO "^%[\\})]",
2666bc1a8acSMasatake YAMATO "", "", "{tleave}", NULL);
2676bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "cfuncStmt",
2686bc1a8acSMasatake YAMATO "^%[\\{(]",
2696bc1a8acSMasatake YAMATO "", "", "{tenter=cfuncStmt}", NULL);
2706bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "cfuncStmt",
2716bc1a8acSMasatake YAMATO "^.",
2726bc1a8acSMasatake YAMATO "", "", "", NULL);
2736bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "vars",
2746bc1a8acSMasatake YAMATO "^([[:alpha:]_][[:alnum:]_]*)%?",
2756bc1a8acSMasatake YAMATO "\\1", "v", "", NULL);
2766bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "vars",
2776bc1a8acSMasatake YAMATO "^[\n]",
2786bc1a8acSMasatake YAMATO "", "", "{tleave}", NULL);
2796bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "vars",
2806bc1a8acSMasatake YAMATO "^,[[:space:]]*",
2816bc1a8acSMasatake YAMATO "", "", "{tjump=vars}", NULL);
2826bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "vars",
2836bc1a8acSMasatake YAMATO "^\\#",
2846bc1a8acSMasatake YAMATO "", "", "{tenter=comment_oneline}", NULL);
2856bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "vars",
2866bc1a8acSMasatake YAMATO "^/\\*",
2876bc1a8acSMasatake YAMATO "", "", "{tenter=comment_multiline}", NULL);
2886bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "vars",
2896bc1a8acSMasatake YAMATO "^//",
2906bc1a8acSMasatake YAMATO "", "", "{tenter=comment_oneline}", NULL);
2916bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "vars",
2926bc1a8acSMasatake YAMATO "^\"",
2936bc1a8acSMasatake YAMATO "", "", "{tenter=dsliteral}", NULL);
2946bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "vars",
2956bc1a8acSMasatake YAMATO "^'",
2966bc1a8acSMasatake YAMATO "", "", "{tenter=ssliteral}", NULL);
2976bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "vars",
2986bc1a8acSMasatake YAMATO "^\\[",
2996bc1a8acSMasatake YAMATO "", "", "{tenter=arraysize}", NULL);
3006bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "vars",
3016bc1a8acSMasatake YAMATO "^.",
3026bc1a8acSMasatake YAMATO "", "", "", NULL);
3036bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "macro",
3046bc1a8acSMasatake YAMATO "^([[:alpha:]_][[:alnum:]_]*)[[:space:]]*\\(",
3056bc1a8acSMasatake YAMATO "\\1", "m", "{tenter=macroSig,macroBody}{scope=push}", NULL);
3066bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "macro",
3076bc1a8acSMasatake YAMATO "^([[:alpha:]_][[:alnum:]_]*)[[:space:]]*",
3086bc1a8acSMasatake YAMATO "\\1", "m", "{tenter=macroBody,stmtend}{scope=push}", NULL);
3096bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "macroSig",
3106bc1a8acSMasatake YAMATO "^[^#/)]+",
3116bc1a8acSMasatake YAMATO "", "", "", NULL);
3126bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "macroSig",
3136bc1a8acSMasatake YAMATO "^\\)",
3146bc1a8acSMasatake YAMATO "", "", "{tleave}", NULL);
3156bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "macroSig",
3166bc1a8acSMasatake YAMATO "^\\#",
3176bc1a8acSMasatake YAMATO "", "", "{tenter=comment_oneline}", NULL);
3186bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "macroSig",
3196bc1a8acSMasatake YAMATO "^/\\*",
3206bc1a8acSMasatake YAMATO "", "", "{tenter=comment_multiline}", NULL);
3216bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "macroSig",
3226bc1a8acSMasatake YAMATO "^//",
3236bc1a8acSMasatake YAMATO "", "", "{tenter=comment_oneline}", NULL);
3246bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "macroSig",
3256bc1a8acSMasatake YAMATO "^.",
3266bc1a8acSMasatake YAMATO "", "", "", NULL);
3276bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "macroBody",
3286bc1a8acSMasatake YAMATO "^[^%#/)]+",
3296bc1a8acSMasatake YAMATO "", "", "", NULL);
3306bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "macroBody",
3316bc1a8acSMasatake YAMATO "^%\\(",
3326bc1a8acSMasatake YAMATO "", "", "{tenter=macroStmt,stmtend}", NULL);
3336bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "macroBody",
3346bc1a8acSMasatake YAMATO "^\\#",
3356bc1a8acSMasatake YAMATO "", "", "{tenter=comment_oneline}", NULL);
3366bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "macroBody",
3376bc1a8acSMasatake YAMATO "^/\\*",
3386bc1a8acSMasatake YAMATO "", "", "{tenter=comment_multiline}", NULL);
3396bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "macroBody",
3406bc1a8acSMasatake YAMATO "^//",
3416bc1a8acSMasatake YAMATO "", "", "{tenter=comment_oneline}", NULL);
3426bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "macroBody",
3436bc1a8acSMasatake YAMATO "^.",
3446bc1a8acSMasatake YAMATO "", "", "", NULL);
3456bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "macroStmt",
3466bc1a8acSMasatake YAMATO "^[^#/%'\"]+",
3476bc1a8acSMasatake YAMATO "", "", "", NULL);
3486bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "macroStmt",
3496bc1a8acSMasatake YAMATO "^%\\)",
3506bc1a8acSMasatake YAMATO "", "", "{tleave}", NULL);
3516bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "macroStmt",
3526bc1a8acSMasatake YAMATO "^\"",
3536bc1a8acSMasatake YAMATO "", "", "{tenter=dsliteral}", NULL);
3546bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "macroStmt",
3556bc1a8acSMasatake YAMATO "^'",
3566bc1a8acSMasatake YAMATO "", "", "{tenter=ssliteral}", NULL);
3576bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "macroStmt",
3586bc1a8acSMasatake YAMATO "^\\#",
3596bc1a8acSMasatake YAMATO "", "", "{tenter=comment_oneline}", NULL);
3606bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "macroStmt",
3616bc1a8acSMasatake YAMATO "^/\\*",
3626bc1a8acSMasatake YAMATO "", "", "{tenter=comment_multiline}", NULL);
3636bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "macroStmt",
3646bc1a8acSMasatake YAMATO "^//",
3656bc1a8acSMasatake YAMATO "", "", "{tenter=comment_oneline}", NULL);
3666bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "macroStmt",
3676bc1a8acSMasatake YAMATO "^%\\(",
3686bc1a8acSMasatake YAMATO "", "", "{tenter=macroStmt}", NULL);
3696bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "macroStmt",
3706bc1a8acSMasatake YAMATO "^.",
3716bc1a8acSMasatake YAMATO "", "", "", NULL);
3726bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "comment_multiline",
3736bc1a8acSMasatake YAMATO "^[^*]+",
3746bc1a8acSMasatake YAMATO "", "", "", NULL);
3756bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "comment_multiline",
3766bc1a8acSMasatake YAMATO "^\\*/",
3776bc1a8acSMasatake YAMATO "", "", "{tleave}", NULL);
3786bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "comment_multiline",
3796bc1a8acSMasatake YAMATO "^.",
3806bc1a8acSMasatake YAMATO "", "", "", NULL);
3816bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "comment_oneline",
3826bc1a8acSMasatake YAMATO "^[^\n]*\n",
3836bc1a8acSMasatake YAMATO "", "", "{tleave}", NULL);
3846bc1a8acSMasatake YAMATO addLanguageTagMultiTableRegex (language, "comment_oneline",
3856bc1a8acSMasatake YAMATO "^.",
3866bc1a8acSMasatake YAMATO "", "", "", NULL);
3876bc1a8acSMasatake YAMATO }
3886bc1a8acSMasatake YAMATO
SystemTapParser(void)3896bc1a8acSMasatake YAMATO extern parserDefinition* SystemTapParser (void)
3906bc1a8acSMasatake YAMATO {
3916bc1a8acSMasatake YAMATO static const char *const extensions [] = {
3926bc1a8acSMasatake YAMATO "stp",
3936bc1a8acSMasatake YAMATO "stpm",
3946bc1a8acSMasatake YAMATO NULL
3956bc1a8acSMasatake YAMATO };
3966bc1a8acSMasatake YAMATO
3976bc1a8acSMasatake YAMATO static const char *const aliases [] = {
398*aa4b8b8fSMasatake YAMATO "stap",
3996bc1a8acSMasatake YAMATO NULL
4006bc1a8acSMasatake YAMATO };
4016bc1a8acSMasatake YAMATO
4026bc1a8acSMasatake YAMATO static const char *const patterns [] = {
4036bc1a8acSMasatake YAMATO NULL
4046bc1a8acSMasatake YAMATO };
4056bc1a8acSMasatake YAMATO
4066bc1a8acSMasatake YAMATO static kindDefinition SystemTapKindTable [] = {
4076bc1a8acSMasatake YAMATO {
4086bc1a8acSMasatake YAMATO true, 'p', "probe", "probe aliases",
4096bc1a8acSMasatake YAMATO },
4106bc1a8acSMasatake YAMATO {
4116bc1a8acSMasatake YAMATO true, 'f', "function", "functions",
4126bc1a8acSMasatake YAMATO },
4136bc1a8acSMasatake YAMATO {
4146bc1a8acSMasatake YAMATO true, 'v', "variable", "variables",
4156bc1a8acSMasatake YAMATO },
4166bc1a8acSMasatake YAMATO {
4176bc1a8acSMasatake YAMATO true, 'm', "macro", "macros",
4186bc1a8acSMasatake YAMATO },
4196bc1a8acSMasatake YAMATO };
4206bc1a8acSMasatake YAMATO
4216bc1a8acSMasatake YAMATO parserDefinition* const def = parserNew ("SystemTap");
4226bc1a8acSMasatake YAMATO
4236bc1a8acSMasatake YAMATO def->enabled = true;
4246bc1a8acSMasatake YAMATO def->extensions = extensions;
4256bc1a8acSMasatake YAMATO def->patterns = patterns;
4266bc1a8acSMasatake YAMATO def->aliases = aliases;
4276bc1a8acSMasatake YAMATO def->method = METHOD_NOT_CRAFTED|METHOD_REGEX;
4286b1a862eSMasatake YAMATO def->useCork = CORK_QUEUE;
4296bc1a8acSMasatake YAMATO def->kindTable = SystemTapKindTable;
4306bc1a8acSMasatake YAMATO def->kindCount = ARRAY_SIZE(SystemTapKindTable);
4316bc1a8acSMasatake YAMATO def->initialize = initializeSystemTapParser;
4326bc1a8acSMasatake YAMATO
4336bc1a8acSMasatake YAMATO return def;
4346bc1a8acSMasatake YAMATO }
435