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