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