;ELC ;;; Compiled ;;; in Emacs version 27.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/dep) #@150 Return program output or error code in case error happens. GCC-CMD is the program to execute and GCC-OPTIONS are the options to give to the program. (defalias 'semantic-gcc-query #[(gcc-cmd &rest gcc-options) "\306\307!\310\311!\312\313B\312\nBBB\314rq\210\315 \210\316\311\317\"\210\3201/\321\322 #\2110\202G\210\323\324!\3251D\321\322 #\2110\202F\210\312)\210\316\311 \"\210\f\314U\203X\326 \202Y\f\327!\210-\207" [buff old-lc-messages gcc-options options err gcc-cmd get-buffer-create " *gcc-query*" getenv "LC_ALL" nil t 0 erase-buffer setenv "C" (error) apply call-process expand-file-name "~/" (error) buffer-string kill-buffer default-directory] 4 (#$ . 433)]) #@58 Return include paths as gcc uses them for language LANG. (defalias 'semantic-gcc-get-include-paths #[(lang) "\306\230\203\n\307\202$\310\230\203\310\202$;\203 \311\312\"\202$\311\313\"\314 \315\316\317\n&\320 \321\"\322\323\211G\324\f\324\211 \203\275 @\211G\325V\203\264 \322U\203xGV\203\264\326\322#\230\203\264 T\202\264\327\324\"\211!@\330U\203\263\326\325\"\"\331\"!\203\262\332\"!\203\262\333\"!\211#\235\204\261\327#C\"))) A\211 \204J*.\207" [lang gcc-cmd null-device gcc-output lines include-marks "c" "gcc" "c++" error "Unknown lang: %s" "LANG=%S, should be a string" semantic-gcc-query "-v" "-E" "-x" split-string "\n" 0 "#include " nil 1 substring append 32 file-accessible-directory-p file-name-absolute-p expand-file-name inc-mark inc-mark-len inc-path line --dolist-tail-- chars path #1=#:x] 8 (#$ . 1126)]) #@72 Convert CPP output STR into a list of cons cells with defines for C++. (defalias 'semantic-cpp-defs #[(str) "\306\307\"\310\211\310\211\203:\f@\306 !\211G\311U\2032 A@\312 8B\211 \235\2041 B))\fA\211\204* *\207" [str lst lines L --dolist-tail-- dat split-string "\n" nil 3 2 #1=#:x] 4 (#$ . 2028)]) #@49 Convert GCC output STR into an alist of fields. (defalias 'semantic-gcc-fields #[(str) "\306\307\310\" \306\211\203\237\f@\311\312 \"\204 \311\313 \"\203c\314 \315\225\"\307 \316\317#\211A\306\211\203_\f@\307\320\"\321@!A@B\nB+\fA\211\2047,\202\230\311\322 \"\203\203\314 \323\225\"\307\316\"\324 A@B\nB*\202\230\311\325 \"\203\230\307 \316\"\326 A@B\nB)\fA\211\204*\n*\207" [str lines fields L --dolist-tail-- parts nil split-string "\n" string-match "Configured with\\(:\\)" "\\(:\\)\\s-*[^ ]*configure " substring 1 " " t "=" intern "gcc[ -][vV]ersion" 0 version "Target: " target opts O data sym val vline] 5 (#$ . 2351)]) #@301 The GCC setup data. This is setup by `semantic-gcc-setup'. This is an alist, and should include keys of: `version' - the version of gcc `--host' - the host symbol (used in include directories) `--prefix' - where GCC was installed. It should also include other symbols GCC was compiled with. (defvar semantic-gcc-setup-data nil (#$ . 3037)) #@51 Setup Semantic C/C++ parsing based on GCC output. (defalias 'semantic-gcc-setup #[nil "\206\n\306\307\310\311\"!\312\313\314\315\n\257\316\307\317 #\211;\203\"\f\202'\316\307\310 #)\211;\2034\320 !\2029\321\322!\210\3235\324\325 \"A6\324\326 \"A\206W\324\327 \"A\206W\324\330 \"A7\331\332!8\331\315!9\333\310:;\334$< 8\204\300<\203\300\335\336\337\335\315>\"?\3356?\"@\3357@\"A\341\323\342\343\344>D\"\"8\341\323\342\345\344>?@A\257\"\"9-\331\332!\323B\211C\203\340C@B\346B\347\"\210CA\211C\204\314*\331\315!\323B\211C\203MC@B\346B\350\"\210B\351PB\352PB\353PE\211D\323E\211C\203CC@E\354E!\203:\355\356!\2035E.\235\204:E.B.\202:EC.CA\211C\204+CA\211C\204\355*\355\357!\204W\323/5\323B\211C\203~C@\211B/\235\204uB/B/CA\211C\204b*F\360=\203\223\361/\235\204\223\361/B/\362\363!\203\234\364 \210. \323\207" [semantic-gcc-setup-data fields null-device cpp-options q query semantic-gcc-fields semantic-gcc-query "gcc" "-v" "-E" "-dM" "-x" "c++" apply "cpp" semantic-cpp-defs message "Could not query gcc for defines. Maybe g++ is not installed." nil assoc version target --target --host semantic-gcc-get-include-paths "c" locate-file executable expand-file-name ".." file-name-directory "include" delq mapcar #[(d) "\301!\205\207" [d file-accessible-directory-p] 2] "/usr/include" #[(d) "\301!\205\207" [d file-accessible-directory-p] 2] semantic-add-system-include c-mode c++-mode "/bits/c++config.h" "/sys/cdefs.h" "/features.h" file-readable-p boundp semantic-lex-c-preprocessor-symbol-file semantic-lex-c-preprocessor-symbol-map darwin ("__i386__" . "") featurep semantic/bovine/c semantic-c-reset-preprocessor-symbol-map defines ver host c-include-path c++-include-path exec-path exec-suffixes gcc-exe gcc-root gcc-include gcc-include-c++ gcc-include-c++-ver gcc-include-c++-ver-host D --dolist-tail-- cppconfig cur system-type] 10 (#$ . 3392) nil]) (provide 'semantic/bovine/gcc)