const char ctagsCommonPrelude []= "%\n" "% Copyright (c) 2021, Masatake YAMATO\n" "% Copyright (c) 2021, Red Hat, Inc.\n" "%\n" "% This source code is released for free distribution under the terms of the\n" "% GNU General Public License version 2 or (at your option) any later version.\n" "%\n" "\n" "%\n" "% The documentation table\n" "%\n" "\n" "% __PROCDOCS:dict\n" "/__procdocs 30 dict def\n" "\n" "% name value __BDEF -\n" "/__bdef { bind def } bind def\n" "\n" "% doc:string key:name any:val __DOCDEF -\n" "/__bddef {\n" " 1 index exch __bdef\n" " exch __procdocs 3 1 roll put\n" "} __bdef\n" "\n" "\n" "%\n" "% procedures\n" "%\n" "(any n:int _NDUP any1 ... anyn)\n" "/_ndup { { dup } repeat } __bddef\n" "\n" "(x:any x:any _DEDUP x:any\n" " x:any y:any _DEDUP x:any y:any)\n" "/_dedup {\n" " count 1 gt {\n" " 2 copy eq {\n" " pop\n" " } if\n" " } if\n" "} __bddef\n" "\n" "(space:int space:int _DEDUP_SPACES space:int\n" " otherthanspace:int space:int _DEDUP_SPACES otherthanspace:int space:int)\n" "/_dedup_spaces {\n" " count 0 gt {\n" " dup ?\\_ eq {\n" " _dedup\n" " } if\n" " } if\n" "} __bddef\n" "\n" "% 32 32 _dedup_spaces pstack clear (---) ==\n" "% 32 41 _dedup_spaces pstack clear (---) ==\n" "% 41 32 _dedup_spaces pstack clear (---) ==\n" "% 32 _dedup_spaces pstack clear (---) ==\n" "% 41 _dedup_spaces pstack clear (---) ==\n" "% quit\n" "\n" "/__buildstring {\n" " {\n" " counttomark dup 1 eq {\n" " pop exch pop\n" " exit\n" " } {\n" " -1 roll 1 index exch _putlast!\n" " } ifelse\n" " } loop\n" "} __bdef\n" "\n" "(mark char:int|substring:string... _BUILDSTRING string)\n" "/_buildstring {\n" " 0 string __buildstring\n" "} __bddef\n" "\n" "(string char:int|string _PUTLAST! -)\n" "/_putlast! {\n" " 1 index length exch\n" " dup type /integertype eq {\n" " put\n" " } {\n" " putinterval\n" " } ifelse\n" "} __bddef\n" "\n" "(target:string fromto:str _TR! -)\n" "/_tr! {\n" " %\n" " % () is not allowed.\n" " % The reason must be be documented.\n" " %\n" " 0 string\n" " % str [int int] str'\n" " 2 index {\n" " % str [int int] str' int\n" " dup 3 index 0 get\n" " % str [int int] str' int int int\n" " eq {% str [int int] str' int\n" " pop\n" " dup 2 index 1 get _putlast!\n" " } {% str [int int] str' int\n" " 1 index exch _putlast!\n" " } ifelse\n" " } forall\n" " % str [int int] str'\n" " exch pop\n" " 0 exch putinterval\n" "} __bddef\n" "\n" "(string _NORMALIZE_SPACES! -)\n" "/_normalize_spaces! {\n" " dup\n" " dup (\\n ) _tr!\n" " dup (\\t ) _tr!\n" " dup (\\r ) _tr!\n" " dup (\\f ) _tr!\n" " dup (\\v ) _tr!\n" " mark exch { _dedup_spaces } forall _buildstring\n" " exch copy pop\n" "} __bddef\n" "\n" "% /x mark 40 (a) 32 32 10 (b) 10 10 9 9 (xyz) 9 9 41 _buildstring def\n" "% x _normalize_spaces! x pstack\n" "\n" "(tag:int _SCOPEREF -)\n" "/_scoperef {\n" " _scopetop not { 0 } if scope:\n" "} __bddef\n" "\n" "(tag:int _SCOPEPUSH -)\n" "/_scopepush {\n" " dup _scoperef _scopeset\n" "} __bddef\n" "\n" "(string _ISSTRING string true\n" " any:!string _ISSTRING false)\n" "/_isstring {\n" " dup type /stringtype eq {\n" " true\n" " } {\n" " pop false\n" " } ifelse\n" "} __bddef\n" "\n" "(array key _AMEMBER true|fales)\n" "/_amember {\n" " false 3 1 roll\n" " % false array key\n" " exch {\n" " % false key elt\n" " 1 index\n" " % false key elt key\n" " eq {\n" " % false key\n" " exch pop true exch\n" " exit\n" " } if\n" " % false key\n" " } forall\n" " pop\n" "} __bddef\n" "\n" "(array key _AINDEX nth:int true\n" " array key _AINDEX false)\n" "/_aindex {\n" " 0 3 1 roll\n" " % idx array key\n" " exch {\n" " % idx key elt\n" " 1 index\n" " eq {\n" " % idx key\n" " pop true exit\n" " } {\n" " % idx key\n" " exch 1 add exch\n" " } ifelse\n" " } forall\n" " dup true ne { pop pop false } if\n" "} __bddef\n" ;