@@ -61,8 +61,17 @@ static void initializeSystemTapParser (const langType language)
6161 "^global[[:space:]]+" ,
6262 "" , "" , "{tenter=vars}" , NULL );
6363 addLanguageTagMultiTableRegex (language , "main" ,
64- "^%[\\{(]" ,
65- "" , "" , "{tenter=cfuncStmt}" , NULL );
64+ "^(%\\{)" ,
65+ "" , "" , "{tenter=cfuncStmt}"
66+ "{{\n"
67+ " 1@ true\n"
68+ "}}" , NULL );
69+ addLanguageTagMultiTableRegex (language , "main" ,
70+ "^%\\(" ,
71+ "" , "" , "{tenter=cfuncStmt}"
72+ "{{\n"
73+ " false\n"
74+ "}}" , NULL );
6675 addLanguageTagMultiTableRegex (language , "main" ,
6776 "^." ,
6877 "" , "" , "" , NULL );
@@ -199,8 +208,17 @@ static void initializeSystemTapParser (const langType language)
199208 "^\\{" ,
200209 "" , "" , "{tenter=funcStmt,stmtend}" , NULL );
201210 addLanguageTagMultiTableRegex (language , "funcBody" ,
202- "^%[\\{(]" ,
203- "" , "" , "{tenter=cfuncStmt,stmtend}" , NULL );
211+ "^(%\\{)" ,
212+ "" , "" , "{tenter=cfuncStmt,stmtend}"
213+ "{{\n"
214+ " 1@ true\n"
215+ "}}" , NULL );
216+ addLanguageTagMultiTableRegex (language , "funcBody" ,
217+ "^%\\(" ,
218+ "" , "" , "{tenter=cfuncStmt,stmtend}"
219+ "{{\n"
220+ " false\n"
221+ "}}" , NULL );
204222 addLanguageTagMultiTableRegex (language , "funcBody" ,
205223 "^\\#" ,
206224 "" , "" , "{tenter=comment_oneline}" , NULL );
@@ -235,8 +253,17 @@ static void initializeSystemTapParser (const langType language)
235253 "^//" ,
236254 "" , "" , "{tenter=comment_oneline}" , NULL );
237255 addLanguageTagMultiTableRegex (language , "funcStmt" ,
238- "^%[\\{(]" ,
239- "" , "" , "{tenter=cfuncStmt}" , NULL );
256+ "^(%\\{)" ,
257+ "" , "" , "{tenter=cfuncStmt}"
258+ "{{\n"
259+ " 1@ true\n"
260+ "}}" , NULL );
261+ addLanguageTagMultiTableRegex (language , "funcStmt" ,
262+ "^%\\(" ,
263+ "" , "" , "{tenter=cfuncStmt}"
264+ "{{\n"
265+ " false\n"
266+ "}}" , NULL );
240267 addLanguageTagMultiTableRegex (language , "funcStmt" ,
241268 "^\\{" ,
242269 "" , "" , "{tenter=funcStmt}" , NULL );
@@ -262,11 +289,31 @@ static void initializeSystemTapParser (const langType language)
262289 "^'" ,
263290 "" , "" , "{tenter=ssliteral}" , NULL );
264291 addLanguageTagMultiTableRegex (language , "cfuncStmt" ,
265- "^%[\\})] " ,
292+ "^%\\) " ,
266293 "" , "" , "{tleave}" , NULL );
267294 addLanguageTagMultiTableRegex (language , "cfuncStmt" ,
268- "^%[\\{(]" ,
269- "" , "" , "{tenter=cfuncStmt}" , NULL );
295+ "^(%\\})" ,
296+ "" , "" , "{tleave}"
297+ "{{\n"
298+ " {\n"
299+ " % TODO: If the function name of SystemTap side can be passed to\n"
300+ " % the C code area, running C parser is meaningfully.\n"
301+ " % However, we have not implemented such a feature yet.\n"
302+ " (CPreProcessor) exch @1 _makepromise { pop } if\n"
303+ " } if\n"
304+ "}}" , NULL );
305+ addLanguageTagMultiTableRegex (language , "cfuncStmt" ,
306+ "^(%\\{)" ,
307+ "" , "" , "{tenter=cfuncStmt}"
308+ "{{\n"
309+ " 1@ true\n"
310+ "}}" , NULL );
311+ addLanguageTagMultiTableRegex (language , "cfuncStmt" ,
312+ "^%\\(" ,
313+ "" , "" , "{tenter=cfuncStmt}"
314+ "{{\n"
315+ " false\n"
316+ "}}" , NULL );
270317 addLanguageTagMultiTableRegex (language , "cfuncStmt" ,
271318 "^." ,
272319 "" , "" , "" , NULL );
0 commit comments