;ELC ;;; Compiled ;;; in Emacs version 27.1 ;;; with all optimizations. ;;; This file uses dynamic docstrings, first added in Emacs 19.29. ;;; This file does not contain utf-8 non-ASCII characters, ;;; and so can be loaded in Emacs versions earlier than 23. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (byte-code "\300\301!\210\300\302!\210\300\303!\210\300\304!\210\300\305!\210\300\306!\210\300\307!\210\300\310!\207" [require semantic semantic/wisent semantic/ctxt semantic/format semantic/grammar-wy semantic/idle help-fns semantic/analyze] 2) #@44 Regexp matching C-like character literals. (defconst semantic-grammar-lex-c-char-re "'\\s\\?.'" (#$ . 654)) #@37 Detect and create a prologue token. (defvar semantic-grammar-lex-prologue nil (#$ . 768)) (defalias 'semantic-grammar-lex-prologue #[nil "\300\207" [nil] 1]) (byte-code "\301\300\302M\207" [semantic-grammar-lex-prologue ((looking-at #1="\\<%{") (semantic-lex-push-token (semantic-lex-token 'PROLOGUE (point) (save-excursion (semantic-lex-unterminated-syntax-protection 'PROLOGUE (forward-char) (forward-sexp 1) (point)))))) #[nil "\306``dB\307\310\311!\203i\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\204a\211AA\202c\211A\262A\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 #1# PROLOGUE forward-sexp 1 (error) debug-on-error semantic-lex-debug-analyzers semantic-lex-unterminated-syntax-end-function] 8 "Detect and create a prologue token."]] 2) #@52 Return the start position of the grammar epilogue. (defalias 'semantic-grammar-epilogue-start #[nil "\212eb\210\300\301\302\303\304$\203\305\224\202dT)\207" [re-search-forward "^\\s-*\\<%%\\>\\s-*$" nil t 2 0] 5 (#$ . 1771)]) (put 'semantic-grammar-epilogue-start 'byte-optimizer 'byte-compile-inline-expand) #@57 Detect and create an epilogue or percent-percent token. (defvar semantic-grammar-lex-epilogue nil (#$ . 2090)) (defalias 'semantic-grammar-lex-epilogue #[nil "\300\207" [nil] 1]) (byte-code "\301\300\302M\207" [semantic-grammar-lex-epilogue ((looking-at #1="\\<%%\\>") (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)))) #[nil "\306``dB\307\310\311!\203a\307\224\307\225\312\211\212eb\210\313\314\306\315\316$\2030\307\224\2022dT)Y\203=\317dBB B\211@\211\211A@\247\204X\211AA\202Z\211A\262A\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 #1# PERCENT_PERCENT re-search-forward "^\\s-*\\<%%\\>\\s-*$" t 2 EPILOGUE class end start] 7 "Detect and create an epilogue or percent-percent token."]] 2) #@145 Lexical analyzer that handles Semantic grammar buffers. It ignores whitespaces, newlines and comments. See `semantic-lex' for more information. (defalias 'semantic-grammar-lexer #[(start end &optional depth length) "\306\307\310 \n#\210`\306\211 @ A\311BC\206DE \nBF\306G\ndV\2034\312\313\nd#\210\314 pHI\315\216\316J!\210 b\210`\nW\203hK\203X\fGKX\203h\317\320!\203e\311\225A\202\341\317\321!\203r\311\225A\202\341\317\322!\203\326\323`\212L\203\220M\203\220\306u\210\324\325!\210`\202\264\3261\240\306u\210\324\325!\210`0\202\264\210\323NF@FA#b\210`\211A\262)BB\fB\211@\211\211A@\247\204\312\211AA\202\314\211A\262A\262A\202\341\317\327!\203*\311\224\311\225\330O\211\212eb\210\331\332\306\333\334$\203\370\311\224\202\372dT)Y\203\335OdO \nBB\fB\211@\211\211A@\247\204\211AA\202\211A\262A\262A+\202\341\317\336!\203\200\337\311!\211\340P!\205E\211;\205E\341P\"\262\211\262\205O\211J\262\211Q\205|Q\311\224\311\225BB\fB\211@\211\211A@\247\204r\211AA\202t\211A\262A\262\211A)\204\341\317\342!\203\355\337\311!R\311\224S\311\225T\343U\306VU\203\300V\204\300\344U@AR\"\203\267U@@V\202\231UA\211U\204\236V\206\306\345STBB\fB\211@\211\211A@\247\204\337\211AA\202\341\211A\262A\262\211A-\204\341\317W!\203\346\311\224\311\225BB\fB\211@\211\211A@\247\204\211AA\202\211A\262A\262A\202\341\317\347!\203x\350`\212L\2035M\2035\324\325!\210`\202V\3511B\324\325!\210`0\202V\210\350NF@FA#b\210`\211A\262)BB\fB\211@\211\211A@\247\204l\211AA\202n\211A\262A\262A\202\341\317X!\203\257`Y\352\325!\210`Y=\203\226\353\354\355 \"\210\202\235n\203\235\356u\210`Y=\203\250\312\357!\210`A)\202\341\317\360!\203 \361`\212L\203\312M\203\312\324\325!\210`\202\353\3621\327\324\325!\210`0\202\353\210\361NF@FA#b\210`\211A\262)BB\fB\211@\211\211A@\247\204\211AA\202\211A\262A\262A\202\341\317\363!\203\217\337\311!Z\311\224[\311\225\211\\[Z]\364^\306_]\311V\203P\365Z^\"\211_\204P]S]\366Z\311]#Z\202,_\203a_@_[]\\\\_\206g\367[\\BB\fB\211@\211\211A@\247\204\200\211AA\202\202\211A\262A\262\211A.\204\341\317\370!\203\206\337\311!\371\306`ab\372ba@\"\211`\203IE\203\272BEW\203\351BTB`A@\311\224\311\225BB\fB\211@\211\211A@\247\204\334\211AA\202\336\211A\262A\262\211A\202\202\334`8\311\224\212L\203M\203\373\325!\210`\202&\3741\373\325!\210`0\202&\210\334`8NF@FA#b\210`\211A\262)BB\fB\211@\211\211A@\247\204<\211AA\202>\211A\262A\262\211A\202\202\372baA\"\211`\205\202BSB`A@\311\224\311\225BB\fB\211@\211\211A@\247\204x\211AA\202z\211A\262A\262\211A+\204\341\317\375!\203\341\376`\212L\203\241M\203\241\324\325!\210`\202\302\3771\256\324\325!\210`0\202\302\210\376NF@FA#b\210`\211A\262)BB\fB\211@\211\211A@\247\204\330\211AA\202\332\211A\262A\262AA@=\203\363\312\201h@\f@#\210A@Ab\210c\203'\201i \204r\201jd!q\210\212db\210\201k *\203'\201lc\201m\"\210\f@e\205c\306C\201n\311\201o\201p\201q!\201r\"\334$\216\203R\211\201s!\240\210\201t\201u\201vB#!)\262\266\202E+ \203\253 \211A\242\211f\211g\203\225\201w\201xg@gA@#\210 \211A\242\211g\204{f@NF@FA#b\210`\211A\266* b\210\f\237. \207" [semantic-lex-block-streams start end starting-position semantic-lex-token-stream semantic-lex-block-stack nil run-hook-with-args semantic-lex-reset-functions 0 error "semantic-grammar-lexer: end (%d) > point-max (%d)" syntax-table #[nil "rq\210\302 !)\207" [#1=#:buffer #2=#:table 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 "-.'" point-at-eol -1 "Strange comment syntax prevents lexical analysis" "\\s'\\s-*(" PREFIXED_LIST (error) "\\(\\s.\\|\\s$\\|\\s'\\)+" ((GT . ">") (LT . "<") (OR . "|") (SEMI . ";") (COLON . ":")) rassoc substring punctuation "\\s(\\|\\s)" ((("(" LPAREN PAREN_BLOCK) ("{" LBRACE BRACE_BLOCK)) (")" RPAREN) ("}" RBRACE)) assoc forward-list (error) "\\=" SEXP (error) tmp-start semantic-lex-end-point semantic-lex-current-depth depth semantic-lex-depth semantic-lex-maximum-depth semantic-lex-analysis-bounds parse-sexp-lookup-properties #1# #2# semantic-lex-syntax-table length debug-on-error semantic-lex-debug-analyzers semantic-lex-unterminated-syntax-end-function class semantic-flex-keywords-obarray #3=#:key #4=#:val #5=#:pos #6=#:end #7=#:lst #8=#:elt semantic-grammar-lex-c-char-re semantic-lex-comment-regex comment-start-point #9=#:val #10=#:pos #11=#:end #12=#:len #13=#:lst #14=#:elt #15=#:elt #16=#:lst #17=#:val semantic-current-input-throw-symbol semantic--on-input-start-marker semantic-lex-debug last blk "semantic-grammar-lexer: endless loop at %d, after %S" input-pending-p marker-buffer accept-process-output throw lex make-byte-code "\300\242\205 \301\300\242!\207" vconcat vector [delete-overlay] semantic-lex-highlight-token read-event format "%S :: Depth: %d :: SPC - continue" message "semantic-grammar-lexer: `%s' block from %S is unterminated"] 9 (#$ . 3142)]) #@47 Run `semantic-grammar-lex' on current buffer. (defalias 'semantic-grammar-lex-buffer #[nil "\302 \210\303\304ed\"r\305\306!q\210\307 \210\310 p\"\210eb\210\311p!*\207" [semantic-lex-analyzer token-stream semantic-lex-init semantic-grammar-lexer semantic-lex get-buffer-create "*semantic-grammar-lex*" erase-buffer pp pop-to-buffer] 3 (#$ . 8543) nil]) #@81 Return expansion of built-in ASSOC expression. ARGS are ASSOC's key value list. (defalias 'semantic-grammar-ASSOC #[(&rest args) "\302\303\304\305 \")B\207" [key args t semantic-tag-make-assoc-list mapcar #[(i) "\203\n\302 D\202 ?\207" [key i quote] 2]] 4 (#$ . 8903)]) #@57 Return non-nil if SYM is bound to the `quote' function. (defalias 'semantic-grammar-quote-p #[(sym) "\3011 \302!\302\303!=0\207\210\304\207" [sym (error) indirect-function quote nil] 3 (#$ . 9186)]) (put 'semantic-grammar-quote-p 'byte-optimizer 'byte-compile-inline-expand) #@61 Return non-nil if SYM is bound to the `backquote' function. (defalias 'semantic-grammar-backquote-p #[(sym) "\3011 \302!\302\303!=0\207\210\304\207" [sym (error) indirect-function backquote nil] 3 (#$ . 9469)]) (put 'semantic-grammar-backquote-p 'byte-optimizer 'byte-compile-inline-expand) #@103 Return the children of tag TAG. Override semantic-tag-components in `semantic-grammar-mode' buffers. (defalias 'semantic-tag-components-semantic-grammar-mode #[(tag) "\302\303\3048) \"*\207" [tag attribute :children plist-get 2] 3 (#$ . 9769)]) (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) #@97 Return the name of the first tag of class CLASS found. Warn if other tags of class CLASS exist. (defalias 'semantic-grammar-first-tag-name #[(class) "\304p!\305\211\203\"\n @\211A@)=\203 @B A\211\204\n\237*\211\205: @\211@) A\203:\306\307\n\"\210)\207" [result tags class tag semantic-something-to-tag-table nil message "*** Ignore all but first declared %s"] 5 (#$ . 10310)]) #@123 Return the list of symbols defined in tags of class CLASS. That is tag names plus names defined in tag attribute `:rest'. (defalias 'semantic-grammar-tag-symbols #[(class) "\304p!\305\211\203\"\n @\211A@)=\203 @B A\211\204\n\237*\306\307\310\311 \"\")\207" [result tags class tag semantic-something-to-tag-table nil apply append mapcar #[(tag) "\302\303\211@)\304\305\3068) \"*B\"\207" [tag attribute mapcar intern :rest plist-get 2] 7]] 6 (#$ . 10709)]) #@42 Return the readable string form of ITEM. (defalias 'semantic-grammar-item-text #[(item) "\302 \"\203\303\304 \305\306#P\207 \207" [semantic-grammar-lex-c-char-re item string-match "?" substring 1 -1] 5 (#$ . 11190)]) (put 'semantic-grammar-item-text 'byte-optimizer 'byte-compile-inline-expand) #@50 Return symbol or character value of ITEM string. (defalias 'semantic-grammar-item-value #[(item) "\302 \"\203\303\304\305 \306\307#P!\207\310 !\207" [semantic-grammar-lex-c-char-re item string-match read "?" substring 1 -1 intern] 6 (#$ . 11494)]) (put 'semantic-grammar-item-value 'byte-optimizer 'byte-compile-inline-expand) #@49 Return grammar prologue code as a string value. (defalias 'semantic-grammar-prologue #[nil "\304\305\306p!\307\211\203$ @\211A@)\310=\203 @B A\211\204\f\237*\"\211\203u\212\n\211\311\n8)\312 !\203C\313 !\202F \314H*b\210\315\307w\210`\n\211\311\n8)\312 !\203c\316 !\202f \317H*b\210\320\307x\210`{\321P)\202v\322)\207" [result tags tag o 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" ""] 5 (#$ . 11830)]) #@49 Return grammar epilogue code as a string value. (defalias 'semantic-grammar-epilogue #[nil "\304\305\306p!\307\211\203$ @\211A@)\310=\203 @B A\211\204\f\237*\"\211\203\200\212\n\211\311\n8)\312 !\203C\313 !\202F \314H*b\210\315\307w\210`\n\211\311\n8)\312 !\203c\316 !\202f \317H*b\210\320\307x\210\321\322\323 \324#\210\320\307x\210`{\325P)\202\201\326)\207" [result tags tag o 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" point-at-bol t "\n" ""] 6 (#$ . 12369)]) #@117 Return name of file sans directory BUFFER is visiting. No argument or nil as argument means use the current buffer. (defalias 'semantic-grammar-buffer-file #[(&optional buffer) "\301\302!!\207" [buffer file-name-nondirectory buffer-file-name] 3 (#$ . 13011)]) (put 'semantic-grammar-buffer-file 'byte-optimizer 'byte-compile-inline-expand) #@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 #[nil "\304\305!\206$\306\307\310!!)\311 !\312\313\314\n\" \"\315 \316 #\317\nQ+\207" [buffer file ext i semantic-grammar-first-tag-name package nil file-name-nondirectory buffer-file-name file-name-extension string-match format "\\([.]\\)%s\\'" substring 0 "-"] 4 (#$ . 13359)]) #@70 Return the number of expected shift/reduce conflicts in the package. (defalias 'semantic-grammar-expected-conflicts #[nil "\300\301!\207" [semantic-grammar-tag-symbols expectedconflicts] 2 (#$ . 13949)]) #@61 Return the %languagemode value as a list of symbols or nil. (defalias 'semantic-grammar-languagemode #[nil "\300\301!\207" [semantic-grammar-tag-symbols languagemode] 2 (#$ . 14159)]) (put 'semantic-grammar-languagemode 'byte-optimizer 'byte-compile-inline-expand) #@54 Return the %start value as a list of symbols or nil. (defalias 'semantic-grammar-start #[nil "\300\301!\207" [semantic-grammar-tag-symbols start] 2 (#$ . 14430)]) (put 'semantic-grammar-start 'byte-optimizer 'byte-compile-inline-expand) #@50 Return the %scopestart value as a symbol or nil. (defalias 'semantic-grammar-scopestart #[nil "\300\301\302!\206\303!\207" [intern semantic-grammar-first-tag-name scopestart "nil"] 3 (#$ . 14673)]) (put 'semantic-grammar-scopestart 'byte-optimizer 'byte-compile-inline-expand) #@49 Return the %quotemode value as a symbol or nil. (defalias 'semantic-grammar-quotemode #[nil "\300\301\302!\206\303!\207" [intern semantic-grammar-first-tag-name quotemode "nil"] 3 (#$ . 14958)]) (put 'semantic-grammar-quotemode 'byte-optimizer 'byte-compile-inline-expand) #@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 #[nil "\303\304\305p!\306\211\203$ @\211A@)\307=\203 @B A\211\204\f\237*\"\207" [result tags tag mapcar #[(key) "\303\304\n\305\n8) \"*\306\211@)!B\207" [key attribute tag :value plist-get 2 intern] 4] semantic-something-to-tag-table nil keyword] 5 (#$ . 15240)]) (put 'semantic-grammar-keywords 'byte-optimizer 'byte-compile-inline-expand) #@41 Return the list of KEYWORDS properties. (defalias 'semantic-grammar-keyword-properties #[(keywords) "\306p!\307\211\203\" @\211A@)\310=\203 @B A\211\204\n\237*\307\211\211\211\211\211\211\211\203\301@A\311\312\211@)\313\314\n\315\n8)\"*B\"\203<@A\316\"\211\203h@\317\314\n\315\n8)\"*\211\203h\312@@!\320@A! \fE BA\211\204\237\202h . \207" [result tags tag props pval pkey semantic-something-to-tag-table nil put mapcar intern :rest plist-get 2 rassq :value read assoc plist key keys puts attribute keywords] 10 (#$ . 15812)]) #@244 Return defined lexical tokens. That is an alist (TYPE . DEFS) where type is a %token 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 #[nil "\306\211\211\211\211\211\211\211\307p!\306\211\203<@\211A@)\305=\2033@BA\211\204\237*\203\252@A\f\211\310\311\f\312\f8)\"+\211\203B\f\313\311\f\312\f8)\"*\305 \"\211\204\213 C\211B \203B @ A\314\n\"\204\213 \315\n!C AB\241\210\202\213\307p!\306\211\203\324@\211A@)\316=\203\313@BA\211\204\266\237*\203R@A\f\211@)\f\317\311\f\312\f8)\"*B\f\211\310\311\f\312\f8)\"+\206\320\f\313\311\f\312\f8)\"*\305 \"\211\204: C\211B \203\332\315 @! A \nB AB\241\210\202:.\207" [value names term type tag assoc nil semantic-something-to-tag-table :type plist-get 2 :value string-match intern token :rest "" alist tags result attribute semantic-grammar-lex-c-char-re] 9 (#$ . 16443)]) #@187 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. (defalias 'semantic-grammar-token-%type-properties #[(&optional props) "\306\307p!\306\211\203$\n@\211A@)\300=\203\n@ B\nA\211\204\f \237*\306\211\203|\f@\211\211@)\211\310\311E B \312\313 \314 8)\"*\306\211\203t\f@\315@!\316A\206h\317!E B\fA\211\204V*\fA\211\204.* )\207" [type result tags tag --dolist-tail-- props nil semantic-something-to-tag-table :declared t :value plist-get 2 intern read "nil" attribute e] 5 (#$ . 17565)]) #@70 For types found in TOKENS, return properties set by %put statements. (defalias 'semantic-grammar-token-%put-properties #[(tokens) "\306\211\307p!\306\211\203& @\211A@)\305=\203 @\nB A\211\204\n\237*\306\211\203\267@\211\211@) \310\311\f\312\f8)\"*B\306\211\203\255@\313\"\211\203\244 @ \314\311\f\312\f8)\"*\306\211\203\243@\315@!\316A\206\225\317!EBA\211\204\201*A\211\204T*A\211\2041**\207" [props found result tags tag put nil semantic-something-to-tag-table :rest plist-get 2 assoc :value intern read "nil" --dolist-tail-- attribute type tokens e] 5 (#$ . 18229)]) #@302 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. (defalias 'semantic-grammar-token-properties #[(tokens) "\302!\303 !)\207" [tokens props semantic-grammar-token-%put-properties semantic-grammar-token-%type-properties] 2 (#$ . 18888)]) (put 'semantic-grammar-token-properties 'byte-optimizer 'byte-compile-inline-expand) #@96 Return macro definitions from %use-macros statements. Also load the specified macro libraries. (defalias 'semantic-grammar-use-macros #[nil "\306\211\307p!\306\211\203& @\211A@)\310=\203 @\nB A\211\204\n\237*\306\211\203\223 @\311\f\211\312\313\f\314\f8)\"+!\3151S\316 !0\202W\210\202X\210\f\317\313\f\314\f8)\"*\306\211\203\213 @\311!\311\320\321 #!BB A\211\204p* A\211\2040*\237*\207" [defs lib result tags tag --dolist-tail-- nil semantic-something-to-tag-table macro intern :type plist-get 2 (error) require :value format "%s-%s" attribute mac] 7 (#$ . 19468)]) #@47 List of associations (MACRO-NAME . EXPANDER). (defvar semantic-grammar-macros nil (#$ . 20090)) (make-variable-buffer-local 'semantic-grammar-macros) #@47 Build and return the alist of defined macros. (defalias 'semantic-grammar-macros #[nil "\301\302 \"\207" [semantic-grammar-macros append semantic-grammar-use-macros] 3 (#$ . 20246)]) #@48 Return the default value of the keyword table. (defalias 'semantic-grammar-keywordtable-builder-default #[nil "\304\305\306p!\307\211\203$ @\211A@)\310=\203 @B A\211\204\f\237*\"\311\312 D\312\313 !DE)\207" [result tags tag keywords mapcar #[(key) "\303\304\n\305\n8) \"*\306\211@)!B\207" [key attribute tag :value plist-get 2 intern] 4] semantic-something-to-tag-table nil keyword semantic-lex-make-keyword-table quote semantic-grammar-keyword-properties] 5 (#$ . 20436)]) #@33 Return the keyword table value. (defalias 'semantic-grammar-keywordtable-builder #[nil "\304\211\305\306\307!\305\204\"\211\262\204\" \262\n\205 \310\n\"\262\203M\211\204M\302N\203<\310\302N\"\211\262\204\"\211\311N\206F\211\312N\262\262\202\"\266\203\211\262\205a\211\203_N\205aJ\266\203\206\326\211\211\313N\262\205\326\211\211\313N\262\305\306\307!\305\204\225\211\262\204\225 \262\n\205\223\310\n\"\262\203\300\211\204\300\302N\203\257\310\302N\"\211\262\204\225\211\311N\206\271\211\312N\262\262\202\225\266\203\211\262\205\324\211\203\322N\205\324J\266\203\262\211\203\342 \202\344\314 )\207" [mode-local-active-mode major-mode mode-local-symbol-table #1=#:override 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] 13 (#$ . 20934)]) (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 #[nil "\302 \303\304D\304\305!\306 !*DE)\207" [tokens props semantic-grammar-tokens semantic-lex-make-type-table quote semantic-grammar-token-%put-properties semantic-grammar-token-%type-properties] 5 (#$ . 21968)]) #@50 Return the value of the table of lexical tokens. (defalias 'semantic-grammar-tokentable-builder #[nil "\304\211\305\306\307!\305\204\"\211\262\204\" \262\n\205 \310\n\"\262\203M\211\204M\302N\203<\310\302N\"\211\262\204\"\211\311N\206F\211\312N\262\262\202\"\266\203\211\262\205a\211\203_N\205aJ\266\203\206\326\211\211\313N\262\205\326\211\211\313N\262\305\306\307!\305\204\225\211\262\204\225 \262\n\205\223\310\n\"\262\203\300\211\204\300\302N\203\257\310\302N\"\211\262\204\225\211\311N\206\271\211\312N\262\262\202\225\266\203\211\262\205\324\211\203\322N\205\324J\266\203\262\211\203\342 \202\344\314 )\207" [mode-local-active-mode major-mode mode-local-symbol-table #1=#:override 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] 13 (#$ . 22308)]) (put 'semantic-grammar-tokentable-builder 'mode-local-overload t) #@46 Return the default value of the parse table. (defalias 'semantic-grammar-parsetable-builder-default #[nil "\300\301!\207" [error "`semantic-grammar-parsetable-builder' not defined"] 2 (#$ . 23351)]) #@32 Return the parser table value. (defalias 'semantic-grammar-parsetable-builder #[nil "\304\211\305\306\307!\305\204\"\211\262\204\" \262\n\205 \310\n\"\262\203M\211\204M\302N\203<\310\302N\"\211\262\204\"\211\311N\206F\211\312N\262\262\202\"\266\203\211\262\205a\211\203_N\205aJ\266\203\206\326\211\211\313N\262\205\326\211\211\313N\262\305\306\307!\305\204\225\211\262\204\225 \262\n\205\223\310\n\"\262\203\300\211\204\300\302N\203\257\310\302N\"\211\262\204\225\211\311N\206\271\211\312N\262\262\202\225\266\203\211\262\205\324\211\203\322N\205\324J\266\203\262\211\203\342 \202\344\314 )\207" [mode-local-active-mode major-mode mode-local-symbol-table #1=#:override 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] 13 (#$ . 23556)]) (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 #[nil "\300\301!\207" [error "`semantic-grammar-setupcode-builder' not defined"] 2 (#$ . 24581)]) #@36 Return the parser setup code form. (defalias 'semantic-grammar-setupcode-builder #[nil "\304\211\305\306\307!\305\204\"\211\262\204\" \262\n\205 \310\n\"\262\203M\211\204M\302N\203<\310\302N\"\211\262\204\"\211\311N\206F\211\312N\262\262\202\"\266\203\211\262\205a\211\203_N\205aJ\266\203\206\326\211\211\313N\262\205\326\211\211\313N\262\305\306\307!\305\204\225\211\262\204\225 \262\n\205\223\310\n\"\262\203\300\211\204\300\302N\203\257\310\302N\"\211\262\204\225\211\311N\206\271\211\312N\262\262\202\225\266\203\211\262\205\324\211\203\322N\205\324J\266\203\262\211\203\342 \202\344\314 )\207" [mode-local-active-mode major-mode mode-local-symbol-table #1=#:override 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] 13 (#$ . 24788)]) (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 #[nil "\301P\207" [semantic--grammar-package "--keyword-table"] 2 (#$ . 25980)]) (put 'semantic-grammar-keywordtable 'byte-optimizer 'byte-compile-inline-expand) #@46 Return the variable name of the token table. (defalias 'semantic-grammar-tokentable #[nil "\301P\207" [semantic--grammar-package "--token-table"] 2 (#$ . 26237)]) (put 'semantic-grammar-tokentable 'byte-optimizer 'byte-compile-inline-expand) #@46 Return the variable name of the parse table. (defalias 'semantic-grammar-parsetable #[nil "\301P\207" [semantic--grammar-package "--parse-table"] 2 (#$ . 26486)]) (put 'semantic-grammar-parsetable 'byte-optimizer 'byte-compile-inline-expand) #@47 Return the name of the parser setup function. (defalias 'semantic-grammar-setupfunction #[nil "\301P\207" [semantic--grammar-package "--install-parser"] 2 (#$ . 26735)]) (put 'semantic-grammar-setupfunction 'byte-optimizer 'byte-compile-inline-expand) #@34 Return OBJECT as a string value. (defalias 'semantic-grammar-as-string '(macro . #[(object) "\301\302D\303DF\207" [object if stringp pp-to-string] 5 (#$ . 26994)])) #@63 Insert declaration of constant NAME with VALUE and DOCSTRING. (defalias 'semantic-grammar-insert-defconst #[(name value docstring) "`\304\305 \n $c\210\212b\210\306 *\207" [start name value docstring format "(defconst %s\n%s%S)\n\n" indent-sexp] 5 (#$ . 27168)]) #@63 Insert declaration of constant NAME with VALUE and DOCSTRING. (defalias 'semantic-grammar-insert-defconst-with-eval #[(name value docstring) "`\304\305 \n $c\210\212b\210\306 *\207" [start name value docstring format "(eval-and-compile (defconst %s\n%s%S))\n\n" indent-sexp] 5 (#$ . 27439)]) #@62 Insert declaration of function NAME with BODY and DOCSTRING. (defalias 'semantic-grammar-insert-defun #[(name body docstring) "`\304\305 \n $c\210\212b\210\306 *\207" [start name docstring body format "(defun %s ()\n%S\n%s)\n\n" indent-sexp] 5 (#$ . 27739)]) #@156 Insert the declaration specified by DEFINE expression. Typically a DEFINE expression should look like this: (define-thing name docstring expression1 ...) (defalias 'semantic-grammar-insert-define #[(define) "`\304\305 @ A@#c\210 AA\306\211\203+ @\307c\210\310 \210\311\np\"\210 A\211\204*\312c\210\212b\210\313 *\207" [start define item --dolist-tail-- format "(%S %S" nil "\n" delete-blank-lines pp ")\n\n" indent-sexp] 5 (#$ . 28007)]) #@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 .\n\n;;; Commentary:\n;;\n;; PLEASE DO NOT MANUALLY EDIT THIS FILE! It is automatically\n;; generated from the grammar file " gram ".\n\n;;; History:\n;;\n\n;;; Code:\n\n(require 'semantic/lex)\n(eval-when-compile (require 'semantic/bovine))\n") (#$ . 28462)) #@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") (#$ . 29759)) #@57 Return the grammar copyright line, or nil if not found. (defalias 'semantic-grammar-copyright-line #[nil "\212eb\210\300\301\212\302y\210`)\303#\205\304\305!)\207" [re-search-forward "^;;+[ ]+Copyright (C) .*$" 4 t match-string 0] 4 (#$ . 30064)]) (defalias 'semantic-grammar--template-expand #[(template env) "\301\302\303#\207" [template mapconcat #[(S) ";\203\207 \236\211\203\nA\2029\205J)\207" [S env x] 3] ""] 4]) #@45 Return text of a generated standard header. (defalias 'semantic-grammar-header #[nil "\304\305 \306\307\n!!)B\310\311\306\307\n!!)B\312\313\314!B\315\316B\317\320 \206)\313\321! PB\257\"\207" [semantic-grammar-header-template semantic--grammar-output-buffer buffer 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" vcid "$Id$" copy semantic-grammar-copyright-line ";; Copyright (C) %Y "] 9 (#$ . 30508)]) #@45 Return text of a generated standard footer. (defalias 'semantic-grammar-footer #[nil "\305\306 \307\310\n!!)B\311 \206\fBD\"\207" [semantic-grammar-footer-template semantic--grammar-output-buffer buffer semantic--grammar-provide semantic--grammar-package semantic-grammar--template-expand file file-name-nondirectory buffer-file-name libr] 6 (#$ . 31017)]) #@57 Return the string value of the table of lexical tokens. (defalias 'semantic-grammar-token-data #[nil "\300 ;\203 \300 \207\301\300 !\207" [semantic-grammar-tokentable-builder pp-to-string] 2 (#$ . 31384)]) #@51 Return the string value of the table of keywords. (defalias 'semantic-grammar-keyword-data #[nil "\300 ;\203 \300 \207\301\300 !\207" [semantic-grammar-keywordtable-builder pp-to-string] 2 (#$ . 31597)]) #@44 Return the parser table as a string value. (defalias 'semantic-grammar-parser-data #[nil "\300 ;\203 \300 \207\301\300 !\207" [semantic-grammar-parsetable-builder pp-to-string] 2 (#$ . 31808)]) #@54 Return the parser setup code form as a string value. (defalias 'semantic-grammar-setup-data #[nil "\300 ;\203 \300 \207\301\300 !\207" [semantic-grammar-setupcode-builder pp-to-string] 2 (#$ . 32009)]) #@50 Return delimiters specification from BLOCK-SPEC. (defalias 'semantic-grammar--lex-delim-spec #[(block-spec) "\30311A\304 \211:\203+\n@\203+\n@9\203+\nA@\203+\nA@9\203+\n\202.\305\306!*0\207\210\305\307A@#\207" [block-spec standard-input delim-spec (error) read error "Invalid delimiter" "Invalid delimiters specification %s in block token %s"] 5 (#$ . 32218)]) (put 'semantic-grammar--lex-delim-spec 'byte-optimizer 'byte-compile-inline-expand) #@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 #[nil "\306=\203\307\207\204[\3101L\311\312\313 !\205\"\211;\205\"\314 \"\262\211\203-\211J\2025?\2055\315!\266\203A\316\312\313 !\205K\211;\205K\314 \"\262\211\203V\211J\202^?\205^\315!\266\203A\317\312\313 !\205t\211;\205t\314 \"\262\211\203\211J\202\207?\205\207\315!\266\203A\307\211\307\211\307\n\307\211\203A@\211\3201\346A\321 \211:\203\336@\203\336@9\203\336A@\203\336A@9\203\336\202\341\306\322!*0\202\360\210\306\323A@#)\211@ \236A@\f\236\204\306\324@@#\210\204\306\325A@#\210A@@E BA@DBA\211\204\243* B\211.0\207 \306\326\327\330 !\"\210)\307\207\207" [semantic-grammar--lex-block-specs semantic-lex-types-obarray blocks open-delims close-delims olist error nil (error) "block" t obarrayp intern-soft semantic-lex-type-invalid "open-paren" "close-paren" (error) read "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 clist delim-spec open-spec close-spec block-spec --dolist-tail-- standard-input err] 7 (#$ . 32682)]) #@65 Return a quoted form of EXP if it isn't a self evaluating form. (defalias 'semantic-grammar-quoted-form #[(exp) "\203<\2049\203\301D\207\207" [exp quote] 2 (#$ . 34094)]) (put 'semantic-grammar-quoted-form 'byte-optimizer 'byte-compile-inline-expand) #@63 Insert declaration of the lexical analyzer defined with TYPE. (defalias 'semantic-grammar-insert-defanalyzer #[(type) "\306!J\303N\307N\310\211\310\211\310\f\205N \205N\311N\2060\312\313\314\315$!\314\316#\317\267\202\267\320\321 \nA\211\203o<\204h9\203o\322D\202q)\322\n@\206{\313 !D\257!\202N\320\323 \nA\211\203\244<\204\2359\203\244\322D\202\246)\322\n@\206\260\313 !D\257!\202N\324=\203\357\325 \211\203\357\320\326 \211\203\346<\204\3379\203\346\322D\202\350)\257!\202N\327\267\202\320\330 \322\n@\206\313 !D\257!\202N\320\331 F!\202N\324=\205N\325 \211\205N\320\326 \211\203H<\204A9\203H\322D\202J)\257!. \207" [type type-name type-value syntax declared spec symbol-name :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 77 string 130)) 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 246 keyword 269)) define-lex-sexp-type-analyzer define-lex-keyword-type-analyzer mtype prefix name doc semantic--grammar-package exp] 10 (#$ . 34362)]) #@43 Insert declarations of lexical analyzers. (defalias 'semantic-grammar-insert-defanalyzers #[nil "\305\211r\nq\210\306 \211\307 !\310!*)\311 \"\305\312\313\f\",\207" [props tokens 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] 4 (#$ . 35824)]) #@44 Regexp which matches grammar source files. (custom-declare-variable 'semantic-grammar-file-regexp "\\.[wb]y\\'" '(#$ . 36310) :group 'semantic :type 'regexp) #@238 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. (defalias 'semantic-grammar-create-package #[(&optional force uptodate) "\204\306\307!\210 \206 \n\310 \210\311 \312\313!\211\206 \314Pp@\315\316 !!A\317 B\320 C\321 D\322 E \204_\323 \204_\324\325A!\325@!\"\203_\326\327 \"\210F\203)\330\202)Aq\210\331G\332 \210\333\334!\204r\334 \210B\335C\261\210\336e`\"\210\212\337c\210\340 \341Pr@q\210\342\343\344 @\")\345#\210\346 \347Pr@q\210\350 )\351#\210\346 \352Pr@q\210\353 )\354#\210\346 \355Pr@q\210\356 )\357#\210\360 \361Pr@q\210\362 )\363#\210\364c\210\365 \210\366DE\261\210)\367\370!\210H\203\376\371\211\211\211IJKL\372p!\210,\202)\336`d\"\210eb\210\373\374\330\371#\203\375\330!\210\202eb\210\376p!\210\377 \361P\201M\201N!\"\210 . \207" [semantic-new-buffer-fcn-was-run force current-prefix-arg semantic--grammar-package semantic--grammar-provide output 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 semantic--grammar-input-buffer semantic--grammar-output-buffer header prologue epilogue footer uptodate buffer-file-coding-system noninteractive vc-make-backup-files make-backup-files delete-old-versions version-control semantic-grammar-tag-symbols languagemode] 6 (#$ . 36475) "P"]) #@129 Unconditionally create Lisp code from grammar in current buffer. Like \[universal-argument] \[semantic-grammar-create-package]. (defalias 'semantic-grammar-recreate-package #[nil "\300\301!\207" [semantic-grammar-create-package t] 2 (#$ . 39114) nil]) #@165 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. (defalias 'semantic-grammar-batch-build-one-package #[(file) "\306\307!\210\310!?\205T\3111'r\312!q\210\313\211\314\315\316!\210\317\320!+0\2021\321\322\323\f!\"\210)\313\211\205S\324 \325 !\"\203R\326]\327]\330 !*\202S\320)\207" [file vc-handled-backends semantic-new-buffer-setup-functions semanticdb-new-database-class err packagename 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 3000 1000 byte-compile-file max-specpdl-size max-lisp-eval-depth] 5 (#$ . 39373)]) #@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 #[nil "\204\306\307!\210\310\311\312 \" \313\211\203w @\211\203$\314\f!\204)\306\315\f\"\210\316\f!\317\f!\203h\3201A\321\f\313#0\202E\210\306\322!\313\211\203d @\323\316\f\"!\204]\324 A\211\204M*\202p\323\f!\204p\324 A\211\204*\325\n!*\207" [noninteractive find-file-hook status command-line-args-left arg --dolist-tail-- error "`semantic-grammar-batch-build-packages' must be used with -batch" 0 delete vc-find-file-hook nil file-exists-p "Argument %s is not a valid file name" expand-file-name file-directory-p (error) directory-files "Unable to read directory files" semantic-grammar-batch-build-one-package 1 kill-emacs semantic-grammar-file-regexp src] 5 (#$ . 40214)]) (defvar semantic--grammar-macros-regexp-1 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 #[nil "\203! \204!\3021\303\304\305\306\"\307\"\310Q\2110\202 \210\202!\210 \207" [semantic-grammar-macros semantic--grammar-macros-regexp-1 (error) "(\\s-*" regexp-opt mapcar #[(e) "\301@!\207" [e symbol-name] 2] t "\\>"] 5 (#$ . 41519)]) #@52 Regexp that matches a macro declaration statement. (defconst semantic--grammar-macdecl-re "\\<%use-macros\\>[ \n]+\\(\\sw\\|\\s_\\)+[ \n]+{" (#$ . 41883)) (defvar semantic--grammar-macros-regexp-2 nil) (make-variable-buffer-local 'semantic--grammar-macros-regexp-2) #@160 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. (defalias 'semantic--grammar-clear-macros-regexp-2 #[(&rest _) "\301\211\207" [semantic--grammar-macros-regexp-2 nil] 2 (#$ . 42160)]) #@60 Return the regexp that match macros local in this grammar. (defalias 'semantic--grammar-macros-regexp-2 #[nil "\204D\303\212eb\210\304\n\303\305#\2037\3061/ \307\310`\311u\210\312\313!\210\314\311!\210`\"!\244\2110\2023\210\202\n\210\202\n \203C\315\316 \305\"\317Q*\207" [semantic--grammar-macros-regexp-2 macs 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 "\\>"] 6 (#$ . 42461)]) #@79 Search for a grammar macro name to highlight. END is the limit of the search. (defalias 'semantic--grammar-macros-matcher #[(end) "\302 \211\203\303 \304#\206\305 \211\205\303 \304#)\207" [regexp end semantic--grammar-macros-regexp-1 re-search-forward t semantic--grammar-macros-regexp-2] 5 (#$ . 42968)]) (byte-code "\302\303\304\305#\210\306\305\211\203, @\303N\203%\304N\204%\307\304\303N#\210 A\211\204*\310\303\304\311#\207" [prop --dolist-tail-- defvaralias semantic-grammar-syntax-table semantic-grammar-mode-syntax-table nil (saved-value saved-variable-comment) put make-obsolete-variable "24.1"] 6) #@50 Syntax table used in a Semantic grammar buffers. (defvar semantic-grammar-mode-syntax-table (byte-code "\301\302 !\303\304\305#\210\303\306\305#\210\303\307\305#\210\303\310\305#\210\303\311\312#\210\303\313\314#\210\303\315\316#\210\303\317\320#\210\303\321\322#\210\303\323\322#\210\303\324\325#\210\303\326\327#\210\303\330\327#\210\303\331\327#\210\303\332\327#\210)\207" [table 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] 4) (#$ . 43605)) #@47 Hook run when starting Semantic grammar mode. (defvar semantic-grammar-mode-hook nil (#$ . 44172)) #@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-reference-face) ("\\(%\\)\\(\\(\\sw\\|\\s_\\)+\\)" (1 font-lock-reference-face) (2 font-lock-keyword-face)) ("\\" 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) (#$ . 44277)) #@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) (#$ . 45156)) #@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) (#$ . 45437)) #@64 Font Lock keywords used to highlight Semantic grammar buffers. (defvar semantic-grammar-mode-keywords semantic-grammar-mode-keywords-1 (#$ . 45718)) (byte-code "\302\303\304\305#\210\306\305\211\203, @\303N\203%\304N\204%\307\304\303N#\210 A\211\204*\310\303\304\311#\207" [prop --dolist-tail-- defvaralias semantic-grammar-map semantic-grammar-mode-map nil (saved-value saved-variable-comment) put make-obsolete-variable "24.1"] 6) #@41 Keymap used in `semantic-grammar-mode'. (defvar semantic-grammar-mode-map (byte-code "\301 \302\303\304#\210\302\305\304#\210\302\306\304#\210\302\307\304#\210\302\310\304#\210\302\311\304#\210\302\312\313#\210\302\314\315#\210\302\316\317#\210\302\320\321#\210\302\322\323#\210)\207" [km 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] 4) (#$ . 46170)) #@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]) (#$ . 46766)) #@144 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. (defalias 'semantic-grammar-setup-menu-emacs #[(symbol mode-menu) "\303\304!\305\306\307 DD\310 \311BB\312\313\nDDC\314\315 \316BB\317\315 \320\321DF\322\313DEFFEF)\207" [items symbol mode-menu 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] 15 (#$ . 47176)]) #@142 Setup an XEmacs grammar menu in variable SYMBOL. MODE-MENU is an optional specific menu whose items are appended to the common grammar menu. (defalias 'semantic-grammar-setup-menu-xemacs #[(symbol mode-menu) "\304\305!\304\306!\307\310\311\312\nDD\313\n\314BBE\315\nD\316 \317 DD\320\321\nDDDD\322 \323\324\325BBB\326 \323\324\321 DF\327 \317 DEFFEF*\207" [path items symbol mode-menu make-symbol "items" "path" progn unless boundp quote easy-menu-define (nil "Grammar Menu" (copy-sequence semantic-grammar-menu)) easy-menu-add let cdr list car when easy-menu-add-item nil ("--") while setq] 15 (#$ . 47724)]) #@126 Setup a mode local grammar menu. MODE-MENU is an optional specific menu whose items are appended to the common grammar menu. (defalias 'semantic-grammar-setup-menu '(macro . #[(&optional mode-menu) "\302\303\304\305\"! \"\207" [major-mode mode-menu semantic-grammar-setup-menu-emacs intern format "%s-menu"] 5 (#$ . 48346)])) #@42 Return non-nil if point is in Lisp code. (defalias 'semantic-grammar-in-lisp-p #[nil "`\212eb\210\300\301\302\303\304$\203\305\224\202dT)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 (#$ . 48679)]) (put 'semantic-grammar-in-lisp-p 'byte-optimizer 'byte-compile-inline-expand) #@240 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. (defalias 'semantic-grammar-edits-new-change-hook-fcn #[(overlay) "\306\211\203 \307 !\202`\310 W\203`\202\310 )\211\203'\311 !\2024`\310 V\2032`\2024\310 )\"@\211\312\211\211A@) *=\205}\313\n\211\314\f8)\315 !\203_\307 !\202b \316H*\n\211\314\f8)\315 !\203x\311 !\202{ \317H*#)\207" [overlay change outer class tag o semantic-find-tag-by-overlay-in-region overlay-start mark overlay-end nonterminal move-overlay 4 overlayp 0 1] 6 (#$ . 49049)]) (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\313 !\210\307\302N\204-\303\307\302\304\314!#\210\306\300!\204B\303\300\310\311#\210\315\316\300\317\"\210!\210\300\302N\204P\303\300\302\304\320!#\210\303\311\321\317#\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 (lambda (#1=#:def-tmp-var) (defvar semantic-grammar-mode-syntax-table #1#)) make-syntax-table "Syntax table for `semantic-grammar-mode'." (lambda (#1#) (defvar semantic-grammar-mode-abbrev-table #1#)) define-abbrev-table nil "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 #[nil "\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 (#$ . 51060) 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 "\302!\303\304\305 #\210 )\207" [semantic-grammar-mode-syntax-table st copy-syntax-table modify-syntax-entry 39 "$"] 4) (#$ . 53071)) #@55 Move point to beginning of the previous grammar item. (defalias 'semantic-grammar-backward-item #[nil "\303d[!\210\304\305!\306U\205(`Sf\307=\203%\310 p\311\216\312\n!\210\313\314!+\207\313\314!\207" [#1=#:buffer #2=#:table semantic-grammar-skip-quoted-syntax-table forward-comment skip-syntax-backward "." 0 39 syntax-table #[nil "rq\210\302 !)\207" [#1# #2# set-syntax-table] 2] set-syntax-table forward-sexp -1] 2 (#$ . 53431)]) (put 'semantic-grammar-backward-item 'byte-optimizer 'byte-compile-inline-expand) #@62 Return indentation based on previous anchor character found. (defalias 'semantic-grammar-anchored-indentation #[nil "\304\212\204g\305d[!\210\306\307!\310U\2032`Sf\311=\203.\312 p\313\216\314 !\210\315\316!+\2021\315\316!\210o\203<\310\211\202\317\320!\203Ui\304u\210\321\322!\210l\203\323\211\202\317\324!\203\317\325!\204\310\211\203))\207" [indent #1=#:buffer #2=#:table semantic-grammar-skip-quoted-syntax-table nil forward-comment skip-syntax-backward "." 0 39 syntax-table #[nil "rq\210\302 !)\207" [#1# #2# set-syntax-table] 2] set-syntax-table forward-sexp -1 looking-at ":\\(\\s-\\|$\\)" skip-syntax-forward "-" 2 "[;%]" "\\<%prec\\>"] 3 (#$ . 53956)]) #@70 Indent a line of grammar. When called the point is not in Lisp code. (defalias 'semantic-grammar-do-grammar-indent #[nil "\302\211\212\303 \210\304\305!\210io\204$\306\307!\204$\306\310!\203)\306\311!\204)\312\202j\306\313!\2034\314\202j\306\315!\203K\212\316d!\210\306\313!)\203K\317\202j\320 \211\312U\204j\306\315!\203`S\202j\306\321!\204j\314\\ U?\205y\303 \210\322 \210j+\207" [n indent 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] 3 (#$ . 54652)]) #@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 "\302!\303\304\305 #\210\303\306\307 #\210 )\207" [emacs-lisp-mode-syntax-table st copy-syntax-table modify-syntax-entry 123 "(} " 125 "){ "] 4) (#$ . 55295)) #@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 #[nil "\3041V\212\305 \210\306\307w\210`\211\212eb\210\310\311\307\312\313$\203!\314\224\202#dT)Y\204,\315\316!\210\31717\315\316!\210\2020\210\305 \210\214`}\210db\210\320 p\321\216\322 !\210\323 \210.\3120\207\210\307\207" [first #1=#:buffer #2=#:table 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 #[nil "rq\210\302 !)\207" [#1# #2# set-syntax-table] 2] set-syntax-table lisp-indent-line] 7 (#$ . 55639)]) #@88 Indent the current line. Use the Lisp or grammar indenter depending on point location. (defalias 'semantic-grammar-indent #[nil "`\302\303 \204\f\304 \210\212\305 \210\306\302w\210`) W\204$ `U?\205&b*\207" [first orig nil semantic-grammar-do-lisp-indent semantic-grammar-do-grammar-indent beginning-of-line " "] 2 (#$ . 56319) nil]) #@51 Insert and reindent for the symbol just typed in. (defalias 'semantic-grammar-electric-punctuation #[nil "\300\301!\210\212\302 )\207" [self-insert-command 1 semantic-grammar-indent] 2 (#$ . 56667) 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 #[nil "`\212eb\210\306\307\310\311\312$\203\313\224\202dT)Y\204.\3141)\212\315\316!\210)\3110\202+\210\310\2037\317\320\"\321 )\207\322p!\310\211\203Y\n@\211A@)\323=\203R\n@ B\nA\211\204A \237*\324 @\325 \f\"\211$\311=\203s\326\327!\202\330$;\203\275$ \230\203\275%&r\330\331!q\210p\332 \210&%\310\211'(\311\211)\311*+\333 \210\334\335!\210+\211,-\336\337 \f\"!\340,!\210+\202\330$;\203\325\341\316!\210`\341\342!\210`|\210$c\202\330\326\343!+\207" [completion-at-point-functions result tags tag nonterms sym re-search-forward "^\\s-*\\<%%\\>\\s-*$" nil t 2 0 (error) up-list -1 append (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." ans default-directory #1=#:old-dir buffer-read-only buffer-file-name buffer-undo-list inhibit-modification-hooks inhibit-read-only #2=#:buf standard-output] 7 (#$ . 56878) nil]) #@94 Insert a new %keyword declaration with NAME. Assumes it is typed in with the correct casing. (defalias 'semantic-grammar-insert-keyword #[(name) "n\204\301c\210\302\226\303\304\226\305\261\210\306u\207" [name "\n" "%keyword " " \"" "\"\n%put " " summary\n\"\"\n" -2] 7 (#$ . 58350) "sKeyword: "]) #@107 Search for a function tag for the grammar macro with name NAME. Return the tag found or nil if not found. (defalias 'semantic--grammar-macro-function-tag #[(name) "\306\306p!\307\211\203$\f @\211@)\230\203 @\nB A\211\204 \n\237+\206<\310\311!\205< \205<\312\f\307\313#@A!\307\211\203\\ @\211A@)\314=\203U @\nB A\211\204D\n\237*@\207" [semantic-case-fold case-fold-search result tags name tag semantic-something-to-tag-table nil featurep semantic/db semanticdb-find-tags-by-name t function semanticdb-current-database] 6 (#$ . 58671)]) (put 'semantic--grammar-macro-function-tag 'byte-optimizer 'byte-compile-inline-expand) #@62 Return the library part of the grammar macro defined by DEF. (defalias 'semantic--grammar-macro-lib-part #[(def) "\303\304\305\306@!!\"\306A!\307 \310\311\n \"#*\207" [def fun suf format "-%s\\'" regexp-quote symbol-name substring 0 string-match] 6 (#$ . 59323)]) (put 'semantic--grammar-macro-lib-part 'byte-optimizer 'byte-compile-inline-expand) #@156 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. (defalias 'semantic--grammar-macro-compl-elt #[(def &optional full) "@\306\307\310\311@!!\"\311A!\312 \313\314\n \"#+ \203*\306\315\f #\202-\311\f!\f *DB\207" [def fun suf lib mac full format "-%s\\'" regexp-quote symbol-name substring 0 string-match "%s/%s"] 7 (#$ . 59682)]) #@54 Return a completion dictionary of macro definitions. (defalias 'semantic--grammar-macro-compl-dict #[nil "\304 \305\211\211 \2033 @ A\306\n@ \"\204#\306\n@ \"\203*\n B\202 \307\n!B\202 \203G @ A\307\n\310\"B\2023,\207" [dict dups def defs semantic-grammar-macros nil assoc semantic--grammar-macro-compl-elt t] 4 (#$ . 60131)]) #@432 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. (defalias 'semantic-grammar-find-macro-expander #[(macro-name library) "\205\335 \205\335\306\307 \"\310\311\n\312\"\206\n!r q\210\306\313 #\314 \314p!\315\211\203P\f@\211 @)\230\203G@BA\211\2042\237+\206i\316\317!\205i!\205i\320\f\315\312#@A!\315\211\203\222@\211 A@)\321=\203\211@BA\211\204s\237*@*\211 \203\323\322\323!\210\324\325 !!\210 \211  \326 8)\"\327\"!\203\305\330\"!\202\311\"\331H*b\210\332 !\202\334\324 !\210\333\334 #+\207" [macro-name library lib buf name semantic-case-fold 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" case-fold-search result tags tag semanticdb-current-database o] 6 (#$ . 60487) (byte-code "\302 \303\304\305\306\307$\"\211A\206\310*\207" [dic def 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 )") ("EXPANDFULL" . "Lambda Key: (EXPANDFULL )") ("TAG" . "Generic Tag Generation: (TAG [ :key value ]*)") ("VARIABLE-TAG" . "(VARIABLE-TAG [ :key value ]*)") ("FUNCTION-TAG" . "(FUNCTION-TAG [ :key value ]*)") ("TYPE-TAG" . "(TYPE-TAG [ :key value ]*)") ("INCLUDE-TAG" . "(INCLUDE-TAG [ :key value ]*)") ("PACKAGE-TAG" . "(PACKAGE-TAG [ :key value ]*)") ("CODE-TAG" . "(CODE-TAG [ :key value ]*)") ("ALIAS-TAG" . "(ALIAS-TAG [: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")) (#$ . 62064)) (defvar semantic-grammar-eldoc-last-data (byte-code "\300\211B\207" [nil] 2)) #@115 Return a one-line docstring for the given grammar MACRO. EXPANDER is the name of the function that expands MACRO. (defalias 'semantic-grammar-eldoc-get-macro-docstring #[(macro expander) "\304\305!\210 @=\203 A\207\306\307!\203L\310\311\312\"\"\211\2033\n@\313\314\n\"\210\315\316\n\317\225\"P\2027\307!\n\203I\320 \321\322\n#\323#\nB\n)\207\306\324!\205g\324\325\326\327 !\330\331#\332\326\327 !\330\333#\334R#\207" [expander semantic-grammar-eldoc-last-data doc macro require eldoc fboundp eldoc-function-argstring help-split-fundoc documentation t string-match "\\`[^ )]* ?" "(" substring 0 eldoc-docstring-format-sym-doc format "==> %s %s" default elisp-get-fnsym-args-string nil propertize symbol-name face font-lock-keyword-face " ==> " font-lock-function-name-face ": "] 10 (#$ . 64563)]) #@658 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. It 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 #[nil "\303\304!\210\305 @\211\205\306 \"A\211\204\241\203\241`\212eb\210\307\310\311\312\313$\203-\314\224\202/dT)Y\204H\3151C\212\316\317!\210)\3120\202E\210\311\203\241\320 \321!\211\205W\n\236A\211\203j\322\n!\203j\323\n\"\202\241\203\207\322!\203\207\322\324!\203\200\324!\202\203\325!\202\241\203\241\326!\203\241\322\327!\203\235\327!\202\240\330!\n\206\247\331 *\207" [elt semantic-grammar-syntax-help val 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] 7 (#$ . 65386)]) (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) #@181 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. (defalias 'semantic-tag-boundary-p-semantic-grammar-mode #[(tag) "\211A@)\301=\207" [tag nonterminal] 3 (#$ . 67324)]) (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) #@131 Determine the name of the current function at POINT. Override semantic-ctxt-current-function in `semantic-grammar-mode' buffers. (defalias 'semantic-ctxt-current-function-semantic-grammar-mode #[(&optional point) "\212\203b\210`\212eb\210\305\306\307\310\311$\203\312\224\202dT)Y\2046\31311\212\314\315!\210)\3100\2023\210\307\205K \307\316\317\216\320\f!\210\n\321\n!\322 ,)\207" [point mode-local-active-mode #1=#:new-mode #2=#:old-locals #3=#:mode re-search-forward "^\\s-*\\<%%\\>\\s-*$" nil t 2 0 (error) up-list -1 emacs-lisp-mode #[nil "\306!\210 \307\211\203 @\211@\nAL\210 A\211\204\f*\f\310\f!\207" [#1# #2# #4=#:local --dolist-tail-- #3# mode-local-active-mode mode-local--deactivate-bindings nil mode-local--activate-bindings] 3] mode-local--deactivate-bindings mode-local--activate-bindings semantic-ctxt-current-function] 6 (#$ . 67915)]) (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) #@140 Determine the argument index of the called function at POINT. Override semantic-ctxt-current-argument in `semantic-grammar-mode' buffers. (defalias 'semantic-ctxt-current-argument-semantic-grammar-mode #[(&optional point) "\212\203b\210`\212eb\210\305\306\307\310\311$\203\312\224\202dT)Y\2046\31311\212\314\315!\210)\3100\2023\210\307\205K \307\316\317\216\320\f!\210\n\321\n!\322 ,)\207" [point mode-local-active-mode #1=#:new-mode #2=#:old-locals #3=#:mode re-search-forward "^\\s-*\\<%%\\>\\s-*$" nil t 2 0 (error) up-list -1 emacs-lisp-mode #[nil "\306!\210 \307\211\203 @\211@\nAL\210 A\211\204\f*\f\310\f!\207" [#1# #2# #4=#:local --dolist-tail-- #3# mode-local-active-mode mode-local--deactivate-bindings nil mode-local--activate-bindings] 3] mode-local--deactivate-bindings mode-local--activate-bindings semantic-ctxt-current-argument] 6 (#$ . 69113)]) (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) #@128 Determine the tag being assigned into at POINT. Override semantic-ctxt-current-assignment in `semantic-grammar-mode' buffers. (defalias 'semantic-ctxt-current-assignment-semantic-grammar-mode #[(&optional point) "\212\203b\210`\212eb\210\305\306\307\310\311$\203\312\224\202dT)Y\2046\31311\212\314\315!\210)\3100\2023\210\307\205K \307\316\317\216\320\f!\210\n\321\n!\322 ,)\207" [point mode-local-active-mode #1=#:new-mode #2=#:old-locals #3=#:mode re-search-forward "^\\s-*\\<%%\\>\\s-*$" nil t 2 0 (error) up-list -1 emacs-lisp-mode #[nil "\306!\210 \307\211\203 @\211@\nAL\210 A\211\204\f*\f\310\f!\207" [#1# #2# #4=#:local --dolist-tail-- #3# mode-local-active-mode mode-local--deactivate-bindings nil mode-local--activate-bindings] 3] mode-local--deactivate-bindings mode-local--activate-bindings semantic-ctxt-current-assignment] 6 (#$ . 70320)]) (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) #@135 Determine the class of tags that can be used at POINT. Override semantic-ctxt-current-class-list in `semantic-grammar-mode' buffers. (defalias 'semantic-ctxt-current-class-list-semantic-grammar-mode #[(&optional point) "\212\203b\210`\212eb\210\305\306\307\310\311$\203\312\224\202dT)Y\2046\31311\212\314\315!\210)\3100\2023\210\307\203N \307\316\317\216\320\f!\210\n\321\n!\322 ,\202O\323)\207" [point mode-local-active-mode #1=#:new-mode #2=#:old-locals #3=#:mode re-search-forward "^\\s-*\\<%%\\>\\s-*$" nil t 2 0 (error) up-list -1 emacs-lisp-mode #[nil "\306!\210 \307\211\203 @\211@\nAL\210 A\211\204\f*\f\310\f!\207" [#1# #2# #4=#:local --dolist-tail-- #3# mode-local-active-mode mode-local--deactivate-bindings nil mode-local--activate-bindings] 3] mode-local--deactivate-bindings mode-local--activate-bindings semantic-ctxt-current-class-list (nonterminal token keyword)] 6 (#$ . 71527)]) (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) #@265 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. (defalias 'semantic-ctxt-current-mode-semantic-grammar-mode #[(&optional point) "\212\203b\210`\212eb\210\301\302\303\304\305$\203\306\224\202dT)Y\2046\30711\212\310\311!\210)\3040\2023\210\303\203:\312\202<\313 )\207" [point re-search-forward "^\\s-*\\<%%\\>\\s-*$" nil t 2 0 (error) up-list -1 emacs-lisp-mode semantic-ctxt-current-mode-default] 6 (#$ . 72779)]) (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) #@206 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. (defalias 'semantic-format-tag-abbreviate-semantic-grammar-mode #[(tag &optional parent color) "\211A@)\305 \n#\211\306\267\202! \307P\202(\310\202( \202(\311\312\f!\313 R*\207" [tag parent color name class semantic-format-tag-name #s(hash-table size 4 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (nonterminal 19 setting 25 rule 29 keyword 29)) ":" "%settings%" "%" symbol-name " "] 6 (#$ . 73723)]) (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) #@205 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. (defalias 'semantic-format-tag-summarize-semantic-grammar-mode #[(tag &optional parent color) "\211A@)\306 \n#\307\211\211&\310\267\202\247\311\312\313\314!G\"\202\255\315\307'\316()\317\211p!\307*\211+\203Z+@\211A@)\320=\203Q+@*B*+A\211+\204<*\237*!\307*\211+\203\214\321\322\211@)!+@\211@)\"\203\203+@*B*+A\211+\204h*\237+,-\317,!\307*\211+\203\273-+@!\203\262+@*B*+A\211+\204\241*\237,\210\323\324.\325\3268).\"*'\203\337\327\330'!P\202\340\331Q)\202\255\332\324.\325\3268).\"*\333.\325\3268).\"*\211\334.\325\3268).\"+/010\203.\335\336 0B\337#/\203;\312\340/\"\202<\3311\203S\312\3411/\203N\337\202O\331#\202T\331P+\202\255\342\324.\325\3268).\"*\211\334.\325\3268).\"+/1/\203\217\312\340/\"\202\220\3311\203\240\337\335\3361\337#P\202\241\331P*\202\255\343 \n#\n\203\272\f\203\272\344\f\304\"\n\203\313\f\203\313 \203\313\344 \345\"\f\203\326\f Q\202\327 ,\207" [tag parent color desc label name semantic-format-tag-name nil #s(hash-table size 4 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (nonterminal 24 keyword 37 token 230 assoc 346)) "Nonterminal: " format " with %d match lists." semantic-tag-components "Keyword: " #[(put) "?\205\304\305 \306\307 \310 8)\n\"*\"A\211\207" [summary put attribute tag assoc "summary" :value plist-get 2] 5] 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 comment class summary semantic-case-fold case-fold-search result tags table predicate attribute type names val] 7 (#$ . 74675)]) (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) #@150 Provide a semantic analysis object describing a context in a grammar. Override semantic-analyze-current-context in `semantic-grammar-mode' buffers. (defalias 'semantic-analyze-current-context-semantic-grammar-mode #[(point) "`\212eb\210\306\307\310\311\312$\203\313\224\202dT)Y\204.\3141)\212\315\316!\210)\3110\202+\210\310\203E\310\317\320\216\321 !\210 \322 !\323\f!,\207\310\324 \211@\3128 \310!\325 \"\326@p\"!\327\330p\331\310\332 \333!\203x!C\202z\334\310\335\"&\f\211.\207" [mode-local-active-mode #1=#:new-mode #2=#:old-locals #3=#:mode point context-return re-search-forward "^\\s-*\\<%%\\>\\s-*$" nil t 2 0 (error) up-list -1 emacs-lisp-mode #[nil "\306!\210 \307\211\203 @\211@\nAL\210 A\211\204\f*\f\310\f!\207" [#1# #2# #4=#:local --dolist-tail-- #3# mode-local-active-mode mode-local--deactivate-bindings nil mode-local--activate-bindings] 3] 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 prefixandbounds prefix bounds prefixsym prefixclass] 14 (#$ . 76988)]) (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) #@141 Return a list of possible completions based on CONTEXT. Override semantic-analyze-possible-completions in `semantic-grammar-mode' buffers. (defalias 'semantic-analyze-possible-completions-semantic-grammar-mode #[(context &rest flags) "\306\307!\210`\212eb\210\310\311\312\313\314$\203\315\224\202dT)Y\2042\3161-\212\317\320!\210)\3130\202/\210\312\203I\312\321\322\216\323 !\210 \324 !\325\f!,\207r\326\f\327\"q\210\330\326\f\305\"!@\211\3311\214:\205\210@;\205\210A@9\205\210A@\205\210\3148<\205\210\3328<0\202\216\210\312)\203\233 \211@)\202\254 ;\203\244 \202\254 @;\205\254 @\211 G!\333p!\312\"\211#\203\350\334 \315\312#@\211@)\315!$&\313=\203\337#@\"B\"#A\211#\204\276\"\237+#\335#\326\f\336\"\",\207" [mode-local-active-mode #1=#:new-mode #2=#:old-locals #3=#:mode context prefix require semantic/analyze/complete re-search-forward "^\\s-*\\<%%\\>\\s-*$" nil t 2 0 (error) up-list -1 emacs-lisp-mode #[nil "\306!\210 \307\211\203 @\211@\nAL\210 A\211\204\f*\f\310\f!\207" [#1# #2# #4=#:local --dolist-tail-- #3# mode-local-active-mode mode-local--deactivate-bindings nil mode-local--activate-bindings] 3] mode-local--deactivate-bindings mode-local--activate-bindings semantic-analyze-possible-completions eieio-oref buffer reverse (error) 3 semantic-something-to-tag-table compare-strings semantic-analyze-tags-of-class-list prefixclass tag completetext l result tags semantic-case-fold] 9 (#$ . 78572)]) (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)