1431a587eSMasatake YAMATO const char ctagsCommonPrelude []= 2431a587eSMasatake YAMATO "%\n" 3431a587eSMasatake YAMATO "% Copyright (c) 2021, Masatake YAMATO\n" 4431a587eSMasatake YAMATO "% Copyright (c) 2021, Red Hat, Inc.\n" 5431a587eSMasatake YAMATO "%\n" 6431a587eSMasatake YAMATO "% This source code is released for free distribution under the terms of the\n" 7431a587eSMasatake YAMATO "% GNU General Public License version 2 or (at your option) any later version.\n" 8431a587eSMasatake YAMATO "%\n" 9431a587eSMasatake YAMATO "\n" 10431a587eSMasatake YAMATO "%\n" 11431a587eSMasatake YAMATO "% The documentation table\n" 12431a587eSMasatake YAMATO "%\n" 13431a587eSMasatake YAMATO "\n" 14431a587eSMasatake YAMATO "% __PROCDOCS:dict<proc:name, doc:string>\n" 15431a587eSMasatake YAMATO "/__procdocs 30 dict def\n" 16431a587eSMasatake YAMATO "\n" 17431a587eSMasatake YAMATO "% name value __BDEF -\n" 18431a587eSMasatake YAMATO "/__bdef { bind def } bind def\n" 19431a587eSMasatake YAMATO "\n" 20431a587eSMasatake YAMATO "% doc:string key:name any:val __DOCDEF -\n" 21431a587eSMasatake YAMATO "/__bddef {\n" 22431a587eSMasatake YAMATO " 1 index exch __bdef\n" 23431a587eSMasatake YAMATO " exch __procdocs 3 1 roll put\n" 24431a587eSMasatake YAMATO "} __bdef\n" 25431a587eSMasatake YAMATO "\n" 26431a587eSMasatake YAMATO "\n" 27431a587eSMasatake YAMATO "%\n" 28431a587eSMasatake YAMATO "% procedures\n" 29431a587eSMasatake YAMATO "%\n" 30431a587eSMasatake YAMATO "(any n:int _NDUP any1 ... anyn)\n" 31431a587eSMasatake YAMATO "/_ndup { { dup } repeat } __bddef\n" 32431a587eSMasatake YAMATO "\n" 33431a587eSMasatake YAMATO "(x:any x:any _DEDUP x:any\n" 34431a587eSMasatake YAMATO " x:any y:any _DEDUP x:any y:any)\n" 35431a587eSMasatake YAMATO "/_dedup {\n" 36431a587eSMasatake YAMATO " count 1 gt {\n" 37431a587eSMasatake YAMATO " 2 copy eq {\n" 38431a587eSMasatake YAMATO " pop\n" 39431a587eSMasatake YAMATO " } if\n" 40431a587eSMasatake YAMATO " } if\n" 41431a587eSMasatake YAMATO "} __bddef\n" 42431a587eSMasatake YAMATO "\n" 43431a587eSMasatake YAMATO "(space:int space:int _DEDUP_SPACES space:int\n" 44431a587eSMasatake YAMATO " otherthanspace:int space:int _DEDUP_SPACES otherthanspace:int space:int)\n" 45431a587eSMasatake YAMATO "/_dedup_spaces {\n" 46431a587eSMasatake YAMATO " count 0 gt {\n" 47431a587eSMasatake YAMATO " dup ?\\_ eq {\n" 48431a587eSMasatake YAMATO " _dedup\n" 49431a587eSMasatake YAMATO " } if\n" 50431a587eSMasatake YAMATO " } if\n" 51431a587eSMasatake YAMATO "} __bddef\n" 52431a587eSMasatake YAMATO "\n" 53431a587eSMasatake YAMATO "% 32 32 _dedup_spaces pstack clear (---) ==\n" 54431a587eSMasatake YAMATO "% 32 41 _dedup_spaces pstack clear (---) ==\n" 55431a587eSMasatake YAMATO "% 41 32 _dedup_spaces pstack clear (---) ==\n" 56431a587eSMasatake YAMATO "% 32 _dedup_spaces pstack clear (---) ==\n" 57431a587eSMasatake YAMATO "% 41 _dedup_spaces pstack clear (---) ==\n" 58431a587eSMasatake YAMATO "% quit\n" 59431a587eSMasatake YAMATO "\n" 60431a587eSMasatake YAMATO "/__buildstring {\n" 61431a587eSMasatake YAMATO " {\n" 62431a587eSMasatake YAMATO " counttomark dup 1 eq {\n" 63431a587eSMasatake YAMATO " pop exch pop\n" 64431a587eSMasatake YAMATO " exit\n" 65431a587eSMasatake YAMATO " } {\n" 66431a587eSMasatake YAMATO " -1 roll 1 index exch _putlast!\n" 67431a587eSMasatake YAMATO " } ifelse\n" 68431a587eSMasatake YAMATO " } loop\n" 69431a587eSMasatake YAMATO "} __bdef\n" 70431a587eSMasatake YAMATO "\n" 71431a587eSMasatake YAMATO "(mark char:int|substring:string... _BUILDSTRING string)\n" 72431a587eSMasatake YAMATO "/_buildstring {\n" 73431a587eSMasatake YAMATO " 0 string __buildstring\n" 74431a587eSMasatake YAMATO "} __bddef\n" 75431a587eSMasatake YAMATO "\n" 76431a587eSMasatake YAMATO "(string char:int|string _PUTLAST! -)\n" 77431a587eSMasatake YAMATO "/_putlast! {\n" 78431a587eSMasatake YAMATO " 1 index length exch\n" 79431a587eSMasatake YAMATO " dup type /integertype eq {\n" 80431a587eSMasatake YAMATO " put\n" 81431a587eSMasatake YAMATO " } {\n" 82431a587eSMasatake YAMATO " putinterval\n" 83431a587eSMasatake YAMATO " } ifelse\n" 84431a587eSMasatake YAMATO "} __bddef\n" 85431a587eSMasatake YAMATO "\n" 86431a587eSMasatake YAMATO "(target:string fromto:str _TR! -)\n" 87431a587eSMasatake YAMATO "/_tr! {\n" 88431a587eSMasatake YAMATO " %\n" 89431a587eSMasatake YAMATO " % () is not allowed.\n" 90431a587eSMasatake YAMATO " % The reason must be be documented.\n" 91431a587eSMasatake YAMATO " %\n" 92431a587eSMasatake YAMATO " 0 string\n" 93431a587eSMasatake YAMATO " % str [int<from> int<to>] str'\n" 94431a587eSMasatake YAMATO " 2 index {\n" 95431a587eSMasatake YAMATO " % str [int<from> int<to>] str' int<chr>\n" 96431a587eSMasatake YAMATO " dup 3 index 0 get\n" 97431a587eSMasatake YAMATO " % str [int<from> int<to>] str' int<chr> int<chr> int<from>\n" 98431a587eSMasatake YAMATO " eq {% str [int<from> int<to>] str' int<chr>\n" 99431a587eSMasatake YAMATO " pop\n" 100431a587eSMasatake YAMATO " dup 2 index 1 get _putlast!\n" 101431a587eSMasatake YAMATO " } {% str [int<from> int<to>] str' int<chr>\n" 102431a587eSMasatake YAMATO " 1 index exch _putlast!\n" 103431a587eSMasatake YAMATO " } ifelse\n" 104431a587eSMasatake YAMATO " } forall\n" 105431a587eSMasatake YAMATO " % str [int<from> int<to>] str'\n" 106431a587eSMasatake YAMATO " exch pop\n" 107431a587eSMasatake YAMATO " 0 exch putinterval\n" 108431a587eSMasatake YAMATO "} __bddef\n" 109431a587eSMasatake YAMATO "\n" 110431a587eSMasatake YAMATO "(string _NORMALIZE_SPACES! -)\n" 111431a587eSMasatake YAMATO "/_normalize_spaces! {\n" 112431a587eSMasatake YAMATO " dup\n" 113431a587eSMasatake YAMATO " dup (\\n ) _tr!\n" 114431a587eSMasatake YAMATO " dup (\\t ) _tr!\n" 115431a587eSMasatake YAMATO " dup (\\r ) _tr!\n" 116431a587eSMasatake YAMATO " dup (\\f ) _tr!\n" 117431a587eSMasatake YAMATO " dup (\\v ) _tr!\n" 118431a587eSMasatake YAMATO " mark exch { _dedup_spaces } forall _buildstring\n" 119431a587eSMasatake YAMATO " exch copy pop\n" 120431a587eSMasatake YAMATO "} __bddef\n" 121431a587eSMasatake YAMATO "\n" 122431a587eSMasatake YAMATO "% /x mark 40 (a) 32 32 10 (b) 10 10 9 9 (xyz) 9 9 41 _buildstring def\n" 123431a587eSMasatake YAMATO "% x _normalize_spaces! x pstack\n" 124d1e4395eSMasatake YAMATO "\n" 125d1e4395eSMasatake YAMATO "(tag:int _SCOPEREF -)\n" 126d1e4395eSMasatake YAMATO "/_scoperef {\n" 127d1e4395eSMasatake YAMATO " _scopetop not { 0 } if scope:\n" 128d1e4395eSMasatake YAMATO "} __bddef\n" 129d1e4395eSMasatake YAMATO "\n" 130d1e4395eSMasatake YAMATO "(tag:int _SCOPEPUSH -)\n" 131d1e4395eSMasatake YAMATO "/_scopepush {\n" 132d1e4395eSMasatake YAMATO " dup _scoperef _scopeset\n" 133d1e4395eSMasatake YAMATO "} __bddef\n" 134b8803c56SMasatake YAMATO "\n" 135b8803c56SMasatake YAMATO "(string _ISSTRING string true\n" 136b8803c56SMasatake YAMATO " any:!string _ISSTRING false)\n" 137b8803c56SMasatake YAMATO "/_isstring {\n" 138b8803c56SMasatake YAMATO " dup type /stringtype eq {\n" 139b8803c56SMasatake YAMATO " true\n" 140b8803c56SMasatake YAMATO " } {\n" 141b8803c56SMasatake YAMATO " pop false\n" 142b8803c56SMasatake YAMATO " } ifelse\n" 143b8803c56SMasatake YAMATO "} __bddef\n" 144c22d990cSMasatake YAMATO "\n" 145c22d990cSMasatake YAMATO "(array key _AMEMBER true|fales)\n" 146c22d990cSMasatake YAMATO "/_amember {\n" 147c22d990cSMasatake YAMATO " false 3 1 roll\n" 148c22d990cSMasatake YAMATO " % false array key\n" 149c22d990cSMasatake YAMATO " exch {\n" 150c22d990cSMasatake YAMATO " % false key elt\n" 151c22d990cSMasatake YAMATO " 1 index\n" 152c22d990cSMasatake YAMATO " % false key elt key\n" 153c22d990cSMasatake YAMATO " eq {\n" 154c22d990cSMasatake YAMATO " % false key\n" 155c22d990cSMasatake YAMATO " exch pop true exch\n" 156c22d990cSMasatake YAMATO " exit\n" 157c22d990cSMasatake YAMATO " } if\n" 158c22d990cSMasatake YAMATO " % false key\n" 159c22d990cSMasatake YAMATO " } forall\n" 160c22d990cSMasatake YAMATO " pop\n" 161c22d990cSMasatake YAMATO "} __bddef\n" 162*7decd215SMasatake YAMATO "\n" 163*7decd215SMasatake YAMATO "(array key _AINDEX nth:int true\n" 164*7decd215SMasatake YAMATO " array key _AINDEX false)\n" 165*7decd215SMasatake YAMATO "/_aindex {\n" 166*7decd215SMasatake YAMATO " 0 3 1 roll\n" 167*7decd215SMasatake YAMATO " % idx array key\n" 168*7decd215SMasatake YAMATO " exch {\n" 169*7decd215SMasatake YAMATO " % idx key elt\n" 170*7decd215SMasatake YAMATO " 1 index\n" 171*7decd215SMasatake YAMATO " eq {\n" 172*7decd215SMasatake YAMATO " % idx key\n" 173*7decd215SMasatake YAMATO " pop true exit\n" 174*7decd215SMasatake YAMATO " } {\n" 175*7decd215SMasatake YAMATO " % idx key\n" 176*7decd215SMasatake YAMATO " exch 1 add exch\n" 177*7decd215SMasatake YAMATO " } ifelse\n" 178*7decd215SMasatake YAMATO " } forall\n" 179*7decd215SMasatake YAMATO " dup true ne { pop pop false } if\n" 180*7decd215SMasatake YAMATO "} __bddef\n" 181431a587eSMasatake YAMATO ; 182