xref: /Universal-ctags/optlib/meson.ctags (revision 57835cd4fc9319a16d4806aee3f34b951b88a1e3)
10cf77973SMasatake YAMATO#
20cf77973SMasatake YAMATO#  meson.ctags --- multitable regex parser for meson.build files
30cf77973SMasatake YAMATO#
40cf77973SMasatake YAMATO#  Copyright (c) 2020 Masatake YAMATO
50cf77973SMasatake YAMATO#  Copyright (c) 2020 Red Hat, Inc.
60cf77973SMasatake YAMATO#
70cf77973SMasatake YAMATO#  This source code is released for free distribution under the terms of the
80cf77973SMasatake YAMATO#  GNU General Public License version 2 or (at your option) any later version.
90cf77973SMasatake YAMATO#
100cf77973SMasatake YAMATO# References:
110cf77973SMasatake YAMATO#
120cf77973SMasatake YAMATO# - https://mesonbuild.com/Syntax.html
130cf77973SMasatake YAMATO#
140cf77973SMasatake YAMATO
150cf77973SMasatake YAMATO--langdef=Meson
160cf77973SMasatake YAMATO--map-Meson=+(meson.build)
170cf77973SMasatake YAMATO
180cf77973SMasatake YAMATO#
190cf77973SMasatake YAMATO# Kind definitions
200cf77973SMasatake YAMATO#
210cf77973SMasatake YAMATO--kinddef-Meson=P,project,projects
220cf77973SMasatake YAMATO--kinddef-Meson=V,variable,variables
230cf77973SMasatake YAMATO--kinddef-Meson=S,subdir,subdirs
240cf77973SMasatake YAMATO--kinddef-Meson=B,build,build targets
250cf77973SMasatake YAMATO--kinddef-Meson=c,custom,custom targets
260cf77973SMasatake YAMATO--kinddef-Meson=t,test,tests
270cf77973SMasatake YAMATO--kinddef-Meson=b,benchmark,benchmark targets
280cf77973SMasatake YAMATO--kinddef-Meson=r,run,run targets
290cf77973SMasatake YAMATO
300cf77973SMasatake YAMATO#
310cf77973SMasatake YAMATO# Tables declaration
320cf77973SMasatake YAMATO#
330cf77973SMasatake YAMATO--_tabledef-Meson=main
340cf77973SMasatake YAMATO--_tabledef-Meson=mline_string
350cf77973SMasatake YAMATO--_tabledef-Meson=string
360cf77973SMasatake YAMATO--_tabledef-Meson=comment
370cf77973SMasatake YAMATO--_tabledef-Meson=skipPair
380cf77973SMasatake YAMATO--_tabledef-Meson=common
390cf77973SMasatake YAMATO--_tabledef-Meson=skipToArgEnd
400cf77973SMasatake YAMATO
410cf77973SMasatake YAMATO#
420cf77973SMasatake YAMATO# Tables definitions
430cf77973SMasatake YAMATO#
440cf77973SMasatake YAMATO--_mtable-regex-Meson=comment/[^\n]+//
450cf77973SMasatake YAMATO--_mtable-regex-Meson=comment/\n//{tleave}
460cf77973SMasatake YAMATO
470cf77973SMasatake YAMATO--_mtable-regex-Meson=string/\\'//
48*57835cd4SMasatake YAMATO--_mtable-regex-Meson=string/[^\\']+//
490cf77973SMasatake YAMATO--_mtable-regex-Meson=string/'//{tleave}
500cf77973SMasatake YAMATO
510cf77973SMasatake YAMATO--_mtable-regex-Meson=mline_string/'''//{tleave}
520cf77973SMasatake YAMATO--_mtable-regex-Meson=mline_string/[^']+//
530cf77973SMasatake YAMATO--_mtable-regex-Meson=mline_string/.//
540cf77973SMasatake YAMATO
550cf77973SMasatake YAMATO--_mtable-regex-Meson=common/[ \t\n]+//
560cf77973SMasatake YAMATO--_mtable-regex-Meson=common/#//{tenter=comment}
570cf77973SMasatake YAMATO--_mtable-regex-Meson=common/'''//{tenter=mline_string}
580cf77973SMasatake YAMATO--_mtable-regex-Meson=common/'//{tenter=string}
590cf77973SMasatake YAMATO--_mtable-regex-Meson=common/[[({]//{tenter=skipPair}
60*57835cd4SMasatake YAMATO--_mtable-regex-Meson=common/(jar|executable|shared_module|(both_|shared_|static_)?library)[ \t\n]*\([ \t\n]*'([^']*[^\\])'[ \t\n]*/\3/B/{tenter=skipToArgEnd}
61*57835cd4SMasatake YAMATO--_mtable-regex-Meson=common/custom_target[ \t\n]*\([ \t\n]*'([^']*[^\\])'[ \t\n]*/\1/c/{tenter=skipToArgEnd}
62*57835cd4SMasatake YAMATO--_mtable-regex-Meson=common/(alias|run)_target[ \t\n]*\([ \t\n]*'([^']*[^\\])'[ \t\n]*/\2/r/{tenter=skipToArgEnd}
63*57835cd4SMasatake YAMATO--_mtable-regex-Meson=common/bench_mark[ \t\n]*\([ \t\n]*'([^']*[^\\])'[ \t\n]*/\1/b/{tenter=skipToArgEnd}
640cf77973SMasatake YAMATO
650cf77973SMasatake YAMATO--_mtable-extend-Meson=skipPair+common
660cf77973SMasatake YAMATO--_mtable-regex-Meson=skipPair/[])}]//{tleave}
670cf77973SMasatake YAMATO--_mtable-regex-Meson=skipPair/.//
680cf77973SMasatake YAMATO
690cf77973SMasatake YAMATO--_mtable-extend-Meson=skipToArgEnd+skipPair
700cf77973SMasatake YAMATO
710cf77973SMasatake YAMATO--_mtable-extend-Meson=main+common
72*57835cd4SMasatake YAMATO--_mtable-regex-Meson=main/project[ \t\n]*\([ \t\n]*'([^']*[^\\])'[ \t\n]*/\1/P/{tenter=skipToArgEnd}
73*57835cd4SMasatake YAMATO--_mtable-regex-Meson=main/subdir[ \t\n]*\([ \t\n]*'([^']*[^\\])'[ \t\n]*/\1/S/{tenter=skipToArgEnd}
74*57835cd4SMasatake YAMATO--_mtable-regex-Meson=main/test[ \t\n]*\([ \t\n]*'([^']*[^\\])'[ \t\n]*/\1/t/{tenter=skipToArgEnd}
750cf77973SMasatake YAMATO--_mtable-regex-Meson=main/([a-zA-Z_][a-zA-Z_0-9]*)[ \t\n]*=[ \t\n]*/\1/V/
760cf77973SMasatake YAMATO--_mtable-regex-Meson=main/.//
77