xref: /vim-8.2.3635/runtime/syntax/gprof.vim (revision 34cc7d8c)
1543b7ef7SBram Moolenaar" Vim syntax file
2543b7ef7SBram Moolenaar" Language: Syntax for Gprof Output
3543b7ef7SBram Moolenaar" Maintainer: Dominique Pelle <[email protected]>
4*34cc7d8cSBram Moolenaar" Last Change: 2021 Sep 19
5543b7ef7SBram Moolenaar
6543b7ef7SBram Moolenaar" Quit when a syntax file was already loaded
7543b7ef7SBram Moolenaarif exists("b:current_syntax")
8543b7ef7SBram Moolenaar  finish
9543b7ef7SBram Moolenaarendif
10543b7ef7SBram Moolenaarlet s:keepcpo= &cpo
11543b7ef7SBram Moolenaarset cpo&vim
12543b7ef7SBram Moolenaar
13*34cc7d8cSBram Moolenaarsyn spell notoplevel
14543b7ef7SBram Moolenaarsyn case match
15543b7ef7SBram Moolenaarsyn sync minlines=100
16543b7ef7SBram Moolenaar
17543b7ef7SBram Moolenaar" Flat profile
18543b7ef7SBram Moolenaarsyn match gprofFlatProfileTitle
19543b7ef7SBram Moolenaar  \ "^Flat profile:$"
20543b7ef7SBram Moolenaarsyn region gprofFlatProfileHeader
21543b7ef7SBram Moolenaar  \ start="^Each sample counts as.*"
22543b7ef7SBram Moolenaar  \ end="^ time.*name\s*$"
23543b7ef7SBram Moolenaarsyn region gprofFlatProfileTrailer
24543b7ef7SBram Moolenaar  \ start="^\s*%\s\+the percentage of the total running time.*"
25543b7ef7SBram Moolenaar  \ end="^\s*the gprof listing if it were to be printed\."
26543b7ef7SBram Moolenaar
27543b7ef7SBram Moolenaar" Call graph
28543b7ef7SBram Moolenaarsyn match gprofCallGraphTitle "Call graph (explanation follows)"
29543b7ef7SBram Moolenaarsyn region gprofCallGraphHeader
30543b7ef7SBram Moolenaar  \ start="^granularity: each sample hit covers.*"
31543b7ef7SBram Moolenaar  \ end="^\s*index % time\s\+self\s\+children\s\+called\s\+name$"
3256994d21SBram Moolenaarsyn match gprofCallGraphFunction "\<\(\d\+\.\d\+\s\+\)\{3}\([0-9+]\+\)\?\s\+[a-zA-Z_<].*\ze\["
33543b7ef7SBram Moolenaarsyn match gprofCallGraphSeparator "^-\+$"
34543b7ef7SBram Moolenaarsyn region gprofCallGraphTrailer
35543b7ef7SBram Moolenaar  \ start="This table describes the call tree of the program"
36ec7944aaSBram Moolenaar  \ end="^\s*the cycle\.$"
37543b7ef7SBram Moolenaar
38543b7ef7SBram Moolenaar" Index
39543b7ef7SBram Moolenaarsyn region gprofIndex
40543b7ef7SBram Moolenaar  \ start="^Index by function name$"
41543b7ef7SBram Moolenaar  \ end="\%$"
42543b7ef7SBram Moolenaar
43543b7ef7SBram Moolenaarsyn match gprofIndexFunctionTitle "^Index by function name$"
44543b7ef7SBram Moolenaar
4556994d21SBram Moolenaarsyn match gprofNumbers "^\s*[0-9 ./+]\+"
46543b7ef7SBram Moolenaarsyn match gprofFunctionIndex "\[\d\+\]"
47543b7ef7SBram Moolenaarsyn match gprofSpecial "<\(spontaneous\|cycle \d\+\)>"
48543b7ef7SBram Moolenaar
49543b7ef7SBram Moolenaarhi def link gprofFlatProfileTitle      Title
50543b7ef7SBram Moolenaarhi def link gprofFlatProfileHeader     Comment
51543b7ef7SBram Moolenaarhi def link gprofFlatProfileFunction   Number
52543b7ef7SBram Moolenaarhi def link gprofFlatProfileTrailer    Comment
53543b7ef7SBram Moolenaar
54543b7ef7SBram Moolenaarhi def link gprofCallGraphTitle        Title
55543b7ef7SBram Moolenaarhi def link gprofCallGraphHeader       Comment
56543b7ef7SBram Moolenaarhi def link gprofFlatProfileFunction   Number
57543b7ef7SBram Moolenaarhi def link gprofCallGraphFunction     Special
58543b7ef7SBram Moolenaarhi def link gprofCallGraphTrailer      Comment
59543b7ef7SBram Moolenaarhi def link gprofCallGraphSeparator    Label
60543b7ef7SBram Moolenaar
61543b7ef7SBram Moolenaarhi def link gprofFunctionIndex         Label
62543b7ef7SBram Moolenaarhi def link gprofSpecial               SpecialKey
63543b7ef7SBram Moolenaarhi def link gprofNumbers               Number
64543b7ef7SBram Moolenaar
65543b7ef7SBram Moolenaarhi def link gprofIndexFunctionTitle Title
66543b7ef7SBram Moolenaar
67543b7ef7SBram Moolenaarlet b:current_syntax = "gprof"
68543b7ef7SBram Moolenaar
69543b7ef7SBram Moolenaarlet &cpo = s:keepcpo
70543b7ef7SBram Moolenaarunlet s:keepcpo
71