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