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/semantic
Viewing File: /usr/share/emacs/24.3/lisp/cedet/semantic/edit.elc
;ELC ;;; Compiled by mockbuild@buildfarm01-new.corp.cloudlinux.com on Tue Nov 11 12:56:56 2025 ;;; from file /builddir/build/BUILD/emacs-24.3/lisp/cedet/semantic/edit.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. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (require 'semantic) #@396 Normal hook run after the buffer cache has been updated. This hook will run when the cache has been partially reparsed. Partial reparses are incurred when a user edits a buffer, and only the modified sections are rescanned. Hook functions must take one argument, which is the list of tags updated in the current buffer. For language specific hooks, make sure you define this as a local hook. (defvar semantic-after-partial-cache-change-hook nil (#$ . 583)) (byte-code "\302\303\304\305#\210\306\305\211\203, @\303N\203%\304N\204%\307\304\303N#\210 A\211\204*\310\303\304\311#\207" [prop --dolist-tail-- defvaralias semantic-change-hooks semantic-change-functions nil (saved-value saved-variable-comment) put make-obsolete-variable "24.3"] 6) #@164 Abnormal hook run when semantic detects a change in a buffer. Each hook function must take three arguments, identical to the common hook `after-change-functions'. (defvar semantic-change-functions '(semantic-edits-change-function-handle-changes) (#$ . 1348)) #@195 Hooks run when a user edit is detected as needing a reparse. For language specific hooks, make sure you define this as a local hook. Not used yet; part of the next generation reparse mechanism. (defvar semantic-reparse-needed-change-hook nil (#$ . 1614)) #@267 Hooks run when a user edit is detected as not needing a reparse. If the hook returns non-nil, then declare that a reparse is needed. For language specific hooks, make sure you define this as a local hook. Not used yet; part of the next generation reparse mechanism. (defvar semantic-no-reparse-needed-change-hook nil (#$ . 1876)) (byte-code "\302\303\304\305#\210\306\305\211\203, @\303N\203%\304N\204%\307\304\303N#\210 A\211\204*\310\303\304\311#\207" [prop --dolist-tail-- defvaralias semantic-edits-new-change-hooks semantic-edits-new-change-functions nil (saved-value saved-variable-comment) put make-obsolete-variable "24.3"] 6) #@120 Abnormal hook run when a new change is found. Functions must take one argument representing an overlay on that change. (defvar semantic-edits-new-change-functions nil (#$ . 2531)) (byte-code "\302\303\304\305#\210\306\305\211\203, @\303N\203%\304N\204%\307\304\303N#\210 A\211\204*\310\303\304\311#\207" [prop --dolist-tail-- defvaralias semantic-edits-delete-change-hooks semantic-edits-delete-change-functions nil (saved-value saved-variable-comment) put make-obsolete-variable "24.3"] 6) #@183 Abnormal hook run before a change overlay is deleted. Deleted changes occur when multiple changes are merged. Functions must take one argument representing an overlay being deleted. (defvar semantic-edits-delete-change-functions nil (#$ . 3042)) #@208 Abnormal hook run after a change overlay is moved. Changes move when a new change overlaps an old change. The old change will be moved. Functions must take one argument representing an overlay being moved. (defvar semantic-edits-move-change-hook nil (#$ . 3295)) (byte-code "\302\303\304\305#\210\306\305\211\203, @\303N\203%\304N\204%\307\304\303N#\210 A\211\204*\310\303\304\311#\207" [prop --dolist-tail-- defvaralias semantic-edits-reparse-change-hooks semantic-edits-reparse-change-functions nil (saved-value saved-variable-comment) put make-obsolete-variable "24.3"] 6) #@143 Abnormal hook run after a change results in a reparse. Functions are called before the overlay is deleted, and after the incremental reparse. (defvar semantic-edits-reparse-change-functions nil (#$ . 3892)) #@113 Hook run after the incremental parser fails. When this happens, the buffer is marked as needing a full reparse. (defvar semantic-edits-incremental-reparse-failed-hook nil (#$ . 4106)) (byte-code "\300\301\302\303#\210\304\305\306\307\310\311\312\313&\207" [semantic-varalias-obsolete semantic-edits-incremental-reparse-failed-hooks semantic-edits-incremental-reparse-failed-hook "23.2" custom-declare-variable semantic-edits-verbose-flag nil "Non-nil means the incremental parser is verbose.\nIf nil, errors are still displayed, but informative messages are not." :group semantic :type boolean] 8) #@116 Provide a mechanism for semantic tag management. Argument START, END, and LENGTH specify the bounds of the change. (defalias 'semantic-change-function #[(start end length) "\305\211\306\307\n \f$)\207" [semantic-unmatched-syntax-cache-check inhibit-point-motion-hooks start end length t run-hook-with-args semantic-change-functions] 6 (#$ . 4712)]) #@142 Find change overlays which exist in whole or in part between START and END. Optional argument BUFFER is the buffer to search for changes in. (defalias 'semantic-changes-in-region #[(start end &optional buffer) "\212\203q\210\305 e]\nd^\"\306\211\203+\307\f@\310\"\203$\f@ B\fA\211\204\311 \312\"+\207" [buffer start end ret ol semantic-overlays-in nil semantic-overlay-get semantic-change sort #[(a b) "\302!\302 !W\207" [a b semantic-overlay-start] 3]] 5 (#$ . 5070)]) #@172 Run whenever a buffer controlled by `semantic-mode' change. Tracks when and how the buffer is re-parsed. Argument START, END, and LENGTH specify the bounds of the change. (defalias 'semantic-edits-change-function-handle-changes #[(start end length) "\306S T\"\307\n\204 \310 \"\311\f\312\313#\210\314\315\316\217)\202o\n\211\203I\317 @!W\2034\317 @!\320 @! V\203B\320 @! A\211\204&\321\n@ #\210\314\322\323\217\210\nA\211\205n\314\324\325\217\210\326\n@!\210\nA\211\204\\\314))\207" [start end changes-in-change semantic-parse-tree-state o tmp semantic-changes-in-region needs-update semantic-make-overlay semantic-overlay-put semantic-change t nil (byte-code "\301\302\"\207" [o run-hook-with-args semantic-edits-new-change-functions] 3) ((error)) semantic-overlay-start semantic-overlay-end semantic-overlay-move (byte-code "\301\302@\"\207" [changes-in-change run-hook-with-args semantic-edits-move-change-hooks] 3) ((error)) (byte-code "\301\302@\"\207" [changes-in-change run-hook-with-args semantic-edits-delete-change-functions] 3) ((error)) semantic-overlay-delete] 5 (#$ . 5560)]) #@27 Flush the CHANGE overlay. (defalias 'semantic-edits-flush-change #[(change) "\301\302\303\217\210\304!\207" [change nil (byte-code "\301\302\"\207" [change run-hook-with-args semantic-edits-delete-change-functions] 3) ((error)) semantic-overlay-delete] 3 (#$ . 6680)]) (put 'semantic-edits-flush-change 'byte-optimizer 'byte-compile-inline-expand) #@42 Flush the changes in the current buffer. (defalias 'semantic-edits-flush-changes #[nil "\302ed\"\211\205@\303\304\305\217\210\306 !)\210A\211\204 \303)\207" [changes change semantic-changes-in-region nil (byte-code "\301\302\"\207" [change run-hook-with-args semantic-edits-delete-change-functions] 3) ((error)) semantic-overlay-delete] 4 (#$ . 7036)]) #@190 Return non-nil of the overlay CHANGE exists solely in one leaf tag. HITS is the list of tags that CHANGE is in. It can have more than one tag in it if the leaf tag is within a parent tag. (defalias 'semantic-edits-change-in-one-tag-p #[(change hits) "@\211\304 8)\305\n!\203\306\n!\202\n\307H*\306 !W\205M@\211\304 8)\305\n!\2037\310\n!\202:\n\311H*\310 !V\205MA?\206M\312 A\"\207" [hits tag o change 4 semantic-overlay-p semantic-overlay-start 0 semantic-overlay-end 1 semantic-edits-change-in-one-tag-p] 4 (#$ . 7405)]) #@65 For testing: Start of CHANGE, or smaller of (point) and (mark). (defalias 'semantic-edits-os #[(change) "\203\301!\207`\302 W\203`\207\302 \207" [change semantic-overlay-start mark] 2 (#$ . 7953)]) (put 'semantic-edits-os 'byte-optimizer 'byte-compile-inline-expand) #@62 For testing: End of CHANGE, or larger of (point) and (mark). (defalias 'semantic-edits-oe #[(change) "\203\301!\207`\302 V\203`\207\302 \207" [change semantic-overlay-end mark] 2 (#$ . 8232)]) (put 'semantic-edits-oe 'byte-optimizer 'byte-compile-inline-expand) #@244 A leaf tag which completely encompasses CHANGE. If change overlaps a tag, but is not encompassed in it, return nil. Use `semantic-edits-change-overlap-leaf-tag'. If CHANGE is completely encompassed in a tag, but overlaps sub-tags, return nil. (defalias 'semantic-edits-change-leaf-tag #[(change) "\211\203\f\306!\202`\307 W\203`\202\307 )\211\203'\310!\2024`\307 V\2032`\2024\307 )\311 \n\"\237\211\205\334 @\211\312\f8)\313 !\203V\306 !\202Y \314H* X\205\334 @\211\312\f8)\313 !\203u\310 !\202x \315H*\nV\205\334\316 @!\211\204\215 @\202\333\317@!\203\331 GS8\211\312\f8)\313 !\203\261\310 !\202\264 \315H*V\204\331\n@\211\312\f8)\313 !\203\321\306 !\202\324 \314H*W\205\333 @)+\207" [change start end tags tag o semantic-overlay-start mark semantic-overlay-end semantic-find-tag-by-overlay-in-region 4 semantic-overlay-p 0 1 semantic-tag-components semantic-tag-with-position-p chil] 4 (#$ . 8507)]) #@423 Return a cache list of tags surrounding CHANGE. The returned list is the CONS cell in the master list pointing to a tag just before CHANGE. The CDR will have the tag just after CHANGE. CHANGE cannot encompass or overlap a leaf tag. If CHANGE is fully encompassed in a tag that has children, and this change occurs between those children, this returns non-nil. See `semantic-edits-change-leaf-tag' for details on parents. (defalias 'semantic-edits-change-between-tags #[(change) "\211\203\f\306!\202`\307 W\203`\202\307 )\211\203'\310!\2024`\307 V\2032`\2024\307 )\311 \n\"\237\312\211 \204J\202\367 @\211\3138)\314!\203f\306!\202j\315H* W\203\367 @\211\3138)\314!\203\214\310!\202\220\316H*\nV\203\367\317 @!\211\203\367\320\f@!\203\365 \fGS\f8\211\3138)\314!\203\306\310!\202\312\316H*V\204\365\n\f@\211\3138)\314!\203\354\306!\202\360\315H*W\203\367\312\f\203A \204A\fA\203;\f\211A@)\211\3138)\314!\203%\306!\202)\315H*\nW\2036\fA\211\202\370\321\202\367\312\211\204\373\f-\207" [change start end tags list-to-search found semantic-overlay-start mark semantic-overlay-end semantic-find-tag-by-overlay-in-region nil 4 semantic-overlay-p 0 1 semantic-tag-components semantic-tag-with-position-p t semantic--buffer-cache tag o x] 4 (#$ . 9474)]) #@659 Return a cache list of tags surrounding a CHANGE encompassing tags. CHANGE must not only include all overlapped tags (excepting possible parent tags) in their entirety. In this case, the change may be deleting or moving whole tags. The return value is a vector. Cell 0 is a list of all tags completely encompassed in change. Cell 1 is the cons cell into a master parser cache starting with the cell which occurs BEFORE the first position of CHANGE. Cell 2 is the parent of cell 1, or nil for the buffer cache. This function returns nil if any tag covered by change is not completely encompassed. See `semantic-edits-change-leaf-tag' for details on parents. (defalias 'semantic-edits-change-over-tags #[(change) "\211\203\f\306!\202`\307 W\203`\202\307 )\211\203'\310!\2024`\307 V\2032`\2024\307 )\311 \n\"\237\312\211\312\211\312 \205  @\211\3138)\314!\203i\306!\202m\315H* Y\205  @\211\3138)\314!\203\217\310!\202\223\316H*\nX\205  @C @\211\3138)\314!\203\271\306!\202\275\315H* @\211\3138)\314!\203\334\310!\202\340\316H* A\211\203\331 @\211\3138)\314!\203\306!\202\n\315H* Y\203\331 @\211\3138)\314!\203,\310!\2020\316H*\nX\203\331 @\211\3138)\314!\203R\310!\202V\316H*V\203\252 @C @\211\3138)\314!\203}\306!\202\201\315H* @\211\3138)\314!\203\240\310!\202\244\316H*\202\322 @ B @\211\3138)\314!\203\313\306!\202\317\315H* A\211\204\352 \204\344\202\235 \203\235 @\211\3138)\314!\203\306!\202\315H* W\203\235 @\211\3138)\314!\203*\310!\202.\316H*\nV\203\235 @\317\f!\312\320@!\204\230 @\211\3138)\314!\203d\306!\202h\315H*W\204\230\nGS8\211\3138)\314!\203\217\310!\202\223\316H*V\203\235\312\211\205  @\211\3138)\314!\203\276\306!\202\302\315H*\203A\203A@\211\3138)\314!\203\356\306!\202\362\315H*W\203A\211\204\305)\321 \f#.\207" [change start end tags parent overlapped-tags semantic-overlay-start mark semantic-overlay-end semantic-find-tag-by-overlay-in-region nil 4 semantic-overlay-p 0 1 semantic-tag-components semantic-tag-with-position-p vector inner-start inner-end list-to-search tag o semantic--buffer-cache tokstart] 5 (#$ . 10854)]) #@175 Signal that Semantic failed to parse changes. That is, display a message by passing all ARGS to `format', then throw a 'semantic-parse-changes-failed exception with value t. (defalias 'semantic-parse-changes-failed #[(&rest args) "\203\f\302\303\304\305 \"\"\210\306\307\310\"\207" [semantic-edits-verbose-flag args message "Semantic parse changes failed: %S" apply format throw semantic-parse-changes-failed t] 5 (#$ . 13279)]) #@73 When the incremental parser fails, we mark that we need a full reparse. (defalias 'semantic-edits-incremental-fail #[nil "\302 \203 \303\304\305p!\"\210\306\307!\207" [semantic-parse-tree-state semantic-edits-verbose-flag needs-rebuild message "Force full reparse (%s)" buffer-name run-hooks semantic-edits-incremental-reparse-failed-hook] 4 (#$ . 13716)]) (put 'semantic-edits-incremental-fail 'byte-optimizer 'byte-compile-inline-expand) #@355 Incrementally reparse the current buffer. Incremental parser allows semantic to only reparse those sections of the buffer that have changed. This function depends on `semantic-edits-change-function-handle-changes' setting up change overlays in the current buffer. Those overlays are analyzed against the semantic cache to see what needs to be changed. (defalias 'semantic-edits-incremental-parser #[nil "\303\304\215\211\305=\203\306\n\203\307\310\311p!\"\210\312\313!\210\314)\207" [changed-tags semantic-parse-tree-state semantic-edits-verbose-flag semantic-parse-changes-failed (byte-code "\203\301 \207\302\303\304\217\207" [debug-on-error semantic-edits-incremental-parser-1 err (semantic-edits-incremental-parser-1) ((error (byte-code "\301\302\303!\"\210\304\207" [err message "incremental parser error: %S" error-message-string t] 4)))] 3) t needs-rebuild message "Force full reparse (%s)" buffer-name run-hooks semantic-edits-incremental-reparse-failed-hook nil] 5 (#$ . 14165)]) #@61 Assert that parse-start and parse-end are sorted correctly. (defalias 'semantic-edits-assert-valid-region '(macro . #[nil "\300\207" ["Assert that parse-start and parse-end are sorted correctly."] 1 (#$ . 15174)])) #@297 Incrementally reparse the current buffer. Return the list of tags that changed. If the incremental parse fails, throw a 'semantic-parse-changes-failed exception with value t, that can be caught to schedule a full reparse. This function is for internal use by `semantic-edits-incremental-parser'. (defalias 'semantic-edits-incremental-parser-1 #[nil "\306\307\310ed\"\306\211\306\2117\306\21189\306\211#:\306;\n\204)\311\312!\210\n\203\375\n\203\353 \203?\313\n@!7W\203\353\n@:@=\203L\311\314!\210\n@:B: \204\314\315;\306<\316\n@!\211<\203\266\317;<C<\211==\320=8)>\321>!\203\212\313>!\202\216>\322H*<\211==\320=8)>\321>!\203\254\323>!\202\260>\324H*7\202\310\325\n@!\2119\203\326;\306\327 !@89@\211==\320=8)>\321>!\203\350\313>!\202\354>\322H*\323\n@!V\203!\330;e9@\211==\320=8)>\321>!\203\313>!\202>\322H*7\202\3109@\211==\320=8)>\321>!\203>\323>!\202B>\324H*\313\n@!U\203\331;9@\211==\320=8)>\321>!\203k\313>!\202o>\322H*\323\n@!79@C\202\3109A@\204\262\332;9@\211==\320=8)>\321>!\203\246\323>!\202\252>\324H*d7\202\310\333;9@\211==\320=8)>\321>!\203\322\323>!\202\326>\324H*9A@\211==\320=8)>\321>!\203\366\313>!\202\372>\322H*7\202\310\334\n@!\211<\203\304\335;<\322H<\324H9<\336H8 @9@=\203e G98?e?\203[?\211==\320=8)>\321>!\203Q\313>!\202U>\322H*7\202a\323\n@!7)\202\3109@\211==\320=8)>\321>!\203\202\323>!\202\206>\324H* GT98\211?\203\272?\211==\320=8)>\321>!\203\260\313>!\202\264>\322H*7\202\300\323\n@!7)\202\310\311\337!\210)\202\344\323\n@!7W\203\334\340;\202\344\311\341\211;\342\"\210\nA\211\2041 \206\3619@\343@=\344==\345=8)@\"*#8\204 \203\346 @!89\204-8\203)\3478!9\202-A9\350 7##\211\211<\203K\351<@!\210<A\211<\204<) \204`\f\204`B\203\332\352\353!\210\202\332 \204\205\f\203\205\354\f89#\210\355\f\"B\203\332\352\356\357\f@!\"\210\202\332 \203\252\f\204\252\360 89#\210\355 \"B\203\332\352\361\357 @!\"\210\202\332 G\324U\203\326\fG\324U\203\326\362 @\f@\"\210 @BB\203\332\352\363\357 @\306\307#\"\210\202\332\311\312!\210:\203\370:@C\306\364\365\217\210\366C!)\210:A\211:\204\337\306\202)\306D.\f\207" [changed-tags debug-on-quit changes tags newf-tags parse-start nil t semantic-changes-in-region semantic-parse-changes-failed "Don't know what to do" semantic-overlay-start "Possible infinite loop detected" "new group" semantic-edits-change-leaf-tag "Encompassed in tag" 4 semantic-overlay-p 0 semantic-overlay-end 1 semantic-edits-change-between-tags "Between and not overlapping tags" semantic-find-tag-by-overlay "Beginning of buffer" "Beginning of Tag" "End of buffer" "Default" semantic-edits-change-over-tags "Overlap multiple tags" 2 "Unhandled change group" "in bounds" "overlap boundary" "Unhandled secondary change overlapping boundary" reparse-symbol plist-get 3 semantic-find-tag-parent-by-overlay semantic-tag-components semantic-parse-region semantic--tag-link-to-buffer message "White space changes" semantic-edits-splice-insert append "Inserted tags: (%s)" semantic-format-tag-name semantic-edits-splice-remove "Deleted tags: (%s)" semantic-edits-splice-replace "Update Tag Table: %s" (byte-code "\301\302\"\207" [change run-hook-with-args semantic-edits-delete-change-functions] 3) ((error)) semantic-overlay-delete parse-end parent-tag cache-list change-group last-cond tmp tag o end-marker property semantic--buffer-cache semantic-edits-verbose-flag change semantic-parse-tree-state] 7 (#$ . 15396)]) (defalias 'semantic-parse-changes-default 'semantic-edits-incremental-parser) #@270 Remove OLDTAGS from PARENT's CACHELIST. OLDTAGS are tags in the current buffer, preferably linked together also in CACHELIST. PARENT is the parent tag containing OLDTAGS. CACHELIST should be the children from PARENT, but may be pre-positioned to a convenient location. (defalias 'semantic-edits-splice-remove #[(oldtags parent cachelist) "@GS8 \203\306 !\202\f\307 @=\203d\203/\310\311\312 !\"\210 \211\203G\n@=\204GA\211\2046A @\240\210 A\241\210\204k\313\314!\210\202k\310\315\312 !\"\210\203\202 A@=\204\202A\211\204p\211\203\233\n@=\204\233A\211\204\212\203\252A\241\210\202\256\313\316!\210\205\277\317@!\210A\211\204\262\307-\207" [oldtags first last parent semantic--buffer-cache chil semantic-tag-components nil message "To Remove First Tag: (%s)" semantic-format-tag-name semantic-parse-changes-failed "Splice-remove failed. Empty buffer?" "To Remove Middle Tag: (%s)" "Splice-remove failed." semantic--tag-unlink-from-buffer cachelist cachestart cacheend semantic-edits-verbose-flag] 5 (#$ . 19116)]) #@365 Insert NEWTAGS into PARENT using CACHELIST. PARENT could be nil, in which case CACHLIST is the buffer cache which must be updated. CACHELIST must be searched to find where NEWTAGS are to be inserted. The positions of NEWTAGS must be synchronized with those in CACHELIST for this to work. Some routines pre-position CACHLIST at a convenient location, so use that. (defalias 'semantic-edits-splice-insert #[(newtags parent cachelist) "@\211\306 8)\307\n!\203\310\n!\202\n\311H*GS\233\211@\211\306 8)\307\n!\2037\312\n!\202:\n\313H* @\211\306 8)\307\n!\203S\310\n!\202V\n\311H* V\203\210\203h\314!\202j\211@AB\f\241\210@\240\210A\241*\202\302 A\203\270  A@\211\306 8)\307\n!\203\247\310\n!\202\252\n\311H*V\203\270 A\211 \202\212\f A\241\210 \241+\207" [newtags tag o start newtagendcell end 4 semantic-overlay-p semantic-overlay-start 0 semantic-overlay-end 1 semantic-tag-components cachelist parent semantic--buffer-cache pc nc] 4 (#$ . 20217)]) #@386 Replace OLDTAG with NEWTAG in the current cache. Do this by recycling OLDTAG's first CONS cell. This effectively causes the new tag to completely replace the old one. Make sure that all information in the overlay is transferred. It is presumed that OLDTAG and NEWTAG are both cooked. When this routine returns, OLDTAG is raw, and the data will be lost if not transferred into NEWTAG. (defalias 'semantic-edits-splice-replace #[(oldtag newtag) "\306 8) \306 8)\307\n!\211\203'\310\f @ A@#\210 AA\211\204\311!\210\312 \"\210 A\241\210 @\240\210\310\f\313#+\207" [oldtag tag oo newtag o oo-props 4 semantic-overlay-properties semantic-overlay-put semantic--tag-unlink-from-buffer semantic--tag-copy-properties semantic] 5 (#$ . 21234)]) (byte-code "\300\301\302\"\210\303\304!\207" [add-hook semantic-before-toplevel-cache-flush-hook semantic-edits-flush-changes provide semantic/edit] 3)