;ELC
;;; Compiled
;;; in Emacs version 26.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.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
#@642 Alist of sexp form regexp constituents.
Each element of the alist has the form (SYMBOL . DEFN).
SYMBOL is a valid constituent of sexp regular expressions.
If DEFN is a string, SYMBOL is translated into DEFN.
If DEFN is a symbol, use the definition of DEFN, recursively.
Otherwise, DEFN must be a list (FUNCTION MIN-ARGS MAX-ARGS PREDICATE).
FUNCTION is used to produce code for SYMBOL. MIN-ARGS and MAX-ARGS
are the minimum and maximum number of arguments the function-form
sexp constituent SYMBOL may have in sexp regular expressions.
MAX-ARGS nil means no limit. PREDICATE, if specified, means that
all arguments must satisfy PREDICATE.
(defvar rx-constituents '((and rx-and 1 nil) (seq . and) (: . and) (sequence . and) (or rx-or 1 nil) (| . or) (not-newline . ".") (nonl . not-newline) (anything rx-anything 0 nil) (any rx-any 1 nil rx-check-any) (any . ".") (in . any) (char . any) (not-char rx-not-char 1 nil rx-check-any) (not rx-not 1 1 rx-check-not) (repeat rx-repeat 2 nil) (= rx-= 2 nil) (>= rx->= 2 nil) (** rx-** 2 nil) (submatch rx-submatch 1 nil) (group . submatch) (submatch-n rx-submatch-n 2 nil) (group-n . submatch-n) (zero-or-more rx-kleene 1 nil) (one-or-more rx-kleene 1 nil) (zero-or-one rx-kleene 1 nil) (\? . zero-or-one) (\?\? . zero-or-one) (* . zero-or-more) (*\? . zero-or-more) (0+ . zero-or-more) (+ . one-or-more) (+\? . one-or-more) (1+ . one-or-more) (optional . zero-or-one) (opt . zero-or-one) (minimal-match rx-greedy 1 1) (maximal-match rx-greedy 1 1) (backref rx-backref 1 1 rx-check-backref) (line-start . "^") (bol . line-start) (line-end . "$") (eol . line-end) (string-start . "\\`") (bos . string-start) (bot . string-start) (string-end . "\\'") (eos . string-end) (eot . string-end) (buffer-start . "\\`") (buffer-end . "\\'") (point . "\\=") (word-start . "\\<") (bow . word-start) (word-end . "\\>") (eow . word-end) (word-boundary . "\\b") (not-word-boundary . "\\B") (symbol-start . "\\_<") (symbol-end . "\\_>") (syntax rx-syntax 1 1) (not-syntax rx-not-syntax 1 1) (category rx-category 1 1 rx-check-category) (eval rx-eval 1 1) (regexp rx-regexp 1 1 stringp) (regex . regexp) (digit . "[[:digit:]]") (numeric . digit) (num . digit) (control . "[[:cntrl:]]") (cntrl . control) (hex-digit . "[[:xdigit:]]") (hex . hex-digit) (xdigit . hex-digit) (blank . "[[:blank:]]") (graphic . "[[:graph:]]") (graph . graphic) (printing . "[[:print:]]") (print . printing) (alphanumeric . "[[:alnum:]]") (alnum . alphanumeric) (letter . "[[:alpha:]]") (alphabetic . letter) (alpha . letter) (ascii . "[[:ascii:]]") (nonascii . "[[:nonascii:]]") (lower . "[[:lower:]]") (lower-case . lower) (punctuation . "[[:punct:]]") (punct . punctuation) (space . "[[:space:]]") (whitespace . space) (white . space) (upper . "[[:upper:]]") (upper-case . upper) (word . "[[:word:]]") (wordchar . word) (not-wordchar . "\\W")) (#$ . 409))
#@265 Alist mapping Rx syntax symbols to syntax characters.
Each entry has the form (SYMBOL . CHAR), where SYMBOL is a valid
symbol in `(syntax SYMBOL)', and CHAR is the syntax character
corresponding to SYMBOL, as it would be used with \s or \S in
regular expressions.
(defconst rx-syntax '((whitespace . 45) (punctuation . 46) (word . 119) (symbol . 95) (open-parenthesis . 40) (close-parenthesis . 41) (expression-prefix . 39) (string-quote . 34) (paired-delimiter . 36) (escape . 92) (character-quote . 47) (comment-start . 60) (comment-end . 62) (string-delimiter . 124) (comment-delimiter . 33)) (#$ . 3279))
#@272 Alist mapping symbols to category characters.
Each entry has the form (SYMBOL . CHAR), where SYMBOL is a valid
symbol in `(category SYMBOL)', and CHAR is the category character
corresponding to SYMBOL, as it would be used with `\c' or `\C' in
regular expression strings.
(defconst rx-categories '((consonant . 48) (base-vowel . 49) (upper-diacritical-mark . 50) (lower-diacritical-mark . 51) (tone-mark . 52) (symbol . 53) (digit . 54) (vowel-modifying-diacritical-mark . 55) (vowel-sign . 56) (semivowel-lower . 57) (not-at-end-of-line . 60) (not-at-beginning-of-line . 62) (alpha-numeric-two-byte . 65) (chinese-two-byte . 67) (chinse-two-byte . 67) (greek-two-byte . 71) (japanese-hiragana-two-byte . 72) (indian-two-byte . 73) (japanese-katakana-two-byte . 75) (korean-hangul-two-byte . 78) (cyrillic-two-byte . 89) (combining-diacritic . 94) (ascii . 97) (arabic . 98) (chinese . 99) (ethiopic . 101) (greek . 103) (korean . 104) (indian . 105) (japanese . 106) (japanese-katakana . 107) (latin . 108) (lao . 111) (tibetan . 113) (japanese-roman . 114) (thai . 116) (vietnamese . 118) (hebrew . 119) (cyrillic . 121) (can-break . 124)) (#$ . 3895))
#@124 Non-nil means produce greedy regular expressions for `zero-or-one',
`zero-or-more', and `one-or-more'. Dynamically bound.
(defvar rx-greedy-flag t (#$ . 5056))
#@292 Return parsing/code generation info for OP.
If OP is the space character ASCII 32, return info for the symbol `?'.
If OP is the character `?', return info for the symbol `??'.
See also `rx-constituents'.
If HEAD is non-nil, then OP is the head of a sexp, otherwise it's
a standalone symbol.
(defalias 'rx-info #[(op head) "\305\267\202
\306\202
\307\310\203O 9\203O \n\236A\203( ;\202* :\203 \211\n\236\n>A\236A\211\203K \203D \f;\202F \f:\204K \f)\202 )\207" [op old-op rx-constituents head new-op #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (32 6 63 11)) \? \?\? nil] 4 (#$ . 5224)])
#@49 Check FORM according to its car's parsing info.
(defalias 'rx-check #[(form) "<\204\n \306\307\"\210\310@\311\"GS A@\312 8\313 8\2031 \nW\2031 \306\314@#\210\f\203B \n\fV\203B \306\315@\f#\210
??\205q A\316\211\205p @
!\204f \306\317@
#\210A\211\204S \316*-\207" [form rx nargs min-args max-args type-pred error "rx `%s' needs argument(s)" rx-info head 2 3 "rx form `%s' requires at least %d args" "rx form `%s' accepts at most %d args" nil "rx form `%s' requires args satisfying `%s'" sub-form --dolist-tail--] 5 (#$ . 5879)])
#@76 Put shy groups around REGEXP if seemingly necessary when GROUP
is non-nil.
(defalias 'rx-group-if #[(regexp group) "\302=\203 \303 !\203K \304\202K \305=\2031 \303\306\307 \"\203' \310\211\224O\202( !\203K \304\202K \311=\203< |