PNG  IHDRX cHRMz&u0`:pQ<bKGD pHYsodtIME MeqIDATxw]Wug^Qd˶ 6`!N:!@xI~)%7%@Bh&`lnjVF29gΨ4E$|>cɚ{gk= %,a KX%,a KX%,a KX%,a KX%,a KX%,a KX%, b` ǟzeאfp]<!SJmɤY޲ڿ,%c ~ع9VH.!Ͳz&QynֺTkRR.BLHi٪:l;@(!MԴ=žI,:o&N'Kù\vRmJ雵֫AWic H@" !: Cé||]k-Ha oݜ:y F())u]aG7*JV@J415p=sZH!=!DRʯvɱh~V\}v/GKY$n]"X"}t@ xS76^[bw4dsce)2dU0 CkMa-U5tvLƀ~mlMwfGE/-]7XAƟ`׮g ewxwC4\[~7@O-Q( a*XGƒ{ ՟}$_y3tĐƤatgvێi|K=uVyrŲlLӪuܿzwk$m87k( `múcE)"@rK( z4$D; 2kW=Xb$V[Ru819קR~qloѱDyįݎ*mxw]y5e4K@ЃI0A D@"BDk_)N\8͜9dz"fK0zɿvM /.:2O{ Nb=M=7>??Zuo32 DLD@D| &+֎C #B8ַ`bOb $D#ͮҪtx]%`ES`Ru[=¾!@Od37LJ0!OIR4m]GZRJu$‡c=%~s@6SKy?CeIh:[vR@Lh | (BhAMy=݃  G"'wzn޺~8ԽSh ~T*A:xR[ܹ?X[uKL_=fDȊ؂p0}7=D$Ekq!/t.*2ʼnDbŞ}DijYaȲ(""6HA;:LzxQ‘(SQQ}*PL*fc\s `/d'QXW, e`#kPGZuŞuO{{wm[&NBTiiI0bukcA9<4@SӊH*؎4U/'2U5.(9JuDfrޱtycU%j(:RUbArLֺN)udA':uGQN"-"Is.*+k@ `Ojs@yU/ H:l;@yyTn}_yw!VkRJ4P)~y#)r,D =ě"Q]ci'%HI4ZL0"MJy 8A{ aN<8D"1#IJi >XjX֔#@>-{vN!8tRݻ^)N_╗FJEk]CT՟ YP:_|H1@ CBk]yKYp|og?*dGvzنzӴzjֺNkC~AbZƷ`.H)=!QͷVTT(| u78y֮}|[8-Vjp%2JPk[}ԉaH8Wpqhwr:vWª<}l77_~{s۴V+RCģ%WRZ\AqHifɤL36: #F:p]Bq/z{0CU6ݳEv_^k7'>sq*+kH%a`0ԣisqにtү04gVgW΂iJiS'3w.w}l6MC2uԯ|>JF5`fV5m`Y**Db1FKNttu]4ccsQNnex/87+}xaUW9y>ͯ骵G{䩓Գ3+vU}~jJ.NFRD7<aJDB1#ҳgSb,+CS?/ VG J?|?,2#M9}B)MiE+G`-wo߫V`fio(}S^4e~V4bHOYb"b#E)dda:'?}׮4繏`{7Z"uny-?ǹ;0MKx{:_pÚmFמ:F " .LFQLG)Q8qN q¯¯3wOvxDb\. BKD9_NN &L:4D{mm o^tֽ:q!ƥ}K+<"m78N< ywsard5+вz~mnG)=}lYݧNj'QJS{S :UYS-952?&O-:W}(!6Mk4+>A>j+i|<<|;ر^߉=HE|V#F)Emm#}/"y GII웻Jі94+v뾧xu~5C95~ūH>c@덉pʃ1/4-A2G%7>m;–Y,cyyaln" ?ƻ!ʪ<{~h~i y.zZB̃/,雋SiC/JFMmBH&&FAbϓO^tubbb_hZ{_QZ-sύodFgO(6]TJA˯#`۶ɟ( %$&+V'~hiYy>922 Wp74Zkq+Ovn錄c>8~GqܲcWꂎz@"1A.}T)uiW4="jJ2W7mU/N0gcqܗOO}?9/wìXžΏ0 >֩(V^Rh32!Hj5`;O28؇2#ݕf3 ?sJd8NJ@7O0 b־?lldщ̡&|9C.8RTWwxWy46ah嘦mh٤&l zCy!PY?: CJyв]dm4ǜҐR޻RլhX{FƯanшQI@x' ao(kUUuxW_Ñ줮[w8 FRJ(8˼)_mQ _!RJhm=!cVmm ?sFOnll6Qk}alY}; "baӌ~M0w,Ggw2W:G/k2%R,_=u`WU R.9T"v,<\Ik޽/2110Ӿxc0gyC&Ny޽JҢrV6N ``یeA16"J³+Rj*;BϜkZPJaÍ<Jyw:NP8/D$ 011z֊Ⱳ3ι֘k1V_"h!JPIΣ'ɜ* aEAd:ݺ>y<}Lp&PlRfTb1]o .2EW\ͮ]38؋rTJsǏP@芎sF\> P^+dYJLbJ C-xϐn> ι$nj,;Ǖa FU *择|h ~izť3ᤓ`K'-f tL7JK+vf2)V'-sFuB4i+m+@My=O҈0"|Yxoj,3]:cо3 $#uŘ%Y"y죯LebqtҢVzq¼X)~>4L׶m~[1_k?kxֺQ`\ |ٛY4Ѯr!)N9{56(iNq}O()Em]=F&u?$HypWUeB\k]JɩSع9 Zqg4ZĊo oMcjZBU]B\TUd34ݝ~:7ڶSUsB0Z3srx 7`:5xcx !qZA!;%͚7&P H<WL!džOb5kF)xor^aujƍ7 Ǡ8/p^(L>ὴ-B,{ۇWzֺ^k]3\EE@7>lYBȝR.oHnXO/}sB|.i@ɥDB4tcm,@ӣgdtJ!lH$_vN166L__'Z)y&kH;:,Y7=J 9cG) V\hjiE;gya~%ks_nC~Er er)muuMg2;֫R)Md) ,¶ 2-wr#F7<-BBn~_(o=KO㭇[Xv eN_SMgSҐ BS헃D%g_N:/pe -wkG*9yYSZS.9cREL !k}<4_Xs#FmҶ:7R$i,fi!~' # !6/S6y@kZkZcX)%5V4P]VGYq%H1!;e1MV<!ϐHO021Dp= HMs~~a)ަu7G^];git!Frl]H/L$=AeUvZE4P\.,xi {-~p?2b#amXAHq)MWǾI_r`S Hz&|{ +ʖ_= (YS(_g0a03M`I&'9vl?MM+m~}*xT۲(fY*V4x@29s{DaY"toGNTO+xCAO~4Ϳ;p`Ѫ:>Ҵ7K 3}+0 387x\)a"/E>qpWB=1 ¨"MP(\xp߫́A3+J] n[ʼnӼaTbZUWb={~2ooKױӰp(CS\S筐R*JغV&&"FA}J>G֐p1ٸbk7 ŘH$JoN <8s^yk_[;gy-;߉DV{c B yce% aJhDȶ 2IdйIB/^n0tNtџdcKj4϶v~- CBcgqx9= PJ) dMsjpYB] GD4RDWX +h{y`,3ꊕ$`zj*N^TP4L:Iz9~6s) Ga:?y*J~?OrMwP\](21sZUD ?ܟQ5Q%ggW6QdO+\@ ̪X'GxN @'4=ˋ+*VwN ne_|(/BDfj5(Dq<*tNt1х!MV.C0 32b#?n0pzj#!38}޴o1KovCJ`8ŗ_"]] rDUy޲@ Ȗ-;xџ'^Y`zEd?0„ DAL18IS]VGq\4o !swV7ˣι%4FѮ~}6)OgS[~Q vcYbL!wG3 7띸*E Pql8=jT\꘿I(z<[6OrR8ºC~ډ]=rNl[g|v TMTղb-o}OrP^Q]<98S¤!k)G(Vkwyqyr޽Nv`N/e p/~NAOk \I:G6]4+K;j$R:Mi #*[AȚT,ʰ,;N{HZTGMoּy) ]%dHء9Պ䠬|<45,\=[bƟ8QXeB3- &dҩ^{>/86bXmZ]]yޚN[(WAHL$YAgDKp=5GHjU&99v簪C0vygln*P)9^͞}lMuiH!̍#DoRBn9l@ xA/_v=ȺT{7Yt2N"4!YN`ae >Q<XMydEB`VU}u]嫇.%e^ánE87Mu\t`cP=AD/G)sI"@MP;)]%fH9'FNsj1pVhY&9=0pfuJ&gޤx+k:!r˭wkl03׼Ku C &ѓYt{.O.zҏ z}/tf_wEp2gvX)GN#I ݭ߽v/ .& и(ZF{e"=V!{zW`, ]+LGz"(UJp|j( #V4, 8B 0 9OkRrlɱl94)'VH9=9W|>PS['G(*I1==C<5"Pg+x'K5EMd؞Af8lG ?D FtoB[je?{k3zQ vZ;%Ɠ,]E>KZ+T/ EJxOZ1i #T<@ I}q9/t'zi(EMqw`mYkU6;[t4DPeckeM;H}_g pMww}k6#H㶏+b8雡Sxp)&C $@'b,fPߑt$RbJ'vznuS ~8='72_`{q纶|Q)Xk}cPz9p7O:'|G~8wx(a 0QCko|0ASD>Ip=4Q, d|F8RcU"/KM opKle M3#i0c%<7׿p&pZq[TR"BpqauIp$ 8~Ĩ!8Սx\ւdT>>Z40ks7 z2IQ}ItԀ<-%S⍤};zIb$I 5K}Q͙D8UguWE$Jh )cu4N tZl+[]M4k8֦Zeq֮M7uIqG 1==tLtR,ƜSrHYt&QP윯Lg' I,3@P'}'R˪e/%-Auv·ñ\> vDJzlӾNv5:|K/Jb6KI9)Zh*ZAi`?S {aiVDԲuy5W7pWeQJk֤#5&V<̺@/GH?^τZL|IJNvI:'P=Ϛt"¨=cud S Q.Ki0 !cJy;LJR;G{BJy޺[^8fK6)=yʊ+(k|&xQ2`L?Ȓ2@Mf 0C`6-%pKpm')c$׻K5[J*U[/#hH!6acB JA _|uMvDyk y)6OPYjœ50VT K}cǻP[ $:]4MEA.y)|B)cf-A?(e|lɉ#P9V)[9t.EiQPDѠ3ϴ;E:+Օ t ȥ~|_N2,ZJLt4! %ա]u {+=p.GhNcŞQI?Nd'yeh n7zi1DB)1S | S#ًZs2|Ɛy$F SxeX{7Vl.Src3E℃Q>b6G ўYCmtկ~=K0f(=LrAS GN'ɹ9<\!a`)֕y[uՍ[09` 9 +57ts6}b4{oqd+J5fa/,97J#6yν99mRWxJyѡyu_TJc`~W>l^q#Ts#2"nD1%fS)FU w{ܯ R{ ˎ󅃏џDsZSQS;LV;7 Od1&1n$ N /.q3~eNɪ]E#oM~}v֯FڦwyZ=<<>Xo稯lfMFV6p02|*=tV!c~]fa5Y^Q_WN|Vs 0ҘދU97OI'N2'8N֭fgg-}V%y]U4 峧p*91#9U kCac_AFңĪy뚇Y_AiuYyTTYЗ-(!JFLt›17uTozc. S;7A&&<ԋ5y;Ro+:' *eYJkWR[@F %SHWP 72k4 qLd'J "zB6{AC0ƁA6U.'F3:Ȅ(9ΜL;D]m8ڥ9}dU "v!;*13Rg^fJyShyy5auA?ɩGHRjo^]׽S)Fm\toy 4WQS@mE#%5ʈfFYDX ~D5Ϡ9tE9So_aU4?Ѽm%&c{n>.KW1Tlb}:j uGi(JgcYj0qn+>) %\!4{LaJso d||u//P_y7iRJ߬nHOy) l+@$($VFIQ9%EeKʈU. ia&FY̒mZ=)+qqoQn >L!qCiDB;Y<%} OgBxB!ØuG)WG9y(Ą{_yesuZmZZey'Wg#C~1Cev@0D $a@˲(.._GimA:uyw֬%;@!JkQVM_Ow:P.s\)ot- ˹"`B,e CRtaEUP<0'}r3[>?G8xU~Nqu;Wm8\RIkբ^5@k+5(By'L&'gBJ3ݶ!/㮻w҅ yqPWUg<e"Qy*167΃sJ\oz]T*UQ<\FԎ`HaNmڜ6DysCask8wP8y9``GJ9lF\G g's Nn͵MLN֪u$| /|7=]O)6s !ĴAKh]q_ap $HH'\1jB^s\|- W1:=6lJBqjY^LsPk""`]w)󭃈,(HC ?䔨Y$Sʣ{4Z+0NvQkhol6C.婧/u]FwiVjZka&%6\F*Ny#8O,22+|Db~d ~Çwc N:FuuCe&oZ(l;@ee-+Wn`44AMK➝2BRՈt7g*1gph9N) *"TF*R(#'88pm=}X]u[i7bEc|\~EMn}P瘊J)K.0i1M6=7'_\kaZ(Th{K*GJyytw"IO-PWJk)..axӝ47"89Cc7ĐBiZx 7m!fy|ϿF9CbȩV 9V-՛^pV̌ɄS#Bv4-@]Vxt-Z, &ֺ*diؠ2^VXbs֔Ìl.jQ]Y[47gj=幽ex)A0ip׳ W2[ᎇhuE^~q흙L} #-b۸oFJ_QP3r6jr+"nfzRJTUqoaۍ /$d8Mx'ݓ= OՃ| )$2mcM*cЙj}f };n YG w0Ia!1Q.oYfr]DyISaP}"dIӗթO67jqR ҊƐƈaɤGG|h;t]䗖oSv|iZqX)oalv;۩meEJ\!8=$4QU4Xo&VEĊ YS^E#d,yX_> ۘ-e\ "Wa6uLĜZi`aD9.% w~mB(02G[6y.773a7 /=o7D)$Z 66 $bY^\CuP. (x'"J60׿Y:Oi;F{w佩b+\Yi`TDWa~|VH)8q/=9!g߆2Y)?ND)%?Ǐ`k/sn:;O299yB=a[Ng 3˲N}vLNy;*?x?~L&=xyӴ~}q{qE*IQ^^ͧvü{Huu=R|>JyUlZV, B~/YF!Y\u_ݼF{_C)LD]m {H 0ihhadd nUkf3oٺCvE\)QJi+֥@tDJkB$1!Đr0XQ|q?d2) Ӣ_}qv-< FŊ߫%roppVBwü~JidY4:}L6M7f٬F "?71<2#?Jyy4뷢<_a7_=Q E=S1И/9{+93֮E{ǂw{))?maÆm(uLE#lïZ  ~d];+]h j?!|$F}*"4(v'8s<ŏUkm7^7no1w2ؗ}TrͿEk>p'8OB7d7R(A 9.*Mi^ͳ; eeUwS+C)uO@ =Sy]` }l8^ZzRXj[^iUɺ$tj))<sbDJfg=Pk_{xaKo1:-uyG0M ԃ\0Lvuy'ȱc2Ji AdyVgVh!{]/&}}ċJ#%d !+87<;qN޼Nفl|1N:8ya  8}k¾+-$4FiZYÔXk*I&'@iI99)HSh4+2G:tGhS^繿 Kتm0 вDk}֚+QT4;sC}rՅE,8CX-e~>G&'9xpW,%Fh,Ry56Y–hW-(v_,? ; qrBk4-V7HQ;ˇ^Gv1JVV%,ik;D_W!))+BoS4QsTM;gt+ndS-~:11Sgv!0qRVh!"Ȋ(̦Yl.]PQWgٳE'`%W1{ndΗBk|Ž7ʒR~,lnoa&:ü$ 3<a[CBݮwt"o\ePJ=Hz"_c^Z.#ˆ*x z̝grY]tdkP*:97YľXyBkD4N.C_[;F9`8& !AMO c `@BA& Ost\-\NX+Xp < !bj3C&QL+*&kAQ=04}cC!9~820G'PC9xa!w&bo_1 Sw"ܱ V )Yl3+ס2KoXOx]"`^WOy :3GO0g;%Yv㐫(R/r (s } u B &FeYZh0y> =2<Ϟc/ -u= c&׭,.0"g"7 6T!vl#sc>{u/Oh Bᾈ)۴74]x7 gMӒ"d]U)}" v4co[ ɡs 5Gg=XR14?5A}D "b{0$L .\4y{_fe:kVS\\O]c^W52LSBDM! C3Dhr̦RtArx4&agaN3Cf<Ԉp4~ B'"1@.b_/xQ} _߃҉/gٓ2Qkqp0շpZ2fԫYz< 4L.Cyυι1t@鎫Fe sYfsF}^ V}N<_`p)alٶ "(XEAVZ<)2},:Ir*#m_YӼ R%a||EƼIJ,,+f"96r/}0jE/)s)cjW#w'Sʯ5<66lj$a~3Kʛy 2:cZ:Yh))+a߭K::N,Q F'qB]={.]h85C9cr=}*rk?vwV렵ٸW Rs%}rNAkDv|uFLBkWY YkX מ|)1!$#3%y?pF<@<Rr0}: }\J [5FRxY<9"SQdE(Q*Qʻ)q1E0B_O24[U'],lOb ]~WjHޏTQ5Syu wq)xnw8~)c 쫬gٲߠ H% k5dƝk> kEj,0% b"vi2Wس_CuK)K{n|>t{P1򨾜j>'kEkƗBg*H%'_aY6Bn!TL&ɌOb{c`'d^{t\i^[uɐ[}q0lM˕G:‚4kb祔c^:?bpg… +37stH:0}en6x˟%/<]BL&* 5&fK9Mq)/iyqtA%kUe[ڛKN]Ě^,"`/ s[EQQm?|XJ߅92m]G.E΃ח U*Cn.j_)Tѧj̿30ڇ!A0=͜ar I3$C^-9#|pk!)?7.x9 @OO;WƝZBFU keZ75F6Tc6"ZȚs2y/1 ʵ:u4xa`C>6Rb/Yм)^=+~uRd`/|_8xbB0?Ft||Z\##|K 0>>zxv8۴吅q 8ĥ)"6>~\8:qM}#͚'ĉ#p\׶ l#bA?)|g g9|8jP(cr,BwV (WliVxxᡁ@0Okn;ɥh$_ckCgriv}>=wGzβ KkBɛ[˪ !J)h&k2%07δt}!d<9;I&0wV/ v 0<H}L&8ob%Hi|޶o&h1L|u֦y~󛱢8fٲUsւ)0oiFx2}X[zVYr_;N(w]_4B@OanC?gĦx>мgx>ΛToZoOMp>40>V Oy V9iq!4 LN,ˢu{jsz]|"R޻&'ƚ{53ўFu(<٪9:΋]B;)B>1::8;~)Yt|0(pw2N%&X,URBK)3\zz&}ax4;ǟ(tLNg{N|Ǽ\G#C9g$^\}p?556]/RP.90 k,U8/u776s ʪ_01چ|\N 0VV*3H鴃J7iI!wG_^ypl}r*jɤSR 5QN@ iZ#1ٰy;_\3\BQQ x:WJv츟ٯ$"@6 S#qe딇(/P( Dy~TOϻ<4:-+F`0||;Xl-"uw$Цi󼕝mKʩorz"mϺ$F:~E'ҐvD\y?Rr8_He@ e~O,T.(ފR*cY^m|cVR[8 JҡSm!ΆԨb)RHG{?MpqrmN>߶Y)\p,d#xۆWY*,l6]v0h15M˙MS8+EdI='LBJIH7_9{Caз*Lq,dt >+~ّeʏ?xԕ4bBAŚjﵫ!'\Ը$WNvKO}ӽmSşذqsOy?\[,d@'73'j%kOe`1.g2"e =YIzS2|zŐƄa\U,dP;jhhhaxǶ?КZ՚.q SE+XrbOu%\GتX(H,N^~]JyEZQKceTQ]VGYqnah;y$cQahT&QPZ*iZ8UQQM.qo/T\7X"u?Mttl2Xq(IoW{R^ ux*SYJ! 4S.Jy~ BROS[V|žKNɛP(L6V^|cR7i7nZW1Fd@ Ara{詑|(T*dN]Ko?s=@ |_EvF]׍kR)eBJc" MUUbY6`~V޴dJKß&~'d3i WWWWWW
Current Directory: /usr/share/emacs/24.3/lisp/cedet/srecode
Viewing File: /usr/share/emacs/24.3/lisp/cedet/srecode/dictionary.elc
;ELC ;;; Compiled by mockbuild@buildfarm01-new.corp.cloudlinux.com on Tue Nov 11 12:57:42 2025 ;;; from file /builddir/build/BUILD/emacs-24.3/lisp/cedet/srecode/dictionary.el ;;; in Emacs version 24.3.1 ;;; with all optimizations. ;;; This file uses dynamic docstrings, first added in Emacs 19.29. ;;; This file does not contain utf-8 non-ASCII characters, ;;; and so can be loaded in Emacs versions earlier than 23. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (byte-code "\300\301!\210\300\302!\210\300\303!\210\304\305\306\307\310$\210\304\311\306\211\312$\210\304\313\314\315\316$\210\317\320\321\320\322\"\"\210\323\320\306\313\324$\207" [require eieio srecode srecode/table eieio-defclass srecode-dictionary nil ((namehash :initarg :namehash :documentation "Hash table containing the names of all the templates.") (buffer :initarg :buffer :documentation "The buffer this dictionary was initialized with.") (parent :initarg :parent :type (or null srecode-dictionary) :documentation "The parent dictionary.\nSymbols not appearing in this dictionary will be checked against the\nparent dictionary.") (origin :initarg :origin :type string :documentation "A string representing the origin of this dictionary.\nUseful only while debugging.")) ("Dictionary of symbols and what they mean.\nDictionaries are used to look up named symbols from\ntemplates to decide what to do with those symbols.") srecode-dictionary-compound-value ("A compound dictionary value.\nValues stored in a dictionary must be a STRING,\na dictionary for showing sections, or an instance of a subclass\nof this class.\n\nCompound dictionary values derive from this class, and must\nprovide a sequence of method implementations to convert into\na string." :abstract t) srecode-dictionary-compound-variable (srecode-dictionary-compound-value) ((value :initarg :value :documentation "The value of this template variable.\nVariables in template files are usually a single string\nwhich can be inserted into a dictionary directly.\n\nSome variables may be more complex and involve dictionary\nlookups, strings, concatenation, or the like.\n\nThe format of VALUE is determined by current template\nformatting rules.") (compiled :initarg :compiled :type list :documentation "The compiled version of VALUE.")) ("A compound dictionary value for template file variables.\nYou can declare a variable in a template like this:\n\nset NAME \"str\" macro \"OTHERNAME\"\n\nwith appending various parts together in a list.") eieio--defalias initialize-instance eieio--defgeneric-init-form #1="Initialize the compound variable THIS.\nMakes sure that :value is compiled." eieio--defmethod #[(this &optional fields) "\306\211\n\203'\n@\307=\203\nA@\202\nA@\n@ BB\nAA\211\204\310 \237\"\210\311 \312\"?\205\204\313 \314\"\306\211\203} @\211;\203Q\fB\202u<\203o@\315\232\203o\316\317!\210\320A\"\fB\202u\321\322\"\210) A\211\204@\323 \324\f\237#**\207" [state newfields fields this comp val nil :state call-next-method slot-boundp compiled eieio-oref :value macro require srecode/compile srecode-compile-parse-inserter error "Don't know how to handle variable value %S" eieio-oset :compiled nval] 5 #1#]] 5) #@456 Create a dictionary for BUFFER. If BUFFER-OR-PARENT is not specified, assume a buffer, and use the current buffer. If BUFFER-OR-PARENT is another dictionary, then remember the parent within the new dictionary, and assume that BUFFER is the same as belongs to the parent dictionary. The dictionary is initialized with variables setup for that buffer's table. If BUFFER-OR-PARENT is t, then this dictionary should not be associated with a buffer or parent. (defalias 'srecode-create-dictionary #[(&optional buffer-or-parent) "\212\306\211\211\211\307\f!\203\fq\210\f\310\f!\311\202\\\312\f!\203E\f\313\f\302\"\314\f!\315\n\2038\310\n!\2029\316Q\n\203\\\nq\210\202\\\f\311=\203R\306\317\202\\p\320\310\n!P\311\321 \322\n\323 \324\325\326\327\330\331$\332 & \203\214\333 !\333\334! \335\"\210\335 \"\210*.\207" [initfrombuff origin buffer parent buffer-or-parent major-mode nil bufferp buffer-name t srecode-dictionary-child-p eieio-oref object-name " in " "no buffer" "Unspecified Origin" "Unspecified. Assume " srecode-dictionary :buffer :parent :namehash make-hash-table :test equal :size 20 :origin srecode-get-mode-table default srecode-dictionary-add-template-table dict def mt] 12 (#$ . 3302)]) (byte-code "\300\301\302\301\303\"\"\210\304\301\305\306\307$\210\300\310\302\310\311\"\"\210\304\310\305\306\312$\210\300\313\302\313\314\"\"\210\304\313\305\306\315$\210\300\316\302\316\317\"\"\210\304\316\305\306\320$\210\300\321\302\321\322\"\"\210\304\321\305\306\323$\210\300\324\302\324\325\"\"\210\304\324\305\306\326$\210\300\327\302\327\330\"\"\210\304\327\305\306\331$\210\300\332\302\332\333\"\"\210\304\332\305\306\334$\210\300\335\302\335\336\"\"\210\304\335\305\306\337$\210\300\340\302\340\341\"\"\210\304\340\305\342\343$\210\300\344\302\344\345\"\"\210\304\344\305\342\346$\210\300\340\302\340\347\"\"\210\304\340\305\350\351$\210\300\344\302\344\345\"\"\210\304\344\305\350\352$\210\353\354\355\356\357$\210\300\340\302\340\360\"\"\210\304\340\305\354\361$\207" [eieio--defalias srecode-dictionary-add-template-table eieio--defgeneric-init-form #1="Insert into DICT the variables found in table TPL.\nTPL is an object representing a compiled template file." eieio--defmethod nil srecode-dictionary #[(dict tpl) "\205?\304\305\306\"!\307\310!\210 \205>\311 @!\2036\305 @\312\"\211\2035\313 \n@@\n@A#\210\nA\211\204$) A\211\204\314)\207" [tpl tabs vars dict reverse eieio-oref :tables require srecode/find srecode-template-table-in-project-p variables srecode-dictionary-set-value nil] 5 #1#] srecode-dictionary-set-value #2="In dictionary DICT, set NAME to have VALUE." #[(dict name value) ";\204\f\303\304\305D\"\210\306 \307\n\310\"#\207" [name value dict signal wrong-type-argument stringp puthash slot-value namehash] 6 #2#] srecode-dictionary-add-section-dictionary #3="In dictionary DICT, add a section dictionary for section macro NAME.\nReturn the new dictionary.\n\nYou can add several dictionaries to the same section entry.\nFor each dictionary added to a variable, the block of codes in\nthe template will be repeated.\n\nIf optional argument SHOW-ONLY is non-nil, then don't add a new dictionary\nif there is already one in place. Also, don't add FIRST/LAST entries.\nThese entries are not needed when we are just showing a section.\n\nEach dictionary added will automatically get values for positional macros\nwhich will enable SECTIONS to be enabled.\n\n * FIRST - The first entry in the table.\n * NOTFIRST - Not the first entry in the table.\n * LAST - The last entry in the table\n * NOTLAST - Not the last entry in the table.\n\nAdding a new dictionary will alter these values in previously\ninserted dictionaries." #[(dict name &optional show-only force) ";\204\f\306\307\310D\"\210\311 !\312 \313#\f\204E\n\204+\314 \315\"\210\314 \316\"\210\202E\317\n!@\320 \316\"\210\314 \321\"\210)\314 \322\"\210\314 \316\"\210\204R\f\203R\n\204\\\323 \324\n C\"#\210 *\207" [name dict ov new show-only tail signal wrong-type-argument stringp srecode-create-dictionary srecode-dictionary-lookup-name t srecode-dictionary-show-section "FIRST" "LAST" last srecode-dictionary-hide-section "NOTLAST" "NOTFIRST" srecode-dictionary-set-value append force] 6 #3#] srecode-dictionary-show-section #4="In dictionary DICT, indicate that the section NAME should be exposed." #[(dict name) ";\204\f\302\303\304D\"\210\305 \306#\210\307\207" [name dict signal wrong-type-argument stringp srecode-dictionary-add-section-dictionary t nil] 4 #4#] srecode-dictionary-hide-section #5="In dictionary DICT, indicate that the section NAME should be hidden." #[(dict name) ";\204\f\302\303\304D\"\210\305\306 \307\"\"\210\310\207" [name dict signal wrong-type-argument stringp remhash slot-value namehash nil] 5 #5#] srecode-dictionary-add-entries #6="Add ENTRIES to DICT.\n\nENTRIES is a list of even length of dictionary entries to\nadd. ENTRIES looks like this:\n\n (NAME_1 VALUE_1 NAME_2 VALUE_2 ...)\n\nThe following rules apply:\n * NAME_N is a string\nand for values\n * If VALUE_N is t, the section NAME_N is shown.\n * If VALUE_N is a string, an ordinary value is inserted.\n * If VALUE_N is a dictionary, it is inserted as entry NAME_N.\n * Otherwise, a compound variable is created for VALUE_N.\n\nThe optional argument STATE has to non-nil when compound values\nare inserted. An error is signaled if ENTRIES contains compound\nvalues but STATE is nil." #[(dict entries &optional state) "\203V@A@ \305=\203\306 \n\"\210\202M ;\203'\307 \n #\210\202M\310 !\2039\311\312 \n\" \305#\210\202M\f\204A\313\314!\210\307 \n\315\n\316 \317\f%#\210*AA\211\204 \207" [entries value name dict state t srecode-dictionary-show-section srecode-dictionary-set-value srecode-dictionary-child-p srecode-dictionary-merge srecode-dictionary-add-section-dictionary error "Cannot insert compound values without state." srecode-dictionary-compound-variable :value :state] 10 #6#] srecode-dictionary-merge #7="Merge into DICT the dictionary entries from OTHERDICT.\nUnless the optional argument FORCE is non-nil, values in DICT are\nnot modified, even if there are values of the same names in\nOTHERDICT." #[(dict otherdict &optional force) "\205 \301\302\303\304\"\"\207" [otherdict maphash #[(key entry) "\204 \306 \n\307#?\205> <\2039\310 @!\2039 \311\211\2057 @\312\313 \n\307\211$\f#\210 A\211\204!\311*\207\314 \n #\207" [force dict key entry sub-dict --dolist-tail-- srecode-dictionary-lookup-name t srecode-dictionary-p nil srecode-dictionary-merge srecode-dictionary-add-section-dictionary srecode-dictionary-set-value] 7] eieio-oref namehash] 5 #7#] srecode-dictionary-lookup-name #8="Return information about DICT's value for NAME.\nDICT is a dictionary, and NAME is a string that is treated as the\nname of an entry in the dictionary. If such an entry exists, its\nvalue is returned. Otherwise, nil is returned. Normally, the\nlookup is recursive in the sense that the parent of DICT is\nsearched for NAME if it is not found in DICT. This recursive\nlookup can be disabled by the optional argument NON-RECURSIVE.\n\nThis function derives values for some special NAMEs, such as\n'FIRST' and 'LAST'." #[(dict name &optional non-recursive) "\303\304\"\205+\305 \306\304\"\"\206+\n?\205+ \307\235?\205+\306\310\"\205+\311\306\310\" \"\207" [dict name non-recursive slot-boundp namehash gethash slot-value ("FIRST" "LAST" "NOTFIRST" "NOTLAST") parent srecode-dictionary-lookup-name] 5 #8#] srecode-root-dictionary #9="For dictionary DICT, return the root dictionary.\nThe root dictionary is usually for a current or active insertion." #[(dict) "\302 \303\"\203\302 \303\"\202 )\207" [dict ans eieio-oref parent] 3 #9#] srecode-compound-toString #10="Convert the compound dictionary value CP to a string.\nIf FUNCTION is non-nil, then FUNCTION is somehow applied to an aspect\nof the compound value. The FUNCTION could be a fraction\nof some function symbol with a logical prefix excluded.\n\nIf you subclass `srecode-dictionary-compound-value' then this\nmethod could return nil, but if it does that, it must insert\nthe value itself using `princ', or by detecting if the current\nstandard out is a buffer, and using `insert'." srecode-dictionary-compound-value #[(cp function dictionary) "\301!\207" [cp object-name] 2 #10#] srecode-dump #11="Display information about this compound value." #[(cp &optional indent) "\301\302!!\207" [cp princ object-name] 3 #11#] #12="Convert the compound dictionary variable value CP into a string.\nFUNCTION and DICTIONARY are as for the baseclass." srecode-dictionary-compound-variable #[(cp function dictionary) "\302\303!\210\304\305\306\" \"\207" [cp dictionary require srecode/insert srecode-insert-code-stream eieio-oref compiled] 4 #12#] #[(cp &optional indent) "\303\304!\210\305\306!\210\307\206\310\\\311 \312\"\313\n\314\315\"\"*\207" [indent cp cmp require srecode/compile princ "# Compound Variable #\n" 4 0 eieio-oref compiled srecode-dump-code-list make-string 32] 5 "Display information about this compound value."] eieio-defclass srecode-field-value (srecode-dictionary-compound-value) ((firstinserter :initarg :firstinserter :documentation "The inserter object for the first occurrence of this field.") (defaultvalue :initarg :defaultvalue :documentation "The default value for this inserter.")) ("When inserting values with editable field mode, a dictionary value.\nCompound values allow a field to be stored in the dictionary for when\nit is referenced a second time. This compound value can then be\ninserted with a new editable field.") #13="Convert this field into an insertable string." #[(cp function dictionary) "\306\307!\210\310!\204\311\312!\210 \203\311\313!\210\202\201\314\n\315\"\314\n\316\"`\314\f\317\" \2046c\210\202i\320 !\203F\321 #\210\202i ;\203X \322\230\203Xc\210\202i ;\203c c\210\202i\311\323\"\210\324\325\326 \327`\330\314\f\331\"\332\314\f\333\"& \210,\334\207" [standard-output function cp dv sti start require srecode/fields bufferp error "FIELDS invoked while inserting template to non-buffer" "@todo: Cannot mix field insertion with functions" eieio-oref defaultvalue firstinserter :object-name srecode-dictionary-compound-value-child-p srecode-compound-toString "" "Unknown default value for value %S" srecode-field :name :start :end :prompt prompt :read-fcn read-fcn nil name dictionary] 14 #13#]] 5) #@485 Create a dictionary with entries according to TAGS. TAGS should be in the format produced by the template file grammar. That is TAGS = (ENTRY_1 ENTRY_2 ...) where ENTRY_N = (NAME ENTRY_N_1 ENTRY_N_2 ...) | TAG where TAG is a semantic tag of class 'variable. The (NAME ... ) form creates a child dictionary which is stored under the name NAME. The TAG form creates a value entry or section dictionary entry whose name is the name of the tag. STATE is the current compiler state. (defalias 'srecode-create-dictionaries-from-tags #[(tags state) "\304\305!\306\307\310\311\"\"\312\n #\210\n*\207" [tags entries dict state srecode-create-dictionary t apply append mapcar #[(entry) "\306\307\310\217)\203=\211@)\211\311\312 \313 8)\n\"+\211 <\2039 G\314U\2039 @;\2039 @\202: *D\207@A\211\315 \"*D\207" [entry tag attribute value name entries nil (byte-code ":\205#@;\205#A@9\205#A@\205#\3018<\205#\3028<\207" [tag 2 3] 2) ((error)) :default-value plist-get 2 1 srecode-create-dictionaries-from-tags state] 5] srecode-dictionary-add-entries] 6 (#$ . 13776)]) #@43 Run data-debug on this mode's dictionary. (defalias 'srecode-adebug-dictionary #[nil "\306\307!\210\306\310!\210\311 \312 !\210\313 !\206\314\315 \"\316p!\311 \317\320\n \321\322 \n\"!*\"\210\323\324!\210\325\f\326\"-\207" [major-mode modesym start junk dict end require eieio-datadebug srecode/find current-time srecode-load-tables-for-mode srecode-get-mode-table error "No table found for mode %S" srecode-create-dictionary message "Creating a dictionary took %.2f seconds." float-time time-subtract data-debug-new-buffer "*SRECODE ADEBUG*" data-debug-insert-object-slots "*"] 6 (#$ . 14877) nil]) #@39 Dump a typical fabricated dictionary. (defalias 'srecode-dictionary-dump #[nil "\306\307!\210\310 !\210\311 !\211\204\312\313 \"\210\314p!\fr\315\316!q\210p\317 \210 \320\211\321\211\321\322 \210\323\324!\210+\211 \325\326!\210\325!\210\325\327!\210\330 !\331!\210.\207" [major-mode modesym tmp dict default-directory #1=#:old-dir require srecode/find srecode-load-tables-for-mode srecode-get-mode-table error "No table found for mode %S" srecode-create-dictionary get-buffer-create "*SRECODE DUMP*" kill-all-local-variables nil t erase-buffer run-hooks temp-buffer-setup-hook princ "DICTIONARY FOR " "\n--------------------------------------------\n" srecode-dump internal-temp-output-buffer-show buffer-read-only buffer-file-name buffer-undo-list inhibit-modification-hooks inhibit-read-only #2=#:buf standard-output] 4 (#$ . 15493) nil]) (byte-code "\300\301\302\301\303\"\"\210\304\301\305\306\307$\210\310\311!\207" [eieio--defalias srecode-dump eieio--defgeneric-init-form #1="Dump a dictionary." eieio--defmethod nil srecode-dictionary #[(dict &optional indent) "\204\302\303\304\305 \306\"\"\207" [indent dict 0 maphash #[(key entry) "\305\306\307\"!\210\305\310!\210\305 !\210\305\310!\210\n<\203R\311\n@!\203R\203)\312\\\202*\312\n\203J\305\313!\210\305\314\f!!\210\305\315!\210\316\n@ \"\210\nA\211\204/)\305\315!\210\202h\317\n!\203d\316\n\"\210\305\315!\210\202h\320\n!\210\321 \207" [indent key entry newindent dict princ make-string 32 " " srecode-dictionary-p 4 " --> SUBDICTIONARY " object-name "\n" srecode-dump srecode-dictionary-compound-value-child-p prin1 terpri] 5] eieio-oref namehash] 5 #1#] provide srecode/dictionary] 5)