;ELC   
;;; Compiled
;;; in Emacs version 29.4
;;; with all optimizations.



(byte-code "\300\301!\210\300\302!\210\300\303!\210\300\304!\207" [require semantic semantic/ctxt semantic/doc semantic/format] 2)#@494 Lexer regexp to match Java number terminals.
Following is the specification of Java number literals.

DECIMAL_LITERAL:
    [1-9][0-9]*
  ;
HEX_LITERAL:
    0[xX][[:xdigit:]]+
  ;
OCTAL_LITERAL:
    0[0-7]*
  ;
INTEGER_LITERAL:
    <DECIMAL_LITERAL>[lL]?
  | <HEX_LITERAL>[lL]?
  | <OCTAL_LITERAL>[lL]?
  ;
EXPONENT:
    [eE][+-]?[09]+
  ;
FLOATING_POINT_LITERAL:
    [0-9]+[.][0-9]*<EXPONENT>?[fFdD]?
  | [.][0-9]+<EXPONENT>?[fFdD]?
  | [0-9]+<EXPONENT>[fFdD]?
  | [0-9]+<EXPONENT>?[fFdD]
  ;
(defconst semantic-java-number-regexp "\\(\\<[0-9]+[.][0-9]+\\([eE][-+]?[0-9]+\\)?[fFdD]?\\>\\|\\<[0-9]+[.][eE][-+]?[0-9]+[fFdD]?\\>\\|\\<[0-9]+[.][fFdD]\\>\\|\\<[0-9]+[.]\\|[.][0-9]+\\([eE][-+]?[0-9]+\\)?[fFdD]?\\>\\|\\<[0-9]+[eE][-+]?[0-9]+[fFdD]?\\>\\|\\<0[xX][[:xdigit:]]+[lL]?\\>\\|\\<[0-9]+[lLfFdD]?\\>\\)" (#$ . 215))#@210 Split ID string into a pair (NAME . DIM).
NAME is ID without trailing brackets: "[]".
DIM is the dimension of NAME deduced from the number of trailing
brackets, or 0 if there is no trailing brackets.

(fn ID)
(defalias 'semantic-java-dim #[257 "\300\301\"\211\203 \302O\303\302\"G\304\245B\207\302B\207" [string-match "\\(\\[]\\)+\\'" 0 match-string 2] 6 (#$ . 1039)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put semantic-java-dim speed -1 put byte-optimizer byte-compile-inline-expand] 5)#@66 Return the type of TAG, taking care of array notation.

(fn TAG)
(defalias 'semantic-java-type #[257 "\211\211\300\301\3028\262\"\266\203\303\301\3028\262\"\266\202\211\2031 \211\304V\2031 \305P\262\211S\262\202 \207" [:type plist-get 2 :dereference 0 "[]"] 8 (#$ . 1562)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put semantic-java-type speed -1 put byte-optimizer byte-compile-inline-expand] 5)#@305 Expand compound declarations found in TAG into separate tags.
TAG contains compound declarations when its class is `variable', and
its name is a list of elements (NAME START . END), where NAME is a
compound variable name, and START/END are the bounds of the
corresponding compound declaration.

(fn TAG)
(defalias 'semantic-java-expand-tag #[257 "\211\211A@\262\211@\262\300\211\211\211\211\211\211\211	\301=\203\230 \302\303\"\211\2035 \304O\305\304\"G\306\245B\266\202\202: \304B\266\202\211\262	A\304V\203\230 \n@\211\206Q \211@\262\211A@\262\307\3068\262!\307\3108\262!\3118\262\257\266\202\262C\262\312	A\211AA\262\211:\203\224 \211\313\314@#!\240\210\266\207	\315=\203\343:\204\253 CC\262	\n\316\317\3068\262\"\266\202\302\303\"\211\203\322 \304O\305\304\"G\306\245B\266\202\202\327 \304B\266\202\262@\262A\262\203)@\262A\262	\203\375 A@\202\n\211\3118\262\320!\203\321!\266\202\202\211\304H\266\202\262\211\203$AA\202?\n\211\3118\262\320!\203:\322!\266\202\202?\211\323H\266\202\262@\302\303\"\211\203\\\304O\305\304\"G\306\245B\266\202\202a\304B\266\202\262\n@\211\206q\211@\262\211A@\262\307\3068\262!\307\3108\262!\3118\262\257\266\202\262B\262\316\211AA\262\211:\203\264\211\313\314@#!\240\210\266\312\nA\\\211AA\262\211:\203\327\211\313\314@#!\240\210\266\324#\210\202\343 	\325=\203)\326\327\f\211@\262\"\203)\n\211@\262\330\331\332#\237\211@\333\334\335A!\327#\240\266\300\211\336\337\340\341&\266\203D\266\205\207" [nil function string-match "\\(\\[]\\)+\\'" 0 match-string 2 copy-sequence 3 4 :dereference semantic-tag-make-plist plist-put variable :type plist-get overlayp overlay-start overlay-end 1 semantic-tag-set-bounds type string-search "." split-string "\\." t mapconcat identity reverse apply semantic-tag package :detail] 26 (#$ . 2000)])
(byte-code "\304\300\305\306\307DD\310\311\312\311\313\314\315\316\317&\210\320\321BC\322\323#\210\324\325\326\"\323\"\266\327\321\323\330!\331\204E 	\211\262\204E \n\262\205C \332\"\262\203p \211\204p \303N\203_ \332\303N\"\211\262\204E \211\333N\206i \211\334N\262\262\202E \266\203\335\336#\210\327\321\323\300#\207" [semantic-java-dependency-system-include-path mode-local-active-mode major-mode mode-local-symbol-table custom-declare-variable funcall function #[0 "\300\207" [nil] 1 ""] "The system include path used by Java language." :group java semantic :type (repeat (directory :tag "Directory")) :set #[514 "\300\"\210\211\301\302BC\303\304#\210\305\306\307\"\304\"\266\310\311!\205\" \305\311\304\"\207" [set-default mode-local-bind semantic-dependency-system-include-path #1=(mode-variable-flag t) java-mode mode-local-map-mode-buffers make-closure #[0 "\302\301!\210\300\211\207" [V0 semantic-dependency-system-include-path make-local-variable] 2] fboundp semantic-decoration-unparsed-include-do-reset] 7 "\n\n(fn SYM VAL)"] mode-local-bind semantic-dependency-system-include-path #1# java-mode mode-local-map-mode-buffers make-closure #[0 "\302\301!\210\300\211\207" [V0 semantic-dependency-system-include-path make-local-variable] 2] put symbol-name nil intern-soft mode-local-parent derived-mode-parent variable-documentation "System path to search for include files."] 12)#@142 Return a list of type names currently in scope at POINT.
Override `semantic-ctxt-scoped-types' in `java-mode' buffers.

(fn &optional POINT)
(defalias 'semantic-ctxt-scoped-types-java-mode #[256 "\300\301\302\303!!\304\203% @\211A@\262\305=\203 @B\262A\262\202 \211\237\266\202\"\207" [mapcar semantic-tag-name semantic-something-to-tag-table semantic-find-tag-by-overlay nil type] 7 (#$ . 5374)])
(byte-code "\300\301\302\303#\210\304\305\306\307#\207" [put semantic-ctxt-scoped-types-java-mode definition-name semantic-ctxt-scoped-types mode-local-bind ((semantic-ctxt-scoped-types . semantic-ctxt-scoped-types-java-mode)) (override-flag t) java-mode] 4)#@176 Return the protection of TAG in PARENT.
Override function for `semantic-tag-protection'.
Override `semantic-tag-protection' in `java-mode' buffers.

(fn TAG &optional PARENT)
(defalias 'semantic-tag-protection-java-mode #[513 "\300\"\211\206	 \301\207" [semantic-tag-protection-default package] 5 (#$ . 6048)])
(byte-code "\300\301\302\303#\210\304\305\306\307#\207" [put semantic-tag-protection-java-mode definition-name semantic-tag-protection mode-local-bind ((semantic-tag-protection . semantic-tag-protection-java-mode)) (override-flag t) java-mode] 4)#@243 Return a function (method) prototype for TAG.
Optional argument PARENT is a parent (containing) item.
Optional argument COLOR indicates that color should be mixed in.
See also `semantic-format-tag-prototype'.

(fn TAG &optional PARENT COLOR)
(defalias 'semantic-java-prototype-function #[769 "\211@\262\211\211\300\301\3028\262\"\266\203\303\301\3028\262\"\266\202\211\2037 \211\304V\2037 \305P\262\211S\262\202% \266\203\306\301\3028\262\"\266\202\211\307\301\3028\262\"\266\203\310\311\211\203!@\262A\262\3121\222 \211:\205\214 \211@;\205\214 \211A@9\205\214 \211A@\205\214 \3028<\205\214 \3138<0\262\202\226 \210\311\262\203X \203\331 \314\211\211\300\301\3028\262\"\266\203\303\301\3028\262\"\266\202\211\203\321 \211\304V\203\321 \305P\262\211S\262\202\277 \266\203\315\"\202\211\211\300\301\3028\262\"\266\203\303\301\3028\262\"\266\202\211\203\211\304V\203\305P\262\211S\262\202\371 \266\203\262\203\316\202\310Q\262\202X \2038\2031\314\315\"\262\314\317\"\262\206=\310\203E\320\202F\310\206L\310\203U\320\202V\310\n\321\322\260\207" [:type plist-get 2 :dereference 0 "[]" :template-specifier :arguments "" nil (error) 3 semantic--format-colorize-text type "," function " " "(" ")"] 19 (#$ . 6614)])#@242 Return a variable (field) prototype for TAG.
Optional argument PARENT is a parent (containing) item.
Optional argument COLOR indicates that color should be mixed in.
See also `semantic-format-tag-prototype'.

(fn TAG &optional PARENT COLOR)
(defalias 'semantic-java-prototype-variable #[769 "\211@\262\211\211\300\301\3028\262\"\266\203\303\301\3028\262\"\266\202\211\2037 \211\304V\2037 \305P\262\211S\262\202% \266\203\203E \306\307\"\202F \211\310\203R \306\311\"\202S Q\207" [:type plist-get 2 :dereference 0 "[]" semantic--format-colorize-text type " " variable] 12 (#$ . 7936)])#@248 Return a type (class/interface) prototype for TAG.
Optional argument PARENT is a parent (containing) item.
Optional argument COLOR indicates that color should be mixed in.
See also `semantic-format-tag-prototype'.

(fn TAG &optional PARENT COLOR)
(defalias 'semantic-java-prototype-type #[769 "\211@\262\211\300\301\3028\262\"\266\203\303\301\3028\262\"\266\202\304\203- \305\306\"\202. \2063 \307R\207" [:type plist-get 2 :template-specifier " " semantic--format-colorize-text type ""] 11 (#$ . 8548)])#@250 Return a prototype for TOKEN.
Optional argument PARENT is a parent (containing) item.
Optional argument COLOR indicates that color should be mixed in.
Override `semantic-format-tag-prototype' in `java-mode' buffers.

(fn TAG &optional PARENT COLOR)
(defalias 'semantic-format-tag-prototype-java-mode #[769 "\300\301\302\211A@\262\"!\303!\203 \211\202 \304#\207" [intern-soft format "semantic-java-prototype-%s" fboundp semantic-format-tag-prototype-default] 8 (#$ . 9075)])
(byte-code "\300\301\302\303#\210\304\305\306\307#\207" [put semantic-format-tag-prototype-java-mode definition-name semantic-format-tag-prototype mode-local-bind ((semantic-format-tag-prototype . semantic-format-tag-prototype-java-mode)) (override-flag t) java-mode] 4)#@124 Return a suitable path for (some) Java imports.
Override `semantic-tag-include-filename' in `java-mode' buffers.

(fn TAG)
(defalias 'semantic-tag-include-filename-java-mode #[257 "\211\211@\262\300\301\302\303\"\304#\305P\207" [mapconcat identity split-string "\\." "/" ".java"] 7 (#$ . 9834)])
(byte-code "\300\301\302\303#\210\304\305\306\307#\207" [put semantic-tag-include-filename-java-mode definition-name semantic-tag-include-filename mode-local-bind ((semantic-tag-include-filename . semantic-tag-include-filename-java-mode)) (override-flag t) java-mode] 4)#@49 Move point backward, skipping Java whitespaces.
(defalias 'semantic-java-skip-spaces-backward #[0 "\300\301x\207" [" \n	" nil] 2 (#$ . 10408)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put semantic-java-skip-spaces-backward speed -1 put byte-optimizer byte-compile-inline-expand] 5)#@48 Move point forward, skipping Java whitespaces.
(defalias 'semantic-java-skip-spaces-forward #[0 "\300\301w\207" [" \n	" nil] 2 (#$ . 10718)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put semantic-java-skip-spaces-forward speed -1 put byte-optimizer byte-compile-inline-expand] 5)#@373 Find documentation from TAG and return it as a clean string.
Java have documentation set in a comment preceding TAG's definition.
Attempt to strip out comment syntactic sugar, unless optional argument
NOSNARF is non-nil.
If NOSNARF is `lex', then return the semantic lex token.
Override `semantic-documentation-for-tag' in `java-mode' buffers.

(fn &optional TAG NOSNARF)
(defalias 'semantic-documentation-for-tag-java-mode #[512 "\204\f \300 \211\262\205\222 r\301!q\210\212\211\3028\262\303!\203( \304!\266\202\202- \211\305H\266\202b\210\306\307w\210\310\311!\204V \306\307x\210\3121H \313u0\210\202I \210\310\314!\203V \315u\210\316\317!\210\310\311!\205\221 `\320\321!\211\205\217 \211\211\211A@\247\204u \211AA\262\202y \211A\262A\262b\210\306\307w\210\300 =\205\217 b\210\320!\266\202*\207" [semantic-current-tag semantic-tag-buffer 4 overlayp overlay-start 0 " \n	" nil looking-at "/\\*\\*" (error) -2 "\\*/" 2 forward-comment -1 semantic-doc-snarf-comment-for-tag lex] 7 (#$ . 11026)])
(byte-code "\300\301\302\303#\210\304\305\306\307#\207" [put semantic-documentation-for-tag-java-mode definition-name semantic-documentation-for-tag mode-local-bind ((semantic-documentation-for-tag . semantic-documentation-for-tag-java-mode)) (override-flag t) java-mode] 4)#@142 Valid javadoc line tags.
Ordered following Sun's Tag Convention at
<https://java.sun.com/products/jdk/javadoc/writingdoccomments/index.html>
(defvar semantic-java-doc-line-tags nil (#$ . 12317))#@33 Javadoc tags which have a name.
(defvar semantic-java-doc-with-name-tags nil (#$ . 12517))#@38 Javadoc tags which have a reference.
(defvar semantic-java-doc-with-ref-tags nil (#$ . 12613))#@94 Optional tags used in class/interface documentation.
Ordered following Sun's Tag Convention.
(defvar semantic-java-doc-extra-type-tags nil (#$ . 12713))#@97 Optional tags used in method/constructor documentation.
Ordered following Sun's Tag Convention.
(defvar semantic-java-doc-extra-function-tags nil (#$ . 12871))#@84 Optional tags used in field documentation.
Ordered following Sun's Tag Convention.
(defvar semantic-java-doc-extra-variable-tags nil (#$ . 13036))#@88 Tags allowed in class/interface documentation.
Ordered following Sun's Tag Convention.
(defvar semantic-java-doc-type-tags nil (#$ . 13188))#@91 Tags allowed in method/constructor documentation.
Ordered following Sun's Tag Convention.
(defvar semantic-java-doc-function-tags nil (#$ . 13334))#@78 Tags allowed in field documentation.
Ordered following Sun's Tag Convention.
(defvar semantic-java-doc-variable-tags nil (#$ . 13487))#@53 Return doc tag from NAME.
That is @NAME.

(fn NAME)
(defalias 'semantic-java-doc-tag '(macro . #[257 "\300\301E\207" [concat "@"] 4 (#$ . 13627)]))#@97 Return name of the doc TAG symbol.
That is TAG `symbol-name' without the leading `@'.

(fn TAG)
(defalias 'semantic-java-doc-tag-name #[257 "\300!\301\302O\207" [symbol-name 1 nil] 4 (#$ . 13781)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put semantic-java-doc-tag-name speed -1 put byte-optimizer byte-compile-inline-expand] 5)#@64 Return non-nil if javadoc keyword K1 is before K2.

(fn K1 K2)
(defalias 'semantic-java-doc-keyword-before-p #[514 "\301P\301P\211\302!\205 \211;\205 \303\"\262\211\262\205! \211J\262\205O \304\305\302!\2059 \211;\2059 \303\"\262\211\203G \211N\266\203\202M \306\307\310\"\266\203\311\"\211\302!\205` \211;\205` \303\"\262\211\262\205j \211J\262\205\230 \304\305\302!\205\202 \211;\205\202 \303\"\262\211\203\220 \211N\266\203\202\226 \306\307\310\"\266\203\311\"\247\203\246 \211\247\203\246 X\207\247\206\262 ?\205\262 \211?\207" [semantic-flex-keywords-obarray "@" obarrayp intern-soft plist-get javadoc signal wrong-type-argument (semantic-lex-keyword-p name) seq] 12 (#$ . 14137)])#@375 Run function FUN for each javadoc keyword.
Return the list of FUN results.  If optional PROPERTY is non-nil only
call FUN for javadoc keywords which have a value for PROPERTY.  FUN
receives two arguments: the javadoc keyword and its associated
`javadoc' property list.  It can return any value.  All nil values are
removed from the result list.

(fn FUN &optional PROPERTY)
(defalias 'semantic-java-doc-keywords-map #[513 "\301\302\303\304\305#\"\"\207" [semantic-java-doc-line-tags delq nil mapcar make-closure #[257 "\303P\211\304\305\n!\205 \211;\205 \306\n\"\262\211\203# \211N\266\203\202) \307\310\311\"\266\203\300\2034 \312\300\"\2058 \301\"\207" [V0 V1 semantic-flex-keywords-obarray "@" javadoc obarrayp intern-soft signal wrong-type-argument (semantic-lex-keyword-p name) plist-get] 8 "\n\n(fn K)"]] 9 (#$ . 14867)])#@42 Lazy initialization of javadoc elements.
(defalias 'semantic-java-doc-setup #[0 "\204 \306\307\310\311\312!\"\313\"	\204 \314\315\316\"\n\204  \314\317\320\"\204) \314\321\322\"\f\2042 \314\323\322\"\204; \314\324\322\"\204E \314\325!\204O \314\326!\206Z \314\327!\211\207" [semantic-java-doc-line-tags semantic-java-doc-with-name-tags semantic-java-doc-with-ref-tags semantic-java-doc-extra-type-tags semantic-java-doc-extra-function-tags semantic-java-doc-extra-variable-tags sort mapcar semantic-java-doc-tag-name semantic-lex-keywords javadoc semantic-java-doc-keyword-before-p semantic-java-doc-keywords-map #[514 "\207" #1=[] 3 "\n\n(fn K P)"] with-name #[514 "\207" #1# 3 "\n\n(fn K P)"] with-ref #[514 "\300\301\302\">\205\n \207" [type plist-get usage] 6 "\n\n(fn K P)"] opt #[514 "\300\301\302\">\205\n \207" [function plist-get usage] 6 "\n\n(fn K P)"] #[514 "\300\301\302\">\205\n \207" [variable plist-get usage] 6 "\n\n(fn K P)"] #[514 "\300\301\302\">\205\n \207" [type plist-get usage] 6 "\n\n(fn K P)"] #[514 "\300\301\302\">\205\n \207" [function plist-get usage] 6 "\n\n(fn K P)"] #[514 "\300\301\302\">\205\n \207" [variable plist-get usage] 6 "\n\n(fn K P)"] semantic-java-doc-type-tags semantic-java-doc-function-tags semantic-java-doc-variable-tags] 5 (#$ . 15714)])
(provide 'semantic/java)
