;ELC ;;; Compiled ;;; in Emacs version 26.3 ;;; 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!\207" [require rx cl-lib] 2) #@81 Add the report MESSAGE at POSITION to WARNINGS. (fn WARNINGS POSITION MESSAGE) (defalias 'xr--report #[771 "\205SB\211@B\240\266\202\207" [] 8 (#$ . 471)]) #@25 (fn NEGATED WARNINGS) (defalias 'xr--parse-char-alt #[514 "`\300\211\301\302!\203J\303\304!\305H\211\306Y\203 \307\306`#B\262\202.\310`\311\312\313\303\304!\300\"\"#\210\211\314=\203B\310`\311\315\313\303\304!\300\"\"#\210\210\304\225b\210\202\\g\306=\203\\\307\306\211`#B\262\316u\210g\306=\204U\301\317!\203\231\320\303\316!!\211\321>\204z\322\323\303\304!\"\210\211>\203\214\310`\311\324\"#\210\202\221\211B\262\304\225b\266\202\\\301\325!\203\300f`\305\\fX\203\267\307`#B\262\202\322\326=\203\303\211\327=\204\322\310`\311\312\313\303\304!\300\"\"#\210\211TU\203\372\330X\203\353X\203\353\211\331X\204\372\310`\311\315\313\303\304!\300\"\"#\210\304\225b\266\202\\m\203 \322\332!\210\202\\g\211\333=\2031\301\334!\2031\203)\335!@\304H\306=\2041\310`\311\336!#\210\301\337!\203E`V\203E\310`\311\340!#\210\307\211`#B\262\210\316u\210\202\\\316u\210\341\237\342\"\211\211A\203&\211@A@\316H\304HY\203\304H\316H=\203\217\211\304H\316H=\203\217\311\343\304H\"\202\304H\304H=\203\257\316H\316H=\203\257\311\344\304H\316H#\202\304H\316H=\203\314\240\210\311\345\304H\304H\316H$\202\211\304H\316H=\203\345\311\345\304H\304H\316H$\202\316H\316\316H\316H]I\210\311\346\304H\304H\316H%\262\310 \305H\305H]\313\300\"#\210\211AA\241\266\202!A\262\266\202^\300\211\211\203W\211@\211\304H\316H=\203C\211\304HB\262\202P\347\304H\350\316H#B\262A\266\202\202)\210\203m\211\204m\204m\204m\351\202\366\211G\316U\203\210\204\210\204\210\204\210\347@!\202\366G\316U\203\250\211\204\250\204\250\203\243\352@D\202\366@\202\366\203\277\211\353\232\203\277\204\277\204\277\354\202\366\350>\203\315\350\355\350\"B\262\356\205\330\357\360\237\"C\205\342\357\347\237\"C\244\237\244B \203\363\352D\202\364\211\262\266\202\266\202\207" [nil looking-at "]-[^]]" match-string 0 2 93 vector xr--report format-message "Reversed range `%s' matches nothing" xr--escape-string 94 "Two-character range `%s'" 1 "\\[:\\([^:]*\\):]" intern (ascii alnum alpha blank cntrl digit graph lower multibyte nonascii print punct space unibyte upper word xdigit) error "No character class `%s'" "Duplicated character class `[:%s:]'" "[^]]-[^]]" 122 97 48 57 "Unterminated character alternative" 91 "\\[[^][]*][^][]*[^[\\]]" last "Suspect `[' in char alternative" "-[^]]" "Literal `-' not first or last in character alternative" sort #[514 "\300H\300HW\207" [0] 5 "\n\n(fn A B)"] "Duplicated `%c' inside character alternative" "Duplicated `%c-%c' inside character alternative" "Character `%c' included in range `%c-%c'" "Ranges `%c-%c' and `%c-%c' overlap" string 45 anything not (10) nonl delq any apply concat] 17 (#$ . 642)]) #@130 Reverse SEQUENCE, flatten any (seq ...) inside, and concatenate adjacent strings. SEQUENCE is used destructively. (fn SEQUENCE) (defalias 'xr--rev-join-seq #[257 "\300\203F@A:\203@\301=\203A\237\244\262\202A;\2039@;\2039@PAB\262\211\262\202AB\262\211\262\266\202\211\207" [nil seq] 6 (#$ . 3433)]) #@30 (fn NEGATED CATEGORY-CODE) (defalias 'xr--char-category #[514 "\211\300\236\301\203 A\202D\203\302D\202\211\207" [((32 . space-for-indent) (46 . base) (48 . consonant) (49 . base-vowel) (50 . upper-diacritical-mark) (51 . lower-diacritical-mark) (52 . tone-mark) (53 . symbol) (54 . digit) (55 . vowel-modifying-diacritical-mark) (56 . vowel-sign) (57 . semivowel-lower) (60 . not-at-end-of-line) (62 . not-at-beginning-of-line) (65 . alpha-numeric-two-byte) (67 . chinese-two-byte) (71 . greek-two-byte) (72 . japanese-hiragana-two-byte) (73 . indian-two-byte) (75 . japanese-katakana-two-byte) (76 . strong-left-to-right) (78 . korean-hangul-two-byte) (82 . strong-right-to-left) (89 . cyrillic-two-byte) (94 . combining-diacritic) (97 . ascii) (98 . arabic) (99 . chinese) (101 . ethiopic) (103 . greek) (104 . korean) (105 . indian) (106 . japanese) (107 . japanese-katakana) (108 . latin) (111 . lao) (113 . tibetan) (114 . japanese-roman) (116 . thai) (118 . vietnamese) (119 . hebrew) (121 . cyrillic) (124 . can-break)) category not] 6 (#$ . 3769)]) #@28 (fn NEGATED SYNTAX-CODE) (defalias 'xr--char-syntax #[514 "\211\300\236\211\204\301\302\303\304!\305\"\"\210\306AD\203\307D\202 \211\262\207" [((45 . whitespace) (32 . whitespace) (46 . punctuation) (119 . word) (87 . word) (95 . symbol) (40 . open-parenthesis) (41 . close-parenthesis) (39 . expression-prefix) (34 . string-quote) (36 . paired-delimiter) (92 . escape) (47 . character-quote) (60 . comment-start) (62 . comment-end) (124 . string-delimiter) (33 . comment-delimiter)) error "Unknown syntax code `%s'" xr--escape-string char-to-string nil syntax not] 8 (#$ . 4847)]) #@25 (fn OPERATOR OPERAND) (defalias 'xr--postfix #[514 "\300\301\"A<\203@\302=\203A\202CB\207" [assoc (("*" . zero-or-more) ("+" . one-or-more) ("?" . opt) ("*?" . *\?) ("+?" . +\?) ("??" . 63)) seq] 6 (#$ . 5447)]) #@111 Apply a repetition of {LOWER,UPPER} to OPERAND. UPPER may be nil, meaning infinity. (fn LOWER UPPER OPERAND) (defalias 'xr--repeat #[771 "\203V\203\300\301!\210\204\"\302U\203\303\2028\304D\2028U\2034\302V\2034\305D\2028\306E<\203I@\307=\203IA\202KC\310\"\207" [error "Invalid repetition interval" 0 (zero-or-more) >= = repeat seq append] 8 (#$ . 5681)]) (defconst xr--zero-width-assertions '(bol eol bos eos bow eow word-boundary not-word-boundary symbol-start symbol-end point)) #@71 Whether RX can match the empty string regardless of context. (fn RX) (defalias 'xr--matches-empty-p #[257 "\211:\203\244\211@\211\300>\203A\211\301\302\"\262\262\202\243\211\303=\203/A\211\304\302\"\262\262\202\243\211\305=\203LA\211:\205G\211A\211\301\302\"\262\262\262\202\243\211\306>\203V\307\202\243\211\310=\203\205A\211:\205\200\211@A\211:\205~\211A\211\211\311U\206z\301\302\"\266\202\262\266\202\262\202\243\211\312>\203\242A\211:\205\235\211A\211\301\302\"\262\262\262\202\243\313\207\211\314\232\203\254\307\207\313\207" [(group +\? one-or-more seq) cl-every xr--matches-empty-p or cl-some group-n (*\? 63 zero-or-more opt) t repeat 0 (>= =) nil ""] 11 (#$ . 6202)]) #@131 Check if A subsumes B, or vice versa, or not, assuming they are adjacent. Return `a-subsumes-b', `b-subsumes-a' or nil. (fn A B) (defalias 'xr--adjacent-subsumption #[514 ":\205@\300>\205\301A!\211\205t:\205$@\302>\205$\301A!\211\205r@@\211\303>\203O\304>\203O\305>\203D\211\306>\204O\307\"\203O\310\202p\311>\205p\211\312>\205p\211\313>\205d\314>?\205p\307\"\205p\315\266\202\262\207" [(zero-or-more one-or-more opt *\? +\? 63) xr--make-seq (zero-or-more one-or-more opt *\? +\? 63) (zero-or-more opt *\? 63) (zero-or-more one-or-more *\? +\?) (*\? +\?) (zero-or-more opt) xr--superset-p a-subsumes-b (zero-or-more opt *\? 63) (zero-or-more one-or-more *\? +\?) (*\? +\?) (zero-or-more opt) b-subsumes-a] 9 (#$ . 6932)]) #@117 Whether OPERAND has a wrap-around repetition subsumption case, like (* (* X) ... (* X)). (fn OPERAND POS WARNINGS) (defalias 'xr--check-wrap-around-repetition #[771 ":\205C@\300>\205C@\301=\203AA\202A\211AA\205A\211@\302!@\303\"\211\205?\304\305=\203=\306\202>\307#\266\203\262\207" [(seq group group-n) group-n last xr--adjacent-subsumption xr--report b-subsumes-a "First item in repetition subsumes last item (wrapped)" "Last item in repetition subsumes first item (wrapped)"] 12 (#$ . 7698)]) #@25 (fn WARNINGS PURPOSE) (defalias 'xr--parse-seq #[514 "\301\302\303!\204'`g\304=\2039\305u\210\204)\306=\203!\307\310#\210\311B\262\202\\\307\312\313!#\210\314B\262\202\\g\315=\203l\305u\210\302\303!\203\\\306=\203T\307\316#\210\317B\262\202\\\307\312\320!#\210\321B\262\202\\\302\322!\203g\203M@\311=\203\203h\304=\204M\323\324!@\203;\211:\205\260\211@\325=\203\256\211AA?\205\260\211A@\211:\205\251\211@\262\202\260\211@\211\326>\203\361\327\232\203\307:\203\307\211\330>\204\361\331\235\332>\307 \324\224\203\342\203\336\333\202\353\334\202\353\203\352\335\202\353\336#\266\202,>\203\f\307\324\224\337\235\203\340\202\341#\210\202,\342!\203,\343\232\204,\307\324\224\344\235\203'\345\202(\346\347P#\210\210\350\235\203;\351\324\224#\210\324\225b\210\352\"AB\262\266\202\\\323\305!\305\225b\210\307\324\224\312\353\"#\210\211B\262\210\202\\\302\354!\203\202\203\202@\311=\203~h\304=\204\202\355u\210@\203\374\211:\203\331\211@\356>\204\261\211@\325=\203\331\211AA\204\331\211A@\211:\205\254\211@\357>\262\203\331\211@\360>\206\305\211@\325=\205\305\211A@@\361>\307\324\224\203\322\335\202\323\336#\266\202\374\211>\203\351\307\324\224\341#\210\202\374\342!\203\374\211\343\232\204\374\307\324\224\362#\210\302\363!\203z\323\305!\203\364\323\305!!\202\324\323\355!\323\365!\205\364\323\365!!\305\224\204<\323\365!\204<\307\324\224\355Z\2039\366\202:\367#\210\203]\203O\211\203U\211\355Y\202R\355Y\203]\351\324\224\n#\210\324\225b\210\370\203k\202l#AB\262\266\202~\371\372!\210\210\202\\\302\373!\203\225\305u\210\323\324!B\262\202\\\302\374!\203\256\324\225b\210\305\224\375\"B\262\210\202\\\302\376!\203#\305\224\323\355!\365\224\203\307\211\204\307\371\377!\210\324\225b\210\201@\"\211<\203\346\211@\201A=\203\346\211A\202\350\211C\302\201B!\204\366\371\201C!\210\355u\210\203 \201D\201E\364!D\"\202\203\202\325B\211B\262\266\202\\\302\201F!\203>\355u\210\201G\364\323\305!!DB\262\202\\g\201H=\203l\301u\210\306=\203b\302\201I!\204b\307`S\312\201J!#\210\201KB\262\202\\\302\201L!\203\214\324\225b\210\201M\323\324!\201N\"A\211B\262\210\202\\\302\201O!\203\275\323\305!\211\204\241\371\201P!\210\365u\210\211\201Q\230\203\262\201R\202\265\201SB\262\210\202\\\302\201T!\203\363\323\305!\201U\230\323\355!\211\204\334\371\201V\323\305!\"\210\324\225b\210\201W\201X!\"B\262\266\202\\\302\201Y!\203)\323\305!\201Z\230\323\355!\211\204\371\201V\323\305!\"\210\324\225b\210\201[\201X!\"B\262\266\202\\\302\201\\!\203V\355u\210\323\305!B\262\355\224\203\\\307\324\224\312\201]\201^\323\355!\301\"\"#\210\202\\\371\201_!\210\203#A\203#\302\201`!\204#@A@\201a\"\211\203\223\307\201b=\203\216\201c\202\221\201d#\210\201e\317\"\211\203\301\201f!\211\203\300\201g=\204\266\211\201g=\203\300\307 \201h#\210\210\210\201i\311\"\211\203\360\201j!\211\203\357\211\201g=\204\345\201g=\203\357\307 \201k#\210\210\210\201e\201l\"\211\203!\201m!\211\203 \201g=\204\211\201g=\203 \307 \201n#\210\210\266\210\202\201o!\211\2044\343\202C\211A\204>\211@\202C\201AB\262\207" [xr--zero-width-assertions nil looking-at "\\\\|\\|\\\\)\\|\\'" 94 1 file xr--report "Use \\` instead of ^ in file-matching regexp" bol format-message "Unescaped literal `^'" "^" 36 "Use \\' instead of $ in file-matching regexp" eol "Unescaped literal `$'" "$" "\\([*+?]\\)\\??" match-string 0 group (opt zero-or-more one-or-more *\? +\? 63) "?" (one-or-more +\?) ("?" "??") (opt 63) "Optional option" "Optional repetition" "Repetition of option" "Repetition of repetition" ("?" "??") "Optional zero-width assertion" "Repetition of zero-width assertion" xr--matches-empty-p "" ("?" "??") "Optional expression" "Repetition of expression" " matching an empty string" ("*" "+" "*?" "+?") xr--check-wrap-around-repetition xr--postfix "Unescaped literal `%s'" "\\\\{" 2 (opt zero-or-more one-or-more +\? *\? 63) (opt zero-or-more one-or-more +\? *\? 63) (opt 63) (opt 63) "Repetition of expression matching an empty string" "\\([[:digit:]]+\\)?\\(?:\\(,\\)\\([[:digit:]]+\\)?\\)?\\\\}" string-to-number 3 "Uncounted repetition" "Implicit zero repetition" xr--repeat error "Invalid \\{\\} syntax" "[^.[\\]" "\\[\\(\\^\\)?" xr--parse-char-alt "\\\\(\\(?:\\(\\?\\)\\(?:\\([1-9][[:digit:]]*\\)?\\(:\\)\\)?\\)?" "Invalid \\(? syntax" xr--parse-alt seq "\\\\)" "Missing \\)" append group-n "\\\\\\([1-9]\\)" backref 46 "[*+?]" "Possibly unescaped `.' in file-matching regexp" nonl "\\(?:\\\\['<=>BW`bw]\\)" assoc (("\\w" . wordchar) ("\\W" . not-wordchar) ("\\`" . bos) ("\\'" . eos) ("\\=" . point) ("\\b" . word-boundary) ("\\B" . not-word-boundary) ("\\<" . bow) ("\\>" . eow)) "\\\\_\\([<>]\\)?" "Invalid \\_ sequence" "<" symbol-start symbol-end "\\\\\\([Ss]\\)\\(.\\|\n\\)?" "S" "Incomplete \\%s sequence" xr--char-syntax string-to-char "\\\\\\([Cc]\\)\\(.\\|\n\\)?" "C" xr--char-category "\\\\\\([$*+.?[-^]\\|\\([^$*+.?[-^]\\)\\)" "Escaped non-special character `%s'" xr--escape-string "Backslash at end of regexp" "[*+?]\\|\\\\{" xr--adjacent-subsumption a-subsumes-b "Repetition subsumed by preceding repetition" "Repetition subsumes preceding repetition" xr--ends-with-sym xr--starts-with-nonl always "End-of-line anchor followed by non-newline" xr--starts-with-sym xr--ends-with-nonl "Non-newline followed by line-start anchor" eos xr--matches-nonempty "End-of-text anchor followed by non-empty pattern" xr--rev-join-seq] 13 (#$ . 8224)]) #@184 Whether F is true for some element in LIST. Return `always' if F returns `always' for at least one element, nil if F returns nil for all elements, `sometimes' otherwise. (fn F LIST) (defalias 'xr--tristate-some #[514 "\300\"\301>\203\301\202\302>\205\302\207" [mapcar always sometimes] 5 (#$ . 13897)]) #@176 Whether F is true for all elements in LIST. Return `always' if F returns `always' for all elements, nil if F returns nil for all elements, `sometimes' otherwise. (fn F LIST) (defalias 'xr--tristate-all #[514 "\300\"\301>\203\302\301\"\205 \303\202 \303>\203\303\202 \304\207" [mapcar nil delq sometimes always] 6 (#$ . 14218)]) #@221 Whether RX matches non-empty strings. Return `always', `sometimes' or nil. `always' if RX only matches non-empty strings, `sometimes' if RX may match a non-empty string, nil if RX only matches the empty string. (fn RX) (defalias 'xr--matches-nonempty #[257 "\211;\203\211G\300V\205\301\207\211:\203\367\211@\211\302>\203)A\211\303\304\"\262\262\202\366\211\305>\203AA\211\303\304\"\205:\306\262\262\202\366\211\307=\203UA\211\310\304\"\262\262\202\366\211\311=\203rA\211:\205m\211A\211\303\304\"\262\262\262\202\366\211\312=\203\254A\211:\205\247\211@A\211:\205\245\211A\211\211\300U\203\235\313\304\"\205\241\306\202\241\303\304\"\266\202\262\266\202\262\202\366\211\314>\203\353A\211:\203\333\211@A\211\211\300U\203\320\313\304\"\205\324\306\202\324\303\304\"\266\202\266\202\202\346\315>\203\345\301\202\346\316\262\202\366\211\317>\203\365\301\202\366\316\207\211\320>\203\377\301\207\316\207" [0 always (group +\? one-or-more seq) xr--tristate-some xr--matches-nonempty (*\? 63 zero-or-more opt) sometimes or xr--tristate-all group-n repeat cl-some (>= =) (category syntax intersection not any) nil (category syntax intersection not any) (anything nonl xdigit word upper unibyte space punct print nonascii multibyte lower graph digit cntrl blank alpha alnum ascii)] 11 (#$ . 14566)]) #@89 Whether ITEM starts with SYMBOL. Return `always', `sometimes' or nil. (fn SYMBOL ITEM) (defalias 'xr--starts-with-sym #[514 "\211=\203\300\207\211:\204\301\207\211@\302>\203\303A@\"\207\211@\304>\203/\303A@\"\205V\305\207\211@\306=\203>\303AA@\"\207\211@\307=\205V\310\311\312\313\314\315!\316\"\317\320%A\"\207" [always nil (seq one-or-more +\? group) xr--starts-with-sym (seq opt zero-or-more 63 *\?) sometimes group-n or xr--tristate-all make-byte-code 257 "\301\300\"\207" vconcat vector [xr--starts-with-sym] 4 "\n\n(fn X)"] 9 (#$ . 15927)]) #@87 Whether ITEM ends with SYMBOL. Return `always', `sometimes' or nil. (fn SYMBOL ITEM) (defalias 'xr--ends-with-sym #[514 "\211=\203\300\207\211:\204\301\207\211@\302>\203\303\304!@\"\207\211@\305>\2031\303\304!@\"\205I\306\207\211@\307=\205I\310\311\312\313\314\315!\316\"\317\320%A\"\207" [always nil (seq one-or-more +\? group group-n) xr--ends-with-sym last (seq opt zero-or-more 63 *\?) sometimes or xr--tristate-all make-byte-code 257 "\301\300\"\207" vconcat vector [xr--ends-with-sym] 4 "\n\n(fn X)"] 9 (#$ . 16502)]) #@85 Whether ITEM starts with a non-newline. Return `always', `maybe' or nil. (fn ITEM) (defalias 'xr--starts-with-nonl #[257 "\300\301;\203G\302V\205t\302H\303=?\205t\304\202t:\203i@\211\305>\203`A\211:\203<\211@\211\306!\262\262\202[\307=\203H!\202[\310>\203Z\311\312\"\205[\304\202[\313\262\202d\211\314>\203\234A\211:\203~\211@\211\306!\205w\315\262\262\202\227\307=\203\212!\202\227\316>\203\226!\202\227\313\262\202d\211\307=\203\254A!\262\202d\211\317=\203\321A\211:\205\314\211A\211:\205\312\211@\211\306!\262\262\262\262\202d\211\320>\203 A\211:\203\211@A\211:\203\373\211@\211\211\302V\205\364\306!\266\202\262\202 \321>\203!\202 \313\266\202\202\322>\203!\202\313\262\202d\211\323=\203WA\211:\205R\211@A\211:\205P\211A\211:\205N\211@\211\211\302V\205J\306!\266\202\262\262\266\202\262\202d\211\324>\203c!\202d\313\262\202t\325>\203s\304\202t\313\207" [#[257 "\300\301\"\205\302\207" [xr--superset-p nonl always] 4 "\n\n(fn ITEM)"] #[257 "\300\301\"\207" [xr--tristate-all xr--starts-with-nonl] 4 "\n\n(fn ITEMS)"] 0 10 always (group +\? one-or-more seq) xr--starts-with-nonl or (intersection not any) xr--superset-p nonl nil (*\? 63 zero-or-more opt) sometimes (intersection not any) group-n (>= =) (intersection not any) (intersection not any) repeat (intersection not any) (nonl xdigit word upper punct print nonascii multibyte lower graph digit blank alpha alnum)] 13 (#$ . 17051)]) #@83 Whether ITEM ends with a non-newline. Return `always', `maybe' or nil. (fn ITEM) (defalias 'xr--ends-with-nonl #[257 "\300;\203G\301V\205\362\211GSH\302=?\205\362\303\202\362:\203\347@\211\304>\2039A\211\305\306!@!\262\262\202\342\211\307>\203SA\211\305\306!@!\205L\310\262\262\202\342\211\311=\203gA\211\312\313\"\262\262\202\342\211\314>\203\244A\211:\203\215\211@A\211\211\301V\205\206\305\306!@!\266\202\266\202\202\237\315>\203\236\316\317\"\205\237\303\202\237\320\262\202\342\211\321=\203\325A\211:\205\320\211@A\211:\205\316\211A\211\211\301V\205\312\305\306!@!\266\202\262\266\202\262\202\342\211\322>\203\341!\202\342\320\262\202\362\323>\203\361\303\202\362\320\207" [#[257 "\300\301\"\205\302\207" [xr--superset-p nonl always] 4 "\n\n(fn ITEM)"] 0 10 always (group-n group +\? one-or-more seq) xr--ends-with-nonl last (*\? 63 zero-or-more opt) sometimes or xr--tristate-all xr--starts-with-nonl (>= =) (intersection not any) xr--superset-p nonl nil repeat (intersection not any) (nonl xdigit word upper punct print nonascii multibyte lower graph digit blank alpha alnum)] 12 (#$ . 18572)]) #@77 Convert a string of ranges to a list of pairs of their endpoints. (fn STR) (defalias 'xr--range-string-to-items #[257 "\211G\300\301\211W\203H\302\\HBB\262\211\303\\\262\202\207" [nil 0 2 3] 8 (#$ . 19749)]) #@104 Convert an `any' argument to a list of characters, ranges (as pairs), and classes (symbols). (fn ARG) (defalias 'xr--any-arg-to-items #[257 "\2119\203\211\300=\203\301\202\211\302=\203\303\202\211C\207\304!\203%\211C\207\211G\305Y\2038\211\306H\307=\2038\310!\207\211\311\312\"\207" [unibyte ascii multibyte nonascii characterp 3 1 45 xr--range-string-to-items append nil] 5 (#$ . 19978)]) #@124 Whether A is a superset of B, both being `any' items: a character, a range (pair of chars), or a class (symbol). (fn A B) (defalias 'xr--any-item-superset-p #[514 "9\203y\2119\203=\206x\211\301\236A>\207\302!\203^\303=\203'\211\304>\207\305=\203;\306\307!\310\311\312#)\207\313>\204M\314=\205x\211\315X\205x\316\317\"\307!\310\311\312#)\207\211A\315X\205x\320\321\322\323\324\325!\326\"\327\330%\331\236A\"\207:\203\262\302!\203\214\332@A#\207\211:\203\234\332@@AA$\207\211\333\236A\211\205\261@@X\205\261\211AAX\207\302!\205\273=\207" [inhibit-changing-match-data ((alpha upper lower) (alnum alpha digit xdigit upper lower) (xdigit digit) (ascii digit xdigit cntrl) (graph alpha alnum digit xdigit punct upper lower word) (print alpha alnum digit xdigit graph punct upper lower word) (word alpha alnum digit xdigit upper lower)) characterp space (32 9 12) word "[0-9A-Za-z]" char-to-string nil t string-match (digit xdigit cntrl ascii nonascii alpha alnum blank graph print upper lower) punct 127 format "[[:%s:]]" cl-some make-byte-code 257 "\211@\300@X\205 \300AAX\207" vconcat vector [] 3 "\n\n(fn A-RANGE)" ((alpha (65 . 90) (97 . 122)) (alnum (48 . 57) (65 . 90) (97 . 122)) (digit (48 . 57)) (xdigit (48 . 57) (65 . 70) (97 . 102)) (cntrl (0 . 31)) (ascii (0 . 127)) (graph (33 . 126)) (print (32 . 126)) (punct (33 . 47) (58 . 64) (91 . 96) (123 . 126)) (upper (65 . 90)) (lower (97 . 122)) (word (48 . 57) (65 . 90) (97 . 122)) (space (32 . 32) (9 . 9) (12 . 12))) <= ((digit 48 . 57) (xdigit 48 . 102) (cntrl 0 . 31) (ascii 0 . 127) (nonascii 128 . 1114111))] 9 (#$ . 20392)]) #@141 Whether A intersects B, both being `any' items: a character, a range (pair of chars), or a class (symbol). If in doubt, return t. (fn A B) (defalias 'xr--any-item-may-intersect-p #[514 "9\203\234\2119\203=\206\233\211\301\236A>\207\302!\203\\\303=\2034\304\305!\306\307\310#)\266\203?\207\311=\203?\211\312>?\207\313=\203K\211\314V\206\325\315\316\"\305!\306\307\310#)\207\211A\314V\203j\317>?\206\233\303=\203\202\320\321\322\323\324\325!\326\"\327\330%\331\"?\207\311=\206\233\320\321\322\323\324\325!\326\"\327\330%\332\236A\"\207:\203\307\302!\203\257\333@A#\207\211:\203\302@AX\205\306\211@AX\207\334\"\207\302!\203\321=\207\334\"\207" [inhibit-changing-match-data ((alpha alnum xdigit ascii nonascii graph print upper lower word) (alnum alpha digit xdigit ascii nonascii graph print upper lower word) (digit alnum xdigit ascii graph print word) (xdigit alpha alnum digit ascii graph print upper lower word) (cntrl ascii blank space) (ascii alpha alnum digit xdigit cntrl ascii blank graph print punct upper lower space word) (nonascii alpha alnum blank graph print punct upper lower space word) (blank cntrl ascii nonascii print punct space) (graph alpha alnum digit xdigit ascii nonascii print punct upper lower word) (print alpha alnum digit xdigit ascii nonascii blank graph punct upper lower space word) (punct ascii nonascii blank graph print upper lower word) (upper alpha alnum xdigit ascii nonascii graph print word) (lower alpha alnum xdigit ascii nonascii graph print word) (space cntrl ascii nonascii blank print) (word alpha alnum digit xdigit ascii nonascii graph print punct upper lower)) characterp space "[!-~]" char-to-string nil t string-match word (32 9 12 13) punct 127 format "[[:%s:]]" (cntrl ascii digit xdigit) cl-some make-byte-code 257 "\211@\300AX\205 \300@AX\207" vconcat vector [] 3 "\n\n(fn A-RANGE)" ((48 . 57) (65 . 90) (97 . 122)) ((alpha (65 . 90) (97 . 122)) (alnum (48 . 57) (65 . 90) (97 . 122)) (digit (48 . 57)) (xdigit (48 . 57) (65 . 70) (97 . 102)) (cntrl (0 . 31)) (ascii (0 . 127)) (graph (33 . 126)) (print (32 . 126)) (punct (33 . 47) (58 . 64) (91 . 96) (123 . 126)) (upper (65 . 90)) (lower (97 . 122))) <= xr--any-item-may-intersect-p] 9 (#$ . 22044)]) #@130 Whether A-SETS, possibly NEGATED, is a superset of B-SETS. A-SETS and B-SETS are arguments to `any'. (fn A-SETS NEGATED B-SETS) (defalias 'xr--char-superset-of-char-set-p #[771 "\300\301\"\300\301\"\302\303\304\305\306\307 \"\310\"\311\312%\"\207" [mapcan xr--any-arg-to-items cl-every make-byte-code 257 "\300\203\302\303\304\305\306\307!\310\"\311\312%\301\"?\207\302\303\304\313\306\307!\314\"\311\312%\301\"\207" vconcat vector [cl-some make-byte-code 257 "\301\300\"\207" vconcat vector [xr--any-item-may-intersect-p] 4 "\n\n(fn A-ITEM)" "\301\300\"\207" [xr--any-item-superset-p]] 8 "\n\n(fn B-ITEM)"] 13 (#$ . 24322)]) #@76 Whether SETS, possibly NEGATED, is a superset of RX. (fn SETS NEGATED RX) (defalias 'xr--char-superset-of-rx-p #[771 "\300:\203\375@\211\301=\203A\211\302#\262\262\202\370\211\303=\203\351A\211:\203\322\211@\211:\203\205\211@\211\301=\203mAA\211\204T \205O\302\304 #\262\202h\305!\203g\302\n\n\nC#\202h\304\266\202\202\200\305!\203#\202\200\304\262\202\315\211\306>\203\273A\211\204\243\205\236\302C\304 #\262\202\266\305!\203\265#\202\266\304\262\202\315\305!\203\314#\202\315\304\262\202\344\305!\203\343#\202\344\304\262\202\370\305!\203\367#\202\370\304\262\202\307>\203\f\302C#\202\305!\203\211#\202\304\207" [#[771 "\300C#\207" [xr--char-superset-of-char-set-p] 7 "\n\n(fn SETS NEGATED RX)"] any xr--char-superset-of-char-set-p not nil characterp (xdigit word upper unibyte space punct print nonascii multibyte lower graph digit cntrl blank alpha alnum ascii) (xdigit word upper unibyte space punct print nonascii multibyte lower graph digit cntrl blank alpha alnum ascii)] 15 (#$ . 24969)]) #@78 Whether RX only matches single characters none of which is newline. (fn RX) (defalias 'xr--single-non-newline-char-p #[257 "\300\301>\203 \302\202w:\203t@\211\303=\203<A\211:\2034\211A\211\204)\302\202/\304\305\302#\262\2027!\262\202o\211\306=\203lA\211:\203d\211@A\211\204[\211\307=?\262\202_!\266\202\202g!\262\202o!\262\202w\211!\207" [#[257 "\300\301\302#\207" [xr--char-superset-of-rx-p #1=("\n") t] 5 "\n\n(fn RX)"] (wordchar nonl) t category xr--char-superset-of-rx-p #1# syntax 62] 9 (#$ . 26101)]) #@53 Whether RX only matches single characters. (fn RX) (defalias 'xr--single-char-p #[257 "\211\300>\206$\301!\206$\211:\205$\211@\302>\206$\211@\303=\205$\304A@!\207" [(nonl anything ascii alnum alpha blank cntrl digit graph lower multibyte nonascii print punct space unibyte upper word xdigit wordchar not-wordchar) characterp (any category syntax) not xr--single-char-p] 3 (#$ . 26656)]) #@80 Whether SYNTAX, possibly NEGATED, is a superset of RX. (fn SYNTAX NEGATED RX) (defalias 'xr--syntax-superset-of-rx-p #[771 "\300=\203\f\301\302#\207\303=\203\301\304#\207\305\306\203#\202$\236\211\2050\301A\307#\207" [whitespace xr--char-superset-of-rx-p (space) word (word) ((open-parenthesis "([") (close-parenthesis "])")) ((punctuation "A-Za-z0-9") (open-parenthesis "-A-Za-z0-9" " ") (close-parenthesis "-A-Za-z0-9" " ")) nil] 10 (#$ . 27057)]) #@104 Expand strings to characters or seqs of characters. `seq' forms are expanded non-recursively. (fn RX) (defalias 'xr--expand-strings #[257 "\211:\203\211@\300=\203\300\301\302A\"B\207\207\211;\203/\211G\303U\203%\304!\207\300\305\306\"\262B\207\207" [seq mapcan #[257 "\211;\203 \211\300\301\"\207\211C\207" [append nil] 5 "\n\n(fn X)"] 1 string-to-char append nil] 6 (#$ . 27540)]) #@76 Whether A matches all that B matches, both lists of expressions. (fn A B) (defalias 'xr--superset-seq-p #[514 "\203\211\203\300@@\"\203A\262\211A\262\202\211?\205+?\206+\301\302B!\207" [xr--superset-p xr--matches-empty-p seq] 5 (#$ . 27942)]) #@13 (fn BODY) (defalias 'xr--make-seq #[257 "\211G\300V\203 \301B\207\211@\207" [1 seq] 3 (#$ . 28210)]) #@49 Whether A matches all that B matches. (fn A B) (defalias 'xr--superset-p #[514 "\211CC\211\300\242!\240\210\300\242!\240\210\301\242:\203S\242@\211\302=\203=\242A\211\303\304\305\306\307\310\n!\311\"\312\313%\"\262\262\202N\314\242:\203\346\242@\211\315=\203_\242A\211\316\317\n\242#\262\262\202\341\211\320=\203\203\242A\211:\203x\211@\211:\203F\211@\211\315=\203\235AA\211\204\221\316\321\242#\262\202\230 \242 \242\232\266\202\202A\211\322=\203\363A\211:\203\347\211@A\211\204\333A\211\204\317\f\242\242\232\206\312\323\321\242#\262\202\326 \242 \242\232\262\202\342\n\242\f\242\232\266\202\202\356\242\n\242\232\262\202A\211\324=\203:A\211:\203.\211A\211\204\"A\211\204  \"\202\n\242\f\242\232\262\202) \242 \242\232\262\2025\242\n\242\232\262\202A\242 \242\232\262\202s\211\325>\203lA\211\204`\316C\321\f\242#\262\202g\242 \242\232\262\202s\242\242\232\262\202~\242\242\232\262\202\341\211\326=\203\311\242A\211\327\242:\203\273\242@\211\326=\203\257 \242A\211\330\"\262\262\202\266\330 \242C\"\262\202\300\211 \"\262\262\262\202\341\211\302=\203\352\242A\211\331\304\305\332\307\310 !\333\"\312\334%\"\262\262\202\341\211\335=\2036\242A\211\336\242:\203(\242@\211\337>\203 \242A\211\340\341!\341!\"\262\262\202#\340\341! \242\"\262\202-\211 \"\262\262\262\202\341\211\342=\203\202\242A\211\343\242:\203t\242@\211\342=\203g \242A\211\340\341!\341!\"\262\262\202o\340\341! \242\"\262\202y\211 \"\262\262\262\202\341\211\344=\203\316\242A\211\345\242:\203\300\242@\211\344=\203\263 \242A\211\340\341!\341!\"\262\262\202\273\340\341! \242\"\262\202\305\211 \"\262\262\262\202\341\211\346=\203\242A\211:\203\211@A\211:\203\211A\211\211\347X\203\372\340\341! \242\"\202\n\242\f\242\232\266\202\262\202\242 \242\232\266\202\202\242\242\232\262\202\341\211\350=\2038\242A\211\340\341! \242\"\262\262\202\341\211\351=\203c\242A\211:\203X\211A\211\340\341!\n\242\"\262\262\202^\242\242\232\262\202\341\211\322=\203\247\242A\211:\203\234\211@A\211\204\220\242\n\242\232\206\213\323\317\f\242#\262\202\227\242 \242\232\266\202\202\242\242\242\232\262\202\341\211\324=\203\333\242A\211:\203\320\211A\211\204\304 \"\202\313\242\242\232\262\202\326\242\242\232\262\202\341\242\242\232\262\202L\242\352>\203\371\316\242C\317\242#\202L\242\353=\203\354\242!\202L\242\355=\203\356\242!\202L\242\357=\203.\242\242\232\206L\323\360\317\242#\202L\242\361=\203G\242\242\232\206L\323\360\321\242#\202L\242\242\232\262\262\202W\211\"\262\207" [xr--expand-strings #[514 "\300\242:\203\227\242@\211\301=\203\"\242A\211\302\303\242#\262\262\202\222\211\304=\203C\242A\211:\2039\211@\211:\203 \211@\211\301=\203`AA\211\204T\302\305 \242#\262\202[\242\242\232\266\202\202\211\306=\203\266A\211:\203\252\211@A\211\204\236A\211\204\222 \242 \242\232\206\215\307\305 \242#\262\202\231\n\242\n\242\232\262\202\245 \242 \242\232\266\202\202\261\242\242\232\262\202\211\310=\203\375A\211:\203\361\211A\211\204\345A\211\204\331\n\n\"\202\340 \242 \242\232\262\202\354\242\242\232\262\202\370\242\242\232\262\202\242\242\232\262\2024\211\311>\203/A\211\204#\302C\305 \242#\262\202*\242\242\232\262\2024\242\242\232\262\202>\242\242\232\262\202\222\211\312=\203\207\242A\211\313\242:\203y\242@\211\312=\203m\242A\211\314\"\262\262\202t\314\242C\"\262\202~\211\"\262\262\262\202\222\211\315=\203\250\242A\211\316\317\320\321\322\323\n!\324\"\325\326%\"\262\262\202\222\211\327=\203\362\242A\211\330\242:\203\344\242@\211\331>\203\327\242A\211\332\333!\333!\"\262\262\202\337\332\333!\242\"\262\202\351\211\"\262\262\262\202\222\211\334=\203<\242A\211\335\242:\203.\242@\211\334=\203!\242A\211\332\333!\333!\"\262\262\202)\332\333!\242\"\262\2023\211\"\262\262\262\202\222\211\336=\203\206\242A\211\337\242:\203x\242@\211\336=\203k\242A\211\332\333!\333!\"\262\262\202s\332\333!\242\"\262\202}\211\"\262\262\262\202\222\211\340=\203\326\242A\211:\203\314\211@A\211:\203\300\211A\211\211\341X\203\262\332\333!\n\242\"\202\271 \242 \242\232\266\202\262\202\307\242\242\232\266\202\202\321\242\242\232\262\202\222\211\342=\203\357\242A\211\332\333!\242\"\262\262\202\222\211\343=\203\242A\211:\203\211A\211\332\333!\242\"\262\262\202\242\242\232\262\202\222\211\306=\203\\\242A\211:\203R\211@A\211\204F\242\242\232\206A\307\303 \242#\262\202M\242\242\232\266\202\202W\242\242\232\262\202\222\211\310=\203\215\242A\211:\203\203\211A\211\204y\"\202~\242\242\232\262\202\210\242\242\232\262\202\222\242\242\232\262\202\372\242\344>\203\251\302\242C\303\242#\202\372\242\345=\203\267\346\242!\202\372\242\347=\203\305\350\242!\202\372\242\351=\203\335\242\242\232\206\372\307\352\303\242#\202\372\242\353=\203\365\242\242\232\206\372\307\352\305\242#\202\372\242\242\232\207" [#[514 "\242\242\232\206\"\301\242!\205\"\302\242!\303\242!\304\305\306#)\266\203\207" [inhibit-changing-match-data characterp rx-to-string char-to-string nil t string-match] 9 "\n\n(fn A B)"] any xr--char-superset-of-rx-p nil not t syntax xr--syntax-superset-of-rx-p category #1=(xdigit word upper unibyte space punct print nonascii multibyte lower graph digit cntrl blank alpha alnum ascii) seq #[514 "\300\242C\"\207" [xr--superset-seq-p] 5 "\n\n(fn B A-BODY)"] xr--superset-seq-p or cl-some make-byte-code 257 "\301\300\242\"\207" vconcat vector [xr--superset-p] 4 "\n\n(fn A-EXPR)" zero-or-more #[514 "\300\301!\242\"\207" [xr--superset-p xr--make-seq] 5 "\n\n(fn B A-BODY)"] #2=(one-or-more zero-or-more opt) xr--superset-p xr--make-seq one-or-more #[514 "\300\301!\242\"\207" [xr--superset-p xr--make-seq] 5 "\n\n(fn B A-BODY)"] opt #[514 "\300\301!\242\"\207" [xr--superset-p xr--make-seq] 5 "\n\n(fn B A-BODY)"] repeat 1 group group-n #3=(xdigit word upper unibyte space punct print nonascii multibyte lower graph digit cntrl blank alpha alnum ascii) nonl xr--single-non-newline-char-p anything xr--single-char-p wordchar word not-wordchar] 16 "\n\n(fn A B)"] or cl-every make-byte-code 257 "\301\300\242\"\207" vconcat vector [xr--superset-p] 4 "\n\n(fn B-EXPR)" #[514 "\242\242\232\206\"\301\242!\205\"\302\242!\303\242!\304\305\306#)\266\203\207" [inhibit-changing-match-data characterp rx-to-string char-to-string nil t string-match] 9 "\n\n(fn A B)"] any xr--char-superset-of-rx-p nil not t syntax xr--syntax-superset-of-rx-p category #1# seq #[514 "\300\242C\"\207" [xr--superset-seq-p] 5 "\n\n(fn B A-BODY)"] xr--superset-seq-p cl-some "\301\300\242\"\207" [xr--superset-p] "\n\n(fn A-EXPR)" zero-or-more #[514 "\300\301!\242\"\207" [xr--superset-p xr--make-seq] 5 "\n\n(fn B A-BODY)"] #2# xr--superset-p xr--make-seq one-or-more #[514 "\300\301!\242\"\207" [xr--superset-p xr--make-seq] 5 "\n\n(fn B A-BODY)"] opt #[514 "\300\301!\242\"\207" [xr--superset-p xr--make-seq] 5 "\n\n(fn B A-BODY)"] repeat 1 group group-n #3# nonl xr--single-non-newline-char-p anything xr--single-char-p wordchar word not-wordchar] 20 (#$ . 28321)]) #@25 (fn WARNINGS PURPOSE) (defalias 'xr--parse-alt #[514 "\300\301\"B\262\302\303!\204g\304u\210`\301\"\203_\211\235\203*\305\306#\210\202_\307\310\311\312\313\314!\315\"\316\317%\"\203F\305\320#\210\202_\307\310\311\321\313\314!\322\"\316\317%\"\203_\305\323#\210\211B\266\203\202 \211A\203}\211\324\235\203v\325\202\326\237B\202\211@\207" [nil xr--parse-seq looking-at "\\\\)\\|\\'" 2 xr--report "Duplicated alternative branch" cl-some make-byte-code 257 "\301\300\"\207" vconcat vector [xr--superset-p] 4 "\n\n(fn BRANCH)" "Branch matches superset of a previous branch" "\301\300\"\207" [xr--superset-p] "Branch matches subset of a previous branch" ((nonl "\n") ("\n" nonl)) anything or] 12 (#$ . 35867)]) #@35 (fn RE-STRING WARNINGS PURPOSE) (defalias 'xr--parse #[771 "\301\302!r\211q\210\303\304\305\306\307!\310\"\311$\216\312\313!\210c\210eb\210\314\315\"\316\317!\203-\320\321!\210)\211\262*\207" [case-fold-search generate-new-buffer " *temp*" make-byte-code 0 "\301\300!\205 \302\300!\207" vconcat vector [buffer-name kill-buffer] 2 set-buffer-multibyte t nil xr--parse-alt looking-at "\\\\)" error "Unbalanced \\)"] 10 (#$ . 36618)]) #@17 (fn WARNINGS) (defalias 'xr--parse-skip-set-buffer #[257 "\300\301!\203\300\302!\204\303`\304\305!#\210g\306=`\307\211\203$\310u\210`\262m\204\374\300\311!\203t\312\313\310!!\211\314>\204@\315\316\313\317!\"\210`Sf\320=\203Z\317\225f\321=\203Z\303`S\304\322!#\210\211>\203l\303`\304\323\313\317!\"#\210\211B\266\202\202\365\300\324!\203\347\325\313\310!\206\204\313\326!!\327\224\203\222\325\313\327!!\206\234\330\224\205\234\325\313\330!!\310\224\203\265\331>\204\265\303`\332\304\333\"\307\"#\210\327\224\203\320\211\334>\204\320\303\327\224S\332\304\333\"\307\"#\210\335=\203\361\211\204\361\326\224\203\361\336`dS#\203\361\303`\304\337!#\210\211\203V\203\303`\332\304\340#\307\"#\210\202\342=\203'\303`\332\304\341#\307\"#\210\202>T=\203>\303`\332\304\342#\307\"#\210\211\203\322\211@\211@\206LX\203\312AX\203\312\203wW\203w\211@AW\203w\304\343@A%\202\242\203\213W\203\213\304\344@$\202\242\211@AW\203\236\304\345@A$\202\242\304\346\"\303\n`\332\307\"#\210\211@^\240\210\211A\206\275]\241\210\307\262\307\262\210\202\316A\262\210\202?\210\203\342\206\335BB\262\266\202\365\300\347!\203\365\303`\304\350!#\210\317\225b\210\202$\204\211\204\303e\203\351\202\352#\210\2046\211\2046G\310U\2036@@@A=\2036\353\354@@!!\202\307\203F\211\204F\204F\355\202\307\211G\310U\203a\204a\203\\\356@D\202\307\211@\202\307\307\211\211\203\215\211@\211@A=\203{\211@B\262\202\206\357@\335A#B\262A\266\202\202d\210\335>\203\236\360\361\335\"\335C\"\262\362\360\205\251\363\364\"C\205\262\363\357\"C\237#B\203\302\356D\202\303\211\262\266\202\207" [looking-at "\\[\\(?:.\\|\n\\)+]\\(?:[*+?]\\??\\)?\\'" "\\[:\\(?:.\\|\n\\)+:]\\'" xr--report format-message "Suspect skip set framed in `[...]'" 94 nil 1 "\\[:\\(\\(?:.\\|\n\\)*?\\):]" intern match-string (ascii alnum alpha blank cntrl digit graph lower multibyte nonascii print punct space unibyte upper word xdigit) error "No character class `%s'" 0 91 93 "Suspect character class framed in `[...]'" "Duplicated character class `%s'" "\\(?:\\\\\\(.\\|\n\\)\\|\\([^\\]\\)\\)\\(?:-\\(?:\\\\\\(.\\|\n\\)\\|\\(.\\|\n\\)\\)\\)?" string-to-char 2 3 4 (94 45 92) xr--escape-string "Unnecessarily escaped `%c'" (94 45 92) 45 < "Literal `-' not first or last" "Reversed range `%c-%c'" "Single-element range `%c-%c'" "Two-element range `%c-%c'" "Ranges `%c-%c' and `%c-%c' overlap" "Range `%c-%c' includes character `%c'" "Character `%c' included in range `%c-%c'" "Duplicated character `%c'" "\\\\\\'" "Stray `\\' at end of string" "Negated empty set matches anything" "Empty set matches nothing" regexp-quote char-to-string anything not string append delq any apply concat] 16 (#$ . 37066)]) #@29 (fn SKIP-STRING WARNINGS) (defalias 'xr--parse-skip-set #[514 "\300\301!r\211q\210\302\303\304\305\306!\307\"\310$\216\311\312!\210c\210eb\210\313!*\207" [generate-new-buffer " *temp*" make-byte-code 0 "\301\300!\205 \302\300!\207" vconcat vector [buffer-name kill-buffer] 2 set-buffer-multibyte t xr--parse-skip-set-buffer] 9 (#$ . 39903)]) #@136 Substitute keywords in RX using HEAD-ALIST and BODY-ALIST in the head and body positions, respectively. (fn HEAD-ALIST BODY-ALIST RX) (defalias 'xr--substitute-keywords #[771 "\2119\203 \211\236A\2062\207\211:\2031\211@\236A\206\211@\300\301\302\303\304\305  \"\306\"\307\310%A\"B\207\211\207" [mapcar make-byte-code 257 "\302\300\301#\207" vconcat vector [xr--substitute-keywords] 5 "\n\n(fn ELEM)"] 12 (#$ . 40258)]) #@156 Alist mapping keyword dialect to (HEAD-ALIST . BODY-ALIST), or to nil if no translation should take place. The alists are mapping from the default choice. (defconst xr--keywords '((medium) (brief ((zero-or-more . 0+) (one-or-more . 1+))) (terse ((seq . :) (or . |) (any . in) (zero-or-more . *) (one-or-more . +) (opt . 32) (repeat . **))) (verbose ((opt . zero-or-one)) (nonl . not-newline) (bol . line-start) (eol . line-end) (bos . string-start) (eos . string-end) (bow . word-start) (eow . word-end))) (#$ . 40696)) #@19 (fn RX DIALECT) (defalias 'xr--in-dialect #[514 "\211\206\301\236\211\204\302\303\"\210\211A\203!\304A@AA#\202\"\207" [xr--keywords medium error "Unknown dialect `%S'" xr--substitute-keywords] 7 (#$ . 41222)]) #@411 Convert a regexp string to rx notation; the inverse of `rx'. Passing the returned value to `rx' (or `rx-to-string') yields a regexp string equivalent to RE-STRING. DIALECT controls the choice of keywords, and is one of: `verbose' -- verbose keywords `brief' -- short keywords `terse' -- very short keywords `medium' or nil -- a compromise (the default) (fn RE-STRING &optional DIALECT) (defalias 'xr #[513 "\300\301\302\211#\"\207" [xr--in-dialect xr--parse nil] 7 (#$ . 41453)]) #@377 Convert a skip set string argument to rx notation. SKIP-SET-STRING is interpreted according to the syntax of `skip-chars-forward' and `skip-chars-backward' and converted to a character class on `rx' form. If desired, `rx' can then be used to convert the result to an ordinary regexp. See `xr' for a description of the DIALECT argument. (fn SKIP-SET-STRING &optional DIALECT) (defalias 'xr-skip-set #[513 "\300\301\302\"\"\207" [xr--in-dialect xr--parse-skip-set nil] 6 (#$ . 41966)]) #@399 Detect dubious practices and possible mistakes in RE-STRING. This includes uses of tolerated but discouraged constructs. Outright regexp syntax violations are signalled as errors. If PURPOSE is `file', perform additional checks assuming that RE-STRING is used to match a file name. Return a list of (OFFSET . COMMENT) where COMMENT applies at OFFSET in RE-STRING. (fn RE-STRING &optional PURPOSE) (defalias 'xr-lint #[513 "\300C\301#\210\302@\303\"\207" [nil xr--parse sort car-less-than-car] 7 (#$ . 42460)]) #@393 Detect dubious practices and possible mistakes in SKIP-SET-STRING. This includes uses of tolerated but discouraged constructs. Outright syntax violations are signalled as errors. The argument is interpreted according to the syntax of `skip-chars-forward' and `skip-chars-backward'. Return a list of (OFFSET . COMMENT) where COMMENT applies at OFFSET in SKIP-SET-STRING. (fn SKIP-SET-STRING) (defalias 'xr-skip-set-lint #[257 "\300C\301\"\210\302@\303\"\207" [nil xr--parse-skip-set sort car-less-than-car] 5 (#$ . 42982)]) #@158 Escape non-printing characters in a string for maximum readability. If ESCAPE-PRINTABLE, also escape \ and ", otherwise don't. (fn STRING ESCAPE-PRINTABLE) (defalias 'xr--escape-string #[514 "\300\301\302\303\304\305\306!\307\"\310\311%\312\313%\207" [replace-regexp-in-string "[-\"\\\200-\377][[:xdigit:]]?" make-byte-code 257 "\301\302!\303\"\304\305O\306\236\211\203\211A\202A\307>\203-\300\203'\310\311\"\202A\310!\202AG\312U\203;\313\314\"\202A\313\211\315\"!P\207" vconcat vector [logand string-to-char 255 1 nil ((8 . "\\b") (9 . "\\t") (10 . "\\n") (11 . "\\v") (12 . "\\f") (13 . "\\r") (27 . "\\e")) (92 34) string 92 0 format "\\x%02x" "\\%03o"] 8 "\n\n(fn S)" fixedcase literal] 10 (#$ . 43516)]) #@44 The N first elements of LIST. (fn N LIST) (defalias 'xr--take #[514 "\300\211GZ\"\207" [butlast] 6 (#$ . 44257)]) #@174 Print the list `rx' to a string, unformatted. The first PLAIN-PREFIX elements are formatted using `prin1-to-string'; the rest with `xr--rx-to-string'. (fn RX PLAIN-PREFIX) (defalias 'xr--rx-list-to-string #[514 "\300\301\302\303\304\305\306 \"\"\304\307 \233\"\"\310#\311Q\207" ["(" mapconcat identity append mapcar prin1-to-string xr--take xr--rx-to-string " " ")"] 11 (#$ . 44381)]) #@59 Print an rx expression to a string, unformatted. (fn RX) (defalias 'xr--rx-to-string #[257 "\211\300=\203\301\207\211\302=\203\303\207\211\304=\203\305\207\211;\203%\306\307\310\"\306Q\207\311!\203N\211\312\236\211\203:\313\314A\"\202M\315!\316H\203I\313\317\"\202M\313\320\"\207\211:\204W\321!\207\211A<\204i\313\322\323@!\323A!#\207\211@\324=\204~\211@\325=\203\203\211G\326V\203\203\327\326\"\207\211@\330>\203\217\327\331\"\207\211@\332=\203\232\333\202\236\323@!\334\323A\"\335\336\337B\340#\341Q\207" [*\? "*?" +\? "+?" \?\? "\\??" "\"" xr--escape-string t characterp ((40 . 40) (41 . 41) (91 . 91) (93 . 93) (92 . 92) (59 . 59) (34 . 34) (32 . 115) (10 . 110) (13 . 114) (9 . 116) (27 . 101) (8 . 98) (12 . 102) (11 . 118)) format "?\\%c" char-category-set 46 "?%c" "#x%02x" prin1-to-string "(%s . %s)" xr--rx-to-string ** repeat 3 xr--rx-list-to-string (= >= repeat group-n backref) 2 32 "?" mapcar "(" mapconcat identity " " ")"] 8 (#$ . 44779)]) #@133 Pretty-print the regexp RX (in rx notation) to a string. It does a slightly better job than standard `pp' for rx purposes. (fn RX) (defalias 'xr-pp-rx-to-str #[257 "\300\301!r\211q\210\302\303\304\305\306!\307\"\310$\216\311!\312\261\210\313 \210eb\210\314\315\316\317#\2033\320\321\317\211\316\322%\210\202 eb\210\323 \210\324 *\207" [generate-new-buffer " *temp*" make-byte-code 0 "\301\300!\205 \302\300!\207" vconcat vector [buffer-name kill-buffer] 2 xr--rx-to-string "\n" pp-buffer re-search-forward "([*+0-:=-?a-z|]\\{1,4\\}\\(\n[[:blank:]]*\\)" nil t replace-match " " 1 indent-sexp buffer-string] 8 (#$ . 45778)]) #@269 Convert to `rx' notation and output the pretty-printed result. This function uses `xr' to translate RE-STRING into DIALECT. It is intended for use from an interactive elisp session. See `xr' for a description of the DIALECT argument. (fn RE-STRING &optional DIALECT) (defalias 'xr-pp #[513 "\300\301\"!c\207" [xr-pp-rx-to-str xr] 6 (#$ . 46415)]) #@288 Convert a skip set string to `rx' notation and pretty-print. This function uses `xr-skip-set' to translate SKIP-SET-STRING into DIALECT. It is intended for use from an interactive elisp session. See `xr' for a description of the DIALECT argument. (fn SKIP-SET-STRING &optional DIALECT) (defalias 'xr-skip-set-pp #[513 "\300\301\"!c\207" [xr-pp-rx-to-str xr-skip-set] 6 (#$ . 46772)]) (provide 'xr)