xref: /Universal-ctags/optlib/meson.ctags (revision 57835cd4fc9319a16d4806aee3f34b951b88a1e3)
1#
2#  meson.ctags --- multitable regex parser for meson.build files
3#
4#  Copyright (c) 2020 Masatake YAMATO
5#  Copyright (c) 2020 Red Hat, Inc.
6#
7#  This source code is released for free distribution under the terms of the
8#  GNU General Public License version 2 or (at your option) any later version.
9#
10# References:
11#
12# - https://mesonbuild.com/Syntax.html
13#
14
15--langdef=Meson
16--map-Meson=+(meson.build)
17
18#
19# Kind definitions
20#
21--kinddef-Meson=P,project,projects
22--kinddef-Meson=V,variable,variables
23--kinddef-Meson=S,subdir,subdirs
24--kinddef-Meson=B,build,build targets
25--kinddef-Meson=c,custom,custom targets
26--kinddef-Meson=t,test,tests
27--kinddef-Meson=b,benchmark,benchmark targets
28--kinddef-Meson=r,run,run targets
29
30#
31# Tables declaration
32#
33--_tabledef-Meson=main
34--_tabledef-Meson=mline_string
35--_tabledef-Meson=string
36--_tabledef-Meson=comment
37--_tabledef-Meson=skipPair
38--_tabledef-Meson=common
39--_tabledef-Meson=skipToArgEnd
40
41#
42# Tables definitions
43#
44--_mtable-regex-Meson=comment/[^\n]+//
45--_mtable-regex-Meson=comment/\n//{tleave}
46
47--_mtable-regex-Meson=string/\\'//
48--_mtable-regex-Meson=string/[^\\']+//
49--_mtable-regex-Meson=string/'//{tleave}
50
51--_mtable-regex-Meson=mline_string/'''//{tleave}
52--_mtable-regex-Meson=mline_string/[^']+//
53--_mtable-regex-Meson=mline_string/.//
54
55--_mtable-regex-Meson=common/[ \t\n]+//
56--_mtable-regex-Meson=common/#//{tenter=comment}
57--_mtable-regex-Meson=common/'''//{tenter=mline_string}
58--_mtable-regex-Meson=common/'//{tenter=string}
59--_mtable-regex-Meson=common/[[({]//{tenter=skipPair}
60--_mtable-regex-Meson=common/(jar|executable|shared_module|(both_|shared_|static_)?library)[ \t\n]*\([ \t\n]*'([^']*[^\\])'[ \t\n]*/\3/B/{tenter=skipToArgEnd}
61--_mtable-regex-Meson=common/custom_target[ \t\n]*\([ \t\n]*'([^']*[^\\])'[ \t\n]*/\1/c/{tenter=skipToArgEnd}
62--_mtable-regex-Meson=common/(alias|run)_target[ \t\n]*\([ \t\n]*'([^']*[^\\])'[ \t\n]*/\2/r/{tenter=skipToArgEnd}
63--_mtable-regex-Meson=common/bench_mark[ \t\n]*\([ \t\n]*'([^']*[^\\])'[ \t\n]*/\1/b/{tenter=skipToArgEnd}
64
65--_mtable-extend-Meson=skipPair+common
66--_mtable-regex-Meson=skipPair/[])}]//{tleave}
67--_mtable-regex-Meson=skipPair/.//
68
69--_mtable-extend-Meson=skipToArgEnd+skipPair
70
71--_mtable-extend-Meson=main+common
72--_mtable-regex-Meson=main/project[ \t\n]*\([ \t\n]*'([^']*[^\\])'[ \t\n]*/\1/P/{tenter=skipToArgEnd}
73--_mtable-regex-Meson=main/subdir[ \t\n]*\([ \t\n]*'([^']*[^\\])'[ \t\n]*/\1/S/{tenter=skipToArgEnd}
74--_mtable-regex-Meson=main/test[ \t\n]*\([ \t\n]*'([^']*[^\\])'[ \t\n]*/\1/t/{tenter=skipToArgEnd}
75--_mtable-regex-Meson=main/([a-zA-Z_][a-zA-Z_0-9]*)[ \t\n]*=[ \t\n]*/\1/V/
76--_mtable-regex-Meson=main/.//
77