403Webshell
Server IP : 217.160.0.212  /  Your IP : 216.73.216.141
Web Server : Apache
System : Linux www 6.18.51-i1-ampere #1196 SMP Fri Sep 11 20:43:55 CEST 2026 aarch64
User : sws1073854427 ( 1073854427)
PHP Version : 8.4.23
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /usr/share/emacs/28.2/lisp/cedet/semantic/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/share/emacs/28.2/lisp/cedet/semantic/edit.elc
;ELC
;;; Compiled
;;; in Emacs version 28.2
;;; with all optimizations.



(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 (#$ . 105))
(byte-code "\300\301\302\303#\210\304\211\203(\211@\301N\203!\302N\204!\305\302\301N#\210A\266\202\202\210\306\301\302\307#\207" [defvaralias semantic-change-hooks semantic-change-functions nil (saved-value saved-variable-comment) put make-obsolete-variable "24.3"] 7)
#@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) (#$ . 851))
#@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 (#$ . 1116))
#@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 (#$ . 1378))
(byte-code "\300\301\302\303#\210\304\211\203(\211@\301N\203!\302N\204!\305\302\301N#\210A\266\202\202\210\306\301\302\307#\207" [defvaralias semantic-edits-new-change-hooks semantic-edits-new-change-functions nil (saved-value saved-variable-comment) put make-obsolete-variable "24.3"] 7)
#@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 (#$ . 2014))
(byte-code "\300\301\302\303#\210\304\211\203(\211@\301N\203!\302N\204!\305\302\301N#\210A\266\202\202\210\306\301\302\307#\207" [defvaralias semantic-edits-delete-change-hooks semantic-edits-delete-change-functions nil (saved-value saved-variable-comment) put make-obsolete-variable "24.3"] 7)
#@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 (#$ . 2506))
#@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 (#$ . 2759))
(byte-code "\300\301\302\303#\210\304\211\203(\211@\301N\203!\302N\204!\305\302\301N#\210A\266\202\202\210\306\301\302\307#\207" [defvaralias semantic-edits-reparse-change-hooks semantic-edits-reparse-change-functions nil (saved-value saved-variable-comment) put make-obsolete-variable "24.3"] 7)
#@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 (#$ . 3337))
#@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 (#$ . 3551))
(byte-code "\300\301\302\303\304DD\305\306\307\310\311&\207" [custom-declare-variable semantic-edits-verbose-flag funcall function #[0 "\300\207" [nil] 1 ""] "Non-nil means the incremental parser is verbose.\nIf nil, errors are still displayed, but informative messages are not." :group semantic :type boolean] 8)
#@139 Provide a mechanism for semantic tag management.
Argument START, END, and LENGTH specify the bounds of the change.

(fn START END LENGTH)
(defalias 'semantic-change-function #[771 "\302\211\303 \304\305\"\216\306\307$)\262)\207" [semantic-unmatched-syntax-cache-check inhibit-point-motion-hooks t match-data make-closure #[0 "\301\300\302\"\207" [V0 set-match-data evaporate] 3] run-hook-with-args semantic-change-functions] 10 (#$ . 4057)])
#@175 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.

(fn START END &optional BUFFER)
(defalias 'semantic-changes-in-region #[770 "\212\211\203\211q\210\300e]d^\"\301\203*\302@\303\"\203#@B\262A\262\202\304\305\"\266\202)\207" [overlays-in nil overlay-get semantic-change sort #[514 "\300!\300!W\207" [overlay-start] 5 "\n\n(fn A B)"]] 8 (#$ . 4513)])
#@195 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.

(fn START END LENGTH)
(defalias 'semantic-edits-change-function-handle-changes #[771 "\301ST\"\302\211\204#\303\"\304\305\306#\210\3071 \310\311\"0\207\210\312\207\211\211\203M\313@!W\2037\313@!\262\314@!V\203F\314@!\262\211A\262\202$\315@#\210\3161d\310\317@\"0\210\202e\210A\262\205\210\3201{\310\321@\"0\210\202|\210\322@!\210A\262\202i\207" [semantic-parse-tree-state semantic-changes-in-region needs-update make-overlay overlay-put semantic-change t (error) run-hook-with-args semantic-edits-new-change-functions nil overlay-start overlay-end move-overlay (error) semantic-edits-move-change-hooks (error) semantic-edits-delete-change-functions delete-overlay] 9 (#$ . 4978)])
#@40 Flush the CHANGE overlay.

(fn CHANGE)
(defalias 'semantic-edits-flush-change #[257 "\3001
\301\302\"0\210\202\210\303!\207" [(error) run-hook-with-args semantic-edits-delete-change-functions delete-overlay] 4 (#$ . 5878)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put semantic-edits-flush-change speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@42 Flush the changes in the current buffer.
(defalias 'semantic-edits-flush-changes #[0 "\300ed\"\211\205$\211@\3011\302\303\"0\210\202\210\304!\266\211A\262\202\207" [semantic-changes-in-region (error) run-hook-with-args semantic-edits-delete-change-functions delete-overlay] 5 (#$ . 6266)])
#@208 Return non-nil if 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.

(fn CHANGE HITS)
(defalias 'semantic-edits-change-in-one-tag-p #[514 "\211@\211\3008\262\301!\203\302!\266\202\202\211\303H\266\202\302!W\205O\211@\211\3008\262\301!\2038\304!\266\202\202=\211\305H\266\202\304!V\205O\211A?\206O\306A\"\207" [4 overlayp overlay-start 0 overlay-end 1 semantic-edits-change-in-one-tag-p] 6 (#$ . 6574)])
#@78 For testing: Start of CHANGE, or smaller of (point) and (mark).

(fn CHANGE)
(defalias 'semantic-edits-os #[257 "\211\203\300!\207`\301 W\203`\207\301 \207" [overlay-start mark] 3 (#$ . 7125)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put semantic-edits-os speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@75 For testing: End of CHANGE, or larger of (point) and (mark).

(fn CHANGE)
(defalias 'semantic-edits-oe #[257 "\211\203\300!\207`\301 V\203`\207\301 \207" [overlay-end mark] 3 (#$ . 7473)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put semantic-edits-oe speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@257 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.

(fn CHANGE)
(defalias 'semantic-edits-change-leaf-tag #[257 "\211\211\203
\300!\262\202`\301 W\203`\262\202\301 \262\211\203+\302!\262\202<`\301 V\2038`\262\202<\301 \262\303\"\237\211\205\340\211@\211\3048\262\305!\203[\300!\266\202\202`\211\306H\266\202X\205\340\211@\211\3048\262\305!\203{\302!\266\202\202\200\211\307H\266\202V\205\340\310@!\211\204\222@\202\336\311@!\203\334GS8\211\3048\262\305!\203\263\302!\266\202\202\270\211\307H\266\202V\204\334@\211\3048\262\305!\203\323\300!\266\202\202\330\211\306H\266\202W\205\336@\262\207" [overlay-start mark overlay-end semantic-find-tag-by-overlay-in-region 4 overlayp 0 1 semantic-tag-components semantic-tag-with-position-p] 10 (#$ . 7817)])
#@436 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.

(fn CHANGE)
(defalias 'semantic-edits-change-between-tags #[257 "\211\211\203
\301!\262\202`\302 W\203`\262\202\302 \262\211\203+\303!\262\202<`\302 V\2038`\262\202<\302 \262\304\"\237\305\211\204M\262\202\344@\211\3068\262\307!\203c\301!\266\202\202h\211\310H\266\202W\203\344@\211\3068\262\307!\203\203\303!\266\202\202\210\211\311H\266\202V\203\344\312@!\211\262\203\344\313@!\203\341GS8\211\3068\262\307!\203\270\303!\266\202\202\275\211\311H\266\202V\204\341@\211\3068\262\307!\203\330\301!\266\202\202\335\211\310H\266\202W\203\344\305\262\203%\211\204%A\203A@\211\3068\262\307!\203\301!\266\202\202
\211\310H\266\202W\203A\262\202\344\314\262\202\344\305\262\202\344\207" [semantic--buffer-cache overlay-start mark overlay-end semantic-find-tag-by-overlay-in-region nil 4 overlayp 0 1 semantic-tag-components semantic-tag-with-position-p t] 11 (#$ . 8832)])
#@672 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.

(fn CHANGE)
(defalias 'semantic-edits-change-over-tags #[257 "\211\211\203
\301!\262\202`\302 W\203`\262\202\302 \262\211\203+\303!\262\202<`\302 V\2038`\262\202<\302 \262\304\"\237\305\211\211\211\205N@\211\3068\262\307!\203_\301!\266\202\202d\211\310H\266\202Y\205N@\211\3068\262\307!\203\200\303!\266\202\202\205\211\311H\266\202X\205N@C\262@\211\3068\262\307!\203\246\303!\266\202\202\253\211\311H\266\202\262A\262\203I@\211\3068\262\307!\203\313\301!\266\202\202\320\211\310H\266\202Y\203I@\211\3068\262\307!\203\354\303!\266\202\202\361\211\311H\266\202X\203I@\211\3068\262\307!\203
\303!\266\202\202\211\311H\266\202V\203<@C\262@\211\3068\262\307!\2032\303!\266\202\2027\211\311H\266\202\262\202B@B\262A\262\202\261\204S\262\202\366\203\366@\211\3068\262\307!\203m\301!\266\202\202r\211\310H\266\202W\203\366@\211\3068\262\307!\203\216\303!\266\202\202\223\211\311H\266\202V\203\366@\262\312!\262\305\262\313@!\204\360@\211\3068\262\307!\203\304\301!\266\202\202\311\211\310H\266\202W\204\360GS8\211\3068\262\307!\203\347\303!\266\202\202\354\211\311H\266\202V\203\366\305\262\305\262\211\205N@\211\3068\262\307!\203\301!\266\202\202\211\310H\266\202\203GA\203GA@\211\3068\262\307!\2035\301!\266\202\202:\211\310H\266\202W\203GA\211\262\204\210\314#\207" [semantic--buffer-cache overlay-start mark overlay-end semantic-find-tag-by-overlay-in-region nil 4 overlayp 0 1 semantic-tag-components semantic-tag-with-position-p vector] 13 (#$ . 10222)])
#@201 Signal that Semantic failed to parse changes.
That is, display a message by passing all ARGS to `format-message', then throw
a `semantic-parse-changes-failed' exception with value t.

(fn &rest ARGS)
(defalias 'semantic-parse-changes-failed #[128 "\203\f\301\302\303\304\"\"\210\305\306\307\"\207" [semantic-edits-verbose-flag message "Semantic parse changes failed: %S" apply format-message throw semantic-parse-changes-failed t] 6 (#$ . 12534)])
#@73 When the incremental parser fails, we mark that we need a full reparse.
(defalias 'semantic-edits-incremental-fail #[0 "\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 (#$ . 12991)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put semantic-edits-incremental-fail speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@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 #[0 "\3032\"\203
\304 \202!\3051\304 0\202!\306\307\310!\"\210\311\2620\211\311=\203<\312\n\2035\306\313\314p!\"\210\315\316!\210\317\262\207" [debug-on-error semantic-parse-tree-state semantic-edits-verbose-flag semantic-parse-changes-failed semantic-edits-incremental-parser-1 (error) message "incremental parser error: %S" error-message-string t needs-rebuild "Force full reparse (%s)" buffer-name run-hooks semantic-edits-incremental-reparse-failed-hook nil] 5 (#$ . 13512)])
#@61 Assert that parse-start and parse-end are sorted correctly.
(defalias 'semantic-edits-assert-valid-region '(macro . #[0 "\300\207" ["Assert that parse-start and parse-end are sorted correctly."] 1 (#$ . 14410)]))
#@298 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 #[0 "\304\305\306ed\"\304\211\211\211\211\211\211\211\211	\204\307\310!\210	\203\274	\203\240\2033\311\n@!W\203\240	@@=\203@\307\312!\210	@B\262\204\313\262\304\314@!\211\262\203\236\315\262\211C\262\n\211\211\3168\262\317!\203w\311!\266\202\202|\211\320H\266\202\262\211\211\3168\262\317!\203\223\321!\266\202\202\230\211\322H\266\202\262\210\202\230\323@!\211\262\203\304\324\262\304\262\n\325!@\262@\211\3168\262\317!\203\314\311!\266\202\202\321\211\320H\266\202\321\f@!V\203\326\262e\262@\211\3168\262\317!\203\366\311!\266\202\202\373\211\320H\266\202\262\210\202\230@\211\3168\262\317!\203\321!\266\202\202\211\322H\266\202\311\f@!U\203U\327\262@\211\3168\262\317!\203>\311!\266\202\202C\211\320H\266\202\262\321@!\262@C\262\n\210\202\230A@\204\202\330\262@\211\3168\262\317!\203t\321!\266\202\202y\211\322H\266\202\262d\262\210\202\230\331\262@\211\3168\262\317!\203\233\321!\266\202\202\240\211\322H\266\202\262A@\211\3168\262\317!\203\271\311!\266\202\202\276\211\320H\266\202\262\210\202\230\332@!\211\262\203w\333\262\211\320H\262\n\211\322H\262\211\334H\262	@@=\203#	G8e\262	\211\203\211\211\3168\262\317!\203\311!\266\202\202\211\320H\266\202\262\266\202\230\321\f@!\262\266\202\230@\211\3168\262\317!\2039\321!\266\202\202>\211\322H\266\202\262	GT8\211\203k\211\211\3168\262\317!\203_\311!\266\202\202d\211\320H\266\202\262\266\202\230\321\f@!\262\266\202\230\307\335!\266\202\230\321\n@!W\203\220\336\262\202\230\307\337\211\262\340\"\210	A\262\n\202\206\246@\341\342\3438\262\"\266\202\262\204\305\203\305\344	@!\262\204\330\203\325\345!\262\202\330	\262\346#\262\211\203\363\347@!\210\211A\262\202\343\210\204	\204	\n\203\226\350\351!\210\202\226\2044\2034\352#\210\353\f\"\262\n\203\226\350\354\355\n@!\"\210\202\226\203_\204_\356	#\210\353	\f\"\262\n\203\226\350\357\355@!\"\210\202\226G\322U\203\222G\322U\203\222\360	@	@\"\210@B\262\n\203\226\350\361\355@\304\305#\"\210\202\226\307\310!\210\203\266@\3621\251\363\364\"0\210\202\252\210\365!\266A\262\202\226\304\262\202\304\n)\207" [debug-on-quit semantic--buffer-cache semantic-edits-verbose-flag semantic-parse-tree-state nil t semantic-changes-in-region semantic-parse-changes-failed "Don't know what to do" overlay-start "Possible infinite loop detected" "new group" semantic-edits-change-leaf-tag "Encompassed in tag" 4 overlayp 0 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" (error) run-hook-with-args semantic-edits-delete-change-functions delete-overlay] 17 (#$ . 14630)])
(defalias 'semantic-parse-changes-default 'semantic-edits-incremental-parser)
#@301 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.

(fn OLDTAGS PARENT CACHELIST)
(defalias 'semantic-edits-splice-remove #[771 "@GS8\203\302!\202\303@=\203U	\203'\304\305\306!\"\210\262\211\203<@=\204<\211A\262\202*\211A\262@\240\210A\241\210\211\204a\307\310!\210\202a	\203a\304\311\306!\"\210\203tA@=\204tA\262\202a\262\211\203\211@=\204\211\211A\262\202w\203\225A\241\210\202\231\307\312!\210\205\254\313@!\210A\262\202\231\207" [semantic--buffer-cache semantic-edits-verbose-flag 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] 12 (#$ . 18476)])
#@398 Insert NEWTAGS into PARENT using CACHELIST.
PARENT could be nil, in which case CACHELIST 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 CACHELIST at a
convenient location, so use that.

(fn NEWTAGS PARENT CACHELIST)
(defalias 'semantic-edits-splice-insert #[771 "@\211\3018\262\302!\203\303!\266\202\202\211\304H\266\202GS\233\211@\211\3018\262\302!\2036\305!\266\202\202;\211\306H\266\202@\211\3018\262\302!\203Q\303!\266\202\202V\211\304H\266\202V\203{\203e\307!\202f\211@AB\241\210@\240\210A\241\207A\203\250\211A@\211\3018\262\302!\203\230\303!\266\202\202\235\211\304H\266\202V\203\250A\262\202{A\241\210\241\207" [semantic--buffer-cache 4 overlayp overlay-start 0 overlay-end 1 semantic-tag-components] 11 (#$ . 19514)])
#@406 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.

(fn OLDTAG NEWTAG)
(defalias 'semantic-edits-splice-replace #[514 "\3008\262\3008\262\301!\211\203$\302@A@#\210\211AA\262\202\303!\210\304\"\210A\241\210@\240\210\302\305#\207" [4 overlay-properties overlay-put semantic--tag-unlink-from-buffer semantic--tag-copy-properties semantic] 9 (#$ . 20487)])
(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)

Youez - 2016 - github.com/yon3zu
LinuXploit