xref: /Universal-ctags/optlib/systemtap.ctags (revision aa4b8b8f8ff06686268fd17a57ed568b8df78e34)
16bc1a8acSMasatake YAMATO#
26bc1a8acSMasatake YAMATO# systemtap.ctags --- multitable regex parser for SystemTap script file
36bc1a8acSMasatake YAMATO#
46bc1a8acSMasatake YAMATO#  Copyright (c) 2018, Red Hat, Inc.
56bc1a8acSMasatake YAMATO#  Copyright (c) 2018, Masatake YAMATO
66bc1a8acSMasatake YAMATO#
76bc1a8acSMasatake YAMATO#  Author: Masatake YAMATO <yamato@redhat.com>
86bc1a8acSMasatake YAMATO#
96bc1a8acSMasatake YAMATO# This program is free software; you can redistribute it and/or
106bc1a8acSMasatake YAMATO# modify it under the terms of the GNU General Public License
116bc1a8acSMasatake YAMATO# as published by the Free Software Foundation; either version 2
126bc1a8acSMasatake YAMATO# of the License, or (at your option) any later version.
136bc1a8acSMasatake YAMATO#
146bc1a8acSMasatake YAMATO# This program is distributed in the hope that it will be useful,
156bc1a8acSMasatake YAMATO# but WITHOUT ANY WARRANTY; without even the implied warranty of
166bc1a8acSMasatake YAMATO# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
176bc1a8acSMasatake YAMATO# GNU General Public License for more details.
186bc1a8acSMasatake YAMATO#
196bc1a8acSMasatake YAMATO# You should have received a copy of the GNU General Public License
206bc1a8acSMasatake YAMATO# along with this program; if not, write to the Free Software
216bc1a8acSMasatake YAMATO# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
226bc1a8acSMasatake YAMATO# USA.
236bc1a8acSMasatake YAMATO#
246bc1a8acSMasatake YAMATO#
256bc1a8acSMasatake YAMATO# References:
266bc1a8acSMasatake YAMATO#
276bc1a8acSMasatake YAMATO# - https://sourceware.org/systemtap/langref/
286bc1a8acSMasatake YAMATO#
296bc1a8acSMasatake YAMATO--langdef=SystemTap
306bc1a8acSMasatake YAMATO--map-SystemTap=+.stp
316bc1a8acSMasatake YAMATO--map-SystemTap=+.stpm
32*aa4b8b8fSMasatake YAMATO--alias-SystemTap=+stap
336bc1a8acSMasatake YAMATO
346bc1a8acSMasatake YAMATO--kinddef-SystemTap=p,probe,probe aliases
356bc1a8acSMasatake YAMATO--kinddef-SystemTap=f,function,functions
366bc1a8acSMasatake YAMATO--kinddef-SystemTap=v,variable,variables
376bc1a8acSMasatake YAMATO--kinddef-SystemTap=m,macro,macros
386bc1a8acSMasatake YAMATO
396bc1a8acSMasatake YAMATO--_tabledef-SystemTap=main
406bc1a8acSMasatake YAMATO--_tabledef-SystemTap=comment
416bc1a8acSMasatake YAMATO--_tabledef-SystemTap=any
426bc1a8acSMasatake YAMATO--_tabledef-SystemTap=skipWhiteSpace
436bc1a8acSMasatake YAMATO--_tabledef-SystemTap=skipLiteral
446bc1a8acSMasatake YAMATO--_tabledef-SystemTap=ssliteral
456bc1a8acSMasatake YAMATO--_tabledef-SystemTap=dsliteral
466bc1a8acSMasatake YAMATO--_tabledef-SystemTap=arraysize
476bc1a8acSMasatake YAMATO
486bc1a8acSMasatake YAMATO--_tabledef-SystemTap=stmtend
496bc1a8acSMasatake YAMATO
506bc1a8acSMasatake YAMATO--_tabledef-SystemTap=probe
516bc1a8acSMasatake YAMATO--_tabledef-SystemTap=probeBody
526bc1a8acSMasatake YAMATO--_tabledef-SystemTap=probeStmt
536bc1a8acSMasatake YAMATO
546bc1a8acSMasatake YAMATO--_tabledef-SystemTap=func
556bc1a8acSMasatake YAMATO--_tabledef-SystemTap=funcSig
566bc1a8acSMasatake YAMATO--_tabledef-SystemTap=funcBody
576bc1a8acSMasatake YAMATO--_tabledef-SystemTap=funcStmt
586bc1a8acSMasatake YAMATO--_tabledef-SystemTap=cfuncStmt
596bc1a8acSMasatake YAMATO
606bc1a8acSMasatake YAMATO--_tabledef-SystemTap=vars
616bc1a8acSMasatake YAMATO
626bc1a8acSMasatake YAMATO--_tabledef-SystemTap=macro
636bc1a8acSMasatake YAMATO--_tabledef-SystemTap=macroSig
646bc1a8acSMasatake YAMATO--_tabledef-SystemTap=macroBody
656bc1a8acSMasatake YAMATO--_tabledef-SystemTap=macroStmt
666bc1a8acSMasatake YAMATO
676bc1a8acSMasatake YAMATO#
686bc1a8acSMasatake YAMATO# Utilities
696bc1a8acSMasatake YAMATO#
706bc1a8acSMasatake YAMATO--_mtable-regex-SystemTap=any/.//
716bc1a8acSMasatake YAMATO--_mtable-regex-SystemTap=skipWhiteSpace/[ \t\n]+//
726bc1a8acSMasatake YAMATO--_mtable-regex-SystemTap=skipLiteral/"//{tenter=dsliteral}
736bc1a8acSMasatake YAMATO--_mtable-regex-SystemTap=skipLiteral/'//{tenter=ssliteral}
746bc1a8acSMasatake YAMATO--_mtable-regex-SystemTap=ssliteral/[^']*'//{tleave}
756bc1a8acSMasatake YAMATO--_mtable-regex-SystemTap=ssliteral/[^']+//
766bc1a8acSMasatake YAMATO--_mtable-regex-SystemTap=dsliteral/[^"\\]+//
776bc1a8acSMasatake YAMATO--_mtable-regex-SystemTap=dsliteral/"//{tleave}
786bc1a8acSMasatake YAMATO--_mtable-regex-SystemTap=dsliteral/\\.//
796bc1a8acSMasatake YAMATO--_mtable-regex-SystemTap=stmtend///{tleave}{scope=pop}
806bc1a8acSMasatake YAMATO--_mtable-regex-SystemTap=arraysize/[^]\/#]+//
816bc1a8acSMasatake YAMATO--_mtable-regex-SystemTap=arraysize/]//{tleave}
826bc1a8acSMasatake YAMATO--_mtable-extend-SystemTap=arraysize+comment
836bc1a8acSMasatake YAMATO--_mtable-extend-SystemTap=arraysize+any
846bc1a8acSMasatake YAMATO
856bc1a8acSMasatake YAMATO#
866bc1a8acSMasatake YAMATO# comment
876bc1a8acSMasatake YAMATO#
886bc1a8acSMasatake YAMATO--_tabledef-SystemTap=comment_multiline
896bc1a8acSMasatake YAMATO--_tabledef-SystemTap=comment_oneline
906bc1a8acSMasatake YAMATO--_mtable-regex-SystemTap=comment/\#//{tenter=comment_oneline}
916bc1a8acSMasatake YAMATO--_mtable-regex-SystemTap=comment/\/\*//{tenter=comment_multiline}
926bc1a8acSMasatake YAMATO--_mtable-regex-SystemTap=comment/\/\///{tenter=comment_oneline}
936bc1a8acSMasatake YAMATO
946bc1a8acSMasatake YAMATO--_mtable-regex-SystemTap=comment_multiline/[^*]+//
956bc1a8acSMasatake YAMATO--_mtable-regex-SystemTap=comment_multiline/\*\///{tleave}
966bc1a8acSMasatake YAMATO--_mtable-extend-SystemTap=comment_multiline+any
976bc1a8acSMasatake YAMATO
986bc1a8acSMasatake YAMATO--_mtable-regex-SystemTap=comment_oneline/[^\n]*\n//{tleave}
996bc1a8acSMasatake YAMATO--_mtable-extend-SystemTap=comment_oneline+any
1006bc1a8acSMasatake YAMATO
1016bc1a8acSMasatake YAMATO#
1026bc1a8acSMasatake YAMATO# main
1036bc1a8acSMasatake YAMATO#
1046bc1a8acSMasatake YAMATO--_mtable-regex-SystemTap=main/[^#\/'"pfg@%]+//
1056bc1a8acSMasatake YAMATO--_mtable-regex-SystemTap=main/probe[[:space:]]+//{tenter=probe}
1066bc1a8acSMasatake YAMATO--_mtable-extend-SystemTap=main+comment
1076bc1a8acSMasatake YAMATO--_mtable-regex-SystemTap=main/@define[[:space:]]+//{tenter=macro}
1086bc1a8acSMasatake YAMATO--_mtable-regex-SystemTap=main/function[[:space:]]+//{tenter=func}
1096bc1a8acSMasatake YAMATO--_mtable-regex-SystemTap=main/global[[:space:]]+//{tenter=vars}
1106bc1a8acSMasatake YAMATO--_mtable-regex-SystemTap=main/%[\{(]//{tenter=cfuncStmt}
1116bc1a8acSMasatake YAMATO--_mtable-extend-SystemTap=main+any
1126bc1a8acSMasatake YAMATO
1136bc1a8acSMasatake YAMATO#
1146bc1a8acSMasatake YAMATO# probe
1156bc1a8acSMasatake YAMATO#
1166bc1a8acSMasatake YAMATO--_mtable-regex-SystemTap=probe/([[:alpha:]_][[:alnum:]_.]*)[[:space:]]*\+?=[[:space:]]*/\1/p/{tenter=probeBody}{scope=push}
1176bc1a8acSMasatake YAMATO
1186bc1a8acSMasatake YAMATO# This "push" is dummy.
1196bc1a8acSMasatake YAMATO--_mtable-regex-SystemTap=probe/([[:alpha:]_][[:alnum:]_.]*)[[:space:]]*///{tenter=probeBody}{scope=push}
1206bc1a8acSMasatake YAMATO
1216bc1a8acSMasatake YAMATO#
1226bc1a8acSMasatake YAMATO# probeBody
1236bc1a8acSMasatake YAMATO#
1246bc1a8acSMasatake YAMATO--_mtable-regex-SystemTap=probeBody/[^\{\/#'"]+//
1256bc1a8acSMasatake YAMATO--_mtable-regex-SystemTap=probeBody/\{//{tenter=probeStmt,stmtend}
1266bc1a8acSMasatake YAMATO--_mtable-extend-SystemTap=probeBody+skipLiteral
1276bc1a8acSMasatake YAMATO--_mtable-extend-SystemTap=probeBody+comment
1286bc1a8acSMasatake YAMATO--_mtable-extend-SystemTap=probeBody+any
1296bc1a8acSMasatake YAMATO
1306bc1a8acSMasatake YAMATO#
1316bc1a8acSMasatake YAMATO# probeStmt
1326bc1a8acSMasatake YAMATO#
1336bc1a8acSMasatake YAMATO--_mtable-regex-SystemTap=probeStmt/[^\{\}\/#'"]+//
1346bc1a8acSMasatake YAMATO--_mtable-regex-SystemTap=probeStmt/\}//{tleave}
1356bc1a8acSMasatake YAMATO--_mtable-extend-SystemTap=probeStmt+skipLiteral
1366bc1a8acSMasatake YAMATO--_mtable-regex-SystemTap=probeStmt/\{//{tenter=probeStmt}
1376bc1a8acSMasatake YAMATO--_mtable-extend-SystemTap=probeStmt+comment
1386bc1a8acSMasatake YAMATO--_mtable-extend-SystemTap=probeStmt+any
1396bc1a8acSMasatake YAMATO
1406bc1a8acSMasatake YAMATO#
1416bc1a8acSMasatake YAMATO# func
1426bc1a8acSMasatake YAMATO#
1436bc1a8acSMasatake YAMATO
1446bc1a8acSMasatake YAMATO# TODO: return type should be recorded to typeref field
1456bc1a8acSMasatake YAMATO--_mtable-regex-SystemTap=func/([[:alpha:]_][[:alnum:]_]*)(:[[:alpha:]_][[:alnum:]_]*)?[[:space:]]*\(/\1/f/{tenter=funcSig,funcBody}{scope=push}
1466bc1a8acSMasatake YAMATO
1476bc1a8acSMasatake YAMATO# TODO: capture parameters
1486bc1a8acSMasatake YAMATO--_mtable-regex-SystemTap=funcSig/[^)\/]+//
1496bc1a8acSMasatake YAMATO--_mtable-regex-SystemTap=funcSig/\)(:[0-9]+)?//{tleave}
1506bc1a8acSMasatake YAMATO--_mtable-extend-SystemTap=funcSig+comment
1516bc1a8acSMasatake YAMATO--_mtable-extend-SystemTap=funcSig+any
1526bc1a8acSMasatake YAMATO
1536bc1a8acSMasatake YAMATO--_mtable-regex-SystemTap=funcBody/[^\{%'"#]+//
1546bc1a8acSMasatake YAMATO--_mtable-regex-SystemTap=funcBody/\{//{tenter=funcStmt,stmtend}
1556bc1a8acSMasatake YAMATO--_mtable-regex-SystemTap=funcBody/%[\{(]//{tenter=cfuncStmt,stmtend}
1566bc1a8acSMasatake YAMATO--_mtable-extend-SystemTap=funcBody+comment
1576bc1a8acSMasatake YAMATO--_mtable-extend-SystemTap=funcBody+any
1586bc1a8acSMasatake YAMATO
1596bc1a8acSMasatake YAMATO#
1606bc1a8acSMasatake YAMATO# funcStmt and cfuncStmt
1616bc1a8acSMasatake YAMATO#
1626bc1a8acSMasatake YAMATO--_mtable-regex-SystemTap=funcStmt/[^%\/#'"\{\}]+//
1636bc1a8acSMasatake YAMATO--_mtable-regex-SystemTap=funcStmt/\}//{tleave}
1646bc1a8acSMasatake YAMATO--_mtable-extend-SystemTap=funcStmt+skipLiteral
1656bc1a8acSMasatake YAMATO--_mtable-extend-SystemTap=funcStmt+comment
1666bc1a8acSMasatake YAMATO--_mtable-regex-SystemTap=funcStmt/%[\{(]//{tenter=cfuncStmt}
1676bc1a8acSMasatake YAMATO--_mtable-regex-SystemTap=funcStmt/\{//{tenter=funcStmt}
1686bc1a8acSMasatake YAMATO--_mtable-extend-SystemTap=funcStmt+any
1696bc1a8acSMasatake YAMATO
1706bc1a8acSMasatake YAMATO--_mtable-regex-SystemTap=cfuncStmt/[^%\/#'"]+//
1716bc1a8acSMasatake YAMATO--_mtable-extend-SystemTap=cfuncStmt+comment
1726bc1a8acSMasatake YAMATO--_mtable-extend-SystemTap=cfuncStmt+skipLiteral
1736bc1a8acSMasatake YAMATO--_mtable-regex-SystemTap=cfuncStmt/%[\})]//{tleave}
1746bc1a8acSMasatake YAMATO--_mtable-regex-SystemTap=cfuncStmt/%[\{(]//{tenter=cfuncStmt}
1756bc1a8acSMasatake YAMATO--_mtable-extend-SystemTap=cfuncStmt+any
1766bc1a8acSMasatake YAMATO
1776bc1a8acSMasatake YAMATO#
1786bc1a8acSMasatake YAMATO# vars
1796bc1a8acSMasatake YAMATO#
1806bc1a8acSMasatake YAMATO--_mtable-regex-SystemTap=vars/([[:alpha:]_][[:alnum:]_]*)%?/\1/v/
1816bc1a8acSMasatake YAMATO--_mtable-regex-SystemTap=vars/[\n]//{tleave}
1826bc1a8acSMasatake YAMATO--_mtable-regex-SystemTap=vars/,[[:space:]]*//{tjump=vars}
1836bc1a8acSMasatake YAMATO--_mtable-extend-SystemTap=vars+comment
1846bc1a8acSMasatake YAMATO--_mtable-extend-SystemTap=vars+skipLiteral
1856bc1a8acSMasatake YAMATO--_mtable-regex-SystemTap=vars/\[//{tenter=arraysize}
1866bc1a8acSMasatake YAMATO--_mtable-extend-SystemTap=vars+any
1876bc1a8acSMasatake YAMATO
1886bc1a8acSMasatake YAMATO#
1896bc1a8acSMasatake YAMATO# macro
1906bc1a8acSMasatake YAMATO#
1916bc1a8acSMasatake YAMATO--_mtable-regex-SystemTap=macro/([[:alpha:]_][[:alnum:]_]*)[[:space:]]*\(/\1/m/{tenter=macroSig,macroBody}{scope=push}
1926bc1a8acSMasatake YAMATO--_mtable-regex-SystemTap=macro/([[:alpha:]_][[:alnum:]_]*)[[:space:]]*/\1/m/{tenter=macroBody,stmtend}{scope=push}
1936bc1a8acSMasatake YAMATO
1946bc1a8acSMasatake YAMATO# TODO: capture parameters
1956bc1a8acSMasatake YAMATO--_mtable-regex-SystemTap=macroSig/[^#\/)]+//
1966bc1a8acSMasatake YAMATO--_mtable-regex-SystemTap=macroSig/\)//{tleave}
1976bc1a8acSMasatake YAMATO--_mtable-extend-SystemTap=macroSig+comment
1986bc1a8acSMasatake YAMATO--_mtable-extend-SystemTap=macroSig+any
1996bc1a8acSMasatake YAMATO
2006bc1a8acSMasatake YAMATO
2016bc1a8acSMasatake YAMATO--_mtable-regex-SystemTap=macroBody/[^%#\/)]+//
2026bc1a8acSMasatake YAMATO--_mtable-regex-SystemTap=macroBody/%\(//{tenter=macroStmt,stmtend}
2036bc1a8acSMasatake YAMATO--_mtable-extend-SystemTap=macroBody+comment
2046bc1a8acSMasatake YAMATO--_mtable-extend-SystemTap=macroBody+any
2056bc1a8acSMasatake YAMATO
2066bc1a8acSMasatake YAMATO--_mtable-regex-SystemTap=macroStmt/[^#\/%'"]+//
2076bc1a8acSMasatake YAMATO--_mtable-regex-SystemTap=macroStmt/%\)//{tleave}
2086bc1a8acSMasatake YAMATO--_mtable-extend-SystemTap=macroStmt+skipLiteral
2096bc1a8acSMasatake YAMATO--_mtable-extend-SystemTap=macroStmt+comment
2106bc1a8acSMasatake YAMATO--_mtable-regex-SystemTap=macroStmt/%\(//{tenter=macroStmt}
2116bc1a8acSMasatake YAMATO--_mtable-extend-SystemTap=macroStmt+any
212