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



(byte-code "\300\301!\210\300\302!\210\300\303!\210\300\304!\210\300\305\306\307#\204 \310\311!\210\300\312!\210\300\313!\210\300\314!\207" [require semantic semantic/wisent semantic/ctxt semantic/format semantic/grammar-wy nil t load "semantic/grm-wy-boot" semantic/idle help-fns semantic/analyze] 4)#@44 Regexp matching C-like character literals.
(defconst semantic-grammar-lex-c-char-re "'\\s\\?.'" (#$ . 386))#@37 Detect and create a prologue token.
(defconst semantic-grammar-lex-prologue '((looking-at "\\<%{") (semantic-lex-push-token (semantic-lex-token 'PROLOGUE (point) (save-excursion (semantic-lex-unterminated-syntax-protection 'PROLOGUE (forward-char) (forward-sexp 1) (point)))))) (#$ . 499))#@37 Detect and create a prologue token.
(defalias 'semantic-grammar-lex-prologue #[0 "\306``dB\307\310\311!\203k \312`\212\203* \203* \306u\210\313\314!\210`\202K \3151: \306u\210\313\314!\210`0\202K \210\312@A#b\210`\211\262)BBB\211@\211\211A@\247\204c \211AA\262\202g \211A\262A\262-\207" [semantic-lex-depth semantic-lex-maximum-depth semantic-lex-current-depth semantic-lex-analysis-bounds semantic-lex-end-point semantic-lex-token-stream nil 0 looking-at "\\<%{" PROLOGUE forward-sexp 1 (error) debug-on-error semantic-lex-debug-analyzers semantic-lex-unterminated-syntax-end-function] 8 (#$ . 794)])#@52 Return the start position of the grammar epilogue.
(defalias 'semantic-grammar-epilogue-start #[0 "\212eb\210\300\301\302\303\304$\203 \305\224\202 dT)\207" [re-search-forward "^\\s-*\\<%%\\>\\s-*$" nil t 2 0] 5 (#$ . 1425)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put semantic-grammar-epilogue-start speed -1 put byte-optimizer byte-compile-inline-expand] 5)#@57 Detect and create an epilogue or percent-percent token.
(defconst semantic-grammar-lex-epilogue '((looking-at "\\<%%\\>") (let ((start (match-beginning 0)) (end (match-end 0)) (class 'PERCENT_PERCENT)) (when (>= start (semantic-grammar-epilogue-start)) (setq class 'EPILOGUE end (point-max))) (semantic-lex-push-token (semantic-lex-token class start end)))) (#$ . 1815))#@57 Detect and create an epilogue or percent-percent token.
(defalias 'semantic-grammar-lex-epilogue #[0 "\306``dB\307\310\311!\203[ \307\224\307\225\312\212eb\210\313\314\306\315\316$\203* \307\224\202, dT)Y\2037 \317\262d\262\211BBB\211@\211\211A@\247\204Q \211AA\262\202U \211A\262A\262\266-\207" [semantic-lex-depth semantic-lex-maximum-depth semantic-lex-current-depth semantic-lex-analysis-bounds semantic-lex-end-point semantic-lex-token-stream nil 0 looking-at "\\<%%\\>" PERCENT_PERCENT re-search-forward "^\\s-*\\<%%\\>\\s-*$" t 2 EPILOGUE] 10 (#$ . 2191)])#@184 Lexical analyzer that handles Semantic grammar buffers.
It ignores whitespaces, newlines and comments.
See `semantic-lex' for more information.

(fn START END &optional DEPTH LENGTH)
(defalias 'semantic-grammar-lexer #[1026 "\306\307\310#\210`\306\211\211\311\206 @BA\306BdV\203. \312\313d#\210\314 p\315\316#\216\317C!\210b\210`W\203\203R 	GX\203\320\321!\203^ \311\225\202\234\320\322!\203j \311\225\202\234\320\323!\203\316 \324`\212D\203\210 E\203\210 \306u\210\325\326!\210`\202\253 \3271\230 \306u\210\325\326!\210`0\202\253 \210\324FA@AA#b\210`\211\262)BB	B\211@\211\211A@\247\204\303 \211AA\262\202\307 \211A\262A\262\202\234\320\330!\203 \311\224\311\225\331\212eb\210\332\333\306\334\335$\203\354 \311\224\202\356 dT)Y\203\371 \336\262d\262\211BB	B\211@\211\211A@\247\204\211AA\262\202\211A\262A\262\266\202\234\320\337!\203u\340\311!\211\341G!\205;\211;\205;\342G\"\262\211\262\205E\211J\262\211\205p\211\311\224\311\225BB	B\211@\211\211A@\247\204g\211AA\262\202k\211A\262A\262\211\262\204\234\320\343!\203\321\340\311!\311\224\311\225\344\306\203\245\211\204\245\345@A\"\203\236@@\262\202\204A\262\202\204\211\206\252\346BB	B\211@\211\211A@\247\204\303\211AA\262\202\307\211A\262A\262\211\266\205\204\234\320H!\203\377\347\311\224\311\225BB	B\211@\211\211A@\247\204\364\211AA\262\202\370\211A\262A\262\202\234\320\350!\203]\351`\212D\203E\203\325\326!\210`\202:\3521'\325\326!\210`0\202:\210\351FA@AA#b\210`\211\262)BB	B\211@\211\211A@\247\204R\211AA\262\202V\211A\262A\262\202\234\320I!\203\217`\353\326!\210`=\203x\354\355\356 \"\210\202n\203\357u\210`=\203\211\312\360!\210`\210\202\234\320\361!\203\355\362`\212D\203\252E\203\252\325\326!\210`\202\312\3631\267\325\326!\210`0\202\312\210\362FA@AA#b\210`\211\262)BB	B\211@\211\211A@\247\204\342\211AA\262\202\346\211A\262A\262\202\234\320\364!\203V\340\311!\311\224\311\225\211Z\365\306\311V\203\366\"\211\262\204S\262\311O\262\202\377\211\203*\211@\262\\\262\211\206/\367BB	B\211@\211\211A@\247\204H\211AA\262\202L\211A\262A\262\211\266\206\204\234\320\370!\203A\340\311!\371\306\372@\"\211\262\203@\203x\f@W\203\247\fT\211A@\311\224\311\225BB	B\211@\211\211A@\247\204\231\211AA\262\202\235\211A\262A\262\211\266\203\202>\3358\311\224\212D\203\277E\203\277\373\326!\210`\202\341\3741\314\373\326!\210`0\202\341\210\3358FA@AA#b\210`\211\262)BB	B\211@\211\211A@\247\204\371\211AA\262\202\375\211A\262A\262\211\266\203\202>\372A\"\211\262\205<\fS\211A@\311\224\311\225BB	B\211@\211\211A@\247\2043\211AA\262\2027\211A\262A\262\211\266\203\204\234\320\375!\203\234\376`\212D\203\\E\203\\\325\326!\210`\202|\3771i\325\326!\210`0\202|\210\376FA@AA#b\210`\211\262)BB	B\211@\211\211A@\247\204\224\211AA\262\202\230\211A\262A\262=\203\253\312\201M 	@#\210\262b\210J\203\335\201N  \204\323r\201O K!q\210\212Kb\210\201P  *\203\335\201Q J\201R \"\210	@L\205	\306C\315\201S \"\216\203\371\211\201T !\240\210\201U \201V \201W \f#!)\262\266\202@ )\266\n\203I\n\211A\242\211\211\2036\201X \201Y @A@#\210\n\211A\242\262\202@FA@AA#b\210`\211\266b\210	\237.\207" [semantic-lex-block-streams semantic-lex-token-stream semantic-lex-block-stack semantic-lex-end-point semantic-lex-current-depth semantic-lex-depth nil run-hook-with-args semantic-lex-reset-functions 0 error "semantic-grammar-lexer: end (%d) > point-max (%d)" syntax-table make-closure #[0 "r\300q\210\302\301!)\207" [V0 V1 set-syntax-table] 2] set-syntax-table looking-at "\\s-*\\(\n\\|\\s>\\)" "\\s-+" "\\<%{" PROLOGUE forward-sexp 1 (error) "\\<%%\\>" PERCENT_PERCENT re-search-forward "^\\s-*\\<%%\\>\\s-*$" t 2 EPILOGUE "\\(\\sw\\|\\s_\\)+" match-string obarrayp intern-soft ":?\\(\\sw\\|\\s_\\)+" ((PERCENT_PERCENT . "\\`%%\\'")) string-match SYMBOL CHARACTER "\\s\"" STRING (error) forward-comment skip-syntax-forward "-.'" line-end-position -1 "Strange comment syntax prevents lexical analysis" "\\s'\\s-*(" PREFIXED_LIST (error) "\\(\\s.\\|\\s$\\|\\s'\\)+" ((GT . ">") (LT . "<") (OR . "|") (SEMI . ";") (COLON . ":")) rassoc punctuation "\\s(\\|\\s)" ((("(" LPAREN PAREN_BLOCK) ("{" LBRACE BRACE_BLOCK)) (")" RPAREN) ("}" RBRACE)) assoc forward-list (error) "\\=" SEXP (error) semantic-lex-maximum-depth semantic-lex-analysis-bounds parse-sexp-lookup-properties semantic-lex-syntax-table debug-on-error semantic-lex-debug-analyzers semantic-lex-unterminated-syntax-end-function semantic-flex-keywords-obarray semantic-grammar-lex-c-char-re semantic-lex-comment-regex semantic-current-input-throw-symbol semantic--on-input-start-marker semantic-lex-debug "semantic-grammar-lexer: endless loop at %d, after %S" input-pending-p marker-buffer accept-process-output throw lex #[0 "\300\242\205	 \301\300\242!\207" [V0 delete-overlay] 2] semantic-lex-highlight-token read-event format "%S :: Depth: %d :: SPC - continue" message "semantic-grammar-lexer: `%s' block from %S is unterminated"] 19 (#$ . 2780)])#@47 Run `semantic-grammar-lex' on current buffer.
(defalias 'semantic-grammar-lex-buffer #[0 "\301 \210\302\303ed\"r\304\305!q\210\306 \210\307p\"\210eb\210\310p!)\207" [semantic-lex-analyzer semantic-lex-init semantic-grammar-lexer semantic-lex get-buffer-create "*semantic-grammar-lex*" erase-buffer pp pop-to-buffer] 4 (#$ . 7937) nil])#@98 Return expansion of built-in ASSOC expression.
ARGS are ASSOC's key value list.

(fn &rest ARGS)
(defalias 'semantic-grammar-ASSOC #[128 "\300C\301\302\303\304\"\"B\207" [t semantic-tag-make-plist mapcar make-closure #[257 "\300\242\203 \301D\202\f \211\300\211\242?\240\210\207" [V0 quote] 4 "\n\n(fn I)"]] 7 (#$ . 8280)])#@67 Return non-nil if SYM is bound to the `quote' function.

(fn SYM)
(defalias 'semantic-grammar-quote-p #[257 "\3001 \301!\301\302!=0\207\210\303\207" [(error) indirect-function quote nil] 4 (#$ . 8613)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put semantic-grammar-quote-p speed -1 put byte-optimizer byte-compile-inline-expand] 5)#@71 Return non-nil if SYM is bound to the `backquote' function.

(fn SYM)
(defalias 'semantic-grammar-backquote-p #[257 "\3001 \301!\301\302!=0\207\210\303\207" [(error) indirect-function backquote nil] 4 (#$ . 8973)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put semantic-grammar-backquote-p speed -1 put byte-optimizer byte-compile-inline-expand] 5)#@114 Return the children of tag TAG.
Override `semantic-tag-components' in `semantic-grammar-mode'
buffers.

(fn TAG)
(defalias 'semantic-tag-components-semantic-grammar-mode #[257 "\211\300\301\3028\262\"\207" [:children plist-get 2] 7 (#$ . 9350)])
(byte-code "\300\301\302\303#\210\304\305\306\307#\207" [put semantic-tag-components-semantic-grammar-mode definition-name semantic-tag-components mode-local-bind ((semantic-tag-components . semantic-tag-components-semantic-grammar-mode)) (override-flag t) semantic-grammar-mode] 4)#@109 Return the name of the first tag of class CLASS found.
Warn if other tags of class CLASS exist.

(fn CLASS)
(defalias 'semantic-grammar-first-tag-name #[257 "\300p!\301\203! @\211A@\262=\203 @B\262A\262\202 \211\237\266\202\211\2059 \211@\211@\262A\2039 \302\303\"\210\207" [semantic-something-to-tag-table nil message "*** Ignore all but first declared %s"] 6 (#$ . 9889)])#@135 Return the list of symbols defined in tags of class CLASS.
That is tag names plus names defined in tag attribute `:rest'.

(fn CLASS)
(defalias 'semantic-grammar-tag-symbols #[257 "\300p!\301\203! @\211A@\262=\203 @B\262A\262\202 \211\237\266\202\302\303\304\305\"\"\207" [semantic-something-to-tag-table nil apply append mapcar #[257 "\300\301\211@\262\302\303\3048\262\"\266\202B\"\207" [mapcar intern :rest plist-get 2] 10 "\n\n(fn TAG)"]] 7 (#$ . 10284)])#@53 Return the readable string form of ITEM.

(fn ITEM)
(defalias 'semantic-grammar-item-text #[257 "\301\"\203 \302\303\304OP\207\207" [semantic-grammar-lex-c-char-re string-match "?" 1 -1] 5 (#$ . 10768)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put semantic-grammar-item-text speed -1 put byte-optimizer byte-compile-inline-expand] 5)#@61 Return symbol or character value of ITEM string.

(fn ITEM)
(defalias 'semantic-grammar-item-value #[257 "\301\"\203 \302\303\304\305OP!\207\306!\207" [semantic-grammar-lex-c-char-re string-match read "?" 1 -1 intern] 6 (#$ . 11133)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put semantic-grammar-item-value speed -1 put byte-optimizer byte-compile-inline-expand] 5)#@49 Return grammar prologue code as a string value.
(defalias 'semantic-grammar-prologue #[0 "\300\301\302p!\303\203# @\211A@\262\304=\203 @B\262A\262\202 \211\237\266\202\"\211\203t \212\211\211\3058\262\306!\203B \307!\266\202\202G \211\310H\266\202b\210\311\303w\210`\211\3058\262\306!\203c \312!\266\202\202h \211\313H\266\202b\210\314\303x\210`{\315P)\207\316\207" [semantic-find-first-tag-by-name "prologue" semantic-something-to-tag-table nil code 4 overlayp overlay-start 0 "%{\n	 " overlay-end 1 "\n	 %}" "\n" ""] 6 (#$ . 11531)])#@49 Return grammar epilogue code as a string value.
(defalias 'semantic-grammar-epilogue #[0 "\300\301\302p!\303\203# @\211A@\262\304=\203 @B\262A\262\202 \211\237\266\202\"\211\203 \212\211\211\3058\262\306!\203B \307!\266\202\202G \211\310H\266\202b\210\311\303w\210`\211\3058\262\306!\203c \312!\266\202\202h \211\313H\266\202b\210\314\303x\210\315\316\317 \320#\210\314\303x\210`{\321P)\207\322\207" [semantic-find-first-tag-by-name "epilogue" semantic-something-to-tag-table nil code 4 overlayp overlay-start 0 "%\n	 " overlay-end 1 "\n	" re-search-backward "^;;;\\s-+\\S-+\\s-+ends here" line-beginning-position t "\n" ""] 6 (#$ . 12093)])#@140 Return name of file sans directory BUFFER is visiting.
No argument or nil as argument means use the current buffer.

(fn &optional BUFFER)
(defalias 'semantic-grammar-buffer-file #[256 "\300\301!!\207" [file-name-nondirectory buffer-file-name] 4 (#$ . 12763)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put semantic-grammar-buffer-file speed -1 put byte-optimizer byte-compile-inline-expand] 5)#@263 Return the %package value as a string.
If there is no %package statement in the grammar, return a default
package name derived from the grammar file name.  For example, the
default package name for the grammar file foo.wy is foo-wy, and for
foo.by it is foo-by.
(defalias 'semantic-grammar-package #[0 "\300\301!\206! \302\303\304!!\262\305!\306\307\310\"\"\311O\312Q\266\203\207" [semantic-grammar-first-tag-name package nil file-name-nondirectory buffer-file-name file-name-extension string-match format "\\([.]\\)%s\\'" 0 "-"] 6 (#$ . 13185)])#@70 Return the number of expected shift/reduce conflicts in the package.
(defalias 'semantic-grammar-expected-conflicts #[0 "\300\301!\207" [semantic-grammar-tag-symbols expectedconflicts] 2 (#$ . 13745)])#@61 Return the %languagemode value as a list of symbols or nil.
(defalias 'semantic-grammar-languagemode #[0 "\300\301!\207" [semantic-grammar-tag-symbols languagemode] 2 (#$ . 13952)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put semantic-grammar-languagemode speed -1 put byte-optimizer byte-compile-inline-expand] 5)#@54 Return the %start value as a list of symbols or nil.
(defalias 'semantic-grammar-start #[0 "\300\301!\207" [semantic-grammar-tag-symbols start] 2 (#$ . 14294)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put semantic-grammar-start speed -1 put byte-optimizer byte-compile-inline-expand] 5)#@50 Return the %scopestart value as a symbol or nil.
(defalias 'semantic-grammar-scopestart #[0 "\300\301\302!\206 \303!\207" [intern semantic-grammar-first-tag-name scopestart "nil"] 3 (#$ . 14608)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put semantic-grammar-scopestart speed -1 put byte-optimizer byte-compile-inline-expand] 5)#@49 Return the %quotemode value as a symbol or nil.
(defalias 'semantic-grammar-quotemode #[0 "\300\301\302!\206 \303!\207" [intern semantic-grammar-first-tag-name quotemode "nil"] 3 (#$ . 14964)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put semantic-grammar-quotemode speed -1 put byte-optimizer byte-compile-inline-expand] 5)#@172 Return the language keywords.
That is an alist of (VALUE . TOKEN) where VALUE is the string value of
the keyword and TOKEN is the terminal symbol identifying the keyword.
(defalias 'semantic-grammar-keywords #[0 "\300\301\302p!\303\203# @\211A@\262\304=\203 @B\262A\262\202 \211\237\266\202\"\207" [mapcar #[257 "\211\300\301\3028\262\"\266\202\303\211@\262!B\207" [:value plist-get 2 intern] 7 "\n\n(fn KEY)"] semantic-something-to-tag-table nil keyword] 6 (#$ . 15317)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put semantic-grammar-keywords speed -1 put byte-optimizer byte-compile-inline-expand] 5)#@56 Return the list of KEYWORDS properties.

(fn KEYWORDS)
(defalias 'semantic-grammar-keyword-properties #[257 "\300p!\301\203! @\211A@\262\302=\203 @B\262A\262\202 \211\237\266\202\301\211\211\211\211\211\211\211\203\246 @\262A\262	\303\304	\211@\262\n\305\306\3078\262\"\266\202B\"\262\203- @\262A\262\310\"\262\203V @\262\311\306\3078\262\"\266\202\262\203V \304@@!\262\312@A!\262EB\262A\262\202\205 \207" [semantic-something-to-tag-table nil put mapcar intern :rest plist-get 2 rassq :value read] 19 (#$ . 15962)])#@244 Return defined lexical tokens.
That is an alist (TYPE . DEFS) where type is a %token <type> symbol
and DEFS is an alist of (TOKEN . VALUE).  TOKEN is the terminal symbol
identifying the token and VALUE is the string value of the token or
nil.
(defalias 'semantic-grammar-tokens #[0 "\301\211\211\211\211\211\211\211\302p!\301\203) @\211A@\262\303=\203\" @B\262A\262\202\f \211\237\266\202\262\203\227 @\262A\262\211\304\305\3068\262\"\266\203\211\262\203/ \307\305\3068\262\"\266\202\262\303\"\262\204v C\262B\262\203/ @\262A\262\310\"\204v \311!CAB\241\210\202v \302p!\301\203\270 @\211A@\262\312=\203\261 @B\262A\262\202\233 \211\237\266\202\262\2035@\262A\262\211@\262\313\305\3068\262\"\266\202B\262\211\304\305\3068\262\"\266\203\206\364 \314\262\307\305\3068\262\"\266\202\262\303\"\262\204C\262B\262\203\276 \311@!\262A\262BAB\241\210\202\207" [semantic-grammar-lex-c-char-re nil semantic-something-to-tag-table assoc :type plist-get 2 :value string-match intern token :rest "<no-type>"] 15 (#$ . 16544)])#@209 Return properties set by %type statements.
This declare a new type if necessary.
If optional argument PROPS is non-nil, it is an existing list of
properties where to add new properties.

(fn &optional PROPS)
(defalias 'semantic-grammar-token-%type-properties #[256 "\300\301p!\300\203\" @\211A@\262\302=\203 @B\262A\262\202 \211\237\266\202\211\203p \211@\211\211@\262\262\303\304EB\262\211\305\306\3078\262\"\266\202\211\203h \211@\310@!\311A\206Z \312!EB\262A\266\202\202H \210A\266\202\202& \210\207" [nil semantic-something-to-tag-table type :declared t :value plist-get 2 intern read "nil"] 10 (#$ . 17679)])#@83 For types found in TOKENS, return properties set by %put statements.

(fn TOKENS)
(defalias 'semantic-grammar-token-%put-properties #[257 "\300\211\301p!\300\203# @\211A@\262\302=\203 @B\262A\262\202 \211\237\266\202\211\203\222 \211@\211\211@\262\303\304\3058\262\"\266\202B\211\203\212 \211@\306\"\262\203\203 @\262\307\304\3058\262\"\266\202\211\203\202 \211@\310@!\311A\206t \312!EB\262A\266\202\202b \210A\266\202\202@ \210A\266\202\202' \210\207" [nil semantic-something-to-tag-table put :rest plist-get 2 assoc :value intern read "nil"] 13 (#$ . 18326)])#@315 Return properties of declared types.
Types are explicitly declared by %type statements.  Types found in
TOKENS are those declared implicitly by %token statements.
Properties can be set by %put and %type statements.
Properties set by %type statements take precedence over those set by
%put statements.

(fn TOKENS)
(defalias 'semantic-grammar-token-properties #[257 "\300!\301!\207" [semantic-grammar-token-%put-properties semantic-grammar-token-%type-properties] 4 (#$ . 18931)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put semantic-grammar-token-properties speed -1 put byte-optimizer byte-compile-inline-expand] 5)#@96 Return macro definitions from %use-macros statements.
Also load the specified macro libraries.
(defalias 'semantic-grammar-use-macros #[0 "\300\211\301p!\300\203# @\211A@\262\302=\203 @B\262A\262\202 \211\237\266\202\211\203~ \211@\303\211\304\305\3068\262\"\266\203!\262\3071K \310!0\210\202L \210\211\311\305\3068\262\"\266\202\211\203v \211@\303!\303\312\313	#!BB\262A\266\202\202Y \210A\266\202\202' \210\211\237\207" [nil semantic-something-to-tag-table macro intern :type plist-get 2 (error) require :value format "%s-%s"] 12 (#$ . 19577)])#@47 List of associations (MACRO-NAME . EXPANDER).
(defvar semantic-grammar-macros nil (#$ . 20157))
(make-variable-buffer-local 'semantic-grammar-macros)#@47 Build and return the alist of defined macros.
(defalias 'semantic-grammar-macros #[0 "\301\302 \"\207" [semantic-grammar-macros append semantic-grammar-use-macros] 3 (#$ . 20312)])#@48 Return the default value of the keyword table.
(defalias 'semantic-grammar-keywordtable-builder-default #[0 "\300\301\302p!\303\203# @\211A@\262\304=\203 @B\262A\262\202 \211\237\266\202\"\305\306D\306\307!DE\207" [mapcar #[257 "\211\300\301\3028\262\"\266\202\303\211@\262!B\207" [:value plist-get 2 intern] 7 "\n\n(fn KEY)"] semantic-something-to-tag-table nil keyword semantic-lex-make-keyword-table quote semantic-grammar-keyword-properties] 6 (#$ . 20499)])#@33 Return the keyword table value.
(defalias 'semantic-grammar-keywordtable-builder #[0 "\303\211\304\305\306!\304\204\" \211\262\204\" 	\262\n\205  \307\n\"\262\203M \211\204M \302N\203< \307\302N\"\211\262\204\" \211\310N\206F \211\311N\262\262\202\" \266\203\211\262\205a \211\203_ N\205a J\266\203\206\326 \211\211\312N\262\205\326 \211\211\312N\262\304\305\306!\304\204\225 \211\262\204\225 	\262\n\205\223 \307\n\"\262\203\300 \211\204\300 \302N\203\257 \307\302N\"\211\262\204\225 \211\310N\206\271 \211\311N\262\262\202\225 \266\203\211\262\205\324 \211\203\322 N\205\324 J\266\203\262\211\203\337 \211 \207\313 \207" [mode-local-active-mode major-mode mode-local-symbol-table semantic-grammar-keywordtable-builder nil override-flag symbol-name intern-soft mode-local-parent derived-mode-parent mode-local--overload-obsolete semantic-grammar-keywordtable-builder-default] 12 (#$ . 20985)])
(put 'semantic-grammar-keywordtable-builder 'mode-local-overload t)#@58 Return the default value of the table of lexical tokens.
(defalias 'semantic-grammar-tokentable-builder-default #[0 "\300 \301\302D\302\303!\304!\266\202DE\207" [semantic-grammar-tokens semantic-lex-make-type-table quote semantic-grammar-token-%put-properties semantic-grammar-token-%type-properties] 8 (#$ . 21998)])#@50 Return the value of the table of lexical tokens.
(defalias 'semantic-grammar-tokentable-builder #[0 "\303\211\304\305\306!\304\204\" \211\262\204\" 	\262\n\205  \307\n\"\262\203M \211\204M \302N\203< \307\302N\"\211\262\204\" \211\310N\206F \211\311N\262\262\202\" \266\203\211\262\205a \211\203_ N\205a J\266\203\206\326 \211\211\312N\262\205\326 \211\211\312N\262\304\305\306!\304\204\225 \211\262\204\225 	\262\n\205\223 \307\n\"\262\203\300 \211\204\300 \302N\203\257 \307\302N\"\211\262\204\225 \211\310N\206\271 \211\311N\262\262\202\225 \266\203\211\262\205\324 \211\203\322 N\205\324 J\266\203\262\211\203\337 \211 \207\313 \207" [mode-local-active-mode major-mode mode-local-symbol-table semantic-grammar-tokentable-builder nil override-flag symbol-name intern-soft mode-local-parent derived-mode-parent mode-local--overload-obsolete semantic-grammar-tokentable-builder-default] 12 (#$ . 22325)])
(put 'semantic-grammar-tokentable-builder 'mode-local-overload t)#@46 Return the default value of the parse table.
(defalias 'semantic-grammar-parsetable-builder-default #[0 "\300\301!\207" [error "`semantic-grammar-parsetable-builder' not defined"] 2 (#$ . 23347)])#@32 Return the parser table value.
(defalias 'semantic-grammar-parsetable-builder #[0 "\303\211\304\305\306!\304\204\" \211\262\204\" 	\262\n\205  \307\n\"\262\203M \211\204M \302N\203< \307\302N\"\211\262\204\" \211\310N\206F \211\311N\262\262\202\" \266\203\211\262\205a \211\203_ N\205a J\266\203\206\326 \211\211\312N\262\205\326 \211\211\312N\262\304\305\306!\304\204\225 \211\262\204\225 	\262\n\205\223 \307\n\"\262\203\300 \211\204\300 \302N\203\257 \307\302N\"\211\262\204\225 \211\310N\206\271 \211\311N\262\262\202\225 \266\203\211\262\205\324 \211\203\322 N\205\324 J\266\203\262\211\203\337 \211 \207\313 \207" [mode-local-active-mode major-mode mode-local-symbol-table semantic-grammar-parsetable-builder nil override-flag symbol-name intern-soft mode-local-parent derived-mode-parent mode-local--overload-obsolete semantic-grammar-parsetable-builder-default] 12 (#$ . 23549)])
(put 'semantic-grammar-parsetable-builder 'mode-local-overload t)#@50 Return the default value of the setup code form.
(defalias 'semantic-grammar-setupcode-builder-default #[0 "\300\301!\207" [error "`semantic-grammar-setupcode-builder' not defined"] 2 (#$ . 24553)])#@36 Return the parser setup code form.
(defalias 'semantic-grammar-setupcode-builder #[0 "\303\211\304\305\306!\304\204\" \211\262\204\" 	\262\n\205  \307\n\"\262\203M \211\204M \302N\203< \307\302N\"\211\262\204\" \211\310N\206F \211\311N\262\262\202\" \266\203\211\262\205a \211\203_ N\205a J\266\203\206\326 \211\211\312N\262\205\326 \211\211\312N\262\304\305\306!\304\204\225 \211\262\204\225 	\262\n\205\223 \307\n\"\262\203\300 \211\204\300 \302N\203\257 \307\302N\"\211\262\204\225 \211\310N\206\271 \211\311N\262\262\202\225 \266\203\211\262\205\324 \211\203\322 N\205\324 J\266\203\262\211\203\337 \211 \207\313 \207" [mode-local-active-mode major-mode mode-local-symbol-table semantic-grammar-setupcode-builder nil override-flag symbol-name intern-soft mode-local-parent derived-mode-parent mode-local--overload-obsolete semantic-grammar-setupcode-builder-default] 12 (#$ . 24757)])
(put 'semantic-grammar-setupcode-builder 'mode-local-overload t)
(defvar semantic--grammar-input-buffer nil)
(defvar semantic--grammar-output-buffer nil)
(defvar semantic--grammar-package nil)
(defvar semantic--grammar-provide nil)#@48 Return the variable name of the keyword table.
(defalias 'semantic-grammar-keywordtable #[0 "\301P\207" [semantic--grammar-package "--keyword-table"] 2 (#$ . 25928)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put semantic-grammar-keywordtable speed -1 put byte-optimizer byte-compile-inline-expand] 5)#@46 Return the variable name of the token table.
(defalias 'semantic-grammar-tokentable #[0 "\301P\207" [semantic--grammar-package "--token-table"] 2 (#$ . 26256)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put semantic-grammar-tokentable speed -1 put byte-optimizer byte-compile-inline-expand] 5)#@46 Return the variable name of the parse table.
(defalias 'semantic-grammar-parsetable #[0 "\301P\207" [semantic--grammar-package "--parse-table"] 2 (#$ . 26576)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put semantic-grammar-parsetable speed -1 put byte-optimizer byte-compile-inline-expand] 5)#@47 Return the name of the parser setup function.
(defalias 'semantic-grammar-setupfunction #[0 "\301P\207" [semantic--grammar-package "--install-parser"] 2 (#$ . 26896)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put semantic-grammar-setupfunction speed -1 put byte-optimizer byte-compile-inline-expand] 5)#@47 Return OBJECT as a string value.

(fn OBJECT)
(defalias 'semantic-grammar-as-string '(macro . #[257 "\300\301D\302DF\207" [if stringp pp-to-string] 6 (#$ . 27226)]))#@90 Insert declaration of constant NAME with VALUE and DOCSTRING.

(fn NAME VALUE DOCSTRING)
(defalias 'semantic-grammar-insert-defconst #[771 "`\300\301$c\210\212\211b\210\302 )\207" [format "(defconst %s\n%s%S)\n\n" indent-sexp] 9 (#$ . 27400)])#@90 Insert declaration of constant NAME with VALUE and DOCSTRING.

(fn NAME VALUE DOCSTRING)
(defalias 'semantic-grammar-insert-defconst-with-eval #[771 "`\300\301$c\210\212\211b\210\302 )\207" [format "(eval-and-compile (defconst %s\n%s%S))\n\n" indent-sexp] 9 (#$ . 27652)])#@88 Insert declaration of function NAME with BODY and DOCSTRING.

(fn NAME BODY DOCSTRING)
(defalias 'semantic-grammar-insert-defun #[771 "`\300\301$c\210\212\211b\210\302 )\207" [format "(defun %s ()\n%S\n%s)\n\n" indent-sexp] 9 (#$ . 27933)])#@169 Insert the declaration specified by DEFINE expression.
Typically a DEFINE expression should look like this:

(define-thing name docstring expression1 ...)

(fn DEFINE)
(defalias 'semantic-grammar-insert-define #[257 "`\300\301@A@#c\210AA\211\203& \211@\302c\210\303 \210\304p\"\210A\266\202\202 \210\305c\210\212\211b\210\306 )\207" [format "(%S %S" "\n" delete-blank-lines pp ")\n\n" indent-sexp] 7 (#$ . 28184)])#@44 The form to use to load the parser engine.
(defvar semantic-grammar-require-form '(eval-when-compile (require 'semantic/bovine)) (#$ . 28610))#@105 Generated header template.
The symbols in the template are local variables in
`semantic-grammar-header'
(defconst semantic-grammar-header-template '(";;; " file " --- Generated parser support file\n\n" copy "\n\n;; Author: " user-full-name " <" user-mail-address ">\n;; Created: " date "\n;; Keywords: syntax\n;; X-RCS: " vcid "\n\n;; This file is not part of GNU Emacs.\n\n;; This program is free software; you can redistribute it and/or\n;; modify it under the terms of the GNU General Public License as\n;; published by the Free Software Foundation, either version 3 of\n;; the License, or (at your option) any later version.\n\n;; This software is distributed in the hope that it will be useful,\n;; but WITHOUT ANY WARRANTY; without even the implied warranty of\n;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n;; General Public License for more details.\n;;\n;; You should have received a copy of the GNU General Public License\n;; along with this program.  If not, see <https://www.gnu.org/licenses/>.\n\n;;; Commentary:\n;;\n;; PLEASE DO NOT MANUALLY EDIT THIS FILE!  It is automatically\n;; generated from the grammar file " gram ".\n\n;;; Code:\n\n(require 'semantic/lex)\n" require-form "\n") (#$ . 28759))#@102 Generated footer template.
The symbols in the list are local variables in
`semantic-grammar-footer'.
(defconst semantic-grammar-footer-template '("\n(provide '" libr ")\n\n;; Local Variables:\n;; version-control: never\n;; no-update-autoloads: t\n;; End:\n\n;;; " file " ends here\n") (#$ . 30005))#@57 Return the grammar copyright line, or nil if not found.
(defalias 'semantic-grammar-copyright-line #[0 "\212eb\210\300\301\212\302y\210`)\303#\205 \304\305!)\207" [re-search-forward "^;;+[ 	]+Copyright (C) .*$" 4 t match-string 0] 4 (#$ . 30309)])#@21 

(fn TEMPLATE ENV)
(defalias 'semantic-grammar--template-expand #[514 "\300\301\302\"\303#\207" [mapconcat make-closure #[257 "\211;\203 \207\211\300\236\211\203 \211A\2079\205 J\207" [V0] 3 "\n\n(fn S)"] ""] 6 (#$ . 30563)])#@45 Return text of a generated standard header.
(defalias 'semantic-grammar-header #[0 "\304\305	\306\307!!\262B\310\311\306\307!!\262B\312\313\314!B\315\316\317\n\"B\320\321B\322\323 \206/ \313\324!PB\257\"\207" [semantic-grammar-header-template semantic--grammar-output-buffer semantic-grammar-require-form user-full-name semantic-grammar--template-expand file file-name-nondirectory buffer-file-name gram nil date format-time-string "%Y-%m-%d %T%z" require-form format "%S" vcid "$Id$" copy semantic-grammar-copyright-line ";; Copyright (C) %Y "] 10 (#$ . 30802)])#@45 Return text of a generated standard footer.
(defalias 'semantic-grammar-footer #[0 "\304\305	\306\307!!\262B\310\n\206 BD\"\207" [semantic-grammar-footer-template semantic--grammar-output-buffer semantic--grammar-provide semantic--grammar-package semantic-grammar--template-expand file file-name-nondirectory buffer-file-name libr] 7 (#$ . 31378)])#@57 Return the string value of the table of lexical tokens.
(defalias 'semantic-grammar-token-data #[0 "\300 ;\203	 \300 \207\301\300 !\207" [semantic-grammar-tokentable-builder pp-to-string] 2 (#$ . 31737)])#@51 Return the string value of the table of keywords.
(defalias 'semantic-grammar-keyword-data #[0 "\300 ;\203	 \300 \207\301\300 !\207" [semantic-grammar-keywordtable-builder pp-to-string] 2 (#$ . 31947)])#@44 Return the parser table as a string value.
(defalias 'semantic-grammar-parser-data #[0 "\300 ;\203	 \300 \207\301\300 !\207" [semantic-grammar-parsetable-builder pp-to-string] 2 (#$ . 32155)])#@54 Return the parser setup code form as a string value.
(defalias 'semantic-grammar-setup-data #[0 "\300 ;\203	 \300 \207\301\300 !\207" [semantic-grammar-setupcode-builder pp-to-string] 2 (#$ . 32353)])#@67 Return delimiters specification from BLOCK-SPEC.

(fn BLOCK-SPEC)
(defalias 'semantic-grammar--lex-delim-spec #[257 "\30112 \211A\302 \211:\203* \211@\203* \211@9\203* \211A@\203* \211A@9\203* \211\202- \303\304!)\2620\207\210\303\305A@#\207" [standard-input (error) read error "Invalid delimiter" "Invalid delimiters specification %s in block token %s"] 5 (#$ . 32559)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put semantic-grammar--lex-delim-spec speed -1 put byte-optimizer byte-compile-inline-expand] 5)#@130 Compute lexical block specifications for the current buffer.
Block definitions are read from the current table of lexical types.
(defalias 'semantic-grammar--lex-block-specs #[0 "\303\267\2025\304\207\3051*\306\307\310	!\205 \211;\205 \311	\"\262\211\203+ \211J\266\203\2025 ?\2053 \312!\266\203A\313\307\310	!\205H \211;\205H \311	\"\262\211\203U \211J\266\203\202_ ?\205] \312!\266\203A\314\307\310	!\205r \211;\205r \311	\"\262\211\203 \211J\266\203\202\211 ?\205\207 \312!\266\203A\304\211\211\211\211\211\203 \211@\211\3151\316 \211A\316 \211:\203\302 \211@\203\302 \211@9\203\302 \211A@\203\302 \211A@9\203\302 \211\202\305 \317\320!)\2620\262\202\330 \210\317\321A@#\262\262@	\236\262A@\236\262\204\366 \317\322@@#\210\204\317\323A@#\210A@@EB\262A@DB\262A\266\202\202\221 \210B\211\266\2100\207\317\324\325\326!\"\210\304\207\207" [semantic-grammar--lex-block-specs semantic-lex-types-obarray standard-input #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (error 6 nil 8)) nil (error) "block" t obarrayp intern-soft semantic-lex-type-invalid "open-paren" "close-paren" (error) read error "Invalid delimiter" "Invalid delimiters specification %s in block token %s" "Missing open-paren token %s required by block %s" "Missing close-paren token %s required by block %s" message "%s" error-message-string] 15 (#$ . 33099)])#@75 Return a quoted form of EXP if it isn't a self evaluating form.

(fn EXP)
(defalias 'semantic-grammar-quoted-form #[257 "\211\203 \211<\204 \2119\203 \300D\207\207" [quote] 3 (#$ . 34534)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put semantic-grammar-quoted-form speed -1 put byte-optimizer byte-compile-inline-expand] 5)#@74 Insert declaration of the lexical analyzer defined with TYPE.

(fn TYPE)
(defalias 'semantic-grammar-insert-defanalyzer #[257 "\301!J\302N\303N\304\211\211\211\211\205\205\262	\305N\206$ \306\262\307\310\311$!\262\310\312\f#\262\313\267\202\230 \314\315\n\fA\211\203\\ \211<\204W \2119\203\\ \316D\262\316@\206g \307!D\257!\207\314\317\n\fA\211\203\210 \211<\204\203 \2119\203\210 \316D\262\316@\206\223 \307!D\257!\207\320=\203\305 \321 \211\262\203\305 \314\322\n	\211\203\301 \211<\204\274 \2119\203\301 \316D\262\257!\207\323\267\202\352 \314\324\n\316@\206\334 \307!D\257!\207\314\325\nF!\207\320=\205\321 \211\262\205\314\322\n	\211\203\211<\204\2119\203\316D\262\257!\207" [semantic--grammar-package symbol-name syntax :declared nil matchdatatype regexp intern format "%s--<%s>-%s-analyzer" "%s analyzer for <%s> tokens." #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (regexp 64 string 108)) semantic-grammar-insert-define define-lex-regex-type-analyzer quote define-lex-string-type-analyzer block semantic-grammar--lex-block-specs define-lex-block-type-analyzer #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (sexp 203 keyword 225)) define-lex-sexp-type-analyzer define-lex-keyword-type-analyzer] 19 (#$ . 34887)])#@43 Insert declarations of lexical analyzers.
(defalias 'semantic-grammar-insert-defanalyzers #[0 "\303\211rq\210\304 \262\305!\306!\266\202)\262\307\"\303\310\311\n\"*\207" [semantic--grammar-input-buffer semantic-grammar--lex-block-specs semantic-lex-types-obarray nil semantic-grammar-tokens semantic-grammar-token-%put-properties semantic-grammar-token-%type-properties semantic-lex-make-type-table mapatoms semantic-grammar-insert-defanalyzer] 6 (#$ . 36279)])
(byte-code "\300\301\302\303\304DD\305\306\307\310\311&\207" [custom-declare-variable semantic-grammar-file-regexp funcall function #[0 "\300\207" ["\\.[wb]y\\'"] 1 ""] "Regexp which matches grammar source files." :group semantic :type regexp] 8)#@269 Create package Lisp code from grammar in current buffer.
If the Lisp code seems up to date, do nothing (if UPTODATE
is non-nil, return nil in such cases).
If optional argument FORCE is non-nil, unconditionally re-generate the
Lisp code.

(fn &optional FORCE UPTODATE)
(defalias 'semantic-grammar-create-package #[512 "\204 \306\307!\210\206 	\262\310 \210\311 \312\313!\211\206 \n\314Pp\315\316!!\317 \320 \321 \322 \204T \323 \204T \324\325!\325\f!\"\203T \326\327\n\"\210\203\330\262\202q\210\331@\332 \210\333\334!\204f \334 \210\335\261\210\336e`\"\210\212\337c\210\340\n\341Pr\fq\210\342\343\344 @\")\345#\210\346\n\347Pr\fq\210\350 )\351#\210\346\n\352Pr\fq\210\353 )\354#\210\346\n\355Pr\fq\210\356 )\357#\210\360\n\361Pr\fq\210\362 )\363#\210\364c\210\365 \210\366\261)\210\367\370!\210A\203\351 \371\211\211\211BCDE\372p!,\210\202\336`d\"\210eb\210\373\374\330\371#\203 \375\330!\210\202\361 eb\210\376p!\210\377\n\361P\201F \201G !\"\210,\207" [semantic-new-buffer-fcn-was-run current-prefix-arg semantic--grammar-package semantic--grammar-provide semantic--grammar-input-buffer semantic--grammar-output-buffer error "You have to activate semantic-mode to create a package" semantic-fetch-tags semantic-grammar-package semantic-grammar-first-tag-name provide ".el" find-file-noselect file-name-nondirectory semantic-grammar-header semantic-grammar-prologue semantic-grammar-epilogue semantic-grammar-footer buffer-modified-p file-newer-than-file-p buffer-file-name message "Package `%s' is up to date." nil raw-text-unix erase-buffer derived-mode-p emacs-lisp-mode "\f\n;;; Prologue\n;;\n" eval-region "\f\n;;; Declarations\n;;\n" semantic-grammar-insert-defconst-with-eval "--expected-conflicts" format "%s\n" semantic-grammar-expected-conflicts "The number of expected shift/reduce conflicts in this grammar." semantic-grammar-insert-defconst "--keyword-table" semantic-grammar-keyword-data "Table of language keywords." "--token-table" semantic-grammar-token-data "Table of lexical tokens." "--parse-table" semantic-grammar-parser-data "Parser table." semantic-grammar-insert-defun "--install-parser" semantic-grammar-setup-data "Setup the Semantic Parser." "\f\n;;; Analyzers\n;;\n" semantic-grammar-insert-defanalyzers "\f\n;;; Epilogue\n;;\n" save-buffer 16 t kill-buffer re-search-forward "(defvar " eval-defun pop-to-buffer semantic-map-mode-buffers buffer-file-coding-system noninteractive vc-make-backup-files make-backup-files delete-old-versions version-control semantic-grammar-tag-symbols languagemode] 13 (#$ . 37005) "P"])#@129 Unconditionally create Lisp code from grammar in current buffer.
Like \[universal-argument] \[semantic-grammar-create-package].
(defalias 'semantic-grammar-recreate-package #[0 "\300\301!\207" [semantic-grammar-create-package t] 2 (#$ . 39597) nil])#@176 Build a Lisp package from the grammar in FILE.
That is, generate Lisp code from FILE, and `byte-compile' it.
Return non-nil if there were no errors, nil if errors.

(fn FILE)
(defalias 'semantic-grammar-batch-build-one-package #[257 "\304\305!\210\306!?\205L \3071' r\310!q\210\311\211\312\313\314!\210\315\316!+0\2021 \317\320\321!\"\210\311\262\211\205J \322\323!\"\203I \324]\325!)\202J \316\262\207" [vc-handled-backends semantic-new-buffer-setup-functions semanticdb-new-database-class max-lisp-eval-depth require bytecomp auto-save-file-name-p (error) find-file-noselect nil semanticdb-project-database semantic-mode 1 semantic-grammar-create-package t message "%s" error-message-string file-newer-than-file-p byte-compile-dest-file 1000 byte-compile-file] 6 (#$ . 39853)])#@429 Build Lisp packages from grammar files on the command line.
That is, run `semantic-grammar-batch-build-one-package' for each file.
Each file is processed even if an error occurred previously.
Must be used from the command line, with `-batch'.
For example, to process grammar files in current directory, invoke:

  "emacs -batch -f semantic-grammar-batch-build-packages .".

See also the variable `semantic-grammar-file-regexp'.
(defalias 'semantic-grammar-batch-build-packages #[0 "\204 \304\305!\210\306\307\310	\"\n\211\203m \211@\211\203 \311!\204$ \304\312\"\210\313!\262\314!\203] \3151< \316\317#0\202@ \210\304\320!\211\203Y \211@\321\313\"!\204R \322\262A\266\202\202@ \210\202f \321!\204f \322\262A\266\202\202 \210\323!)\207" [noninteractive find-file-hook command-line-args-left semantic-grammar-file-regexp error "`semantic-grammar-batch-build-packages' must be used with -batch" 0 delete vc-find-file-hook file-exists-p "Argument %s is not a valid file name" expand-file-name file-directory-p (error) directory-files nil "Unable to read directory files" semantic-grammar-batch-build-one-package 1 kill-emacs] 9 (#$ . 40652)])
(defvar semantic--grammar-macros-regexp-1 nil nil)
(make-variable-buffer-local 'semantic--grammar-macros-regexp-1)#@64 Return font-lock keyword regexp for pre-installed macro names.
(defalias 'semantic--grammar-macros-regexp-1 #[0 "\203 	\204 \3021 \303\304\305\306\"\307\"\310Q\2110\210\202 \210	\207" [semantic-grammar-macros semantic--grammar-macros-regexp-1 (error) "(\\s-*" regexp-opt mapcar #[257 "\300@!\207" [symbol-name] 3 "\n\n(fn E)"] t "\\>"] 5 (#$ . 41931)])#@52 Regexp that matches a macro declaration statement.
(defconst semantic--grammar-macdecl-re "\\<%use-macros\\>[ 	\n]+\\(\\sw\\|\\s_\\)+[ 	\n]+{" (#$ . 42297))
(defvar semantic--grammar-macros-regexp-2 nil nil)
(make-variable-buffer-local 'semantic--grammar-macros-regexp-2)#@174 Clear the cached regexp that match macros local in this grammar.
IGNORE arguments.
Added to `before-change-functions' hooks to be run before each text
change.

(fn &rest _)
(defalias 'semantic--grammar-clear-macros-regexp-2 #[128 "\301\211\207" [semantic--grammar-macros-regexp-2 nil] 3 (#$ . 42577)])#@60 Return the regexp that match macros local in this grammar.
(defalias 'semantic--grammar-macros-regexp-2 #[0 "\204B \302\212eb\210\303	\302\304#\2034 \30510 \211\306\307`\310u\210\311\312!\210\313\310!\210`\"!\244\211\2620\210\202	 \210\202	 \211\203@ \314\315\304\"\316Q)\210\207" [semantic--grammar-macros-regexp-2 semantic--grammar-macdecl-re nil re-search-forward t (error) split-string buffer-substring-no-properties -1 forward-list 1 down-list "(\\s-*" regexp-opt "\\>"] 7 (#$ . 42885)])#@89 Search for a grammar macro name to highlight.
END is the limit of the search.

(fn END)
(defalias 'semantic--grammar-macros-matcher #[257 "\300 \211\203 \301\302#\206 \303 \211\262\205 \301\302#\207" [semantic--grammar-macros-regexp-1 re-search-forward t semantic--grammar-macros-regexp-2] 6 (#$ . 43388)])#@50 Syntax table used in a Semantic grammar buffers.
(defvar semantic-grammar-mode-syntax-table (byte-code "\300\301 !\302\303\304#\210\302\305\304#\210\302\306\304#\210\302\307\304#\210\302\310\311#\210\302\312\313#\210\302\314\315#\210\302\316\317#\210\302\320\321#\210\302\322\321#\210\302\323\324#\210\302\325\326#\210\302\327\326#\210\302\330\326#\210\302\331\326#\210\207" [make-syntax-table standard-syntax-table modify-syntax-entry 58 "." 62 60 124 59 ". 12" 10 ">" 34 "\"" 37 "w" 45 "_" 46 92 "\\" 96 "'" 39 44 35] 5) (#$ . 43708))#@47 Hook run when starting Semantic grammar mode.
(defvar semantic-grammar-mode-hook nil (#$ . 44265))#@64 Font Lock keywords used to highlight Semantic grammar buffers.
(defvar semantic-grammar-mode-keywords-1 (byte-code "\301\302\303\304\305\306\307\310!\203 \310\202 \311E\312\313\314\307\315!\203  \315\202! \316\317BBB\320BBBBBBBB\207" [semantic-grammar-lex-c-char-re ("\\(\\<%%\\>\\|\\<%[{}]\\)" 0 font-lock-constant-face) ("\\(%\\)\\(\\(\\sw\\|\\s_\\)+\\)" (1 font-lock-constant-face) (2 font-lock-keyword-face)) ("\\<error\\>" 0 (unless (semantic-grammar-in-lisp-p) 'bold)) ("^\\(\\(\\sw\\|\\s_\\)+\\)[ \n	]*:" 1 font-lock-function-name-face) semantic--grammar-macros-matcher 1 boundp font-lock-builtin-face font-lock-preprocessor-face ("\\$\\(\\sw\\|\\s_\\)*" 0 font-lock-variable-name-face) ("<\\(\\(\\sw\\|\\s_\\)+\\)>" 1 font-lock-type-face) 0 font-lock-constant-face font-lock-string-face (t) (("[\n	 ]+:\\sw+\\>" 0 font-lock-builtin-face))] 11) (#$ . 44369))#@64 Font Lock keywords used to highlight Semantic grammar buffers.
(defvar semantic-grammar-mode-keywords-2 (byte-code "\303\304\301!\203\f 	\202 \n\"\207" [semantic-grammar-mode-keywords-1 lisp-font-lock-keywords-1 lisp-el-font-lock-keywords-1 append boundp] 4) (#$ . 45245))#@64 Font Lock keywords used to highlight Semantic grammar buffers.
(defvar semantic-grammar-mode-keywords-3 (byte-code "\303\304\301!\203\f 	\202 \n\"\207" [semantic-grammar-mode-keywords-1 lisp-font-lock-keywords-2 lisp-el-font-lock-keywords-2 append boundp] 4) (#$ . 45525))#@64 Font Lock keywords used to highlight Semantic grammar buffers.
(defvar semantic-grammar-mode-keywords semantic-grammar-mode-keywords-1 (#$ . 45805))#@41 Keymap used in `semantic-grammar-mode'.
(defvar semantic-grammar-mode-map (byte-code "\300 \301\302\303#\210\301\304\303#\210\301\305\303#\210\301\306\303#\210\301\307\303#\210\301\310\303#\210\301\311\312#\210\301\313\314#\210\301\315\316#\210\301\317\320#\210\301\321\322#\210\207" [make-sparse-keymap define-key "|" semantic-grammar-electric-punctuation ";" "%" "(" ")" ":" "	" semantic-grammar-indent "\211" semantic-grammar-complete "" semantic-grammar-create-package "m" semantic-grammar-find-macro-expander "ik" semantic-grammar-insert-keyword] 5) (#$ . 45959))#@31 Common semantic grammar menu.
(defvar semantic-grammar-menu '("Grammar" ["Indent Line" semantic-grammar-indent] ["Complete Symbol" semantic-grammar-complete] ["Find Macro" semantic-grammar-find-macro-expander] "--" ["Insert %keyword" semantic-grammar-insert-keyword] "--" ["Update Lisp Package" semantic-grammar-create-package] ["Recreate Lisp Package" semantic-grammar-recreate-package]) (#$ . 46548))#@167 Setup a GNU Emacs grammar menu in variable SYMBOL.
MODE-MENU is an optional specific menu whose items are appended to the
common grammar menu.

(fn SYMBOL MODE-MENU)
(defalias 'semantic-grammar-setup-menu-emacs #[514 "\300\301!\302\303\304DD\305\306BB\307\310DDC\311\312\n\313BB\314	\312\315\316DF\317\f\310DEFFEF\207" [make-symbol "items" unless boundp quote easy-menu-define ((current-local-map) "Grammar Menu" semantic-grammar-menu) let cdr when easy-menu-add-item (nil "--") while nil car setq] 18 (#$ . 46957)])#@165 Setup an XEmacs grammar menu in variable SYMBOL.
MODE-MENU is an optional specific menu whose items are appended to the
common grammar menu.

(fn SYMBOL MODE-MENU)
(defalias 'semantic-grammar-setup-menu-xemacs #[514 "\300\301!\300\302!\303\304\305\306DD\307\310BBE\311\312\313DE\314\315DD\316\317DDDD\311\320\321	\322BBB\323\n\320\321\f\317DF\324\315DEFFEF\207" [make-symbol "items" "path" progn unless boundp quote easy-menu-define (nil "Grammar Menu" (copy-sequence semantic-grammar-menu)) when (featurep 'xemacs) easy-menu-add let cdr list car easy-menu-add-item nil ("--") while setq] 19 (#$ . 47496)])
(make-obsolete 'semantic-grammar-setup-menu-xemacs nil "28.1")#@152 Setup a mode local grammar menu.
MODE-MENU is an optional specific menu whose items are appended to the
common grammar menu.

(fn &optional MODE-MENU)
(defalias 'semantic-grammar-setup-menu '(macro . #[256 "\301\302\303\304\"!\"\207" [major-mode semantic-grammar-setup-menu-emacs intern format "%s-menu"] 6 (#$ . 48195)]))#@42 Return non-nil if point is in Lisp code.
(defalias 'semantic-grammar-in-lisp-p #[0 "`\212eb\210\300\301\302\303\304$\203 \305\224\202 dT)Y\206) \3061' \212\307\310!)\210\3030\207\210\302\207" [re-search-forward "^\\s-*\\<%%\\>\\s-*$" nil t 2 0 (error) up-list -1] 6 (#$ . 48525)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put semantic-grammar-in-lisp-p speed -1 put byte-optimizer byte-compile-inline-expand] 5)#@254 Function set into `semantic-edits-new-change-hook'.
Argument OVERLAY is the overlay created to mark the change.
When OVERLAY marks a change in the scope of a nonterminal tag extend
the change bounds to encompass the whole nonterminal tag.

(fn OVERLAY)
(defalias 'semantic-grammar-edits-new-change-hook-fcn #[257 "\300\211\203 \301!\262\202 `\302 W\203 `\262\202 \302 \262\211\203, \303!\262\202= `\302 V\2039 `\262\202= \302 \262\"@\211\304\211A@\262=\266\202\205\205 \305\211\3068\262\307!\203e \301!\266\202\202j \211\310H\266\202\211\3068\262\307!\203 \303!\266\202\202\204 \211\311H\266\202#\207" [semantic-find-tag-by-overlay-in-region overlay-start mark overlay-end nonterminal move-overlay 4 overlayp 0 1] 9 (#$ . 48966)])
(defvar semantic-grammar-mode-hook nil)
(byte-code "\300\301N\204\f \302\300\301\303#\210\304\305!\204 \302\305\306\307#\210\300\207" [semantic-grammar-mode-hook variable-documentation put "Hook run after entering Semantic Grammar Framework mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it.  (This is true for all hook variables.)" boundp semantic-grammar-mode-map definition-name semantic-grammar-mode] 4)
(defvar semantic-grammar-mode-map (make-sparse-keymap))
(byte-code "\301\302N\204 \303\301\302\304\305!#\210\306\307!\204* \303\307\310\311#\210\312\307\306\307!\203& \313\202( \314 \"\210\307\302N\2048 \303\307\302\304\315!#\210\306\300!\204X \303\300\310\311#\210\312\300\306\300!\203P \313\202V \316\300\313\"\210\"\210\300\302N\204f \303\300\302\304\317!#\210\303\311\320\313#\207" [semantic-grammar-mode-abbrev-table semantic-grammar-mode-map variable-documentation put purecopy "Keymap for `semantic-grammar-mode'." boundp semantic-grammar-mode-syntax-table definition-name semantic-grammar-mode defvar-1 nil make-syntax-table "Syntax table for `semantic-grammar-mode'." define-abbrev-table "Abbrev table for `semantic-grammar-mode'." derived-mode-parent] 5)#@193 Initialize a buffer for editing Semantic grammars.

\{semantic-grammar-mode-map}

This mode runs the hook `semantic-grammar-mode-hook', as the final or
penultimate step during initialization.
(defalias 'semantic-grammar-mode #[0 "\306\300!\210\307\310 \210\311\312\313!\210\314\f!\210*\306\315!\210\307\306\316!\210\317\306\320!\210\321\306\322!\210\323\306\324!\210\325\306\326!\210\327\306\330!\210\331\332 \210\317+\333,\334-\335.\306\336!\210\337\306\340!\210\341 \342\343\344\345\307$\210\342\346\347\345\307$)\210\350\351!\207" [delay-mode-hooks major-mode mode-name semantic-grammar-mode-map semantic-grammar-mode-syntax-table semantic-grammar-mode-abbrev-table make-local-variable t kill-all-local-variables semantic-grammar-mode "Semantic Grammar Framework" use-local-map set-syntax-table parse-sexp-ignore-comments comment-start ";;" comment-start-skip "\\(\\(^\\|[^\\\n]\\)\\(\\\\\\\\\\)*\\);+ *" indent-line-function semantic-grammar-indent fill-paragraph-function lisp-fill-paragraph font-lock-multiline undecided font-lock-defaults ((semantic-grammar-mode-keywords semantic-grammar-mode-keywords-1 semantic-grammar-mode-keywords-2 semantic-grammar-mode-keywords-3) nil nil ((95 . "w") (45 . "w"))) semantic-grammar-wy--install-parser semantic-grammar-lexer (":") ((code . "Setup Code") (keyword . "Keyword") (token . "Token") (nonterminal . "Nonterminal") (rule . "Rule")) semantic-format-face-alist ((code . default) (keyword . font-lock-keyword-face) (token . font-lock-type-face) (nonterminal . font-lock-function-name-face) (rule . default)) semantic-stickyfunc-sticky-classes (nonterminal) add-hook before-change-functions semantic--grammar-clear-macros-regexp-2 nil semantic-edits-new-change-functions semantic-grammar-edits-new-change-hook-fcn run-mode-hooks semantic-grammar-mode-hook local-abbrev-table semantic-lex-comment-regex semantic-lex-analyzer semantic-type-relation-separator-character semantic-symbol->name-assoc-list] 5 (#$ . 50950) nil])#@158 Syntax table to skip a whole quoted expression in grammar code.
Consider quote as a "paired delimiter", so `forward-sexp' will skip
whole quoted expression.
(defvar semantic-grammar-skip-quoted-syntax-table (byte-code "\301!\302\303\304#\210\207" [semantic-grammar-mode-syntax-table copy-syntax-table modify-syntax-entry 39 "$"] 5) (#$ . 52956))#@55 Move point to beginning of the previous grammar item.
(defalias 'semantic-grammar-backward-item #[0 "\301d[!\210\302\303!\304U\205* `Sf\305=\203' \306 p\307\310#\216\311!\210\312\313!)\207\312\313!\207" [semantic-grammar-skip-quoted-syntax-table forward-comment skip-syntax-backward "." 0 39 syntax-table make-closure #[0 "r\300q\210\302\301!)\207" [V0 V1 set-syntax-table] 2] set-syntax-table forward-sexp -1] 6 (#$ . 53309)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put semantic-grammar-backward-item speed -1 put byte-optimizer byte-compile-inline-expand] 5)#@62 Return indentation based on previous anchor character found.
(defalias 'semantic-grammar-anchored-indentation #[0 "\301\212\211\204k \302d[!\210\303\304!\305U\2035 `Sf\306=\2031 \307 p\310\311#\216\312!\210\313\314!)\266\2025 \313\314!\210o\203? \305\262\202 \315\316!\203Y i\262\301u\210\317\320!\210l\203 \321\262\202 \315\322!\203 \315\323!\204 \305\262\202 )\207" [semantic-grammar-skip-quoted-syntax-table nil forward-comment skip-syntax-backward "." 0 39 syntax-table make-closure #[0 "r\300q\210\302\301!)\207" [V0 V1 set-syntax-table] 2] set-syntax-table forward-sexp -1 looking-at ":\\(\\s-\\|$\\)" skip-syntax-forward "-" 2 "[;%]" "\\<%prec\\>"] 7 (#$ . 53901)])#@70 Indent a line of grammar.
When called the point is not in Lisp code.
(defalias 'semantic-grammar-do-grammar-indent #[0 "\300\211\212\301 \210\302\303!\210i\262o\204# \304\305!\204# \304\306!\203) \304\307!\204) \310\262\202o \304\311!\2035 \312\262\202o \304\313!\203M \212\314d!\210\304\311!)\203M \315\262\202o \316 \262\211\310U\204o \304\313!\203d \211S\262\202o \304\317!\204o \211\312\\\262\211U?\205~ \301 \210\320 \210\211j)\207" [nil beginning-of-line skip-syntax-forward "-" looking-at "\\(\\w\\|\\s_\\)+\\s-*:" "%" "%prec\\>" 0 ":" 2 ";;" forward-comment 1 semantic-grammar-anchored-indentation "[|;]" delete-horizontal-space] 4 (#$ . 54593)])#@108 Syntax table that consider brackets as parenthesis.
So `lisp-indent-line' will work inside bracket blocks.
(defvar semantic-grammar-brackets-as-parens-syntax-table (byte-code "\301!\302\303\304#\210\302\305\306#\210\207" [emacs-lisp-mode-syntax-table copy-syntax-table modify-syntax-entry 123 "(}  " 125 "){  "] 5) (#$ . 55262))#@94 Maybe run the Emacs Lisp indenter on a line of code.
Return nil if not in a Lisp expression.
(defalias 'semantic-grammar-do-lisp-indent #[0 "\3011W \212\302 \210\303\304w\210`\211\212eb\210\305\306\304\307\310$\203  \311\224\202\" dT)Y\204+ \312\313!\210\31416 \312\313!\210\202/ \210\302 \210\214`}\210db\210\315 p\316\317#\216\320!\210\321 +\266\3070\207\210\304\207" [semantic-grammar-brackets-as-parens-syntax-table (error) beginning-of-line "	 " nil re-search-forward "^\\s-*\\<%%\\>\\s-*$" t 2 0 up-list -1 (error) syntax-table make-closure #[0 "r\300q\210\302\301!)\207" [V0 V1 set-syntax-table] 2] set-syntax-table lisp-indent-line] 7 (#$ . 55599)])#@88 Indent the current line.
Use the Lisp or grammar indenter depending on point location.
(defalias 'semantic-grammar-indent #[0 "`\300\301 \204\n \302 \210\212\303 \210\304\300w\210`)\262W\204# `U?\205% \211b\207" [nil semantic-grammar-do-lisp-indent semantic-grammar-do-grammar-indent beginning-of-line "	 "] 4 (#$ . 56267) nil])#@51 Insert and reindent for the symbol just typed in.
(defalias 'semantic-grammar-electric-punctuation #[0 "\300\301!\210\212\302 )\207" [self-insert-command 1 semantic-grammar-indent] 2 (#$ . 56605) nil])#@238 Attempt to complete the symbol under point.
Completion is position sensitive.  If the cursor is in a match section of
a rule, then nonterminals symbols are scanned.  If the cursor is in a Lisp
expression then Lisp symbols are completed.
(defalias 'semantic-grammar-complete #[0 "`\212eb\210\306\307\310\311\312$\203 \313\224\202 dT)Y\204. \3141) \212\315\316!)\210\3110\202+ \210\310\2036 \317B\320 )\207\321p!\310\203W @\211A@\262\322=\203P @B\262A\262\202: \211\237\266\202\323 @\324\"\211\311=\203l \325\326!\207\211;\203\247 \211\230\203\247 	r\327\330!q\210p\331 \210\310\211\311\211\311#\332 \210\333\334!+\210\211$\335\336\"!\337!)\210\207\211;\203\273 \340\316!\210`\340\341!\210`|\210\211c\207\325\342!\207" [completion-at-point-functions default-directory buffer-read-only buffer-file-name buffer-undo-list inhibit-modification-hooks re-search-forward "^\\s-*\\<%%\\>\\s-*$" nil t 2 0 (error) up-list -1 lisp-completion-at-point completion-at-point semantic-something-to-tag-table nonterminal semantic-ctxt-current-symbol try-completion message "Symbols is already complete" get-buffer-create "*Completions*" kill-all-local-variables erase-buffer run-hooks temp-buffer-setup-hook display-completion-list all-completions internal-temp-output-buffer-show forward-sexp 1 "No Completions." inhibit-read-only standard-output] 10 (#$ . 56813) nil])#@105 Insert a new %keyword declaration with NAME.
Assumes it is typed in with the correct casing.

(fn NAME)
(defalias 'semantic-grammar-insert-keyword #[257 "n\204 \300c\210\301\226\302\303\226\304\261\210\305u\207" ["\n" "%keyword " "        \"" "\"\n%put     " " summary\n\"\"\n" -2] 8 (#$ . 58199) "sKeyword: "])#@118 Search for a function tag for the grammar macro with name NAME.
Return the tag found or nil if not found.

(fn NAME)
(defalias 'semantic--grammar-macro-function-tag #[257 "\303\303p!\304\203# @\211@\262\230\203 @B\262A\262\202 \211\237\266\202)\206< \305\306!\205< \n\205< \307\304\310#@A!\304\203[ @\211A@\262\311=\203T @B\262A\262\202> \211\237\266\202@\207" [semantic-case-fold case-fold-search semanticdb-current-database semantic-something-to-tag-table nil featurep semantic/db semanticdb-find-tags-by-name t function] 7 (#$ . 58522)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put semantic--grammar-macro-function-tag speed -1 put byte-optimizer byte-compile-inline-expand] 5)#@72 Return the library part of the grammar macro defined by DEF.

(fn DEF)
(defalias 'semantic--grammar-macro-lib-part #[257 "\300\301\302\303@!!\"\303A!\211\304\305\"O\207" [format "-%s\\'" regexp-quote symbol-name 0 string-match] 8 (#$ . 59252)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put semantic--grammar-macro-lib-part speed -1 put byte-optimizer byte-compile-inline-expand] 5)#@181 Return a completion entry for the grammar macro defined by DEF.
If optional argument FULL is non-nil qualify the macro name with the
library found in DEF.

(fn DEF &optional FULL)
(defalias 'semantic--grammar-macro-compl-elt #[513 "@\300\301\302\303@!!\"\303A!\211\304\305\"O\266\203\203% \300\306#\202( \303!E\207" [format "-%s\\'" regexp-quote symbol-name 0 string-match "%s/%s"] 11 (#$ . 59665)])#@54 Return a completion dictionary of macro definitions.
(defalias 'semantic--grammar-macro-compl-dict #[0 "\300 \301\211\211\2033 @\262A\262\302@\"\204! \302@\"\203) B\262\202 \303!B\262\202 \203J @\262A\262\303\304\"B\262\2023 \207" [semantic-grammar-macros nil assoc semantic--grammar-macro-compl-elt t] 7 (#$ . 60082)])#@457 Visit the Emacs Lisp library where a grammar macro is implemented.
MACRO-NAME is a symbol that identifies a grammar macro.
LIBRARY is the name (sans extension) of the Emacs Lisp library where
to start searching the macro implementation.  Lookup in included
libraries, if necessary.
Find a function tag (in current tags table) whose name contains MACRO-NAME.
Select the buffer containing the tag's definition, and move point there.

(fn MACRO-NAME LIBRARY)
(defalias 'semantic-grammar-find-macro-expander #[514 "\205\275 \211\205\275 \303\304\"\305\306\307\"\206 !r\211q\210\303\310#\311\311p!\312\203C @\211@\262\230\203< @B\262A\262\202' \211\237\266\202)\206\\ \313\314!\205\\ \n\205\\ \315\312\307#@A!\312\203{ @\211A@\262\316=\203t @B\262A\262\202^ \211\237\266\202@)\262\211\203\261 \317\320!\210\321\322!!\210\211\211\3238\262\324!\203\246 \325!\266\202\202\253 \211\326H\266\202b\210\327!\207\321!\210\330\331#\266\203\207" [semantic-case-fold case-fold-search semanticdb-current-database format "%s.el" find-file-noselect locate-library t "%s-%s" semantic-something-to-tag-table nil featurep semantic/db semanticdb-find-tags-by-name function require semantic/decorate pop-to-buffer semantic-tag-buffer 4 overlayp overlay-start 0 semantic-momentary-highlight-tag message "No expander found in library %s for macro %s"] 11 (#$ . 60433) (byte-code "\300 \301\302\303\304\305$\"\211A\206 \306\207" [semantic--grammar-macro-compl-dict assoc completing-read "Macro: " nil 1 (nil nil)] 7)])#@61 Association of syntax elements, and the corresponding help.
(defvar semantic-grammar-syntax-help '(("symbol" . "Syntax: A symbol of alpha numeric and symbol characters") ("number" . "Syntax: Numeric characters.") ("punctuation" . "Syntax: Punctuation character.") ("semantic-list" . "Syntax: A list delimited by any valid list characters") ("open-paren" . "Syntax: Open Parenthesis character") ("close-paren" . "Syntax: Close Parenthesis character") ("string" . "Syntax: String character delimited text") ("comment" . "Syntax: Comment character delimited text") ("EMPTY" . "Syntax: Match empty text") ("ASSOC" . "Lambda Key: (ASSOC key1 value1 key2 value2 ...)") ("EXPAND" . "Lambda Key: (EXPAND <list id> <rule>)") ("EXPANDFULL" . "Lambda Key: (EXPANDFULL <list id> <rule>)") ("TAG" . "Generic Tag Generation: (TAG <name> <tag-class> [ :key value ]*)") ("VARIABLE-TAG" . "(VARIABLE-TAG <name> <lang-type> <default-value> [ :key value ]*)") ("FUNCTION-TAG" . "(FUNCTION-TAG <name> <lang-type> <arg-list> [ :key value ]*)") ("TYPE-TAG" . "(TYPE-TAG <name> <lang-type> <part-list> <parents> [ :key value ]*)") ("INCLUDE-TAG" . "(INCLUDE-TAG <name> <system-flag> [ :key value ]*)") ("PACKAGE-TAG" . "(PACKAGE-TAG <name> <detail> [ :key value ]*)") ("CODE-TAG" . "(CODE-TAG <name> <detail> [ :key value ]*)") ("ALIAS-TAG" . "(ALIAS-TAG <name> <aliasclass> <definition> [:key value]*)") ("$1" . "Match Value: Value from match list in slot 1") ("$2" . "Match Value: Value from match list in slot 2") ("$3" . "Match Value: Value from match list in slot 3") ("$4" . "Match Value: Value from match list in slot 4") ("$5" . "Match Value: Value from match list in slot 5") ("$6" . "Match Value: Value from match list in slot 6") ("$7" . "Match Value: Value from match list in slot 7") ("$8" . "Match Value: Value from match list in slot 8") ("$9" . "Match Value: Value from match list in slot 9") (",$1" . "Match Value: Value from match list in slot 1") (",$2" . "Match Value: Value from match list in slot 2") (",$3" . "Match Value: Value from match list in slot 3") (",$4" . "Match Value: Value from match list in slot 4") (",$5" . "Match Value: Value from match list in slot 5") (",$6" . "Match Value: Value from match list in slot 6") (",$7" . "Match Value: Value from match list in slot 7") (",$8" . "Match Value: Value from match list in slot 8") (",$9" . "Match Value: Value from match list in slot 9")) (#$ . 61972))
(defvar semantic-grammar-eldoc-last-data (list nil))#@295 Combine PREFIX and DOC, and shorten the result to fit in the echo area.

When PREFIX is a symbol, propertize its symbol name with FACE
before combining it with DOC.  If FACE is not provided, just
apply the nil face.

See also: `eldoc-echo-area-use-multiline-p'.

(fn PREFIX DOC &optional FACE)
(defalias 'semantic--docstring-format-sym-doc #[770 "9\203 \301\302!\303#\304P\262\305\306 !SGG\\Z\211\307X\2044 \310=\2044 \2038 GV\2038 P\207GV\203H \311\312\"\307O\207\211\313\314\315\310$\266\203Y\203[ \207\314OP\207" [eldoc-echo-area-use-multiline-p propertize symbol-name face ": " window-width minibuffer-window 0 t format "%s" ":? *\\'" nil string-match] 15 (#$ . 64445)])#@136 Return a one-line docstring for the given grammar MACRO.
EXPANDER is the name of the function that expands MACRO.

(fn MACRO EXPANDER)
(defalias 'semantic-grammar-eldoc-get-macro-docstring #[514 "\301\302!\210\211@=\203 A\207\303\304!\203M \305\306\307\"\"\211\2034 \211@\262\310\311\"\210\312\313\225\314OP\262\2029 \304!\262\211\203L \315\316\317#\320#\262B\207\303\321!\205i \322\323!\324\325#\326\322\323!\324\327#\330\321\314\"\260\207" [semantic-grammar-eldoc-last-data require eldoc fboundp eldoc-function-argstring help-split-fundoc documentation t string-match "\\`[^ )]* ?" "(" 0 nil semantic--docstring-format-sym-doc format "==> %s %s" default elisp-get-fnsym-args-string propertize symbol-name face font-lock-keyword-face " ==> " font-lock-function-name-face ": "] 9 (#$ . 65155)])#@659 Display additional eldoc information about grammar syntax elements.
Syntax element is the current symbol at point.
If it is associated a help string in `semantic-grammar-syntax-help',
return that string.
If it is a macro name, return a description of the associated expander
function parameter list.
If it is a function name, return a description of this function
parameter list.
If it is a variable name, return a brief (one-line) documentation
string for the variable.
If a default description of the current context can be obtained,
return it.
Otherwise return nil.
Override `semantic-idle-summary-current-symbol-info' in
`semantic-grammar-mode' buffers.
(defalias 'semantic-idle-summary-current-symbol-info-semantic-grammar-mode #[0 "\301\302!\210\303 @\211\205 \304\"A\211\204\245 \203\245 `\212eb\210\305\306\307\310\311$\203+ \312\224\202- dT)Y\204F \3131A \212\314\315!)\210\3100\202C \210\307\203\245 \316 \262\317!\262\205W \236A\262\211\203l \320!\203l \321\"\262\202\245 \203\212 \320!\203\212 \320\322!\203\202 \322!\202\205 \323!\262\202\245 \203\245 \324!\203\245 \320\325!\203\240 \325!\202\243 \326!\262\211\206\253 \327 \207" [semantic-grammar-syntax-help require eldoc semantic-ctxt-current-symbol assoc re-search-forward "^\\s-*\\<%%\\>\\s-*$" nil t 2 0 (error) up-list -1 semantic-grammar-macros intern-soft fboundp semantic-grammar-eldoc-get-macro-docstring eldoc-get-fnsym-args-string elisp-get-fnsym-args-string boundp eldoc-get-var-docstring elisp-get-var-docstring semantic-idle-summary-current-symbol-info-default] 8 (#$ . 65978)])
(byte-code "\300\301\302\303#\210\304\305\306\307#\207" [put semantic-idle-summary-current-symbol-info-semantic-grammar-mode definition-name semantic-idle-summary-current-symbol-info mode-local-bind ((semantic-idle-summary-current-symbol-info . semantic-idle-summary-current-symbol-info-semantic-grammar-mode)) (override-flag t) semantic-grammar-mode] 4)#@192 Return non-nil for tags that should have a boundary drawn.
Only tags of type `nonterminal' will be so marked.
Override `semantic-tag-boundary-p' in `semantic-grammar-mode'
buffers.

(fn TAG)
(defalias 'semantic-tag-boundary-p-semantic-grammar-mode #[257 "\211\211A@\262\211\300=\207" [nonterminal] 4 (#$ . 67923)])
(byte-code "\300\301\302\303#\210\304\305\306\307#\207" [put semantic-tag-boundary-p-semantic-grammar-mode definition-name semantic-tag-boundary-p mode-local-bind ((semantic-tag-boundary-p . semantic-tag-boundary-p-semantic-grammar-mode)) (override-flag t) semantic-grammar-mode] 4)#@154 Determine the name of the current function at POINT.
Override `semantic-ctxt-current-function' in `semantic-grammar-mode'
buffers.

(fn &optional POINT)
(defalias 'semantic-ctxt-current-function-semantic-grammar-mode #[256 "\212\211\203 \211b\210`\212eb\210\301\302\303\304\305$\203 \306\224\202 dT)Y\2046 \30711 \212\310\311!)\210\3040\2023 \210\303\205S \303C\312\313\314$\216\315!\210\312\316\312!\240\210\317 )\266\203)\207" [mode-local-active-mode re-search-forward "^\\s-*\\<%%\\>\\s-*$" nil t 2 0 (error) up-list -1 emacs-lisp-mode make-closure #[0 "\304\300!\210\301\242\211\203 \211@\211@AL\210A\266\202\202 \210\302\305\302!\207" [V0 V1 V2 mode-local-active-mode mode-local--deactivate-bindings mode-local--activate-bindings] 4] mode-local--deactivate-bindings mode-local--activate-bindings semantic-ctxt-current-function] 9 (#$ . 68528)])
(byte-code "\300\301\302\303#\210\304\305\306\307#\207" [put semantic-ctxt-current-function-semantic-grammar-mode definition-name semantic-ctxt-current-function mode-local-bind ((semantic-ctxt-current-function . semantic-ctxt-current-function-semantic-grammar-mode)) (override-flag t) semantic-grammar-mode] 4)#@163 Determine the argument index of the called function at POINT.
Override `semantic-ctxt-current-argument' in `semantic-grammar-mode'
buffers.

(fn &optional POINT)
(defalias 'semantic-ctxt-current-argument-semantic-grammar-mode #[256 "\212\211\203 \211b\210`\212eb\210\301\302\303\304\305$\203 \306\224\202 dT)Y\2046 \30711 \212\310\311!)\210\3040\2023 \210\303\205S \303C\312\313\314$\216\315!\210\312\316\312!\240\210\317 )\266\203)\207" [mode-local-active-mode re-search-forward "^\\s-*\\<%%\\>\\s-*$" nil t 2 0 (error) up-list -1 emacs-lisp-mode make-closure #[0 "\304\300!\210\301\242\211\203 \211@\211@AL\210A\266\202\202 \210\302\305\302!\207" [V0 V1 V2 mode-local-active-mode mode-local--deactivate-bindings mode-local--activate-bindings] 4] mode-local--deactivate-bindings mode-local--activate-bindings semantic-ctxt-current-argument] 9 (#$ . 69711)])
(byte-code "\300\301\302\303#\210\304\305\306\307#\207" [put semantic-ctxt-current-argument-semantic-grammar-mode definition-name semantic-ctxt-current-argument mode-local-bind ((semantic-ctxt-current-argument . semantic-ctxt-current-argument-semantic-grammar-mode)) (override-flag t) semantic-grammar-mode] 4)#@151 Determine the tag being assigned into at POINT.
Override `semantic-ctxt-current-assignment' in `semantic-grammar-mode'
buffers.

(fn &optional POINT)
(defalias 'semantic-ctxt-current-assignment-semantic-grammar-mode #[256 "\212\211\203 \211b\210`\212eb\210\301\302\303\304\305$\203 \306\224\202 dT)Y\2046 \30711 \212\310\311!)\210\3040\2023 \210\303\205S \303C\312\313\314$\216\315!\210\312\316\312!\240\210\317 )\266\203)\207" [mode-local-active-mode re-search-forward "^\\s-*\\<%%\\>\\s-*$" nil t 2 0 (error) up-list -1 emacs-lisp-mode make-closure #[0 "\304\300!\210\301\242\211\203 \211@\211@AL\210A\266\202\202 \210\302\305\302!\207" [V0 V1 V2 mode-local-active-mode mode-local--deactivate-bindings mode-local--activate-bindings] 4] mode-local--deactivate-bindings mode-local--activate-bindings semantic-ctxt-current-assignment] 9 (#$ . 70903)])
(byte-code "\300\301\302\303#\210\304\305\306\307#\207" [put semantic-ctxt-current-assignment-semantic-grammar-mode definition-name semantic-ctxt-current-assignment mode-local-bind ((semantic-ctxt-current-assignment . semantic-ctxt-current-assignment-semantic-grammar-mode)) (override-flag t) semantic-grammar-mode] 4)#@158 Determine the class of tags that can be used at POINT.
Override `semantic-ctxt-current-class-list' in `semantic-grammar-mode'
buffers.

(fn &optional POINT)
(defalias 'semantic-ctxt-current-class-list-semantic-grammar-mode #[256 "\212\211\203 \211b\210`\212eb\210\301\302\303\304\305$\203 \306\224\202 dT)Y\2046 \30711 \212\310\311!)\210\3040\2023 \210\303\203V \303C\312\313\314$\216\315!\210\312\316\312!\240\210\317 )\266\203\202W \320)\207" [mode-local-active-mode re-search-forward "^\\s-*\\<%%\\>\\s-*$" nil t 2 0 (error) up-list -1 emacs-lisp-mode make-closure #[0 "\304\300!\210\301\242\211\203 \211@\211@AL\210A\266\202\202 \210\302\305\302!\207" [V0 V1 V2 mode-local-active-mode mode-local--deactivate-bindings mode-local--activate-bindings] 4] mode-local--deactivate-bindings mode-local--activate-bindings semantic-ctxt-current-class-list (nonterminal token keyword)] 9 (#$ . 72095)])
(byte-code "\300\301\302\303#\210\304\305\306\307#\207" [put semantic-ctxt-current-class-list-semantic-grammar-mode definition-name semantic-ctxt-current-class-list mode-local-bind ((semantic-ctxt-current-class-list . semantic-ctxt-current-class-list-semantic-grammar-mode)) (override-flag t) semantic-grammar-mode] 4)#@288 Return the major mode active at POINT.
POINT defaults to the value of point in current buffer.
Return `emacs-lisp-mode' is POINT is within Lisp code, otherwise
return the current major mode.
Override `semantic-ctxt-current-mode' in `semantic-grammar-mode'
buffers.

(fn &optional POINT)
(defalias 'semantic-ctxt-current-mode-semantic-grammar-mode #[256 "\212\211\203 \211b\210`\212eb\210\300\301\302\303\304$\203 \305\224\202 dT)Y\2046 \30611 \212\307\310!)\210\3030\2023 \210\302\203: \311\202< \312 )\207" [re-search-forward "^\\s-*\\<%%\\>\\s-*$" nil t 2 0 (error) up-list -1 emacs-lisp-mode semantic-ctxt-current-mode-default] 7 (#$ . 73332)])
(byte-code "\300\301\302\303#\210\304\305\306\307#\207" [put semantic-ctxt-current-mode-semantic-grammar-mode definition-name semantic-ctxt-current-mode mode-local-bind ((semantic-ctxt-current-mode . semantic-ctxt-current-mode-semantic-grammar-mode)) (override-flag t) semantic-grammar-mode] 4)#@240 Return a string abbreviation of TAG.
Optional PARENT is not used.
Optional COLOR is used to flag if color is added to the text.
Override `semantic-format-tag-abbreviate' in `semantic-grammar-mode'
buffers.

(fn TAG &optional PARENT COLOR)
(defalias 'semantic-format-tag-abbreviate-semantic-grammar-mode #[769 "\211A@\262\300#\301\267\202 \211\302P\207\303\207\207\304\305!\306R\207" [semantic-format-tag-name #s(hash-table size 4 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (nonterminal 17 setting 21 rule 23 keyword 23)) ":" "%settings%" "%" symbol-name " "] 9 (#$ . 74284)])
(byte-code "\300\301\302\303#\210\304\305\306\307#\207" [put semantic-format-tag-abbreviate-semantic-grammar-mode definition-name semantic-format-tag-abbreviate mode-local-bind ((semantic-format-tag-abbreviate . semantic-format-tag-abbreviate-semantic-grammar-mode)) (override-flag t) semantic-grammar-mode] 4)#@239 Return a string summarizing TAG.
Optional PARENT is not used.
Optional argument COLOR determines if color is added to the text.
Override `semantic-format-tag-summarize' in `semantic-grammar-mode'
buffers.

(fn TAG &optional PARENT COLOR)
(defalias 'semantic-format-tag-summarize-semantic-grammar-mode #[769 "\211A@\262\302#\303\211\304\267\202g\305\262\306\307\310	!G\"\262\202q\311\262\303C\312\313\"\314\211p!\303\203P @\211A@\262\315=\203I @B\262A\262\2023 \211\237\266\202!\303\203z \316\317\f\211@\262!@\211@\262\"\203s @B\262A\262\202V \211\237\266\202)\314!\303\203\233 @!\203\224 @B\262A\262\202\203 \211\237\266\320\321\322\3238\262\"\266\202\242\203\274 \324\325\242!P\202\275 \326Q\266\202\202q\327\262\321\322\3238\262\"\266\202\330\322\3238\262\"\266\202\211\331\322\3238\262\"\266\203\203\377 \332\333B\334#\262\211\203\n\306\335\"\202\326\203\306\336\203\334\202\326#\202 \326P\266\204\202q\337\262\321\322\3238\262\"\266\202\211\331\322\3238\262\"\266\203\211\203Q\306\335\"\202R\326\203`\334\332\333\334#P\202a\326P\266\203\202q\340#\262\203\203\341\342\"\262\203\221\203\221\211\203\221\341\343\"\262\203\232Q\207\207" [semantic-case-fold case-fold-search semantic-format-tag-name nil #s(hash-table size 4 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (nonterminal 19 keyword 35 token 195 assoc 294)) "Nonterminal: " format " with %d match lists." semantic-tag-components "Keyword: " make-closure #[257 "\300\242?\205 \300\301\302\303\304\3058\262\"\266\202\"A\240\207" [V0 assoc "summary" :value plist-get 2] 10 "\n\n(fn PUT)"] semantic-something-to-tag-table put string-match regexp-quote " = " :value plist-get 2 " - " read "" "Token: " :rest :type mapconcat identity " " " <%s>" "%s%S" "Assoc: " semantic-format-tag-abbreviate semantic--format-colorize-text label comment] 16 (#$ . 75207)])
(byte-code "\300\301\302\303#\210\304\305\306\307#\207" [put semantic-format-tag-summarize-semantic-grammar-mode definition-name semantic-format-tag-summarize mode-local-bind ((semantic-format-tag-summarize . semantic-format-tag-summarize-semantic-grammar-mode)) (override-flag t) semantic-grammar-mode] 4)#@163 Provide a semantic analysis object describing a context in a grammar.
Override `semantic-analyze-current-context' in `semantic-grammar-mode'
buffers.

(fn POINT)
(defalias 'semantic-analyze-current-context-semantic-grammar-mode #[257 "`\212eb\210\301\302\303\304\305$\203 \306\224\202 dT)Y\204. \3071) \212\310\311!)\210\3040\202+ \210\303\203K \303C\312\313\314$\216\315!\210\312\316\312!\240\210\317!)\207\303\320 \211@\3058\303\321 \322@p\"\262\323\324p\325\303\326\327	\203q 	C\202s \330\303\331\f&\f\262\207" [mode-local-active-mode re-search-forward "^\\s-*\\<%%\\>\\s-*$" nil t 2 0 (error) up-list -1 emacs-lisp-mode make-closure #[0 "\304\300!\210\301\242\211\203 \211@\211@AL\210A\266\202\202 \210\302\305\302!\207" [V0 V1 V2 mode-local-active-mode mode-local--deactivate-bindings mode-local--activate-bindings] 4] mode-local--deactivate-bindings mode-local--activate-bindings semantic-analyze-current-context semantic-ctxt-current-symbol-and-bounds semantic-ctxt-current-class-list semantic-find-first-tag-by-name semantic-analyze-context :buffer :scope :bounds :prefix :prefixtypes :prefixclass] 20 (#$ . 77496)])
(byte-code "\300\301\302\303#\210\304\305\306\307#\207" [put semantic-analyze-current-context-semantic-grammar-mode definition-name semantic-analyze-current-context mode-local-bind ((semantic-analyze-current-context . semantic-analyze-current-context-semantic-grammar-mode)) (override-flag t) semantic-grammar-mode] 4)#@168 Return a list of possible completions based on CONTEXT.
Override `semantic-analyze-possible-completions' in
`semantic-grammar-mode' buffers.

(fn CONTEXT &rest FLAGS)
(defalias 'semantic-analyze-possible-completions-semantic-grammar-mode #[385 "\302\303!\210`\212eb\210\304\305\306\307\310$\203 \311\224\202 dT)Y\2042 \3121- \212\313\314!)\210\3070\202/ \210\306\203O \306C\315\316\317$\216\320!\210\315\321\315!\240\210\322!)\207r\323\324\"q\210\325\323\326\"!@\211\3271\213 \211:\205\205 \211@;\205\205 \211A@9\205\205 \211A@\205\205 \3108<\205\205 \3308<0\262\202\217 \210\306\262\203\232 \211\211@\262\202\253 \211;\203\243 \211\202\253 \211@;\205\253 \211@\211G\331p!\306\203\327 \332\311\306@\211@\262\311	&\307=\203\320 @B\262A\262\202\261 \211\237\266\202\262\333\323\334\"\"\266\203)\207" [mode-local-active-mode semantic-case-fold require semantic/analyze/complete re-search-forward "^\\s-*\\<%%\\>\\s-*$" nil t 2 0 (error) up-list -1 emacs-lisp-mode make-closure #[0 "\304\300!\210\301\242\211\203 \211@\211@AL\210A\266\202\202 \210\302\305\302!\207" [V0 V1 V2 mode-local-active-mode mode-local--deactivate-bindings mode-local--activate-bindings] 4] mode-local--deactivate-bindings mode-local--activate-bindings semantic-analyze-possible-completions eieio-oref buffer reverse prefix (error) 3 semantic-something-to-tag-table compare-strings semantic-analyze-tags-of-class-list prefixclass] 15 (#$ . 78974)])
(byte-code "\300\301\302\303#\210\304\305\306\307#\210\310\311!\207" [put semantic-analyze-possible-completions-semantic-grammar-mode definition-name semantic-analyze-possible-completions mode-local-bind ((semantic-analyze-possible-completions . semantic-analyze-possible-completions-semantic-grammar-mode)) (override-flag t) semantic-grammar-mode provide semantic/grammar] 4)
