@@ -46,6 +46,9 @@ static void initializeMesonParser (const langType language)
4646 addLanguageTagMultiTableRegex (language , "main" ,
4747 "^bench_mark[ \t\n]*\\([ \t\n]*'([^']*[^\\\\])'[ \t\n]*" ,
4848 "\\1" , "b" , "{tenter=skipToArgEnd}" , NULL );
49+ addLanguageTagMultiTableRegex (language , "main" ,
50+ "^import[ \t\n]*\\([ \t\n]*'([^']*[^\\\\])'[ \t\n]*" ,
51+ "\\1" , "m" , "{tenter=skipToArgEnd}{_role=imported}" , NULL );
4952 addLanguageTagMultiTableRegex (language , "main" ,
5053 "^project[ \t\n]*\\([ \t\n]*'([^']*[^\\\\])'[ \t\n]*" ,
5154 "\\1" , "P" , "{tenter=skipToArgEnd}" , NULL );
@@ -112,6 +115,9 @@ static void initializeMesonParser (const langType language)
112115 addLanguageTagMultiTableRegex (language , "skipPair" ,
113116 "^bench_mark[ \t\n]*\\([ \t\n]*'([^']*[^\\\\])'[ \t\n]*" ,
114117 "\\1" , "b" , "{tenter=skipToArgEnd}" , NULL );
118+ addLanguageTagMultiTableRegex (language , "skipPair" ,
119+ "^import[ \t\n]*\\([ \t\n]*'([^']*[^\\\\])'[ \t\n]*" ,
120+ "\\1" , "m" , "{tenter=skipToArgEnd}{_role=imported}" , NULL );
115121 addLanguageTagMultiTableRegex (language , "skipPair" ,
116122 "^[])}]" ,
117123 "" , "" , "{tleave}" , NULL );
@@ -145,6 +151,9 @@ static void initializeMesonParser (const langType language)
145151 addLanguageTagMultiTableRegex (language , "common" ,
146152 "^bench_mark[ \t\n]*\\([ \t\n]*'([^']*[^\\\\])'[ \t\n]*" ,
147153 "\\1" , "b" , "{tenter=skipToArgEnd}" , NULL );
154+ addLanguageTagMultiTableRegex (language , "common" ,
155+ "^import[ \t\n]*\\([ \t\n]*'([^']*[^\\\\])'[ \t\n]*" ,
156+ "\\1" , "m" , "{tenter=skipToArgEnd}{_role=imported}" , NULL );
148157 addLanguageTagMultiTableRegex (language , "skipToArgEnd" ,
149158 "^[ \t\n]+" ,
150159 "" , "" , "" , NULL );
@@ -172,6 +181,9 @@ static void initializeMesonParser (const langType language)
172181 addLanguageTagMultiTableRegex (language , "skipToArgEnd" ,
173182 "^bench_mark[ \t\n]*\\([ \t\n]*'([^']*[^\\\\])'[ \t\n]*" ,
174183 "\\1" , "b" , "{tenter=skipToArgEnd}" , NULL );
184+ addLanguageTagMultiTableRegex (language , "skipToArgEnd" ,
185+ "^import[ \t\n]*\\([ \t\n]*'([^']*[^\\\\])'[ \t\n]*" ,
186+ "\\1" , "m" , "{tenter=skipToArgEnd}{_role=imported}" , NULL );
175187 addLanguageTagMultiTableRegex (language , "skipToArgEnd" ,
176188 "^[])}]" ,
177189 "" , "" , "{tleave}" , NULL );
@@ -195,6 +207,9 @@ extern parserDefinition* MesonParser (void)
195207 NULL
196208 };
197209
210+ static roleDefinition MesonModuleRoleTable [] = {
211+ { true, "imported" , "imported" },
212+ };
198213 static kindDefinition MesonKindTable [] = {
199214 {
200215 true, 'P' , "project" , "projects" ,
@@ -220,6 +235,10 @@ extern parserDefinition* MesonParser (void)
220235 {
221236 true, 'r' , "run" , "run targets" ,
222237 },
238+ {
239+ true, 'm' , "module" , "modules" ,
240+ ATTACH_ROLES (MesonModuleRoleTable ),
241+ },
223242 };
224243
225244 parserDefinition * const def = parserNew ("Meson" );
0 commit comments