Server IP : 111.118.215.189 / Your IP : 3.133.106.74 Web Server : Apache System : Linux md-in-83.webhostbox.net 4.19.286-203.ELK.el7.x86_64 #1 SMP Wed Jun 14 04:33:55 CDT 2023 x86_64 User : a1673wkz ( 2475) PHP Version : 8.2.25 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON Directory (0755) : /usr/share/emacs/24.3/lisp/emacs-lisp/ |
[ Home ] | [ C0mmand ] | [ Upload File ] |
---|
;ELC ;;; Compiled by mockbuild@buildfarm06-new.corp.cloudlinux.com on Fri Oct 11 10:09:05 2024 ;;; from file /builddir/build/BUILD/emacs-24.3/lisp/emacs-lisp/smie.el ;;; in Emacs version 24.3.1 ;;; with all optimizations. ;;; This file contains utf-8 non-ASCII characters, ;;; and so cannot be loaded into Emacs 22 or earlier. (and (boundp 'emacs-version) (< (aref emacs-version (1- (length emacs-version))) ?A) (string-lessp emacs-version "23") (error "`%s' was compiled for Emacs 23 or later" #$)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (custom-declare-group 'smie nil "Simple Minded Indentation Engine." :group 'languages) (defvar smie-warning-count 0) (defalias 'smie-set-prec2tab #[1284 "\203 \204 \301\302\303C\"\210B\304\"\211\203M \211=\204M \2038 \304\"\2038 \305\304\" #\202S \306\307\310\311 %\"\210T\211\202S \305 #\207" [smie-warning-count signal cl-assertion-failed (and x y) gethash puthash display-warning smie format "Conflict: %s %s/%s %s"] 15 "\n\n(fn TABLE X Y VAL &optional OVERRIDE)"]) (put 'smie-precs->prec2 'pure t) #@336 Compute a 2D precedence table from a list of precedences. PRECS should be a list, sorted by precedence (e.g. "+" will come before "*"), of elements of the form (left OP ...) or (right OP ...) or (nonassoc OP ...) or (assoc OP ...). All operators in one of those elements share the same precedence level and associativity. (fn PRECS) (defalias 'smie-precs->prec2 #[257 "\300\301\302\"\211\203\214 \211@\211A\211\203\204 \211@@\303\236A\211\2035 A\211\2034 \211@\304$\210A\266\202\202 \210\210\305\306\211\203{ \211@=\203P \306\262\305\262\202t \211A\211\203s \211@\304$\210\304 $\210A\266\202\202R \210A\266\202\202: \266A\266\202\202 \210A\266\202\202 \210\211\207" [make-hash-table :test equal ((left . >) (right . <) (assoc . =)) smie-set-prec2tab < >] 17 (#$ . 1090)]) (put 'smie-merge-prec2s 'pure t) (defalias 'smie-merge-prec2s #[128 "\211A\204 \211@\207\300\301\302\"\211\203+ \211@\303\304\305\306\307\310!\311\"\312\313%\"\210A\266\202\202 \210\211\207" [make-hash-table :test equal maphash make-byte-code 514 ":\203 \301\300@A$\207\302\300\"\203# \302\300\"\232\204# \303\304\"\207\305\300#\207" vconcat vector [smie-set-prec2tab gethash error "Conflicting values for %s property" puthash] 7 "\n\n(fn K V)"] 11 "\n\n(fn &rest TABLES)"]) (put 'smie-bnf->prec2 'pure t) #@1223 Convert the BNF grammar into a prec2 table. BNF is a list of nonterminal definitions of the form: (NONTERM RHS1 RHS2 ...) where each RHS is a (non-empty) list of terminals (aka tokens) or non-terminals. Not all grammars are accepted: - an RHS cannot be an empty list (this is not needed, since SMIE allows all non-terminals to match the empty string anyway). - an RHS cannot have 2 consecutive non-terminals: between each non-terminal needs to be a terminal (aka token). This is a fundamental limitation of the parsing technology used (operator precedence grammar). Additionally, conflicts can occur: - The returned prec2 table holds constraints between pairs of token, and for any given pair only one constraint can be present, either: T1 < T2, T1 = T2, or T1 > T2. - A token can either be an `opener' (something similar to an open-paren), a `closer' (like a close-paren), or `neither' of the two (e.g. an infix operator, or an inner token like "else"). Conflicts can be resolved via RESOLVERS, which is a list of elements that can be either: - a precs table (see `smie-precs->prec2') to resolve conflicting constraints, - a constraint (T1 REL T2) where REL is one of = < or >. (fn BNF &rest RESOLVERS) (defalias 'smie-bnf->prec2 #[385 "\302\303\"\304\211\211\211\305\306\307\310\"\304\306\307\310\"\211\203X \211@\211G\311U\2039 \211A@\312>\2039 \313@\3148A@$\210\202Q \211\211@@)\315>\203L \211B\262\202Q \316\317\"\210A\266\202\202 \210\320\321\302\322\"#\266\202\304 \211\203z\211@\211@\304\211\211\211A\211\203P\211@\211:\204\207 \323\324\325D\"\210\211@\235\204\243 \211@\326\"\204\237 \211B\262\210\202\345 \211@\326\"\204\261 \211B\262\210\211A:\203\345 \211\211A@)\235\203\320 \316\327@\211A@)#\210\211\211A@)\326\"\204\344 \211B\262\210\330!\211@\235\204\211@\326 \"\204 \211B\262\210\202H\211@\326\"\204\211B\262\210\211A:\203H\211\211A@)\235\2033\316\327\211A@)@#\210\211\211A@)\326 \"\204G\211B\262\210\210A\266\202\202u \210BB\262B B\262 B\fB\262\fBB\262\266A\266\202\202g \210\331\262\211\304\262\203\330\211\203\324\211@\211A\262@\332\"\211\203\313\211@\332\"A\211\203\303\211@\211\235\204\274\331\262 \211AB\241\266A\266\202\202\244\210A\266\202\202\230\266A\266\202\202\206\210\202~\331\262\211\304\262\2035\211\2031\211@\211A\262@\332\n\"\211\203(\211@\332 \"A\211\203 \211@\211\235\204\331\262 \211AB\241\266A\266\202\202\210A\266\202\202\365\266A\266\202\202\343\210\202\333 \211\203\371\211@\211A\211\203\361\211@\211A\203\352\211@\f\235\203y\332@\"A\211\203u\211@\313 \211A@)\333\f%\210A\266\202\202Y\210\202\343\211\211A@)\f\235\203\323\332\211A@)\f\"A\211\203\250\211@\313 @\334\f%\210A\266\202\202\220\210\211\211AA)\203\343\211\211AA)@\f\235\204\343\313@\211AA)@\335\n%\210\202\343\313@\211A@)\335\n%\210\211A\262\202EA\266\202\202?\210A\266\202\2027\210\336\337\340\f!#\210\336\341\342\f!#\210\305V\203\343\344\345\346\"\"\210)\207" [smie-warning-count x mapcar car nil 0 make-hash-table :test equal 3 (= < >) smie-set-prec2tab 2 (left right assoc nonassoc) error "Unknown resolver %S" apply smie-merge-prec2s smie-precs->prec2 signal wrong-type-argument consp memql "Adjacent non-terminals: %s %s" reverse t assoc > < = puthash :smie-open/close-alist smie-bnf--classify :smie-closer-alist smie-bnf--closer-alist display-warning smie format "Total: %d warnings"] 25 (#$ . 2434)]) #@272 Build a closer-alist from a BNF table. The return value is in the same form as `smie-closer-alist'. NO-INNERS if non-nil means that inner keywords will be excluded from the table, e.g. the table will not include things like ("if" . "else"). (fn BNF &optional NO-INNERS) (defalias 'smie-bnf--closer-alist #[513 "\300\301\"\302\211\203\216 \211@\211A\211\203\206 \211@\211G\303W\204 \211@\235\204 \203N \304!@\211\235\204J @B\235\203A \202H @BB\262\210\202 \305A!\211\203~ \211@\211\235\204w @B\235\203n \202u @BB\262A\266\202\202R \210A\266\202\202 \210A\266\202\202 \210\211\237\207" [mapcar car nil 2 last reverse] 12 (#$ . 5993)]) (defalias 'smie-bnf--set-class #[771 "\300#\301=\203 \202) \302=\203 \302\202) \303\304\305\306$\"\210\307#\207" [gethash puthash t display-warning smie format "token %s is both %s and %s" neither] 13 "\n\n(fn TABLE TOKEN CLASS)"]) #@116 Return a table classifying terminals. Each terminal can either be an `opener', a `closer', or `neither'. (fn BNF) (defalias 'smie-bnf--classify #[257 "\300\301\302\"\303C\211\203 \211@\304@\305#\210A\266\202\202 \210\211\203{ \211@\211A\211\203s \211@\211A\204@ \306\211A\262@\307#\210\202l \306\211A\262@\310#\210\211A\203` \306\211A\262@\307#\210\202L \306\211A\262@\311#\210A\266\202\202&