%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /usr/local/share/emacs/27.2/lisp/cedet/semantic/
Upload File :
Create Path :
Current File : //usr/local/share/emacs/27.2/lisp/cedet/semantic/db.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 "\300\301!\210\300\302!\207" [require eieio-base semantic] 2)
#@43 Refresh references to DBT in other files.
(autoload 'semanticdb-refresh-references "semantic/db-ref" '(#$ . 481))
(custom-declare-group 'semanticdb nil "Parser Generator Persistent Database interface." :group 'semantic)
#@31 List of all active databases.
(defvar semanticdb-database-list nil (#$ . 707))
#@198 The default type of database created for new files.
This can be changed on a per file basis, so that some directories
are saved using one mechanism, and some directories via a different
mechanism.
(defvar semanticdb-new-database-class 'semanticdb-project-database-file (#$ . 793))
(make-variable-buffer-local 'semanticdb-new-database-class)
#@128 The default type of search index to use for a `semanticdb-table's.
This can be changed to try out new types of search indices.
(defvar semanticdb-default-find-index-class 'semanticdb-find-search-index (#$ . 1141))
(make-variable-buffer-local 'semanticdb-default-find=index-class)
#@60 For a given buffer, this is the currently active database.
(defvar semanticdb-current-database nil (#$ . 1427))
(make-variable-buffer-local 'semanticdb-current-database)
#@66 For a given buffer, this is the currently active database table.
(defvar semanticdb-current-table nil (#$ . 1603))
(byte-code "\300\301!\210\302\303\304\305!\"\210\302\306\307\305!\"\210\302\310\306\"\210\311\310\312\313#\210\314\305\315\306#\316\305\317\320\321$\210\322\323\317\324\317\325%\210\322\326\317\327\317\330%\207" [make-variable-buffer-local semanticdb-current-table defalias semanticdb-abstract-table-p eieio-make-class-predicate semanticdb-abstract-table semanticdb-abstract-table--eieio-childp eieio-make-child-predicate semanticdb-abstract-table-child-p make-obsolete "use (cl-typep ... \\='semanticdb-abstract-table) instead" "25.1" define-symbol-prop cl-deftype-satisfies eieio-defclass-internal nil ((parent-db :documentation "Database Object containing this table.") (major-mode :initarg :major-mode :initform nil :documentation "Major mode this table belongs to.\nSometimes it is important for a program to know if a given table has the\nsame major mode as the current buffer.") (tags :initarg :tags :accessor semanticdb-get-tags :printer semantic-tag-write-list-slot-value :documentation "The tags belonging to this table.") (db-refs :initform nil :documentation "List of `semanticdb-table' objects refering to this one.\nThese aren't saved, but are instead recalculated after load.\nSee the file semanticdb-ref.el for how this slot is used.") (index :type semanticdb-abstract-search-index :documentation "The search index.\nUsed by semanticdb-find to store additional information about\nthis table for searching purposes.\n\nNote: This index will not be saved in a persistent file.") (cache :type list :initform nil :documentation "List of cache information for tools.\nAny particular tool can cache data to a database at runtime\nwith `semanticdb-cache-get'.\n\nUsing a semanticdb cache does not save any information to a file,\nso your cache will need to be recalculated at runtime.  Caches can be\nreferenced even when the file is not in a buffer.\n\nNote: This index will not be saved in a persistent file.")) (:documentation "A simple table for semantic tags.\nThis table is the root of tables, and contains the minimum needed\nfor a new table not associated with a buffer." :abstract t) cl-generic-define-method semanticdb-get-tags ((this semanticdb-abstract-table)) #[257 "\300\301\"\205\302\301\"\207" [slot-boundp tags eieio-oref] 4 "Retrieve the slot `tags' from an object of class `semanticdb-abstract-table'.\n\n(fn THIS)"] \(setf\ semanticdb-get-tags\) (value (this semanticdb-abstract-table)) #[514 "\300\301#\207" [eieio-oset tags] 6 "\n\n(fn VALUE THIS)"]] 7)
#@83 You cannot create a new object of type `semanticdb-abstract-table'.

(fn &rest _)
(defalias 'semanticdb-abstract-table #[128 "\300\301!\207" [error "Class semanticdb-abstract-table is abstract"] 3 (#$ . 4215)])
(byte-code "\300\301\302\303\302\304%\210\300\305\302\306\302\307%\210\300\310\302\311\302\312%\210\300\310\302\313\302\314%\210\300\315\302\316\302\317%\210\300\320\302\321\302\322%\210\300\323\302\324\302\325%\210\300\326\302\327\302\330%\210\331\332\333\334!\"\210\331\335\336\334!\"\210\331\337\335\"\210\340\337\341\342#\210\343\334\344\335#\345\334\302\346\347$\207" [cl-generic-define-method semanticdb-in-buffer-p nil ((_obj semanticdb-abstract-table)) #[257 "\300\207" [nil] 2 "Return a nil, meaning abstract table OBJ is not in a buffer.\n\n(fn OBJ)"] semanticdb-get-buffer ((_obj semanticdb-abstract-table)) #[257 "\300\207" [nil] 2 "Return a buffer associated with OBJ.\nIf the buffer is not in memory, load it with `find-file-noselect'.\n\n(fn OBJ)"] semanticdb-full-filename (buffer-or-string) #[257 "\301!\203r\211q\210\302!)\207\211;\205\303!\205\304!\207" [semanticdb-current-table bufferp semanticdb-full-filename file-exists-p expand-file-name] 3 "Fetch the full filename that BUFFER-OR-STRING refers to.\nThis uses semanticdb to get a better file name.\n\n(fn BUFFER-OR-STRING)"] ((_obj semanticdb-abstract-table)) #[257 "\300\207" [nil] 2 "Fetch the full filename that OBJ refers to.\nAbstract tables do not have file names associated with them.\n\n(fn OBJ)"] semanticdb-dirty-p ((_obj semanticdb-abstract-table)) #[257 "\300\207" [nil] 2 "Return non-nil if OBJ is dirty.\n\n(fn OBJ)"] semanticdb-set-dirty ((_obj semanticdb-abstract-table)) #[257 "\300\207" [nil] 2 "Mark the abstract table OBJ dirty.\nAbstract tables can not be marked dirty, as there is nothing\nfor them to synchronize against.\n\n(fn OBJ)"] semanticdb-normalize-tags ((_obj semanticdb-abstract-table) tags) #[514 "\207" #1=[] 3 "For the table OBJ, convert a list of TAGS, into standardized form.\nThe default is to return TAGS.\nSome databases may default to searching and providing simplified tags\nbased on whichever technique used.  This method provides a hook for\nthem to convert TAG into a more complete form.\n\n(fn OBJ TAGS)"] semanticdb-normalize-one-tag ((obj semanticdb-abstract-table) tag) #[514 "B\207" #1# 4 "For the table OBJ, convert a TAG, into standardized form.\nThis method returns a list of the form (DATABASE . NEWTAG).\n\nThe default is to just return (OBJ TAG).\n\nSome databases may default to searching and providing simplified tags\nbased on whichever technique used.  This method provides a hook for\nthem to convert TAG into a more complete form.\n\n(fn OBJ TAG)"] defalias semanticdb-abstract-search-index-p eieio-make-class-predicate semanticdb-abstract-search-index semanticdb-abstract-search-index--eieio-childp eieio-make-child-predicate semanticdb-abstract-search-index-child-p make-obsolete "use (cl-typep ... \\='semanticdb-abstract-search-index) instead" "25.1" define-symbol-prop cl-deftype-satisfies eieio-defclass-internal ((table :initarg :table :type semanticdb-abstract-table :documentation "XRef to the table this belongs to.")) (:documentation "A place where semanticdb-find can store search index information.\nThe search index will store data about which other tables might be\nneeded, or perhaps create hash or index tables for the current buffer." :abstract t)] 6)
#@90 You cannot create a new object of type `semanticdb-abstract-search-index'.

(fn &rest _)
(defalias 'semanticdb-abstract-search-index #[128 "\300\301!\207" [error "Class semanticdb-abstract-search-index is abstract"] 3 (#$ . 7652)])
(byte-code "\300\301\302\303\302\304%\210\300\305\302\306\302\307%\210\300\310\302\311\302\312%\210\313\314\315\316!\"\210\313\317\320\316!\"\210\313\321\317\"\210\322\321\323\324#\210\325\316\326\317#\327\316\330\302\331$\207" [cl-generic-define-method semanticdb-get-table-index nil ((obj semanticdb-abstract-table)) #[257 "\301\302\"\203\f\303\302\"\207\304\305!\306P\307#\262\310\302#\266\211\207" [semanticdb-default-find-index-class slot-boundp index eieio-oref nil eieio-object-name " index" :table eieio-oset] 7 "Return the search index for the table OBJ.\nIf one doesn't exist, create it.\n\n(fn OBJ)"] semanticdb-synchronize ((_idx semanticdb-abstract-search-index) _new-tags) #[514 "\300\207" ["Synchronize the search index IDX with some NEW-TAGS."] 3 "\n\n(fn IDX NEW-TAGS)"] semanticdb-partial-synchronize ((_idx semanticdb-abstract-search-index) _new-tags) #[514 "\300\207" ["Synchronize the search index IDX with some changed NEW-TAGS."] 3 "\n\n(fn IDX NEW-TAGS)"] defalias semanticdb-search-results-table-p eieio-make-class-predicate semanticdb-search-results-table semanticdb-search-results-table--eieio-childp eieio-make-child-predicate semanticdb-search-results-table-child-p make-obsolete "use (cl-typep ... \\='semanticdb-search-results-table) instead" "25.1" define-symbol-prop cl-deftype-satisfies eieio-defclass-internal (semanticdb-abstract-table) (:documentation "Table used for search results when there is no file or table association.\nExamples include search results from external sources such as from\nEmacs's own symbol table, or from external libraries.")] 6)
#@88 Create a new object of class type `semanticdb-search-results-table'.

(fn &rest SLOTS)
(defalias 'semanticdb-search-results-table #[128 "\300\301\302#\207" [apply make-instance semanticdb-search-results-table] 5 (#$ . 9494)])
(byte-code "\300\301\302\303#\300\207" [function-put semanticdb-search-results-table compiler-macro semanticdb-search-results-table--anon-cmacro] 4)
#@26 

(fn WHOLE &rest SLOTS)
(defalias 'semanticdb-search-results-table--anon-cmacro #[385 "\211@;\204\207\300\301\302@@#@\303@DABB\"\207" [macroexp--warn-and-return format "Obsolete name arg %S to constructor %S" identity] 7 (#$ . 9876)])
(byte-code "\300\301\302\303\302\304%\210\305\306\307\310!\"\210\305\311\312\310!\"\210\305\313\311\"\210\314\313\315\316#\210\317\310\320\311#\321\310\322\323\324$\207" [cl-generic-define-method semanticdb-refresh-table nil ((_obj semanticdb-search-results-table) &optional _force) #[513 "\300\207" [nil] 3 "If the tag list associated with OBJ is loaded, refresh it.\nThis will call `semantic-fetch-tags' if that file is in memory.\n\n(fn OBJ &optional FORCE)"] defalias semanticdb-table-p eieio-make-class-predicate semanticdb-table semanticdb-table--eieio-childp eieio-make-child-predicate semanticdb-table-child-p make-obsolete "use (cl-typep ... \\='semanticdb-table) instead" "25.1" define-symbol-prop cl-deftype-satisfies eieio-defclass-internal (semanticdb-abstract-table) ((file :initarg :file :documentation "File name relative to the parent database.\nThis is for the file whose tags are stored in this TABLE object.") (buffer :initform nil :documentation "The buffer associated with this table.\nIf nil, the table's buffer is no in Emacs.  If it has a value, then\nit is in Emacs.") (dirty :initform nil :documentation "Non-nil if this table needs to be `Saved'.") (db-refs :initform nil :documentation "List of `semanticdb-table' objects referring to this one.\nThese aren't saved, but are instead recalculated after load.\nSee the file semantic/db-ref.el for how this slot is used.") (pointmax :initarg :pointmax :initform nil :documentation "Size of buffer when written to disk.\nChecked on retrieval to make sure the file is the same.") (fsize :initarg :fsize :initform nil :documentation "Size of the file when it was last referenced.\nChecked when deciding if a loaded table needs updating from changes\noutside of Semantic's control.") (lastmodtime :initarg :lastmodtime :initform nil :documentation "Last modification time of the file referenced.\nChecked when deciding if a loaded table needs updating from changes outside of\nSemantic's control.") (unmatched-syntax :initarg :unmatched-syntax :documentation "List of vectors specifying unmatched syntax.") (lexical-table :initarg :lexical-table :initform nil :printer semantic-lex-spp-table-write-slot-value :documentation "Table that might be needed by the lexical analyzer.\nFor C/C++, the C preprocessor macros can be saved here.")) (:documentation "A single table of tags derived from file.")] 6)
#@73 Create a new object of class type `semanticdb-table'.

(fn &rest SLOTS)
(defalias 'semanticdb-table #[128 "\300\301\302#\207" [apply make-instance semanticdb-table] 5 (#$ . 12499)])
(byte-code "\300\301\302\303#\300\207" [function-put semanticdb-table compiler-macro semanticdb-table--anon-cmacro] 4)
#@26 

(fn WHOLE &rest SLOTS)
(defalias 'semanticdb-table--anon-cmacro #[385 "\211@;\204\207\300\301\302@@#@\303@DABB\"\207" [macroexp--warn-and-return format "Obsolete name arg %S to constructor %S" identity] 7 (#$ . 12807)])
(byte-code "\300\301\302\303\302\304%\210\300\305\302\306\302\307%\210\300\310\302\311\302\312%\210\300\313\302\314\302\315%\210\300\316\302\317\302\320%\210\300\321\302\322\302\323%\210\300\324\302\325\302\326%\210\327\330\331\332#\210\333\334\335\336!\"\210\333\337\340\336!\"\210\333\341\337\"\210\342\341\343\344#\210\345\336\346\337#\347\336\350\351\352$\210\300\353\302\354\302\355%\210\300\356\302\357\302\360%\207" [cl-generic-define-method semanticdb-in-buffer-p nil ((obj semanticdb-table)) #[257 "\300\301\"\302!\203\211\202\303\301\304#\262\207" [eieio-oref buffer buffer-live-p eieio-oset nil] 7 "Return a buffer associated with OBJ.\nIf the buffer is in memory, return that buffer.\n\n(fn OBJ)"] semanticdb-get-buffer ((obj semanticdb-table)) #[257 "\300!\206\301 \302\303\304\305\306!\307\"\310$\216\311\312!\313\")\262\207" [semanticdb-in-buffer-p match-data make-byte-code 0 "\301\300\302\"\207" vconcat vector [set-match-data evaporate] 3 find-file-noselect semanticdb-full-filename t] 8 "Return a buffer associated with OBJ.\nIf the buffer is in memory, return that buffer.\nIf the buffer is not in memory, load it with `find-file-noselect'.\n\n(fn OBJ)"] semanticdb-set-buffer ((obj semanticdb-table)) #[257 "\300!q\207" [semanticdb-get-buffer] 3 "Set the current buffer to be a buffer owned by OBJ.\nIf OBJ's file is not loaded, read it in first.\n\n(fn OBJ)"] semanticdb-dirty-p ((obj semanticdb-table)) #[257 "\300\301\"\207" [eieio-oref dirty] 4 "Return non-nil if OBJ is dirty.\n\n(fn OBJ)"] semanticdb-set-dirty ((obj semanticdb-table)) #[257 "\211\300\301\302#\207" [eieio-oset dirty t] 6 "Mark the abstract table OBJ dirty.\n\n(fn OBJ)"] semanticdb-debug-info ((obj semanticdb-table)) #[257 "\300\301\302!G\303\304\"\203\305\202\306#C\207" [format "(%d tags)%s" semanticdb-get-tags eieio-oref dirty ", DIRTY" ""] 7 "\n\n(fn OBJ)"] cl-print-object ((obj semanticdb-table) stream) #[514 "\300\301\302!\"\"\207" [princ eieio-object-name semanticdb-debug-info] 7 "Pretty printer extension for `semanticdb-table'.\nAdds the number of tags in this file to the object print name.\n\n(fn OBJ STREAM)"] put semanticdb-abstract-table-list cl-deftype-handler #[0 "\300\207" [(list-of semanticdb-abstract-table)] 1] defalias semanticdb-project-database-p eieio-make-class-predicate semanticdb-project-database semanticdb-project-database--eieio-childp eieio-make-child-predicate semanticdb-project-database-child-p make-obsolete "use (cl-typep ... \\='semanticdb-project-database) instead" "25.1" define-symbol-prop cl-deftype-satisfies eieio-defclass-internal (eieio-instance-tracker) ((tracking-symbol :initform semanticdb-database-list) (reference-directory :type string :documentation "Directory this database refers to.\nWhen a cache directory is specified, then this refers to the directory\nthis database contains symbols for.") (new-table-class :initform semanticdb-table :type class :documentation "New tables created for this database are of this class.") (cache :type list :initform nil :documentation "List of cache information for tools.\nAny particular tool can cache data to a database at runtime\nwith `semanticdb-cache-get'.\n\nUsing a semanticdb cache does not save any information to a file,\nso your cache will need to be recalculated at runtime.\n\nNote: This index will not be saved in a persistent file.") (tables :initarg :tables :type semanticdb-abstract-table-list :accessor semanticdb-get-database-tables :protection :protected :documentation "List of `semantic-db-table' objects.")) (:documentation "Database of file tables.") semanticdb-get-database-tables ((this semanticdb-project-database)) #[257 "\300\301\"\205\302\301\"\207" [slot-boundp tables eieio-oref] 4 "Retrieve the slot `tables' from an object of class `semanticdb-project-database'.\n\n(fn THIS)"] \(setf\ semanticdb-get-database-tables\) (value (this semanticdb-project-database)) #[514 "\300\301#\207" [eieio-oset tables] 6 "\n\n(fn VALUE THIS)"]] 7)
#@84 Create a new object of class type `semanticdb-project-database'.

(fn &rest SLOTS)
(defalias 'semanticdb-project-database #[128 "\300\301\302#\207" [apply make-instance semanticdb-project-database] 5 (#$ . 17039)])
(byte-code "\300\301\302\303#\300\207" [function-put semanticdb-project-database compiler-macro semanticdb-project-database--anon-cmacro] 4)
#@26 

(fn WHOLE &rest SLOTS)
(defalias 'semanticdb-project-database--anon-cmacro #[385 "\211@;\204\207\300\301\302@@#@\303@DABB\"\207" [macroexp--warn-and-return format "Obsolete name arg %S to constructor %S" identity] 7 (#$ . 17402)])
(byte-code "\300\301\302\303\302\304%\210\300\301\302\305\302\306%\210\300\307\302\310\302\311%\210\300\312\302\313\302\314%\210\300\315\302\316\302\317%\210\300\320\302\321\302\322%\210\300\323\302\324\302\325%\210\300\326\302\327\302\330%\210\300\331\302\332\302\333%\207" [cl-generic-define-method semanticdb-full-filename nil ((obj semanticdb-table)) #[257 "\300\301\302\"\301\211\303\"\304\"\"\207" [expand-file-name eieio-oref file parent-db reference-directory] 7 "Fetch the full filename that OBJ refers to.\n\n(fn OBJ)"] ((_obj semanticdb-project-database)) #[257 "\300\207" [nil] 2 "Fetch the full filename that OBJ refers to.\nAbstract tables do not have file names associated with them.\n\n(fn OBJ)"] semanticdb-dirty-p ((DB semanticdb-project-database)) #[257 "\300\301\302\"\204\211\203\303@!\262\211A\262\202\207" [nil eieio-oref tables semanticdb-dirty-p] 5 "Return non-nil if DB is dirty.\nA database is dirty if the state of the database changed in a way\nwhere it may need to resynchronize with some persistent storage.\n\n(fn DB)"] semanticdb-debug-info ((obj semanticdb-project-database)) #[257 "\300\301\302!G\303!\203\304\202\305#C\207" [format "(%d tables%s)" semanticdb-get-database-tables semanticdb-dirty-p " DIRTY" ""] 6 "\n\n(fn OBJ)"] cl-print-object ((obj semanticdb-project-database) stream) #[514 "\300\301\302!\"\"\207" [princ eieio-object-name semanticdb-debug-info] 7 "Pretty printer extension for `semanticdb-project-database'.\nAdds the number of tables in this file to the object print name.\n\n(fn OBJ STREAM)"] semanticdb-create-database ((_dbc (subclass semanticdb-project-database)) directory) #[514 "\300!\211\204\301\302!\303\304#\262\211\305\306\307!#\266\211\207" [semanticdb-directory-loaded-p semanticdb-project-database file-name-nondirectory :tables nil eieio-oset reference-directory file-truename] 9 "Create a new semantic database of class DBC for DIRECTORY and return it.\nIf a database for DIRECTORY has already been created, return it.\nIf DIRECTORY doesn't exist, create a new one.\n\n(fn DBC DIRECTORY)"] semanticdb-flush-database-tables ((db semanticdb-project-database)) #[257 "\211\300\301\302#\207" [eieio-oset tables nil] 6 "Reset the tables in DB to be empty.\n\n(fn DB)"] semanticdb-create-table ((db semanticdb-project-database) file) #[514 "\300\"\211\204&\301\302\"\303!\304\303!#\262\211\305\306#\266\307\310\311$\210\211\207" [semanticdb-file-table eieio-oref new-table-class file-name-nondirectory :file eieio-oset parent-db object-add-to-list tables t] 8 "Create a new table in DB for FILE and return it.\nThe class of DB contains the class name for the type of table to create.\nIf the table for FILE exists, return it.\nIf the table for FILE does not exist, create one.\n\n(fn DB FILE)"] semanticdb-file-table ((obj semanticdb-project-database) filename) #[514 "\300\301\302!\303\304\"\"\305\303\306\"#\207" [object-assoc file-relative-name file-truename eieio-oref reference-directory file tables] 8 "From OBJ, return FILENAME's associated table object.\n\n(fn OBJ FILENAME)"]] 6)
#@77 Get a database for FILENAME.
If one isn't found, create one.

(fn FILENAME)
(defalias 'semanticdb-get-database #[257 "\301\302!\"\207" [semanticdb-new-database-class semanticdb-create-database file-truename] 5 (#$ . 20755)])
#@75 Return the project belonging to PATH if it was already loaded.

(fn PATH)
(defalias 'semanticdb-directory-loaded-p #[257 "\300\301\302#\207" [eieio-instance-tracker-find reference-directory semanticdb-database-list] 5 (#$ . 20988)])
#@192 Initialize a database table for FILENAME, and return it.
If FILENAME exists in the database already, return that.
If there is no database for the table to live in, create one.

(fn FILENAME)
(defalias 'semanticdb-create-table-for-file #[257 "\301\211\302\303!!\304\"\262\305\"\262B\207" [semanticdb-new-database-class nil file-name-directory file-truename semanticdb-create-database semanticdb-create-table] 7 (#$ . 21229)])
(byte-code "\300\301\302\303!\"\210\300\304\305\303!\"\210\300\306\304\"\210\307\306\310\311#\210\312\303\313\304#\314\303\315\316\317$\207" [defalias semanticdb-abstract-cache-p eieio-make-class-predicate semanticdb-abstract-cache semanticdb-abstract-cache--eieio-childp eieio-make-child-predicate semanticdb-abstract-cache-child-p make-obsolete "use (cl-typep ... \\='semanticdb-abstract-cache) instead" "25.1" define-symbol-prop cl-deftype-satisfies eieio-defclass-internal nil ((table :initarg :table :type semanticdb-abstract-table :documentation "Cross reference to the table this belongs to.")) (:documentation "Abstract baseclass for tools to use to cache information in semanticdb.\nTools needing a per-file cache must subclass this, and then get one as\nneeded.  Cache objects are identified in semanticdb by subclass.\nIn order to keep your cache up to date, be sure to implement\n`semanticdb-synchronize', and `semanticdb-partial-synchronize'.\nSee the file semantic/scope.el for an example." :abstract t)] 6)
#@83 You cannot create a new object of type `semanticdb-abstract-cache'.

(fn &rest _)
(defalias 'semanticdb-abstract-cache #[128 "\300\301!\207" [error "Class semanticdb-abstract-cache is abstract"] 3 (#$ . 22691)])
(byte-code "\300\301\302\303\302\304%\210\300\305\302\306\302\307%\210\300\310\302\311\302\312%\210\300\313\302\314\302\315%\210\316\317\320\321!\"\210\316\322\323\321!\"\210\316\324\322\"\210\325\324\326\327#\210\330\321\331\322#\332\321\302\333\334$\207" [cl-generic-define-method semanticdb-cache-get nil ((table semanticdb-abstract-table) desired-class) #[514 "\300\301\"\204\302\303!\210\304\305\"\306\211\204,\203,\307@!=\203%@\262A\262\202\211\2034\211\202C\310\311#\262\312\305#\210\211\207" [child-of-class-p semanticdb-abstract-cache error "Invalid SemanticDB cache" eieio-oref cache nil eieio-object-class "Cache" :table object-add-to-list] 8 "Get a cache object on TABLE of class DESIRED-CLASS.\nThis method will create one if none exists with no init arguments\nother than :table.\n\n(fn TABLE DESIRED-CLASS)"] semanticdb-cache-remove ((table semanticdb-abstract-table) cache) #[514 "\300\301#\207" [object-remove-from-list cache] 6 "Remove from TABLE the cache object CACHE.\n\n(fn TABLE CACHE)"] semanticdb-synchronize ((_cache semanticdb-abstract-cache) _new-tags) #[514 "\300\207" ["Synchronize a CACHE with some NEW-TAGS."] 3 "\n\n(fn CACHE NEW-TAGS)"] semanticdb-partial-synchronize ((_cache semanticdb-abstract-cache) _new-tags) #[514 "\300\207" ["Synchronize a CACHE with some changed NEW-TAGS."] 3 "\n\n(fn CACHE NEW-TAGS)"] defalias semanticdb-abstract-db-cache-p eieio-make-class-predicate semanticdb-abstract-db-cache semanticdb-abstract-db-cache--eieio-childp eieio-make-child-predicate semanticdb-abstract-db-cache-child-p make-obsolete "use (cl-typep ... \\='semanticdb-abstract-db-cache) instead" "25.1" define-symbol-prop cl-deftype-satisfies eieio-defclass-internal ((db :initarg :db :type semanticdb-project-database :documentation "Cross reference to the database this belongs to.")) (:documentation "Abstract baseclass for tools to use to cache information in semanticdb.\nTools needing a database cache must subclass this, and then get one as\nneeded.  Cache objects are identified in semanticdb by subclass.\nIn order to keep your cache up to date, be sure to implement\n`semanticdb-synchronize', and `semanticdb-partial-synchronize'.\nSee the file semantic/scope.el for an example." :abstract t)] 6)
#@86 You cannot create a new object of type `semanticdb-abstract-db-cache'.

(fn &rest _)
(defalias 'semanticdb-abstract-db-cache #[128 "\300\301!\207" [error "Class semanticdb-abstract-db-cache is abstract"] 3 (#$ . 25172)])
(byte-code "\300\301\302\303\302\304%\210\300\305\302\306\302\307%\210\300\310\302\311\302\312%\210\300\313\302\314\302\315%\210\300\316\302\317\302\320%\210\300\321\302\322\302\323%\210\300\310\302\324\302\325%\210\300\313\302\326\302\327%\210\300\330\302\331\302\332%\207" [cl-generic-define-method semanticdb-cache-get nil ((db semanticdb-project-database) desired-class) #[514 "\300\301\"\204\302\303!\210\304\305\"\306\211\204,\203,\307@!=\203%@\262A\262\202\211\2034\211\202C\310\311#\262\312\305#\210\211\207" [child-of-class-p semanticdb-abstract-cache error "Invalid SemanticDB cache" eieio-oref cache nil eieio-object-class "Cache" :db object-add-to-list] 8 "Get a cache object on DB of class DESIRED-CLASS.\nThis method will create one if none exists with no init arguments\nother than :table.\n\n(fn DB DESIRED-CLASS)"] semanticdb-cache-remove ((db semanticdb-project-database) cache) #[514 "\300\301#\207" [object-remove-from-list cache] 6 "Remove from TABLE the cache object CACHE.\n\n(fn DB CACHE)"] semanticdb-synchronize ((_cache semanticdb-abstract-db-cache) _new-tags) #[514 "\300\207" ["Synchronize a CACHE with some NEW-TAGS."] 3 "\n\n(fn CACHE NEW-TAGS)"] semanticdb-partial-synchronize ((_cache semanticdb-abstract-db-cache) _new-tags) #[514 "\300\207" ["Synchronize a CACHE with some changed NEW-TAGS."] 3 "\n\n(fn CACHE NEW-TAGS)"] semanticdb-refresh-table ((obj semanticdb-table) &optional force) #[513 "\300!\203\212\301!\210\302 )\207\211\205&\212\303\304!\305\"\211q\210\302 \210\306!\262)\207" [semanticdb-in-buffer-p semanticdb-set-buffer semantic-fetch-tags semantic-find-file-noselect semanticdb-full-filename t kill-buffer] 5 "If the tag list associated with OBJ is loaded, refresh it.\nOptional argument FORCE will force a refresh even if the file in question\nis not in a buffer.  Avoid using FORCE for most uses, as an old cache\nmay be sufficient for the general case.  Forced updates can be slow.\nThis will call `semantic-fetch-tags' if that file is in memory.\n\n(fn OBJ &optional FORCE)"] semanticdb-needs-refresh-p ((obj semanticdb-table)) #[257 "\301!\302!\211\203r\211q\210)??\202F\303!\211\3048\262\3058\262\306\307\"?\206D\310\311\"\2066\312U?\206D\310\313\"\232?\266\203\207" [semantic-parse-tree-state semanticdb-full-filename semanticdb-in-buffer-p file-attributes 7 5 slot-boundp tags eieio-oref fsize 0 lastmodtime] 9 "Return non-nil if OBJ's tag list is out of date.\nThe file associated with OBJ does not need to be in a buffer.\n\n(fn OBJ)"] ((table semanticdb-abstract-table) new-tags) #[514 "\301\302#\266\301\303d#\266\304\305!!\301\306\3078\262#\266\301\310\3118\262#\266\301\312#\266\313\314!\203F\301\315\316 #\266\317!\210\320\321\"\203_\322\321\"\211\203^\323\"\210\210\322\324\"\211\203u\211@\323\"\210A\266\202\202c\210\325!\207" [semantic-unmatched-syntax-cache eieio-oset tags pointmax file-attributes semanticdb-full-filename fsize 7 lastmodtime 5 unmatched-syntax featurep semantic/lex-spp lexical-table semantic-lex-spp-save-table semanticdb-set-dirty slot-boundp index eieio-oref semanticdb-synchronize cache semanticdb-refresh-references] 10 "Synchronize the table TABLE with some NEW-TAGS.\n\n(fn TABLE NEW-TAGS)"] ((table semanticdb-abstract-table) new-tags) #[514 "\302!\210\303\304!\203\305\306\307 #\266\305\310#\266\311\312\"\2030\313\312\"\211\203/\314\"\210\210\313\315\"\211\203F\211@\316\"\210A\266\202\2024\210\317!\320\203h@\211A@)\321=\203a@B\262A\262\202K\211\237\266\202\205r\322!\207" [semantic-unmatched-syntax-cache tag semanticdb-set-dirty featurep semantic/lex-spp eieio-oset lexical-table semantic-lex-spp-save-table unmatched-syntax slot-boundp index eieio-oref semanticdb-partial-synchronize cache semanticdb-synchronize semantic-something-to-tag-table nil include semanticdb-refresh-references] 8 "Synchronize the table TABLE where some NEW-TAGS changed.\n\n(fn TABLE NEW-TAGS)"] semanticdb-save-db ((_DB semanticdb-project-database) &optional _suppress-questions) #[513 "\300\207" [nil] 3 "Cause a database to save itself.\nThe database base class does not save itself persistently.\nSubclasses could save themselves to a file, or to a database, or other\nform.\n\n(fn DB &optional SUPPRESS-QUESTIONS)"]] 6)
#@32 Save the current tag database.
(defalias 'semanticdb-save-current-db #[0 "\204\302\303!\210\304	!\210?\205\302\305!\207" [noninteractive semanticdb-current-database message "Saving current tag summaries..." semanticdb-save-db "Saving current tag summaries...done"] 2 (#$ . 29739) nil])
#@34 Save all semantic tag databases.
(defalias 'semanticdb-save-all-db #[0 "\204\303\304!\210\305\306\n\"\210)?\205\303\307!\207" [noninteractive semanticdb--inhibit-make-directory semanticdb-database-list message "Saving tag summaries..." mapc semanticdb-save-db "Saving tag summaries...done"] 3 (#$ . 30037) nil])
#@105 Save all semantic tag databases from idle time.
Exit the save between databases if there is user input.
(defalias 'semanticdb-save-all-db-idle #[0 "\203\304\305 \3042\306\307\"0*\207\3101)\304\305 \3042&\306\311\"0*0\207\312\313\314\315p\316!#\"\210\317\207" [debug-on-error semantic--on-input-start-marker semantic-current-input-throw-symbol semanticdb-database-list semanticdb-idle-save point-marker mapc #[257 "\203\302 \204r\303	!q\210\212	b\210\304 *\203\305\306\"\210\307\310\"\207" [semantic-current-input-throw-symbol semantic--on-input-start-marker input-pending-p marker-buffer accept-process-output throw semanticdb-idle-save semanticdb-save-db t] 4 "\n\n(fn DB)"] (error) #[257 "\203\302 \204r\303	!q\210\212	b\210\304 *\203\305\306\"\210\307\310\"\207" [semantic-current-input-throw-symbol semantic--on-input-start-marker input-pending-p marker-buffer accept-process-output throw semanticdb-idle-save semanticdb-save-db t] 4 "\n\n(fn DB)"] message "Auto-DB Save: %S" format "%S - %s" error-message-string nil] 8 (#$ . 30364)])
#@409 List of predicates to try that indicate a directory belongs to a project.
This list is used when `semanticdb-persistent-path' contains the value
'project.  If the predicate list is nil, then presume all paths are valid.

Project Management software (such as EDE and JDE) should add their own
predicates with `add-hook' to this variable, and semanticdb will save tag
caches in directories controlled by them.
(defvar semanticdb-project-predicate-functions nil (#$ . 31444))
(cl-generic-define-method 'semanticdb-write-directory-p nil '((_obj semanticdb-project-database)) nil #[257 "\300\207" [nil] 2 "Return non-nil if OBJ should be written to disk.\nUses `semanticdb-persistent-path' to determine the return value.\n\n(fn OBJ)"])
#@39 Return the currently active database.
(defalias 'semanticdb-current-database #[0 "\206\f	\205\f\303\n	\"\207" [semanticdb-current-database default-directory semanticdb-new-database-class semanticdb-create-database] 3 (#$ . 32181)])
#@238 Non-nil to temporarily search any major mode for a tag.
If a particular major mode wants to search any mode, put the
`semantic-match-any-mode' symbol onto the symbol of that major mode.
Do not set the value of this variable permanently.
(defvar semanticdb-match-any-mode nil (#$ . 32423))
#@164 A Semanticdb search occurring withing BODY will search tags in all modes.
This temporarily sets `semanticdb-match-any-mode' while executing BODY.

(fn &rest BODY)
(defalias 'semanticdb-with-match-any-mode '(macro . #[128 "\300\301BB\207" [let ((semanticdb-match-any-mode t))] 4 (#$ . 32719)]))
(byte-code "\300\301\302\303#\304\301\305\306#\210\307\310\311\312\311\313%\210\307\314\311\315\311\316%\210\307\314\311\317\311\320%\210\321\322\323\324\325DD\326\327\330%\207" [function-put semanticdb-with-match-any-mode lisp-indent-function 0 put edebug-form-spec t cl-generic-define-method semanticdb-equivalent-mode-for-search nil (table &optional buffer) #[513 "\302N\206	\206\303\"\207" [major-mode semanticdb-match-any-mode semantic-match-any-mode semanticdb-equivalent-mode] 5 "Return non-nil if TABLE's mode is equivalent to BUFFER.\nSee `semanticdb-equivalent-mode' for details.\nThis version is used during searches.  Major-modes that opt\nto set the `semantic-match-any-mode' property will be able to search\nall files of any type.\n\n(fn TABLE &optional BUFFER)"] semanticdb-equivalent-mode ((_table semanticdb-abstract-table) &optional _buffer) #[513 "\300\207" [nil] 3 "Return non-nil if TABLE's mode is equivalent to BUFFER.\nEquivalent modes are specified by the `semantic-equivalent-major-modes'\nlocal variable.\n\n(fn TABLE &optional BUFFER)"] ((table semanticdb-table) &optional buffer) #[513 "\212\211\203\211q\210\302\301\"?\206(\204\303	\302\301\"\"\206(\205(\302\301\"\235)\207" [semantic-equivalent-major-modes major-mode eieio-oref mode-local-use-bindings-p] 7 "Return non-nil if TABLE's mode is equivalent to BUFFER.\nEquivalent modes are specified by the `semantic-equivalent-major-modes'\nlocal variable.\n\n(fn TABLE &optional BUFFER)"] custom-declare-variable semanticdb-project-roots funcall function #[0 "\300\207" [nil] 1] "List of directories, where each directory is the root of some project.\nAll subdirectories of a root project are considered a part of one project.\nValues in this string can be overridden by project management programs\nvia the `semanticdb-project-root-functions' variable." :type (repeat string)] 7)
#@406 List of functions used to determine a given directories project root.
Functions in this variable can override `semanticdb-project-roots'.
Functions set in the variable are given one argument (a directory) and
must return a string, (the root directory) or a list of strings (multiple
root directories in a more complex system).  This variable should be used
by project management programs like EDE or JDE.
(defvar semanticdb-project-root-functions nil (#$ . 34902))
#@260 List of databases containing system library information.
Mode authors can create their own system databases which know
detailed information about the system libraries for querying purposes.
Put those into this variable as a buffer-local, or mode-local
value.
(defvar semanticdb-project-system-databases nil (#$ . 35374))
(make-variable-buffer-local 'semanticdb-project-system-databases)
#@62 Non-nil if search routines are to include a system database.
(defvar semanticdb-search-system-databases t (#$ . 35767))
#@547 Return a list of databases associated with the current buffer.
If optional argument DIR is non-nil, then use DIR as the starting directory.
If this buffer has a database, but doesn't have a project associated
with it, return nil.
First, it checks `semanticdb-project-root-functions', and if that
has no results, it checks `semanticdb-project-roots'.  If that fails,
it returns the results of function `semanticdb-current-database'.
Always append `semanticdb-project-system-databases' if
`semanticdb-search-system' is non-nil.

(fn &optional DIR)
(defalias 'semanticdb-current-database-list #[256 "\305\211\306\206		!\307\310\"\262\203\306!\262\202:\203:\306@!\311\312\313!P\"\2032\211\262\210A\262\202\204A\211\262\203q\312\313!P\n\211\203o\314@\315\"\203h\311\316@\315\"\"\203h\211@B\262\211A\262\202K\266\203z\f\244\262\207" [semanticdb-project-roots default-directory semanticdb-database-list semanticdb-search-system-databases semanticdb-project-system-databases nil file-truename run-hook-with-args-until-success semanticdb-project-root-functions string-match "^" regexp-quote slot-boundp reference-directory eieio-oref] 12 (#$ . 35894)])
#@51 Hash table mapping file names to database tables.
(defvar semanticdb-file-table-hash (make-hash-table :test 'equal) (#$ . 37088))
#@86 Retrieve a DB table from the hash for FILE.
Does not use `file-truename'.

(fn FILE)
(defalias 'semanticdb-file-table-object-from-hash #[257 "\301\302#\207" [semanticdb-file-table-hash gethash no-hit] 5 (#$ . 37224)])
#@67 For FILE, associate DBTABLE in the hash table.

(fn FILE DBTABLE)
(defalias 'semanticdb-file-table-object-put-hash #[514 "\301#\207" [semanticdb-file-table-hash puthash] 6 (#$ . 37450)])
#@349 Return a semanticdb table belonging to FILE, make it up to date.
If file has database tags available in the database, return it.
If file does not have tags available, and DONTLOAD is nil,
then load the tags for FILE, and create a new table object for it.
DONTLOAD does not affect the creation of new database objects.

(fn FILE &optional DONTLOAD)
(defalias 'semanticdb-file-table-object #[513 "\205\362\301!\205\362\302!\205\362\303!\304!\305\306=\203G\307!\262\310!\206,\311!\312\"\262\203F\313\"\210\230\204F\313\"\210\210\203^\314!\203^\212\315!\210\316 \210)\202\357\203j\203j\202\357\203\201\317\320\321\"!\203\201\322!\204\201\202\357\211\203\213\323!\204\221\323!\203\225\305\202\357\204\314\204\246\211\204\246\307!\262\211\204\263\203\263\324!\262\325!\262\313\"\210\211\230\204\310\313\"\210\202\357\211\204\325\307!\262\326!\211A\262\313\"\210\230\204\354\313\"\210\262)\266\202\207" [default-directory file-exists-p file-regular-p file-name-directory semanticdb-file-table-object-from-hash nil no-hit file-truename semanticdb-directory-loaded-p semanticdb-get-database semanticdb-file-table semanticdb-file-table-object-put-hash semanticdb-in-buffer-p semanticdb-set-buffer semantic-fetch-tags number-or-marker-p eieio-oref pointmax semanticdb-needs-refresh-p get-file-buffer semanticdb-full-filename semanticdb-create-table-for-file-not-in-buffer semanticdb-create-table-for-file] 8 (#$ . 37647)])
#@101 When non-nil, a function for creating a semanticdb table.
This should take a filename to be parsed.
(defvar semanticdb-out-of-buffer-create-table-fcn nil (#$ . 39157))
(make-variable-buffer-local 'semanticdb-out-of-buffer-create-table-fcn)
#@174 Create a table for the file FILENAME.
If there are no language specific configurations, this
function will read in the buffer, parse it, and kill the buffer.

(fn FILENAME)
(defalias 'semanticdb-create-table-for-file-not-in-buffer #[257 "\203\302!\204!\207\212\303!\211\206\304\305\"\211q\210	\203$\306 \210	\204-\307!\210\266\202)\207" [semanticdb-out-of-buffer-create-table-fcn semanticdb-current-table file-remote-p find-buffer-visiting semantic-find-file-noselect t semantic-fetch-tags kill-buffer] 6 (#$ . 39404)])
#@194 Return a list of tags belonging to FILE.
If file has database tags available in the database, return them.
If file does not have tags available, then load the file, and create them.

(fn FILE)
(defalias 'semanticdb-file-stream #[257 "\300!\211\205\n\301!\207" [semanticdb-file-table-object semanticdb-get-tags] 4 (#$ . 39947)])
(provide 'semantic/db)

Zerion Mini Shell 1.0