%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
;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!\207" [require semantic/fw semantic/lex] 2) #@54 Version string of semantic tags made with this code. (defconst semantic-tag-version "2.0" (#$ . 488)) #@191 Version string of semantic tags which are not currently compatible. These old style tags may be loaded from a file with semantic db. In this case, we must flush the old tags and start over. (defconst semantic-tag-incompatible-version "1.0" (#$ . 597)) #@265 Return the name of TAG. For functions, variables, classes, typedefs, etc., this is the identifier that is being defined. For tags without an obvious associated name, this may be the statement type, e.g., this may return @code{print} for python's print statement. (defalias 'semantic-tag-name #[(tag) "@\207" [tag] 1 (#$ . 856)]) (put 'semantic-tag-name 'byte-optimizer 'byte-compile-inline-expand) #@694 Return the class of TAG. This is a symbol like `variable', `function', or `type'. There is no limit to the symbols that may represent the class of a tag. Each parser generates tags with classes defined by it. For functional languages, typical tag classes are: @table @code @item type Data types, named map for a memory block. @item function A function or method, or named execution location. @item variable A variable, or named storage for data. @item include Statement that represents a file from which more tags can be found. @item package Statement that declares this file's package name. @item code Code that has not name or binding to any other symbol, such as in a script. @end table (defalias 'semantic-tag-class #[(tag) "A@\207" [tag] 1 (#$ . 1263)]) (put 'semantic-tag-class 'byte-optimizer 'byte-compile-inline-expand) #@117 Return the list of public attributes of TAG. That is a property list: (ATTRIBUTE-1 VALUE-1 ATTRIBUTE-2 VALUE-2...). (defalias 'semantic-tag-attributes #[(tag) "\3018\207" [tag 2] 2 (#$ . 2103)]) (put 'semantic-tag-attributes 'byte-optimizer 'byte-compile-inline-expand) #@116 Return the list of private properties of TAG. That is a property list: (PROPERTY-1 VALUE-1 PROPERTY-2 VALUE-2...). (defalias 'semantic-tag-properties #[(tag) "\3018\207" [tag 3] 2 (#$ . 2381)]) (put 'semantic-tag-properties 'byte-optimizer 'byte-compile-inline-expand) #@223 Return the OVERLAY part of TAG. That is, an overlay or an unloaded buffer representation. This function can also return an array of the form [ START END ]. This occurs for tags that are not currently linked into a buffer. (defalias 'semantic-tag-overlay #[(tag) "\3018\207" [tag 4] 2 (#$ . 2658)]) (put 'semantic-tag-overlay 'byte-optimizer 'byte-compile-inline-expand) #@100 Return the cons cell whose car is the OVERLAY part of TAG. That function is for internal use only. (defalias 'semantic--tag-overlay-cdr #[(tag) "\301\233\207" [tag 4] 2 (#$ . 3036)]) (put 'semantic--tag-overlay-cdr 'byte-optimizer 'byte-compile-inline-expand) #@83 Set the overlay part of TAG with OVERLAY. That function is for internal use only. (defalias 'semantic--tag-set-overlay #[(tag overlay) "\302\233) \240\207" [tag overlay 4] 2 (#$ . 3303)]) (put 'semantic--tag-set-overlay 'byte-optimizer 'byte-compile-inline-expand) #@35 Return the start location of TAG. (defalias 'semantic-tag-start #[(tag) "\3028)\303 !\203 \304 !\202 \305H)\207" [tag o 4 semantic-overlay-p semantic-overlay-start 0] 2 (#$ . 3577)]) (put 'semantic-tag-start 'byte-optimizer 'byte-compile-inline-expand) #@33 Return the end location of TAG. (defalias 'semantic-tag-end #[(tag) "\3028)\303 !\203 \304 !\202 \305H)\207" [tag o 4 semantic-overlay-p semantic-overlay-end 1] 2 (#$ . 3843)]) (put 'semantic-tag-end 'byte-optimizer 'byte-compile-inline-expand) #@56 Return the location (START END) of data TAG describes. (defalias 'semantic-tag-bounds #[(tag) "\211\3028)\303 !\203 \304 !\202 \305H*\211\3028)\303 !\203. \306 !\2021 \307H*D\207" [tag o 4 semantic-overlay-p semantic-overlay-start 0 semantic-overlay-end 1] 4 (#$ . 4101)]) (put 'semantic-tag-bounds 'byte-optimizer 'byte-compile-inline-expand) #@62 In TAG, set the START and END location of data it describes. (defalias 'semantic-tag-set-bounds #[(tag start end) "\3058)\306 !\203 \307 \n#\202% \310\n\"\211\305\233)\f\240*)\207" [tag o start end overlay 4 semantic-overlay-p semantic-overlay-move vector] 5 (#$ . 4465)]) #@107 Return the buffer TAG resides in, if tag is already in a buffer. If a tag is not in a buffer, return nil. (defalias 'semantic-tag-in-buffer-p #[(tag) "\3028)\303 !\205 \304 !\205 \305 !)\207" [tag o 4 semantic-overlay-p semantic-overlay-live-p semantic-overlay-buffer] 2 (#$ . 4757)]) #@162 From TAG, extract the value of PROPERTY. Return the value found, or nil if PROPERTY is not one of the properties of TAG. That function is for internal use only. (defalias 'semantic--tag-get-property #[(tag property) "\302\3038) \"\207" [tag property plist-get 3] 3 (#$ . 5055)]) (put 'semantic--tag-get-property 'byte-optimizer 'byte-compile-inline-expand) #@171 Return the buffer TAG resides in. If TAG has an originating file, read that file into a (maybe new) buffer, and return it. Return nil if there is no buffer for this tag. (defalias 'semantic-tag-buffer #[(tag) "\304!\211\203\f \2023 \305\306\3078)\n\"*\2053 \310 \311\216\312\305\306\3078)\n\"*!*)\207" [tag buff property save-match-data-internal semantic-tag-in-buffer-p :filename plist-get 3 match-data #[nil "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3] find-file-noselect] 5 (#$ . 5422)]) #@312 Return the major mode active for TAG. TAG defaults to the tag at point in current buffer. If TAG has a :mode property return it. If point is inside TAG bounds, return the major mode active at point. Return the major mode active at beginning of TAG otherwise. See also the function `semantic-ctxt-current-mode'. (defalias 'semantic-tag-mode #[(&optional tag) "\204 \306 \307\310\3118) \"*\206n \312!\211\3138)\314\n!\2030 \315\n!\2023 \n\316H*\211\3138)\314\n!\203I \317\n!\202L \n\320H*\212 \203X q\210`\fY\203d `W\204g \fb\210\321\322!\210\323 ,\207" [tag property o end start buffer semantic-current-tag :mode plist-get 3 semantic-tag-buffer 4 semantic-overlay-p semantic-overlay-start 0 semantic-overlay-end 1 require semantic/ctxt semantic-ctxt-current-mode] 5 (#$ . 5964)]) #@103 Return the cons cell whose car is the ATTRIBUTES part of TAG. That function is for internal use only. (defalias 'semantic--tag-attributes-cdr #[(tag) "AA\207" [tag] 1 (#$ . 6775)]) (put 'semantic--tag-attributes-cdr 'byte-optimizer 'byte-compile-inline-expand) #@243 Change value in TAG of ATTRIBUTE to VALUE. If ATTRIBUTE already exists, its value is set to VALUE, otherwise the new ATTRIBUTE VALUE pair is added. Return TAG. Use this function in a parser when not all attributes are known at the same time. (defalias 'semantic-tag-put-attribute #[(tag attribute value) "\211AA)\211:\203 \304\305 @\n#!\240\210)\207" [tag plist-cdr attribute value semantic-tag-make-plist plist-put] 7 (#$ . 7044)]) (put 'semantic-tag-put-attribute 'byte-optimizer 'byte-compile-inline-expand) #@295 Change value in TAG of ATTRIBUTE to VALUE without side effects. All cons cells in the attribute list are replicated so that there are no side effects if TAG is in shared lists. If ATTRIBUTE already exists, its value is set to VALUE, otherwise the new ATTRIBUTE VALUE pair is added. Return TAG. (defalias 'semantic-tag-put-attribute-no-side-effect #[(tag attribute value) "\211AA)\211:\203 \304\305\306 @!\n#!\240\210)\207" [tag plist-cdr attribute value semantic-tag-make-plist plist-put copy-sequence] 7 (#$ . 7569)]) #@179 From TAG, return the value of ATTRIBUTE. ATTRIBUTE is a symbol whose specification value to get. Return the value found, or nil if ATTRIBUTE is not one of the attributes of TAG. (defalias 'semantic-tag-get-attribute #[(tag attribute) "\302\3038) \"\207" [tag attribute plist-get 2] 3 (#$ . 8102)]) (put 'semantic-tag-get-attribute 'byte-optimizer 'byte-compile-inline-expand) #@103 Return the cons cell whose car is the PROPERTIES part of TAG. That function is for internal use only. (defalias 'semantic--tag-properties-cdr #[(tag) "\301\233\207" [tag 3] 2 (#$ . 8488)]) (put 'semantic--tag-properties-cdr 'byte-optimizer 'byte-compile-inline-expand) #@198 Change value in TAG of PROPERTY to VALUE. If PROPERTY already exists, its value is set to VALUE, otherwise the new PROPERTY VALUE pair is added. Return TAG. That function is for internal use only. (defalias 'semantic--tag-put-property #[(tag property value) "\304\233)\211:\203 \305\306 @\n#!\240\210)\207" [tag plist-cdr property value 3 semantic-tag-make-plist plist-put] 7 (#$ . 8765)]) #@331 Change value in TAG of PROPERTY to VALUE without side effects. All cons cells in the property list are replicated so that there are no side effects if TAG is in shared lists. If PROPERTY already exists, its value is set to VALUE, otherwise the new PROPERTY VALUE pair is added. Return TAG. That function is for internal use only. (defalias 'semantic--tag-put-property-no-side-effect #[(tag property value) "\304\233)\211:\203 \305\306\307 @!\n#!\240\210)\207" [tag plist-cdr property value 3 semantic-tag-make-plist plist-put copy-sequence] 7 (#$ . 9170)]) #@244 Return the name of the file from which TAG originated. Return nil if that information can't be obtained. If TAG is from a loaded buffer, then that buffer's filename is used. If TAG is unlinked, but has a :filename property, then that is used. (defalias 'semantic-tag-file-name #[(tag) "\303!\211\203 \304 !\202 \305\306\3078)\n\"*)\207" [tag buffer property semantic-tag-in-buffer-p buffer-file-name :filename plist-get 3] 4 (#$ . 9742)]) #@54 Return non-nil if TAG is most likely a semantic tag. (defalias 'semantic-tag-p #[(tag) "\3011) :\205' @;\205' A@9\205' A@\205' \3028<\205' \3038<0\207\210\304\207" [tag (error) 2 3 nil] 2 (#$ . 10197)]) (put 'semantic-tag-p 'byte-optimizer 'byte-compile-inline-expand) #@42 Return non-nil if class of TAG is CLASS. (defalias 'semantic-tag-of-class-p #[(tag class) "\211A@) =\207" [tag class] 3 (#$ . 10478)]) (put 'semantic-tag-of-class-p 'byte-optimizer 'byte-compile-inline-expand) #@99 Return the members of the type that TAG describes. That is the value of the `:members' attribute. (defalias 'semantic-tag-type-members #[(tag) "\302\303\3048) \"*\207" [tag attribute :members plist-get 2] 3 (#$ . 10696)]) (put 'semantic-tag-type-members 'byte-optimizer 'byte-compile-inline-expand) #@247 Return the value of the `:type' attribute of TAG. For a function it would be the data type of the return value. For a variable, it is the storage type of that variable. For a data type, the type is the style of datatype, such as struct or union. (defalias 'semantic-tag-type #[(tag) "\302\303\3048) \"*\207" [tag attribute :type plist-get 2] 3 (#$ . 11008)]) (put 'semantic-tag-type 'byte-optimizer 'byte-compile-inline-expand) #@51 Return non-nil if TAG has positional information. (defalias 'semantic-tag-with-position-p #[(tag) "\3021- :\205) @;\205) A@9\205) A@\205) \3038<\205) \3048<0\202/ \210\305)\205J \3068)\307 !\203F \310 !\206I \311 !)\207" [tag o (error) 2 3 nil 4 semantic-overlay-p semantic-overlay-live-p arrayp] 2 (#$ . 11448)]) #@276 Compare TAG1 and TAG2 and return non-nil if they are equivalent. Use `equal' on elements the name, class, and position. Use this function if tags are being copied and regrouped to test for if two tags represent the same thing, but may be constructed of different cons cells. (defalias 'semantic-equivalent-tag-p #[(tag1 tag2) "\211@)\n\211@)\232\205\263 \n\211A@)\211\211A@)*=\205\263 \305 8)\2046 \n\305 8)?\206\263 \305 8)\205\263 \n\305 8)\205\263 \211\211\305 8)\306\f!\203_ \307\f!\202b \f\310H* \211\305 8)\306\f!\203x \311\f!\202{ \f\312H+D\n\211\211\305 8)\306\f!\203\224 \307\f!\202\227 \f\310H* \211\305 8)\306\f!\203\255 \311\f!\202\260 \f\312H+D\232\207" [tag1 tag tag2 class o 4 semantic-overlay-p semantic-overlay-start 0 semantic-overlay-end 1] 5 (#$ . 11781)]) #@233 Test to see if TAG1 and TAG2 are similar. Uses `semantic-tag-similar-p' but also recurses through sub-tags, such as argument lists and type members. Optional argument IGNORABLE-ATTRIBUTES is passed down to `semantic-tag-similar-p'. (defalias 'semantic-tag-similar-with-subtags-p #[(tag1 tag2 &rest ignorable-attributes) "\303 \n#\207" [tag1 tag2 ignorable-attributes semantic-tag-similar-p] 4 (#$ . 12595)]) #@329 Compare TAG's type against TYPE. Non nil if equivalent. TYPE can be a string, or a tag of class `type'. This can be complex since some tags might have a :type that is a tag, while other tags might just have a string. This function will also be return true of TAG's type is compared directly to the declaration of a data type. (defalias 'semantic-tag-of-type-p #[(tag type) "\211\306\307\3108) \"+\211;\203 \n\202f \n\3111G :\205C @;\205C A@9\205C A@\205C \3108<\205C \3128<0\202I \210\313)\203e \n\305\211\211A@)*=\203e \n\211@)\202f \314 ;\203p \202\274 \3111\235 :\205\231 @;\205\231 A@9\205\231 A@\205\231 \3108<\205\231 \3128<0\202\237 \210\313)\203\273 \305\211\211A@)*=\203\273 \211@)\202\274 \314\f\205+ ;\203\315 \f \230\206+\n;\203\331 \n\230\206+\f\230\205+\n\211\306\307\3108) \"+\203* \211\306\307\3108) \"+\203*\n\211\306\307\3108) \"+ \211\306\307\3108) \"+\232\202+\315+\207" [tag attribute tagtype class tagtypestring type :type plist-get 2 (error) 3 nil "" t typestring] 5 (#$ . 13011)]) #@147 Return non-nil the type of TAG is compound. Compound implies a structure or similar data type. Returns the list of tag members if it is compound. (defalias 'semantic-tag-type-compound-p #[(tag) "\211\304\305\3068) \"+\211\3071>