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



(byte-code "\300\301!\210\300\302!\210\300\303!\207" [require semantic eieio cl-generic] 2)#@152 For any buffer, the file name (no path) of the parser.
This would be a parser for a specific language, not the source
to one of the parser generators.
(defvar semantic-debug-parser-source nil (#$ . 176))
(make-variable-buffer-local 'semantic-debug-parser-source)#@54 Class to create when building a debug parser object.
(defvar semantic-debug-parser-class nil (#$ . 444))
(make-variable-buffer-local 'semantic-debug-parser-class)#@37 Location of the debug parser class.
(defvar semantic-debug-parser-debugger-source nil (#$ . 612))
(make-variable-buffer-local 'semantic-debug-parser-debugger-source)#@34 Non-nil when debugging a parser.
(defvar semantic-debug-enabled nil (#$ . 783))#@58 The debugger interface currently active for this buffer.
(defvar semantic-debug-current-interface nil (#$ . 868))#@44 The parser current active for this buffer.
(defvar semantic-debug-current-parser nil (#$ . 987))
(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 semantic-debug-interface-p eieio-make-class-predicate semantic-debug-interface semantic-debug-interface--eieio-childp eieio-make-child-predicate semantic-debug-interface-child-p make-obsolete "use (cl-typep ... 'semantic-debug-interface) instead" "25.1" define-symbol-prop cl-deftype-satisfies eieio-defclass-internal nil ((parser-buffer :initarg :parser-buffer :type buffer :documentation "The buffer containing the parser we are debugging.") (parser-local-map :initarg :parser-local-map :type keymap :documentation "The local keymap originally in the PARSER buffer.") (parser-location :type marker :documentation "A marker representing where we are in the parser buffer.") (source-buffer :initarg :source-buffer :type buffer :documentation "The buffer containing the source we are parsing.\nThe :parser-buffer defines a parser that can parse the text in the\n:source-buffer.") (source-local-map :initarg :source-local-map :type keymap :documentation "The local keymap originally in the SOURCE buffer.") (source-location :type marker :documentation "A marker representing where we are in the parser buffer.") (data-buffer :initarg :data-buffer :type buffer :documentation "Buffer being used to display some useful data.\nThese buffers are brought into view when layout occurs.") (current-frame :type semantic-debug-frame :documentation "The currently displayed frame.") (overlays :type list :initarg nil :initform nil :documentation "Any active overlays being used to show the debug position.")) (:documentation "Controls action when in `semantic-debug-mode'.")] 6)#@81 Create a new object of class type `semantic-debug-interface'.

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

(fn WHOLE &rest SLOTS)
(defalias 'semantic-debug-interface--anon-cmacro #[385 "\211@;\204 \207\300\301\302@@#@\303@DABB\304\211@%\207" [macroexp-warn-and-return format "Obsolete name arg %S to constructor %S" identity nil] 8 (#$ . 3153)])
(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%\207" [cl-generic-define-method semantic-debug-set-frame nil ((iface semantic-debug-interface) frame) #[514 "\211\203\n \300\301#\207\302\301\"\207" [eieio-oset current-frame slot-makeunbound] 6 "Set the current frame on IFACE to FRAME.\n\n(fn IFACE FRAME)"] semantic-debug-set-parser-location ((iface semantic-debug-interface) point) #[514 "r\300\301\"q\210\302\303\"\204 \304\303\305 #\210\300\303\"\306\223)\207" [eieio-oref parser-buffer slot-boundp parser-location eieio-oset make-marker nil] 6 "Set the parser location in IFACE to POINT.\n\n(fn IFACE POINT)"] semantic-debug-set-source-location ((iface semantic-debug-interface) point) #[514 "r\300\301\"q\210\302\303\"\204 \304\303\305 #\210\300\303\"\306\223)\207" [eieio-oref source-buffer slot-boundp source-location eieio-oset make-marker nil] 6 "Set the source location in IFACE to POINT.\n\n(fn IFACE POINT)"] semantic-debug-interface-layout ((iface semantic-debug-interface)) #[257 "\300 \210\301\302\"\2035 \303\304 !\305\245r\306\302\"q\210\307ed\")\211W\203% \262\310!\210\311\306\302\"!\266\312\313!\210\311\306\314\"!\210\301\315\"\203I \306\315\"b\210\310 \210\312\313!\210\311\306\316\"!\210\301\317\"\205c \306\317\"b\207" [delete-other-windows slot-boundp data-buffer frame-height selected-frame 3 eieio-oref count-lines split-window-vertically switch-to-buffer other-window 1 parser-buffer parser-location source-buffer source-location] 7 "Layout windows in the current frame to facilitate debugging.\n\n(fn IFACE)"] semantic-debug-highlight-lexical-token ((iface semantic-debug-interface) token) #[514 "\300\301\"q\210\302\303\304!#\210\305\211\211A@\247\204! \211AA\262\202% \211A\262@\262\"\207" [eieio-oref source-buffer object-add-to-list overlays semantic-lex-highlight-token semantic-debug-set-source-location] 7 "For IFACE, highlight TOKEN in the source buffer .\nTOKEN is a lexical token.\n\n(fn IFACE TOKEN)"] semantic-debug-highlight-rule ((iface semantic-debug-interface) nonterm &optional rule match) #[1026 "\300\301\"q\210\302p!\303\203' @\211A@\262\304=\203  @B\262A\262\202\n \211\237\266\202\305\"\303\205\277 \211\3068\262\307!\203I \310!\266\202\202N \211\311H\266\202b\210\312`\313\314!\210`\"\262\315\316\317#\210\320\321#\210\322\310!\"\210\205\277 \205\277 \323\324!\210\311U\204\214 \323\325!\210S\262\202{ \311U\204\241 \313\314!\210\326\303w\210S\262\202\214 \312`\313\314!\210`\"\262\315\316\317#\210\320\321#\210\322\310!\"\207" [eieio-oref parser-buffer semantic-something-to-tag-table nil nonterminal semantic-find-first-tag-by-name 4 overlayp overlay-start 0 make-overlay forward-sexp 1 overlay-put face highlight object-add-to-list overlays semantic-debug-set-parser-location re-search-forward ":\\s-*" "^\\s-*|\\s-*" " 	"] 11 "For IFACE, highlight NONTERM in the parser buffer.\nNONTERM is the name of the rule currently being processed that shows up\nas a nonterminal (or tag) in the source buffer.\nIf RULE and MATCH indices are specified, highlight those also.\n\n(fn IFACE NONTERM &optional RULE MATCH)"] semantic-debug-unhighlight ((iface semantic-debug-interface)) #[257 "\300\301\302\303\"\"\210\304\303\305#\207" [mapc delete-overlay eieio-oref overlays eieio-oset nil] 6 "Remove all debugging overlays.\n\n(fn IFACE)"]] 6)#@37 The command the user is requesting.
(defvar semantic-debug-user-command nil (#$ . 6938))#@370 Stop parsing now at FRAME.
FRAME is an object that represents the parser's view of the
current state of the world.
This function enters a recursive edit.  It returns
on an `exit-recursive-edit', or if someone uses one
of the `semantic-debug-mode' commands.
It returns the command specified.  Parsers need to take action
on different types of return values.

(fn FRAME)
(defalias 'semantic-debug-break #[257 "\302 \303\304\"\216\305\306!\210\307\216\310!\210\311!\210\3121  \313 0\210\202! \210)	\314)\207" [semantic-debug-current-interface semantic-debug-user-command current-window-configuration make-closure #[0 "\301\300!\207" [V0 set-window-configuration] 2] semantic-debug-mode t #[0 "\301!\210\302\303!\207" [semantic-debug-current-interface semantic-debug-unhighlight semantic-debug-mode nil] 2] semantic-debug-frame-highlight semantic-debug-interface-layout (error) recursive-edit nil] 5 (#$ . 7033)])
(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\211\316$\207" [defalias semantic-debug-frame-p eieio-make-class-predicate semantic-debug-frame semantic-debug-frame--eieio-childp eieio-make-child-predicate semantic-debug-frame-child-p make-obsolete "use (cl-typep ... 'semantic-debug-frame) instead" "25.1" define-symbol-prop cl-deftype-satisfies eieio-defclass-internal nil (:documentation "One frame representation.")] 6)#@77 Create a new object of class type `semantic-debug-frame'.

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

(fn WHOLE &rest SLOTS)
(defalias 'semantic-debug-frame--anon-cmacro #[385 "\211@;\204 \207\300\301\302@@#@\303@DABB\304\211@%\207" [macroexp-warn-and-return format "Obsolete name arg %S to constructor %S" identity nil] 8 (#$ . 8781)])
(byte-code "\300\301\302\303\302\304%\210\300\305\302\306\302\307%\207" [cl-generic-define-method semantic-debug-frame-highlight nil ((_frame semantic-debug-frame)) #[257 "\300\207" ["Highlight one parser frame."] 2 "\n\n(fn FRAME)"] semantic-debug-frame-info ((_frame semantic-debug-frame)) #[257 "\300\207" ["Display info about this one parser frame."] 2 "\n\n(fn FRAME)"]] 6)#@42 Keymap used when in semantic-debug-node.
(defvar semantic-debug-mode-map (byte-code "\300 \301\302\303#\210\301\304\303#\210\301\305\306#\210\301\307\310#\210\301\311\312#\210\301\313\314#\210\301\315\316#\210\301\305\317#\210\301\320\321#\210\301\322\323#\210\301\324\325#\210\301\326\327#\210\301\330\331#\210\301\332\333#\210\207" [make-sparse-keymap define-key "n" semantic-debug-next " " "s" semantic-debug-step "u" semantic-debug-up "d" semantic-debug-down "f" semantic-debug-fail-match "h" semantic-debug-print-state semantic-debug-jump-to-source "p" semantic-debug-jump-to-parser "q" semantic-debug-quit "a" semantic-debug-abort "g" semantic-debug-go "b" semantic-debug-set-breakpoint "e" eval-expression] 5) (#$ . 9410))#@138 Turn `semantic-debug-mode' on and off.
Argument ONOFF is non-nil when we are entering debug mode.
\{semantic-debug-mode-map}

(fn ONOFF)
(defalias 'semantic-debug-mode #[257 "\203# r\303\304\"q\210\305	!\210\306\303\307\"q\210\305	!\210\306\310\311!)\207r\303\304\"q\210\305\303\312\"!\210\313)r\303\307\"q\210\305\303\314\"!\210\313)\310\315!\207" [semantic-debug-current-interface semantic-debug-mode-map buffer-read-only eieio-oref parser-buffer use-local-map t source-buffer run-hooks semantic-debug-mode-hook parser-local-map nil source-local-map semantic-debug-exit-hook] 6 (#$ . 10160)])#@49 Parse the current buffer and run in debug mode.
(defalias 'semantic-debug #[0 "\203 \305\306!\210	\204 \305\307!\210\310 \210\n\203 \311\n!\210\312\313 \314\315\316rq\210\317 )\320p\321\317 &\262	\322!\323 +\207" [semantic-debug-current-interface semantic-debug-parser-class semantic-debug-parser-debugger-source semantic-debug-current-parser semantic-debug-enabled error "You are already in a debug session" "This major mode does not support parser debugging" semantic-clear-toplevel-cache require t semantic-debug-find-parser-source semantic-debug-interface :parser-buffer :parser-local-map current-local-map :source-buffer :source-local-map "parser" semantic-fetch-tags] 11 (#$ . 10772) nil])#@145 Return a buffer containing the parser source file for the current buffer.
The parser needs to be on the load path, or this routine returns nil.
(defalias 'semantic-debug-find-parser-source #[0 "\204 \301\302!\210\303\304\"\211\203 \305!\207\301\306!\207" [semantic-debug-parser-source error "No parser is associated with this buffer" locate-library t find-file-noselect "Cannot find parser source.  It should be on the load-path"] 3 (#$ . 11485)])#@151 Perform one parser operation.
In the recursive parser, this steps past one match rule.
In other parsers, this may be just like `semantic-debug-step'.
(defalias 'semantic-debug-next #[0 "\301!\210\302 \207" [semantic-debug-current-parser semantic-debug-parser-next exit-recursive-edit] 3 (#$ . 11944) nil])#@31 Perform one parser operation.
(defalias 'semantic-debug-step #[0 "\301!\210\302 \207" [semantic-debug-current-parser semantic-debug-parser-step exit-recursive-edit] 3 (#$ . 12257) nil])#@48 Move highlighting representation up one level.
(defalias 'semantic-debug-up #[0 "\300\301!\207" [message "Not implemented yet."] 2 (#$ . 12450) nil])#@50 Move highlighting representation down one level.
(defalias 'semantic-debug-down #[0 "\300\301!\207" [message "Not implemented yet."] 2 (#$ . 12605) nil])#@38 Artificially fail the current match.
(defalias 'semantic-debug-fail-match #[0 "\301!\210\302 \207" [semantic-debug-current-parser semantic-debug-parser-fail exit-recursive-edit] 3 (#$ . 12764) nil])#@32 Show interesting parser state.
(defalias 'semantic-debug-print-state #[0 "\301!\207" [semantic-debug-current-parser semantic-debug-parser-print-state] 3 (#$ . 12970) nil])#@75 Move cursor to the source code being parsed at the current lexical token.
(defalias 'semantic-debug-jump-to-source #[0 "\301\302\"\303!\203 \304\305\303!!!\210\306\303!!\207\307!\207" [semantic-debug-current-interface eieio-oref source-buffer get-buffer-window select-frame window-frame select-window switch-to-buffer] 6 (#$ . 13149) nil])#@43 Move cursor to the parser being debugged.
(defalias 'semantic-debug-jump-to-parser #[0 "\301\302\"\303!\203 \304\305\303!!!\210\306\303!!\207\307!\207" [semantic-debug-current-interface eieio-oref parser-buffer get-buffer-window select-frame window-frame select-window switch-to-buffer] 6 (#$ . 13501) nil])#@112 Exit debug mode, blowing all stack, and leaving the parse incomplete.
Do not update any tokens already parsed.
(defalias 'semantic-debug-quit #[0 "\301!\210\302 \207" [semantic-debug-current-parser semantic-debug-parser-quit exit-recursive-edit] 3 (#$ . 13822) nil])#@51 Abort one level of debug mode, blowing all stack.
(defalias 'semantic-debug-abort #[0 "\301!\210\302 \207" [semantic-debug-current-parser semantic-debug-parser-abort exit-recursive-edit] 3 (#$ . 14096) nil])#@45 Continue parsing till finish or breakpoint.
(defalias 'semantic-debug-go #[0 "\301!\210\302 \207" [semantic-debug-current-parser semantic-debug-parser-go exit-recursive-edit] 3 (#$ . 14311) nil])#@48 Set a breakpoint at the current rule location.
(defalias 'semantic-debug-set-breakpoint #[0 "\301 \211\203\f \302\"\207\303\304!\207" [semantic-debug-current-parser semantic-current-tag semantic-debug-parser-break error "Not on a rule"] 5 (#$ . 14514) nil])
(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\211\316$\207" [defalias semantic-debug-parser-p eieio-make-class-predicate semantic-debug-parser semantic-debug-parser--eieio-childp eieio-make-child-predicate semantic-debug-parser-child-p make-obsolete "use (cl-typep ... 'semantic-debug-parser) instead" "25.1" define-symbol-prop cl-deftype-satisfies eieio-defclass-internal nil (:documentation "Represents a parser and its state.\nWhen implementing the debug parser you can add extra functionality\nby overriding one of the command methods.  Be sure to use\n`call-next-method' so that the debug command is saved, and passed\ndown to your parser later." :abstract t)] 6)#@79 You cannot create a new object of type `semantic-debug-parser'.

(fn &rest _)
(defalias 'semantic-debug-parser #[128 "\300\301!\207" [error "Class semantic-debug-parser is abstract"] 3 (#$ . 15530)])
(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\300\327\302\330\302\331%\210\300\332\302\333\302\334%\210\335\336!\207" [cl-generic-define-method semantic-debug-parser-next nil ((_parser semantic-debug-parser)) #[257 "\301\211\207" [semantic-debug-user-command next] 3 "Execute next for this PARSER.\n\n(fn PARSER)"] semantic-debug-parser-step ((_parser semantic-debug-parser)) #[257 "\301\211\207" [semantic-debug-user-command step] 3 "Execute a step for this PARSER.\n\n(fn PARSER)"] semantic-debug-parser-go ((_parser semantic-debug-parser)) #[257 "\301\211\207" [semantic-debug-user-command go] 3 "Continue execution in this PARSER until the next breakpoint.\n\n(fn PARSER)"] semantic-debug-parser-fail ((_parser semantic-debug-parser)) #[257 "\301\211\207" [semantic-debug-user-command fail] 3 "Continue execution in this PARSER until the next breakpoint.\n\n(fn PARSER)"] semantic-debug-parser-quit ((_parser semantic-debug-parser)) #[257 "\301\211\207" [semantic-debug-user-command quit] 3 "Continue execution in this PARSER until the next breakpoint.\n\n(fn PARSER)"] semantic-debug-parser-abort ((_parser semantic-debug-parser)) #[257 "\301\211\207" [semantic-debug-user-command abort] 3 "Continue execution in this PARSER until the next breakpoint.\n\n(fn PARSER)"] semantic-debug-parser-print-state ((_parser semantic-debug-parser)) #[257 "\301\302\"\205 \303\301\302\"!\207" [semantic-debug-current-interface slot-value current-frame semantic-debug-frame-info] 6 "Print state for this PARSER at the current breakpoint.\n\n(fn PARSER)"] semantic-debug-parser-break ((_parser semantic-debug-parser)) #[257 "\300\207" ["Set a breakpoint for this PARSER."] 2 "\n\n(fn PARSER)"] semantic-debug-parser-frames ((_parser semantic-debug-parser)) #[257 "\300\301!\207" [error "Parser has not implemented frame values"] 3 "Return a list of frames for the current parser.\nA frame is of the form:\n  ( .. .what ? .. )\n\n(fn PARSER)"] provide semantic/debug] 6)
