%PDF- %PDF-
Direktori : /usr/local/share/emacs/27.2/lisp/cedet/semantic/bovine/ |
Current File : //usr/local/share/emacs/27.2/lisp/cedet/semantic/bovine/c.elc |
;ELC ;;; Compiled ;;; in Emacs version 27.2 ;;; 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 "\306\307!\210\306\310!\210\306\311!\210\306\312!\210\306\313!\210\306\314!\210\306\315!\210\306\316!\210\306\317!\210\306\320!\210\321\322!\2036 \323\324\322\"\210\202; \323\324\325\"\210\326\327\330\331#\210\332\333\"\266\334\300\335\336\337\340\337\307\341\342\343\344&\210\345\346 BC\347\327#\210\332\350\327\"\210)\330\346\327\351!\352\204\210 \n\211\262\204\210 \262\f\205\206 \353\f\"\262\203\263 \211\204\263 \304N\203\242 \353\304N\"\211\262\204\210 \211\331N\206\254 \211\354N\262\262\202\210 \266\203\355\356#\210\330\346\327\300#\210\334\305\352\357\337\340\337\307\341\360& \210 5\345\3615BC\347\327#\210\332\362\327\"\210)\330\361\327\351!\352\204\376 \n\211\262\204\376 \262\f\205\374 \353\f\"\262\203)\211\204)\304N\203\353\304N\"\211\262\204\376 \211\331N\206\"\211\354N\262\262\202\376 \266\203\355\356#\2106\363>\2039\364 \210\352\207" [semantic-c-dependency-system-include-path #3=#:tmp0 mode-local-active-mode major-mode mode-local-symbol-table semantic-default-c-path require semantic semantic/analyze semantic/analyze/refs semantic/bovine semantic/bovine/gcc semantic/idle semantic/lex-spp semantic/bovine/c-by semantic/db-find hideif fboundp c-end-of-macro defalias semantic-c-end-of-macro #[nil "\300\210`Sf\301=\205 m?\205 \300u\210\202 \207" [nil 92] 2 "Go to the end of a preprocessor directive.\nMore accurately, move point to the end of the closest following line\nthat doesn't end with a line continuation backslash.\n\nThis function does not do any hidden buffer changes."] c++-mode c-mode put mode-local-parent mode-local-map-mode-buffers mode-local--activate-bindings custom-declare-variable '("/usr/include") "The system include path used by the C language." :group c :type (repeat (directory :tag "Directory")) :set #[(sym val) "\303 \"\210 \304\305\nBC\306\307#\210\310\311\307\"\210)\312\313!\205 \310\313\307\"\207" [sym val #1=#:tmp0 set-default mode-local-bind semantic-dependency-system-include-path #2=(mode-variable-flag t) c-mode mode-local-map-mode-buffers #[nil "\302\301!\210\211\207" [#1# semantic-dependency-system-include-path make-local-variable] 2] fboundp semantic-decoration-unparsed-include-do-reset] 4] mode-local-bind semantic-dependency-system-include-path #2# #[nil "\302\301!\210\211\207" [#3# semantic-dependency-system-include-path make-local-variable] 2] symbol-name nil intern-soft derived-mode-parent variable-documentation "System path to search for include files." "Default set of include paths for C code.\nUsed by `semantic-dep' to define an include path.\nNOTE: In process of obsoleting this." (repeat (string :tag "Path")) semantic-dependency-include-path #[nil "\302\301!\210\211\207" [#4=#:tmp0 semantic-dependency-include-path make-local-variable] 2] (gnu gnu/linux darwin cygwin) semantic-gcc-setup #4# system-type] 12) #@40 List of symbols to include by default. (defvar semantic-lex-c-preprocessor-symbol-map-builtin '(("__THROW" . #1="") ("__const" . "const") ("__restrict" . #1#) ("__attribute_pure__" . #1#) ("__attribute_malloc__" . #1#) ("__nonnull" . #1#) ("__wur" . #1#) ("__declspec" (spp-arg-list ("foo") 1 . 2)) ("__attribute__" (spp-arg-list ("foo") 1 . 2)) ("__asm" (spp-arg-list ("foo") 1 . 2))) (#$ . 3274)) #@145 Non-nil while resetting the preprocessor symbol map. Used to prevent a reset while trying to parse files that are part of the preprocessor map. (defvar semantic-c-in-reset-preprocessor-table nil (#$ . 3680)) #@67 Reset the C preprocessor symbol map based on all input variables. (defalias 'semantic-c-reset-preprocessor-symbol-map #[nil "\205\242 \306\307!\205\242 \310\311\312\"\210\313\314 \n\"!\315\316BC\317\320#\210\321\322\320\"\210)\323 \204\207 \306\324!\203\207 \325 \203\207 \323\326!\"\323#\211$\203\206 $@#\327#\326\"\211%\203| \330%!\203s \3311j \332%\326\"0\202r \210\333\334\335%!\"\210\314\f\336%\337\"\")$A\211$\204F ,\313\314 \n\f#!&\315\316&BC\317\320#\210\321\340\320\"\210&*\207" [semantic-mode semantic-lex-c-preprocessor-symbol-map-builtin semantic-lex-c-preprocessor-symbol-map #1=#:tmp0 filemap semantic-c-in-reset-preprocessor-table featurep semantic/bovine/c remove-hook mode-local-init-hook semantic-c-reset-preprocessor-symbol-map semantic-lex-make-spp-table append mode-local-bind semantic-lex-spp-macro-symbol-obarray (mode-variable-flag t) c-mode mode-local-map-mode-buffers #[nil "\302\301!\210\211\207" [#1# semantic-lex-spp-macro-symbol-obarray make-local-variable] 2] nil semantic/db-mode semanticdb-minor-mode-p t semanticdb-file-table-object semanticdb-needs-refresh-p (error) semanticdb-refresh-table message "Error updating tables for %S" eieio-object-name eieio-oref lexical-table #[nil "\302\301!\210\211\207" [#2=#:tmp0 semantic-lex-spp-macro-symbol-obarray make-local-variable] 2] semanticdb-out-of-buffer-create-table-fcn semantic-lex-c-preprocessor-symbol-file sf --dolist-tail-- table #2#] 6 (#$ . 3894)]) (byte-code "\300\301\302\"\210\303\304\305\306\307\310\311\312\313\314& \210\303\315\305\316\307\310\311\317\313\320& \210\303\321\322\323\307\310\311\324&\207" [add-hook mode-local-init-hook semantic-c-reset-preprocessor-symbol-map custom-declare-variable semantic-lex-c-preprocessor-symbol-map nil "Table of C Preprocessor keywords used by the Semantic C lexer.\nEach entry is a cons cell like this:\n ( \"KEYWORD\" . \"REPLACEMENT\" )\nWhere KEYWORD is the macro that gets replaced in the lexical phase,\nand REPLACEMENT is a string that is inserted in its place. Empty string\nimplies that the lexical analyzer will discard KEYWORD when it is encountered.\n\nAlternately, it can be of the form:\n ( \"KEYWORD\" ( LEXSYM1 \"str\" 1 1 ) ... ( LEXSYMN \"str\" 1 1 ) )\nwhere LEXSYM is a symbol that would normally be produced by the\nlexical analyzer, such as `symbol' or `string'. The string in the\nsecond position is the text that makes up the replacement. This is\nthe way to have multiple lexical symbols in a replacement. Using the\nfirst way to specify text like \"foo::bar\" would not work, because :\nis a separate lexical symbol.\n\nA quick way to see what you would need to insert is to place a\ndefinition such as:\n\n#define MYSYM foo::bar\n\ninto a C file, and do this:\n \\[semantic-lex-spp-describe]\n\nThe output table will describe the symbols needed." :group c :type (repeat (cons (string :tag "Keyword") (sexp :tag "Replacement"))) :set #[(sym value) "\302 \"\210\3031 \304 0\207\210\305\207" [sym value set-default (error) semantic-c-reset-preprocessor-symbol-map nil] 3] semantic-lex-c-preprocessor-symbol-file "List of C/C++ files that contain preprocessor macros for the C lexer.\nEach entry is a filename and each file is parsed, and those macros\nare included in every C/C++ file parsed by semantic.\nYou can use this variable instead of `semantic-lex-c-preprocessor-symbol-map'\nto store your global macros in a more natural way." (repeat (file :tag "File")) #[(sym value) "\302 \"\210\3031 \304 0\207\210\305\207" [sym value set-default (error) semantic-c-reset-preprocessor-symbol-map nil] 3] semantic-c-member-of-autocast 't "Non-nil means classes with a `->' operator will cast to its return type.\n\nFor Examples:\n\n class Foo {\n Bar *operator->();\n }\n\n Foo foo;\n\nif `semantic-c-member-of-autocast' is non-nil :\n foo->[here completion will list method of Bar]\n\nif `semantic-c-member-of-autocast' is nil :\n foo->[here completion will list method of Foo]" boolean] 10) #@142 A #define of a symbol with some value. Record the symbol in the semantic preprocessor. Return the defined symbol as a special spp lex token. (defvar semantic-lex-cpp-define nil (#$ . 7899)) (defalias 'semantic-lex-cpp-define #[nil "\300\207" [nil] 1]) (byte-code "\301\300\302M\207" [semantic-lex-cpp-define ((looking-at #6="^\\s-*#\\s-*define\\s-+\\(\\(\\sw\\|\\s_\\)+\\)") (let ((#1=#:start (match-beginning 1)) (#2=#:end (match-end 1)) (#4=#:startpnt semantic-lex-end-point) (#3=#:val (save-match-data (goto-char (match-end 0)) (skip-chars-forward #7=" ") (if (eolp) nil (let* ((name (buffer-substring-no-properties (match-beginning 1) (match-end 1))) (beginning-of-define (match-end 1)) (with-args (save-excursion (goto-char (match-end 0)) (looking-at #8="("))) (semantic-lex-spp-replacements-enabled nil) (semantic-lex-analyzer #'semantic-cpp-lexer) (raw-stream (semantic-lex-spp-stream-for-macro (save-excursion (semantic-c-end-of-macro) (if (looking-back #9="/\\*.*" beginning-of-define) (progn (goto-char (match-beginning 0)) (point)) (point)))))) (if with-args (semantic-lex-spp-first-token-arg-list (car raw-stream))) (setq semantic-lex-end-point (point)) (semantic-lex-spp-merge-streams raw-stream))))) (#5=#:endpnt semantic-lex-end-point)) (semantic-lex-spp-symbol-set (buffer-substring-no-properties #1# #2#) #3#) (semantic-lex-push-token (semantic-lex-token 'spp-macro-def #1# #2#)) (when (and (/= #4# #5#) (/= #5# semantic-lex-end-point)) (setq semantic-lex-end-point #5#)))) #[nil "\306``dB\307\310\311!\203\302 \312\224\312\225\f\313 \314\216\307\225b\210\315\306w\210l?\205t \316\312\224\312\225\"\312\225\212\307\225b\210\310\317!)\306\320\321\212\322 \210\323\324\"\203\\ \307\224b\210`\202] `)!\203l \325@!\210`\326!.*\f !\"#$\327\316$#\"!\"\210\330$#BB B\211@\211\211A@\247\204\247 \211AA\262\202\253 \211A\262A\262\" U\204\301 \fU\204\301 - -\207" [semantic-lex-depth semantic-lex-maximum-depth semantic-lex-current-depth semantic-lex-analysis-bounds semantic-lex-end-point semantic-lex-token-stream nil 0 looking-at #6# 1 match-data #[nil "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3] #7# buffer-substring-no-properties #8# semantic-cpp-lexer semantic-lex-spp-stream-for-macro semantic-c-end-of-macro looking-back #9# semantic-lex-spp-first-token-arg-list semantic-lex-spp-merge-streams semantic-lex-spp-symbol-set spp-macro-def save-match-data-internal name beginning-of-define with-args semantic-lex-spp-replacements-enabled semantic-lex-analyzer raw-stream #5# #3# #4# #2# #1#] 8 "A #define of a symbol with some value.\nRecord the symbol in the semantic preprocessor.\nReturn the defined symbol as a special spp lex token."]] 2) #@127 A #undef of a symbol. Remove the symbol from the semantic preprocessor. Return the defined symbol as a special spp lex token. (defvar semantic-lex-cpp-undef nil (#$ . 10644)) (defalias 'semantic-lex-cpp-undef #[nil "\300\207" [nil] 1]) (byte-code "\301\300\302M\210\303\304\305\306\307\310\311\312&\207" [semantic-lex-cpp-undef ((looking-at #3="^\\s-*#\\s-*undef\\s-+\\(\\(\\sw\\|\\s_\\)+\\)") (let ((#1=#:start (match-beginning 1)) (#2=#:end (match-end 1))) (semantic-lex-spp-symbol-remove (buffer-substring-no-properties #1# #2#)) (semantic-lex-push-token (semantic-lex-token 'spp-macro-undef #1# #2#)))) #[nil "\306``dB\307\310\311!\203a \312\224\312\225\313\"\306\314\2069 \2069 \315\316\307\"\211\"*\210\317BB B\211@\211\211A@\247\204X \211AA\262\202\\ \211A\262A\262* -\207" [semantic-lex-depth semantic-lex-maximum-depth semantic-lex-current-depth semantic-lex-analysis-bounds semantic-lex-end-point semantic-lex-token-stream nil 0 looking-at #3# 1 buffer-substring-no-properties unintern make-vector 13 spp-macro-undef #2# #1# obarray name semantic-lex-spp-dynamic-macro-symbol-obarray] 6 "A #undef of a symbol.\nRemove the symbol from the semantic preprocessor.\nReturn the defined symbol as a special spp lex token."] custom-declare-variable semantic-c-obey-conditional-section-parsing-flag t "Non-nil means to interpret preprocessor #if sections.\nThis implies that some blocks of code will not be parsed based on the\nvalues of the conditions in the #if blocks." :group c :type boolean] 8) #@132 Skip one section of a conditional. Moves forward to a matching #elif, #else, or #endif. Moves completely over balanced #if blocks. (defalias 'semantic-c-skip-conditional-section #[nil "\302\303!\210\304\211\210 \205] ?\205] \305\306\304\307#\205] \310\224b\210\311\312!\2039 \313\314!\2032 \314\315!b\210\202 \316\315!\210\202 \311\317!\203G \320 \210\307\202 \311\321!\203X \304\210\315u\210\307\202 \307\202 )\207" [done semantic-c-obey-conditional-section-parsing-flag require cc-cmds nil re-search-forward "^\\s-*#\\s-*\\(if\\(n?def\\)?\\|el\\(if\\|se\\)\\|endif\\)\\>" t 0 looking-at "^\\s-*#\\s-*if" fboundp c-scan-conditionals 1 c-forward-conditional "^\\s-*#\\s-*elif" beginning-of-line "^\\s-*#\\s-*\\(endif\\|else\\)\\>"] 5 (#$ . 12190)]) #@124 Convert an spp macro SYMBOL MACROVALUE, to something that hideif can use. Take the first interesting thing and convert it. (defalias 'semantic-c-convert-spp-value-to-hideif-value #[(symbol macrovalue) "G\305V\203 \306\307\310 \"\311\211#\210@\211\211@\262\n\211A@;\203) \211A@\262\202] \312\211\211A@\247\204; \211AA\262\202? \211A\262@\262\211\211A@\247\204S \211AA\262\202W \211A\262A\262\"\262\313\267\202\201 \314\f!\202\214 \315\f!\202\214 \316\317\f\"\203} \314\f!\202\214 \f\202\214 \306\307\320\f#\311\211#\210\321+\207" [macrovalue symbol lextoken key value 1 semantic-push-parser-warning format "Complex macro value (%s) may be improperly evaluated. " 0 buffer-substring-no-properties #s(hash-table size 3 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (number 100 symbol 106 string 112)) string-to-number semantic-c-evaluate-symbol-for-hideif string-match "^[0-9]+L?$" "Unknown macro value. Token class = %s value = %s. " nil] 7 (#$ . 12958)]) #@154 Lookup the symbol SPP-SYMBOL (a string) to something hideif can use. Pulls out the symbol list, and call `semantic-c-convert-spp-value-to-hideif-value'. (defalias 'semantic-c-evaluate-symbol-for-hideif #[(spp-symbol) "9\203 \306!\211\211;\205= \n\235?\205= \307!\203&