;ELC ;;; Compiled ;;; in Emacs version 28.0.50 ;;; with all optimizations. (byte-code "\300\301!\210\300\302!\210\300\303!\210\300\304!\210\300\305!\210\300\306!\210\307\310\311\312\313\314\315\316\315\317\320\321\320\322\320\323&\210\324\325\326\327\315\310%\210\330\331\332\333\334DD\335\315\310\336\337&\210\330\340\332\333\341DD\342\315\310\336\337&\207" [require cl-lib rx re-builder advice ring pcase custom-declare-group rxt nil "Regex syntax converter and utilities." :version 1.2 :group tools lisp :link (emacs-commentary-link :tag "commentary" "pcre2el.el") (emacs-library-link :tag "lisp file" "pcre2el.el") (url-link :tag "web page" "https://github.com/joddie/pcre2el") custom-declare-face rxt-highlight-face ((((min-colors 16581375) (background light)) :background "#eee8d5") (((min-colors 16581375) (background dark)) :background "#222222")) "Face for highlighting corresponding regex syntax in `rxt-explain' buffers." custom-declare-variable rxt-verbose-rx-translation funcall function #[0 "\300\207" [nil] 1] "Non-nil if `rxt-pcre-to-rx' and `rxt-elisp-to-rx' should use verbose `rx' primitives.\n\nVerbose primitives are things like `line-start' instead of `bol',\netc." :type boolean rxt-explain-verbosely #[0 "\300\207" [t] 1] "Non-nil if `rxt-explain-elisp' and `rxt-explain-pcre' should use verbose `rx' primitives.\n\nThis overrides the value of `rxt-verbose-rx-translation' for\nthese commands only."] 16) #@13 (fn EXPR) (defalias 'rxt-return-pcre '(macro . #[257 "\300\301!\302DC\303\304\305DEF\207" [make-symbol "value" let when (called-interactively-p 'any) rxt--kill-pcre] 8 (#$ . 1444)])) #@13 (fn EXPR) (defalias 'rxt-return-sexp '(macro . #[257 "\300\301!\302DC\303\304\305DEF\207" [make-symbol "value" let when (called-interactively-p 'any) rxt--kill-sexp] 8 (#$ . 1639)])) #@13 (fn EXPR) (defalias 'rxt-return-emacs-regexp '(macro . #[257 "\300\301!\302DC\303\304\305DEF\207" [make-symbol "value" let when (called-interactively-p 'any) rxt--kill-emacs-regexp] 8 (#$ . 1834)])) #@14 (fn VALUE) (defalias 'rxt--kill-sexp #[257 "\300!\301\302\"\210\303!\207" [prin1-to-string message "%s" kill-new] 5 (#$ . 2045)]) #@14 (fn VALUE) (defalias 'rxt--kill-pcre #[257 "\300\301\"\210\302!\207" [message "%s" kill-new] 4 (#$ . 2186)]) #@14 (fn VALUE) (defalias 'rxt--kill-emacs-regexp #[257 "\300!\301\302\"\210\303!\210\303!\207" [prin1-to-string message "%s" kill-new] 5 (#$ . 2305)]) #@44 (fn &optional (PROMPT "Emacs regexp: ")) (defalias 'rxt-interactive/elisp #[128 "\211\203 \211A\262\242\202\301\203\302\303\304GTD\"\210\203%\305!\202`\306 \2033\307\310 \311 \"\202`\3121\\\212\313\314 8\203E\315u\210\2028\316\317 !\211;\203R\211\202U\305!\262)0\202`\210\305!C\207" [current-prefix-arg "Emacs regexp: " signal wrong-number-of-arguments rxt-interactive/elisp read-string use-region-p buffer-substring-no-properties region-beginning region-end (error) 3 syntax-ppss nil eval preceding-sexp] 6 (#$ . 2464)]) #@43 (fn &optional (PROMPT "PCRE regexp: ")) (defalias 'rxt-interactive/pcre #[128 "\211\203 \211A\262\242\202\301\203\302\303\304GTD\"\210\203%\305!\202A\306 \2033\307\310 \311 \"\202A\3121=\313 0\202A\210\305!\314D\207" [current-prefix-arg "PCRE regexp: " signal wrong-number-of-arguments rxt-interactive/pcre rxt--read-pcre use-region-p buffer-substring-no-properties region-beginning region-end (error) rxt-read-delimited-pcre nil] 6 (#$ . 3018)]) #@107 Non-nil if Rxt--Read-Pcre mode is enabled. Use the command `rxt--read-pcre-mode' to change this variable. (defvar rxt--read-pcre-mode nil (#$ . 3492)) (make-variable-buffer-local 'rxt--read-pcre-mode) #@847 Minor-mode with key-bindings for toggling PCRE flags. This is a minor mode. If called interactively, toggle the `Rxt--Read-Pcre mode' mode. If the prefix argument is positive, enable the mode, and if it is zero or negative, disable the mode. If called from Lisp, toggle the mode if ARG is `toggle'. Enable the mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, evaluate `rxt--read-pcre-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. You should not normally call this directly. It will be enabled in minibuffers for `read-regexp' and in the `re-builder' buffer when `pcre-mode' is active. These bindings will also be added to `isearch-mode-map' in `pcre-mode'. (fn &optional ARG) (defalias 'rxt--read-pcre-mode #[256 "\302 \303=\203 ?\202\247\203\304W\203\305\202\306\307\301!\2031\310\300 \"\2031\300 B\311\312\203;\313\202<\314\"\210\315\316!\203^\302 \203P\211\302 \232\203^\317\320\203Z\321\202[\322\323#\210\210\324 \210\207" [rxt--read-pcre-mode local-minor-modes current-message toggle 1 nil t boundp delq run-hooks rxt--read-pcre-mode-hook rxt--read-pcre-mode-on-hook rxt--read-pcre-mode-off-hook called-interactively-p any message "Rxt--Read-Pcre mode %sabled%s" "en" "dis" " in current buffer" force-mode-line-update] 6 (#$ . 3700) (byte-code "\203\n\301!\202 \302C\207" [current-prefix-arg prefix-numeric-value toggle] 2)]) (defvar rxt--read-pcre-mode-hook nil) (byte-code "\300\301N\204\f\302\300\301\303#\210\302\300\304\305#\210\302\300\306\307C#\207" [rxt--read-pcre-mode-hook variable-documentation put "Hook run after entering or leaving `rxt--read-pcre-mode'.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it. (This is true for all hook variables.)" custom-type hook standard-value nil] 4) #@35 Keymap for `rxt--read-pcre-mode'. (defvar rxt--read-pcre-mode-map (byte-code "\300\301B\302\303B\304\305BE\306!\203\207\211<\203\307!\207\310\311\"\207" ["s" rxt--toggle-s-mode "x" rxt--toggle-x-mode "i" rxt--toggle-i-mode keymapp easy-mmode-define-keymap error "Invalid keymap %S"] 4) (#$ . 5652)) (byte-code "\301\302\303\303\211%\207" [rxt--read-pcre-mode-map add-minor-mode rxt--read-pcre-mode nil] 6) #@602 Read a PCRE regexp for translation, together with option flags. The `s', `x', and `i' flags can be toggled using the following commands: \ \[rxt--toggle-s-mode] : toggle `s' (single-line) mode \[rxt--toggle-x-mode] : toggle `x' (extended) mode \[rxt--toggle-i-mode] : toggle `i' (case-insensitive) mode In single-line mode, `.' will also match newlines. In extended mode, whitespace is ignored. Case-insensitive mode emulates matching without case, independently of Emacs's builtin `case-fold-search' setting. Note that this does not apply to backreferences. (fn PROMPT) (defalias 'rxt--read-pcre #[257 "\300\301\302!\211\303\304#M\210\303\305\"\216\306\307\"\210\310!)\207" [rxt--read-pcre-mode make-symbol "minibuffer-setup" make-closure #[0 "\302\303\301\"\210\300 \207" [V0 V1 remove-hook minibuffer-setup-hook] 3] #[0 "\301\302\300\"\207" [V0 remove-hook minibuffer-setup-hook] 3] add-hook minibuffer-setup-hook read-from-minibuffer] 8 (#$ . 6076)]) #@44 Toggle emulated PCRE single-line (s) flag. (defalias 'rxt--toggle-s-mode #[0 "\300\301!\207" [rxt--toggle-flag 115] 2 (#$ . 7072) nil]) #@41 Toggle emulated PCRE extended (x) flag. (defalias 'rxt--toggle-x-mode #[0 "\300\301!\207" [rxt--toggle-flag 120] 2 (#$ . 7214) nil]) #@49 Toggle emulated PCRE case-insensitive (i) flag. (defalias 'rxt--toggle-i-mode #[0 "\300\301!\207" [rxt--toggle-flag 105] 2 (#$ . 7353) nil]) #@38 Toggle CHAR, a PCRE flag. (fn CHAR) (defalias 'rxt--toggle-flag #[257 "\301\302!\203\n\303!\207\304 \203\305!\207\203\306!\207\307\310!\207" [isearch-mode derived-mode-p reb-mode rxt--toggle-flag-re-builder minibufferp rxt--toggle-flag-minibuffer rxt--toggle-flag-isearch error "Not in minibuffer, RE-Builder or isearch mode."] 3 (#$ . 7500)]) #@13 (fn CHAR) (defalias 'rxt--toggle-flag-re-builder #[257 "\212db\210\301\302!\210\303u\210\304\305!\203\306\307\310\311\312!\"\306\211#\210))\313 \207" [inhibit-modification-hooks search-backward "/" nil looking-at "[isx]*" t replace-match rxt--xor-flags match-string 0 reb-do-update] 5 (#$ . 7860)]) #@13 (fn CHAR) (defalias 'rxt--toggle-flag-minibuffer #[257 "\300 d\301\302\303 \"#\266`\300 U\205\304\305!\205\306 \207" [minibuffer-prompt-end cl--set-buffer-substring rxt--toggle-flag-string minibuffer-contents looking-at "(\\?\\([isx]+\\))" forward-sexp] 9 (#$ . 8171)]) #@13 (fn CHAR) (defalias 'rxt--toggle-flag-isearch #[257 "\205\303 \"\304\305 \306#\307 \207" [isearch-regexp isearch-string isearch-message rxt--toggle-flag-string mapconcat isearch-text-char-description "" isearch-search-and-update] 5 (#$ . 8458)]) #@20 (fn STRING CHAR) (defalias 'rxt--toggle-flag-string #[514 "\300\301\"\203%\302\303\304\"\"\211\305\230\203\306\305\307\211$\207\306\307\211\304%\207\310\311#\207" [string-match "\\`(\\?\\([isx]+\\))" rxt--xor-flags match-string 1 "" replace-match t format "(?%c)%s"] 9 (#$ . 8718)]) #@19 (fn FLAGS CHAR) (defalias 'rxt--xor-flags #[514 "\300\301\302\303\"\262C\"\304\"\260\207" [sort cl-set-exclusive-or append nil <] 8 (#$ . 9022)]) #@181 Original value of `isearch-search-fun-function' before entering `pcre-mode.' This function is wrapped by `pcre-isearch-search-fun-function' and restored on exit from `pcre-mode'. (defvar pcre-old-isearch-search-fun-function nil (#$ . 9182)) (make-variable-buffer-local 'pcre-old-isearch-search-fun-function) #@80 Alist of key-bindings to restore in `isearch-mode-map' on exiting `pcre-mode'. (defvar pcre-old-isearch-key-bindings nil (#$ . 9497)) (byte-code "\300\301\302\303\304DD\305\306\307\310\311\312\313& \207" [custom-declare-variable pcre-mode funcall function #[0 "\300\207" [nil] 1] "Non-nil if PCRE mode is enabled.\nSee the `pcre-mode' command\nfor a description of this minor mode.\nSetting this variable directly does not take effect;\neither customize it (see the info node `Easy Customization')\nor call the function `pcre-mode'." :set custom-set-minor-mode :initialize custom-initialize-default :type boolean] 10) #@957 Use emulated PCRE syntax for regexps wherever possible. This is a minor mode. If called interactively, toggle the `PCRE mode' mode. If the prefix argument is positive, enable the mode, and if it is zero or negative, disable the mode. If called from Lisp, toggle the mode if ARG is `toggle'. Enable the mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, evaluate `(default-value 'pcre-mode)'. The mode's hook is called both when the mode is enabled and when it is disabled. Advises the `interactive' specs of `read-regexp' and the following other functions so that they read PCRE syntax and translate to its Emacs equivalent: - `align-regexp' - `find-tag-regexp' - `sort-regexp-fields' - `isearch-message-prefix' - `ibuffer-do-replace-regexp' Also alters the behavior of `isearch-mode' when searching by regexp. (fn &optional ARG) (defalias 'pcre-mode #[256 "\305 \306\301\307=\203\310\301!?\202!\247\203 \311W\203 \312\202!\313\"\210\314\300!\2038\315\301\"\310\301!\2038\301B \203g\316\317!\210\320\321\322\"\210\320\323\324\"\210\312C\312C\312\325\326\327$\n\"\210\242\237\266\203\325\330\n\"\210\202\230\331\317!\210\332\321\322\"\210\332\323\324\"\210 \312\211:\203\226@\262\211A\262\242\262\333\f#\210A\262\202x\266\334\317!\210\335\336\310\301!\203\250\337\202\251\340\"\210\341\342!\203\321\343\301!\210\305 \203\301\211\305 \232\203\321\344\345\310\301!\203\315\346\202\316\347\350#\210\210\351 \210\310\301!\207" [global-minor-modes pcre-mode rxt--read-pcre-mode-map pcre-old-isearch-key-bindings isearch-mode-map current-message set-default toggle default-value 1 nil t boundp delq ad-enable-regexp "pcre-mode" add-hook isearch-mode-hook pcre-isearch-mode-hook isearch-mode-end-hook pcre-isearch-mode-end-hook cl--map-keymap-recursively make-closure #[514 "\300\304 \"\240\210\301\305!\300\242\247?\205\300\242B\301\242B\240\210\306\207" [V0 V1 V2 isearch-mode-map lookup-key copy-sequence nil] 6 "\n\n(fn KEY --CL-VAR--)"] #[514 "\301#\207" [isearch-mode-map define-key] 6 "\n\n(fn KEY DEF)"] ad-disable-regexp remove-hook define-key ad-activate-regexp run-hooks pcre-mode-hook pcre-mode-on-hook pcre-mode-off-hook called-interactively-p any customize-mark-as-set message "PCRE mode %sabled%s" "en" "dis" "" force-mode-line-update] 11 (#$ . 10122) (byte-code "\203\n\301!\202 \302C\207" [current-prefix-arg prefix-numeric-value toggle] 2)]) (defvar pcre-mode-hook nil) (byte-code "\301\302N\204\f\303\301\302\304#\210\303\301\305\306#\210\303\301\307\310C#\210\311\312\313\314\300!\205#\310\211%\207" [pcre-mode-map pcre-mode-hook variable-documentation put "Hook run after entering or leaving `pcre-mode'.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it. (This is true for all hook variables.)" custom-type hook standard-value nil add-minor-mode pcre-mode " PCRE" boundp] 6) #@72 Number of PCRE-to-Emacs translations to keep in the `pcre-mode' cache. (defvar pcre-mode-cache-size 100 (#$ . 13136)) #@118 Cache of PCRE-to-Emacs translations used in `pcre-mode'. Keys are PCRE regexps, values are their Emacs equivalents. (defvar pcre-mode-cache (make-hash-table :test 'equal) (#$ . 13261)) #@224 Cache of original PCREs translated to Emacs syntax in `pcre-mode'. Keys are translated Emacs regexps, values are their original PCRE form. This is used to display the original PCRE regexp in place of its translated form. (defvar pcre-mode-reverse-cache (make-hash-table :test 'equal) (#$ . 13454)) #@224 Ring of PCRE-to-Emacs translations used in `pcre-mode'. When the ring fills up, the oldest element is removed and the corresponding entries are deleted from the hash tables `pcre-mode-cache' and `pcre-mode-reverse-cache'. (defvar pcre-cache-ring (make-ring pcre-mode-cache-size) (#$ . 13761)) #@64 Translate PCRE to Emacs syntax, caching both forms. (fn PCRE) (defalias 'pcre-to-elisp/cached #[257 "\301\"\206\302!\303\"\210\211\262\207" [pcre-mode-cache gethash rxt-pcre-to-elisp pcre-set-cache] 5 (#$ . 14061)]) #@90 Add a PCRE-to-Emacs translation to the `pcre-mode' cache. (fn PCRE-REGEXP EMACS-REGEXP) (defalias 'pcre-set-cache #[514 "G\303U?\205E\211G\303U?\205E\304\"?\205E\305 !\306 !U\2033\307 !\211@A\310\"\210\310\n\"\207\311#\210\311\n#\210\312 B\"\207" [pcre-mode-cache pcre-cache-ring pcre-mode-reverse-cache 0 gethash ring-length ring-size ring-remove remhash puthash ring-insert] 8 (#$ . 14292)]) (defalias 'pcre-isearch-mode-hook #[0 "\302=\204 \303\304\"\210\305=\204\306\300!\210\305\211\207" [isearch-search-fun-function pcre-old-isearch-search-fun-function isearch-search-fun-default message "Warning: pcre-mode overriding existing isearch function `%s'" pcre-isearch-search-fun-function make-local-variable] 3]) (defalias 'pcre-isearch-mode-end-hook #[0 "\211\207" [pcre-old-isearch-search-fun-function isearch-search-fun-function] 2]) #@229 Enable isearching using emulated PCRE syntax. This is set as the value of `isearch-search-fun-function' when `pcre-mode' is enabled. Returns a function which searches using emulated PCRE regexps when `isearch-regexp' is true. (defalias 'pcre-isearch-search-fun-function #[0 "\300\207" [#[771 "\206\302 \204\211#\207\303!\203\304\305!\210\211\306!#\207" [pcre-old-isearch-search-fun-function isearch-regexp isearch-search-fun-default isearch-backslash rxt-error "Trailing backslash" pcre-to-elisp/cached] 8 "\n\n(fn STRING BOUND NOERROR)"]] 1 (#$ . 15168)]) (byte-code "\300\301\302\303\304$\210\300\305\306\307\304$\210\300\310\311\312\304$\210\300\313\314\312\304$\210\315\316\317\"\207" [ad-add-advice isearch-message-prefix (pcre-mode nil nil (advice lambda nil "Add \"PCRE\" to the Isearch message when searching by regexp in `pcre-mode'." (when (and isearch-regexp (eq isearch-search-fun-function #'pcre-isearch-search-fun-function)) (let ((message ad-return-value)) (when (let ((case-fold-search t)) (string-match "regexp" message)) (let* ((match (match-string 0 message)) (properties (text-properties-at 0 match)) (replacement (apply #'propertize "PCRE regexp" properties)) (new-message (replace-match replacement t t message))) (setq ad-return-value new-message))))))) after nil isearch-fallback (pcre-mode nil nil (advice lambda (want-backslash &optional allow-invalid to-barrier) "Hack to fall back correctly in `pcre-mode'. " (ad-set-arg 0 nil))) before isearch-edit-string (pcre-mode nil nil (advice lambda nil "Add PCRE mode-toggling keys to Isearch minibuffer in regexp mode." (if isearch-regexp (minibuffer-with-setup-hook #'rxt--read-pcre-mode ad-do-it) ad-do-it))) around evil-search-function (pcre-mode nil nil (advice lambda (forward regexp-p wrap) (if (and regexp-p (not isearch-mode)) (let ((real-search-function ad-do-it)) (setq ad-return-value (pcre-decorate-search-function real-search-function))) ad-do-it))) eval-after-load "evil" #[0 "\205 \301\302\303\300#\210\304\302!\207" [pcre-mode ad-enable-advice evil-search-function around ad-activate] 4]] 5) #@29 (fn REAL-SEARCH-FUNCTION) (defalias 'pcre-decorate-search-function #[257 "\300\301\"\207" [make-closure #[1025 "\300\301!$\207" [V0 pcre-to-elisp/cached] 9 "\n\n(fn STRING &optional BOUND NOERROR COUNT)"]] 4 (#$ . 17272)]) #@105 Perform `query-replace-regexp' using PCRE syntax. Consider using `pcre-mode' instead of this function. (defalias 'pcre-query-replace-regexp #[0 "\301\302\"\216\300\303!\210\304\305!)\207" [pcre-mode make-closure #[0 "\301\300\203 \302\202\n\303!\207" [V0 pcre-mode 1 0] 2] 1 call-interactively query-replace-regexp] 4 (#$ . 17509) nil]) (byte-code "\300\301\302\303\304$\210\300\305\306\303\304$\210\300\307\310\311\312$\210\300\313\314\303\312$\210\300\315\316\303\312$\210\300\317\320\303\312$\210\300\321\322\303\312$\207" [ad-add-advice add-to-history (pcre-mode nil nil (advice lambda (history-var newelt &optional maxelt keep-all) "Add the original PCRE to query-replace history in `pcre-mode'." (when (eq history-var query-replace-from-history-variable) (let ((original (gethash newelt pcre-mode-reverse-cache))) (when original (ad-set-arg 1 original)))))) before nil query-replace-descr (pcre-mode nil nil (advice lambda (from) "Use the original PCRE in Isearch prompts in `pcre-mode'." (let ((original (gethash from pcre-mode-reverse-cache))) (when original (ad-set-arg 0 original))))) read-regexp (pcre-mode nil nil (advice lambda (prompt &optional defaults history) "Read regexp using PCRE syntax and convert to Elisp equivalent." (ad-set-arg 0 (concat "[PCRE] " prompt)) (minibuffer-with-setup-hook #'rxt--read-pcre-mode ad-do-it) (setq ad-return-value (pcre-to-elisp/cached ad-return-value)))) around first align-regexp (pcre-mode nil nil (advice lambda (beg end regexp &optional group spacing repeat) "Read regexp using PCRE syntax and convert to Elisp equivalent." (interactive (append (list (region-beginning) (region-end)) (if current-prefix-arg (list (rxt-pcre-to-elisp (read-string "Complex align using PCRE regexp: " "(\\s*)")) (string-to-number (read-string "Parenthesis group to modify (justify if negative): " "1")) (string-to-number (read-string "Amount of spacing (or column if negative): " (number-to-string align-default-spacing))) (y-or-n-p "Repeat throughout line? ")) (list (concat "\\(\\s-*\\)" (rxt-pcre-to-elisp (read-string "Align PCRE regexp: "))) 1 align-default-spacing nil)))))) ibuffer-do-replace-regexp (pcre-mode nil nil (advice lambda (from-str to-str) "Read regexp using PCRE syntax and convert to Elisp equivalent." (interactive (let* ((from-str (read-from-minibuffer "[PCRE] Replace regexp: ")) (to-str (read-from-minibuffer (concat "[PCRE] Replace " from-str " with: ")))) (list (rxt-pcre-to-elisp from-str) to-str))))) find-tag-regexp (pcre-mode nil nil (advice lambda (regexp &optional next-p other-window) "Read regexp using PCRE syntax and convert to Elisp equivalent.\nPerform `find-tag-regexp' using emulated PCRE regexp syntax." (interactive (let ((args (find-tag-interactive "[PCRE] Find tag regexp: " t))) (list (rxt-pcre-to-elisp (nth 0 args)) (nth 1 args) (nth 2 args)))))) sort-regexp-fields (pcre-mode nil nil (advice lambda (reverse record-regexp key-regexp beg end) "Read regexp using PCRE syntax and convert to Elisp equivalent." (interactive "P\nsPCRE regexp specifying records to sort: \nsPCRE regexp specifying key within record: \nr") (ad-set-arg 1 (rxt-pcre-to-elisp (ad-get-arg 1))) (ad-set-arg 2 (rxt-pcre-to-elisp (ad-get-arg 2)))))] 5) #@640 Translate REGEXP, a regexp in Emacs Lisp syntax, to Perl-compatible syntax. Interactively, reads the regexp in one of three ways. With a prefix arg, reads from minibuffer without string escaping, like `query-replace-regexp'. Without a prefix arg, uses the text of the region if it is active. Otherwise, uses the result of evaluating the sexp before point (which might be a string regexp literal or an expression that produces a string). Displays the translated PCRE regexp in the echo area and copies it to the kill ring. Emacs regexp features such as syntax classes which cannot be translated to PCRE will cause an error. (fn REGEXP) (defalias 'rxt-elisp-to-pcre #[257 "\300\301!!\302\303!\203\304!\210\207" [rxt-adt->pcre rxt-parse-elisp called-interactively-p any rxt--kill-pcre] 4 (#$ . 20728) (rxt-interactive/elisp)]) #@218 Translate REGEXP, a regexp in Emacs Lisp syntax, to `rx' syntax. See `rxt-elisp-to-pcre' for a description of the interactive behavior and `rx' for documentation of the S-expression based regexp syntax. (fn REGEXP) (defalias 'rxt-elisp-to-rx #[257 "\300\301!!\302\303!\203\304!\210\207" [rxt-adt->rx rxt-parse-elisp called-interactively-p any rxt--kill-sexp] 4 (#$ . 21567) (rxt-interactive/elisp)]) #@419 Return a list of all strings matched by REGEXP, an Emacs Lisp regexp. See `rxt-elisp-to-pcre' for a description of the interactive behavior. This is useful primarily for getting back the original list of strings from a regexp generated by `regexp-opt', but it will work with any regexp without unbounded quantifiers (*, +, {2, } and so on). Throws an error if REGEXP contains any infinite quantifiers. (fn REGEXP) (defalias 'rxt-elisp-to-strings #[257 "\300\301!!\302\303!\203\304!\210\207" [rxt-adt->strings rxt-parse-elisp called-interactively-p any rxt--kill-sexp] 4 (#$ . 21980) (rxt-interactive/elisp)]) #@66 Toggle the regexp near point between Elisp string and rx syntax. (defalias 'rxt-toggle-elisp-rx #[0 "\301 \3028\211\203\211b\266\202:\303\304!\203\305 \266\202:\306\304!\2048\212\307\310!\210\306\311!\2044\312 \210\202(`)b\210\266\313p!\314\212\211<\203O\315\316!p\"\210\202\226\214`\317!\320:\203w\242\211\321=\203o\243\211\322B\262\262\202r!\262\202z\211!\262\323!\210`}\266\324 \210db\210`\212\325\326x\210`)|\210))\327\330!\210\331 )\207" [print-escape-newlines syntax-ppss 8 looking-back "\"" backward-sexp looking-at skip-syntax-forward "-" "(\\(?:rx\\(?:-to-string\\)?\\)\\_>" backward-up-list read t prin1 eval rxt-elisp-to-rx #[257 "\300D\207" [rx] 3 "\n\n(fn FORM)"] seq rx rxt-print pp-buffer " \n" nil kill-sexp -1 indent-pp-sexp] 9 (#$ . 22603) nil]) #@421 Translate PCRE, a regexp in Perl-compatible syntax, to Emacs Lisp. Interactively, uses the contents of the region if it is active, otherwise reads from the minibuffer. Prints the Emacs translation in the echo area and copies it to the kill ring. PCRE regexp features that cannot be translated into Emacs syntax will cause an error. See the commentary section of pcre2el.el for more details. (fn PCRE &optional FLAGS) (defalias 'rxt-pcre-to-elisp #[513 "\300\301\302\"!\303\"\304\305!\203\306!\210\207" [rx-to-string rxt-pcre-to-rx rxt--add-flags t called-interactively-p any rxt--kill-emacs-regexp] 7 (#$ . 23412) (rxt-interactive/pcre)]) (defalias 'pcre-to-elisp 'rxt-pcre-to-elisp) #@168 Translate PCRE, a regexp in Perl-compatible syntax, to `rx' syntax. See `rxt-pcre-to-elisp' for a description of the interactive behavior. (fn PCRE &optional FLAGS) (defalias 'rxt-pcre-to-rx #[513 "\300\301\302\"!!\303\304!\203\305!\210\207" [rxt-adt->rx rxt-parse-pcre rxt--add-flags called-interactively-p any rxt--kill-sexp] 7 (#$ . 24111) (rxt-interactive/pcre)]) #@288 Return a list of all strings matched by PCRE, a Perl-compatible regexp. See `rxt-elisp-to-pcre' for a description of the interactive behavior and `rxt-elisp-to-strings' for why this might be useful. Throws an error if PCRE contains any infinite quantifiers. (fn PCRE &optional FLAGS) (defalias 'rxt-pcre-to-strings #[513 "\300\301\302\"!!\303\304!\203\305!\210\207" [rxt-adt->strings rxt-parse-pcre rxt--add-flags called-interactively-p any rxt--kill-sexp] 7 (#$ . 24493) (rxt-interactive/pcre)]) #@41 Prepend FLAGS to PCRE. (fn PCRE FLAGS) (defalias 'rxt--add-flags #[514 "\211G\300U\204 \301\302R\207\207" [0 "(?" ")"] 6 (#$ . 25004)]) (defvar rxt-explain nil) #@72 List of active location-highlighting overlays in rxt-help-mode buffer. (defvar rxt-highlight-overlays nil (#$ . 25176)) #@213 Insert the pretty-printed `rx' syntax for REGEXP in a new buffer. REGEXP is a regular expression in Emacs Lisp syntax. See `rxt-elisp-to-pcre' for a description of how REGEXP is read interactively. (fn REGEXP) (defalias 'rxt-explain-elisp #[257 "\303\304\305!\"*\207" [rxt-explain-verbosely rxt-verbose-rx-translation rxt-explain t rxt-pp-rx rxt-elisp-to-rx] 5 (#$ . 25303) (rxt-interactive/elisp)]) #@223 Insert the pretty-printed `rx' syntax for REGEXP in a new buffer. REGEXP is a regular expression in PCRE syntax. See `rxt-pcre-to-elisp' for a description of how REGEXP is read interactively. (fn REGEXP &optional FLAGS) (defalias 'rxt-explain-pcre #[513 "\303\304\305\"\"*\207" [rxt-explain-verbosely rxt-verbose-rx-translation rxt-explain t rxt-pp-rx rxt-pcre-to-rx] 7 (#$ . 25717) (rxt-interactive/pcre)]) #@129 Return a PCRE regexp which matches TEXT literally. Any PCRE metacharacters in TEXT will be quoted with a backslash. (fn TEXT) (defalias 'rxt-quote-pcre #[257 "\300\301!!\207" [rxt-adt->pcre rxt-string] 4 (#$ . 26140)]) #@37 (fn ELISP-FUNCTION PCRE-FUNCTION) (defalias 'rxt-mode-dispatch '(macro . #[514 "\300\301\302\303DD\302\303DDF\207" [if (memq major-mode '(emacs-lisp-mode lisp-interaction-mode)) call-interactively function] 8 (#$ . 26368)])) #@255 Pop up a buffer with pretty-printed `rx' syntax for the regex at point. Chooses regex syntax to read based on current major mode, calling `rxt-explain-elisp' if buffer is in `emacs-lisp-mode' or `lisp-interaction-mode', or `rxt-explain-pcre' otherwise. (defalias 'rxt-explain #[0 "\301>\203\n\302\303!\207\302\304!\207" [major-mode (emacs-lisp-mode lisp-interaction-mode) call-interactively rxt-explain-elisp rxt-explain-pcre] 2 (#$ . 26604) nil]) #@382 Convert regex at point to other kind of syntax, depending on major mode. For buffers in `emacs-lisp-mode' or `lisp-interaction-mode', calls `rxt-elisp-to-pcre' to convert to PCRE syntax. Otherwise, calls `rxt-pcre-to-elisp' to convert to Emacs syntax. The converted syntax is displayed in the echo area and copied to the kill ring; see the two functions named above for details. (defalias 'rxt-convert-syntax #[0 "\301>\203\n\302\303!\207\302\304!\207" [major-mode (emacs-lisp-mode lisp-interaction-mode) call-interactively rxt-elisp-to-pcre rxt-pcre-to-elisp] 2 (#$ . 27062) nil]) #@82 Convert regex at point to RX syntax. Chooses Emacs or PCRE syntax by major mode. (defalias 'rxt-convert-to-rx #[0 "\301>\203\n\302\303!\207\302\304!\207" [major-mode (emacs-lisp-mode lisp-interaction-mode) call-interactively rxt-elisp-to-rx rxt-pcre-to-rx] 2 (#$ . 27654) nil]) #@82 Convert regex at point to RX syntax. Chooses Emacs or PCRE syntax by major mode. (defalias 'rxt-convert-to-strings #[0 "\301>\203\n\302\303!\207\302\304!\207" [major-mode (emacs-lisp-mode lisp-interaction-mode) call-interactively rxt-elisp-to-strings rxt-pcre-to-strings] 2 (#$ . 27940) nil]) #@24 Keymap for `rxt-mode'. (defvar rxt-mode-map (byte-code "\300 \301\302\303#\210\301\304\305#\210\301\306\307#\210\301\310\311#\210\301\312\313#\210\301\314\315#\210\301\316\317#\210\301\320\321#\210\301\322\323#\210\301\324\325#\210\301\326\327#\210\301\330\331#\210\301\332\333#\210\301\334\333#\210\301\335\336#\210\207" [make-sparse-keymap define-key "//" rxt-explain "/c" rxt-convert-syntax "/x" rxt-convert-to-rx "/'" rxt-convert-to-strings "/p/" rxt-explain-pcre "/pe" rxt-pcre-to-elisp "/px" rxt-pcre-to-rx "/p'" rxt-pcre-to-strings "/e/" rxt-explain-elisp "/ep" rxt-elisp-to-pcre "/ex" rxt-elisp-to-rx "/e'" rxt-elisp-to-strings "/et" rxt-toggle-elisp-rx "/t" "/%" pcre-query-replace-regexp] 5) (#$ . 28241)) #@85 Non-nil if Rxt mode is enabled. Use the command `rxt-mode' to change this variable. (defvar rxt-mode nil (#$ . 28993)) (make-variable-buffer-local 'rxt-mode) #@570 Regex translation utilities. This is a minor mode. If called interactively, toggle the `Rxt mode' mode. If the prefix argument is positive, enable the mode, and if it is zero or negative, disable the mode. If called from Lisp, toggle the mode if ARG is `toggle'. Enable the mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, evaluate `rxt-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. (fn &optional ARG) (defalias 'rxt-mode #[256 "\302 \303=\203 ?\202\247\203\304W\203\305\202\306\307\301!\2031\310\300 \"\2031\300 B\311\312\203;\313\202<\314\"\210\315\316!\203^\302 \203P\211\302 \232\203^\317\320\203Z\321\202[\322\323#\210\210\324 \210\207" [rxt-mode local-minor-modes current-message toggle 1 nil t boundp delq run-hooks rxt-mode-hook rxt-mode-on-hook rxt-mode-off-hook called-interactively-p any message "Rxt mode %sabled%s" "en" "dis" " in current buffer" force-mode-line-update] 6 (#$ . 29158) (byte-code "\203\n\301!\202 \302C\207" [current-prefix-arg prefix-numeric-value toggle] 2)]) (defvar rxt-mode-hook nil) (byte-code "\301\302N\204\f\303\301\302\304#\210\303\301\305\306#\210\303\301\307\310C#\210\311\312\310\313\300!\205#\310\211%\207" [rxt-mode-map rxt-mode-hook variable-documentation put "Hook run after entering or leaving `rxt-mode'.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it. (This is true for all hook variables.)" custom-type hook standard-value nil add-minor-mode rxt-mode boundp] 6) #@43 Turn on `rxt-mode' in the current buffer. (defalias 'turn-on-rxt-mode #[0 "\300\301!\207" [rxt-mode 1] 2 (#$ . 30820) nil]) (put 'rxt-global-mode 'globalized-minor-mode t) (defvar rxt-mode-major-mode nil nil) (byte-code "\300\301!\210\302\303\304\305\306DD\307\310\311\312\313\314\315& \207" [make-variable-buffer-local rxt-mode-major-mode custom-declare-variable rxt-global-mode funcall function #[0 "\300\207" [nil] 1] "Non-nil if Rxt-Global mode is enabled.\nSee the `rxt-global-mode' command\nfor a description of this minor mode.\nSetting this variable directly does not take effect;\neither customize it (see the info node `Easy Customization')\nor call the function `rxt-global-mode'." :set custom-set-minor-mode :initialize custom-initialize-default :type boolean] 10) #@324 Toggle Rxt mode in all buffers. With prefix ARG, enable Rxt-Global mode if ARG is positive; otherwise, disable it. If called from Lisp, enable the mode if ARG is omitted or nil. Rxt mode is enabled in all buffers where `turn-on-rxt-mode' would do it. See `rxt-mode' for more information on Rxt mode. (fn &optional ARG) (defalias 'rxt-global-mode #[256 "\303 \304\301\305=\203\306\301!?\202!\247\203 \307W\203 \310\202!\311\"\210\312\300!\2038\313\301\"\306\301!\2038\301B \203N\314\315\316\"\210\314\317\320\"\210\314\321\322\"\210\202]\323\315\316\"\210\323\317\320\"\210\323\321\322\"\210\324 \211\203\203\211@r\211q\210 \203s\325 \210\202{\n\203{\302\326!\210)A\266\202\202_\210\327\330\306\301!\203\220\331\202\221\332\"\210\333\334!\203\271\335\301!\210\303 \203\251\211\303 \232\203\271\336\337\306\301!\203\265\340\202\266\341\342#\210\210\343 \210\306\301!\207" [global-minor-modes rxt-global-mode rxt-mode current-message set-default toggle default-value 1 nil t boundp delq add-hook after-change-major-mode-hook rxt-global-mode-enable-in-buffers find-file-hook rxt-global-mode-check-buffers change-major-mode-hook rxt-global-mode-cmhh remove-hook buffer-list turn-on-rxt-mode -1 run-hooks rxt-global-mode-hook rxt-global-mode-on-hook rxt-global-mode-off-hook called-interactively-p any customize-mark-as-set message "Rxt-Global mode %sabled%s" "en" "dis" "" force-mode-line-update] 6 (#$ . 31604) (byte-code "\203\n\301!\202 \302C\207" [current-prefix-arg prefix-numeric-value toggle] 2)]) (defvar rxt-global-mode-hook nil) (byte-code "\301\302N\204\f\303\301\302\304#\210\303\301\305\306#\210\303\301\307\310C#\210\311\312\310\313\300!\205#\310\211%\207" [rxt-global-mode-map rxt-global-mode-hook variable-documentation put "Hook run after entering or leaving `rxt-global-mode'.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it. (This is true for all hook variables.)" custom-type hook standard-value nil add-minor-mode rxt-global-mode boundp] 6) (defvar rxt-mode-set-explicitly nil nil) (make-variable-buffer-local 'rxt-mode-set-explicitly) (defalias 'rxt-mode-set-explicitly #[0 "\301\211\207" [rxt-mode-set-explicitly t] 2]) (byte-code "\300\301\302\303#\210\304\305\301\"\207" [put rxt-mode-set-explicitly definition-name rxt-global-mode add-hook rxt-mode-hook] 4) (defvar rxt-global-mode-buffers nil) (defalias 'rxt-global-mode-enable-in-buffers #[0 "\305\211\211\2059\211@\306!\2032r\211q\210 \204/\n =\204/\f\203,\304\307!\210\310 \210\202/\310 \210 )A\266\202\202\207" [rxt-global-mode-buffers rxt-mode-set-explicitly rxt-mode-major-mode major-mode rxt-mode nil buffer-live-p -1 turn-on-rxt-mode] 5]) (put 'rxt-global-mode-enable-in-buffers 'definition-name 'rxt-global-mode) (defalias 'rxt-global-mode-check-buffers #[0 "\300 \210\301\302\303\"\207" [rxt-global-mode-enable-in-buffers remove-hook post-command-hook rxt-global-mode-check-buffers] 3]) (put 'rxt-global-mode-check-buffers 'definition-name 'rxt-global-mode) (defalias 'rxt-global-mode-cmhh #[0 "p\211\235\203 \266\202\211B\210\301\302\303\"\207" [rxt-global-mode-buffers add-hook post-command-hook rxt-global-mode-check-buffers] 3]) (put 'rxt-global-mode-cmhh 'definition-name 'rxt-global-mode) (defvar rxt-help-mode-hook nil) (byte-code "\300\301N\204\f\302\300\301\303#\210\304\305!\204\302\305\306\307#\210\300\207" [rxt-help-mode-hook variable-documentation put "Hook run after entering Regexp Explain mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it. (This is true for all hook variables.)" boundp rxt-help-mode-map definition-name rxt-help-mode] 4) (defvar rxt-help-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\322#\207" [rxt-help-mode-abbrev-table rxt-help-mode-map variable-documentation put purecopy "Keymap for `rxt-help-mode'." boundp rxt-help-mode-syntax-table definition-name rxt-help-mode (lambda (def-tmp-var) (defvar rxt-help-mode-syntax-table def-tmp-var)) make-syntax-table "Syntax table for `rxt-help-mode'." (lambda (def-tmp-var) (defvar rxt-help-mode-abbrev-table def-tmp-var)) define-abbrev-table nil "Abbrev table for `rxt-help-mode'." derived-mode-parent emacs-lisp-mode] 5) #@503 Major mode derived from `emacs-lisp-mode' by `define-derived-mode'. It inherits all of the parent's attributes, but has its own keymap, abbrev table and syntax table: `rxt-help-mode-map', `rxt-help-mode-abbrev-table' and `rxt-help-mode-syntax-table' which more-or-less shadow emacs-lisp-mode's corresponding tables. In addition to any hooks its parent mode might have run, this mode runs the hook `rxt-help-mode-hook', as the final or penultimate step during initialization. \{rxt-help-mode-map} (defalias 'rxt-help-mode #[0 "\306\300!\210\307\310 \210\311\312\310\313N\203\314\311\313\310\313N#\210\315 !\204'\316 \317 \"\210\320\f!\211\2035\211\321 =\203;\322\f\323 \"\210\210\324 \325\"\204R =\204R\326 \325C#\210\327 !\210\330\f!\210 \307 \331\332\333\334\307$\210\333 \210)\335\336!\207" [delay-mode-hooks major-mode mode-name rxt-help-mode-map rxt-help-mode-syntax-table rxt-help-mode-abbrev-table make-local-variable t emacs-lisp-mode rxt-help-mode "Regexp Explain" mode-class put keymap-parent set-keymap-parent current-local-map char-table-parent standard-syntax-table set-char-table-parent syntax-table abbrev-table-get :parents abbrev-table-put use-local-map set-syntax-table add-hook post-command-hook rxt-highlight-text nil run-mode-hooks rxt-help-mode-hook local-abbrev-table buffer-read-only] 5 (#$ . 36089) nil]) (byte-code "\301\302\303\"\210\304\305\306#\210\304\307\310#\210\304\311\312#\210\304\313\314#\210\304\315\316#\210\304\317\320#\210\304\321\322#\210\304\323\324#\207" [rxt-help-mode-map add-hook rxt-help-mode-hook #[0 "\301\300!\205 \205 \300\302!\207" [paredit-mode boundp 0] 2] define-key "q" quit-window "z" kill-this-buffer "n" next-line "p" previous-line "f" forward-list "b" backward-list "u" backward-up-list "d" down-list] 4) (defvar rxt--print-with-overlays nil) (defvar rxt--print-depth 0) #@112 Alist of characters to print using an escape sequence in Elisp source. See (info "(elisp) Basic Char Syntax"). (defconst rxt--print-char-alist '((7 . "\\a") (8 . "\\b") (9 . "\\t") (10 . "\\n") (11 . "\\v") (12 . "\\f") (13 . "\\r") (27 . "\\e") (32 . "\\s") (92 . "\\\\") (127 . "\\d")) (#$ . 37960)) (defconst rxt--whitespace-display-regexp (byte-code "\301\302\303\304\"B!\207" [rxt--print-char-alist rx-to-string any mapcar car] 5)) #@105 Characters which require a preceding backslash in Elisp source. See (info "(elisp) Basic Char Syntax"). (defconst rxt--print-special-chars '(40 41 92 124 59 39 96 34 35 46 44) (#$ . 38405)) #@98 Display string regexp REGEXP with its `rx' form RX in an `rxt-help-mode' buffer. (fn REGEXP RX) (defalias 'rxt-pp-rx #[514 "r\303\304!q\210\305\211\306 \210\307 \210\310!c\210\311\312!\210\212`\305\313!\210\211`}\210\314 \210~\210)\210)\315 \210*\316p!)\207" [inhibit-read-only print-escape-newlines rxt--print-with-overlays get-buffer-create "* Regexp Explain *" t erase-buffer rxt-help-mode rxt--propertize-whitespace newline 2 rxt-print pp-buffer rxt-highlight-text pop-to-buffer] 5 (#$ . 38601)]) #@445 Insert RX, an `rx' form, into the current buffer, optionally adding overlays. Similar to `print' or `prin1', but ensures that `rx' forms are printed readably, using character or integer syntax depending on context. If `rxt--print-with-overlays' is non-nil, also creates overlays linking elements of RX to their corresponding locations in the source string (see `rxt-explain-elisp', `rxt-explain-pcre' and `rxt--make-help-overlays'). (fn RX) (defalias 'rxt-print #[257 "`:\203\314\303:\203\303\242\211\304\267\202\272\243\211:\203\204\211\242\211\250\203z\243\211:\203`\211\242\211\250\203F\243\305\306$c\210\307!\266\f\2026\310=\203V#\266\2026\307\311\"\266\2026\310=\203p#\266\2026\307\311\"\266\2026\307\311\"\266\2026\307\311\"\266\2026\243\211:\203\261\211\242\211\250\203\247\243#\266\2026\307\311\"\266\2026\307\311\"\266\2026\307\311\"\266\2026\307\311\"\266\20269\203\347\312>\203\337\313!c\210\2026\314p\"\210\2026;\203\366\315\316!!c\210\2026\317!\2031\320=\203\321c\210\2026>\203\322\261\210\2026 \236\203'\321\323 \"\261\210\2026\321\324!\261\210\2026\314p\"\210\n\205?\325`#\207" [rxt--print-special-chars rxt--print-char-alist rxt--print-with-overlays #[771 "\300\301#c\210\302!\207" [format "(%s %d" rxt--print-list-tail] 7 "\n\n(fn HEAD N REST)"] #s(hash-table size 4 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (** 20 repeat 20 >= 141 = 141)) format "(%s %d %d" rxt--print-list-tail repeat t (*\? +\?) symbol-name prin1 rxt--propertize-whitespace prin1-to-string natnump 32 "?" "?\\" assoc-default char-to-string rxt--make-help-overlays] 18 (#$ . 39115)]) #@34 (fn TAIL &optional OPEN-PAREN) (defalias 'rxt--print-list-tail #[513 "T\301\211?\205G\204\302c\210\303\262\202:\2037\203(\304c\210\301\262\202+\305c\210\306@!\210A\262\202\307c\210\306!\210\302c\210\303\262\202\262)\207" [rxt--print-depth nil ")" t "(" " " rxt-print " . "] 5 (#$ . 40833)]) #@21 (fn RX START END) (defalias 'rxt--make-help-overlays #[771 "\301!\211\205\\\302!\205\\\303!\205\\\304\305\"\304!D\302!T\303!TD\211D\306p\305\307%\306p\305\307%D\211\205X\211@\310\311#\210\310\312#\210A\266\202\202>\262\266\211\207" [rxt--print-depth rxt-location rxt-location-start rxt-location-end copy-marker t make-overlay nil overlay-put priority rxt-bounds] 19 (#$ . 41157)]) #@15 (fn STRING) (defalias 'rxt--propertize-whitespace #[257 "\302!\303\304#\203'\305\303\224\303\225\306\307\310\311\303 \"! \"%\210\303\225\262\202\207" [rxt--whitespace-display-regexp rxt--print-char-alist copy-sequence 0 string-match put-text-property display assoc-default string-to-char match-string] 12 (#$ . 41578)]) #@75 Highlight the regex syntax at point and its corresponding RX/string form. (defalias 'rxt-highlight-text #[0 "\301`\302\"\303\304\"\210\305\211\211\205B\211@\211\211G\306U\203#\211A\262\242\202*\307\310\311GD\"\242\312\"\211B\313\314\315#\266A\266\202\202\f\207" [rxt-highlight-overlays get-char-property rxt-bounds mapc delete-overlay nil 2 signal wrong-number-of-arguments (begin end) make-overlay overlay-put face rxt-highlight-face] 11 (#$ . 41918)]) (byte-code "\300\301!\203\301\302\303\304#\210\202\305\302\306\307#\210\305\302\310\303#\210\300\207" [fboundp define-error rxt-invalid-regexp "Invalid regexp" invalid-regexp put error-conditions (rxt-invalid-regexp invalid-regexp error) error-message] 4) #@26 (fn &rest FORMAT-ARGS) (defalias 'rxt-error #[128 "\300\301\302\303\"C\"\207" [signal rxt-invalid-regexp apply format] 6 (#$ . 42655)]) #@74 compiler-macro for inlining `rxt-syntax-tree-p'. (fn CL-WHOLE-ARG CL-X) (defalias 'rxt-syntax-tree-p--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block rxt-syntax-tree-p (and (memq (type-of cl-x) cl-struct-rxt-syntax-tree-tags) t)) nil] 9 (#$ . 42800)]) (put 'rxt-syntax-tree-p 'compiler-macro 'rxt-syntax-tree-p--cmacro) #@13 (fn CL-X) (defalias 'rxt-syntax-tree-p #[257 "\301!>\205 \302\207" [cl-struct-rxt-syntax-tree-tags type-of t] 3 (#$ . 43165)]) (byte-code "\300\301\302\303#\304\305\306\301#\210\307\310\311\"\207" [function-put rxt-syntax-tree-p side-effect-free error-free put rxt-syntax-tree cl-deftype-satisfies defalias copy-rxt-syntax-tree copy-sequence] 5) #@83 compiler-macro for inlining `make-rxt-syntax-tree'. (fn CL-WHOLE &cl-quote &key) (defalias 'make-rxt-syntax-tree--cmacro #[385 "\211\203\n\300\301@\"\210\302\303\304\303\303%\207" [error "Keyword argument %s not one of nil" cl--defsubst-expand nil (cl-block make-rxt-syntax-tree (record 'rxt-syntax-tree))] 8 (#$ . 43522)]) (put 'make-rxt-syntax-tree 'compiler-macro 'make-rxt-syntax-tree--cmacro) #@63 Constructor for objects of type `rxt-syntax-tree'. (fn &key) (defalias 'make-rxt-syntax-tree #[128 "\211\203\n\300\301@\"\210\302\303!\207" [error "Keyword argument %s not one of nil" record rxt-syntax-tree] 4 (#$ . 43930)]) (byte-code "\300\301\302\303#\304\305\306\307\310\306\311\312\305\303& \207" [function-put make-rxt-syntax-tree side-effect-free t cl-struct-define rxt-syntax-tree nil cl-structure-object record ((cl-tag-slot)) cl-struct-rxt-syntax-tree-tags] 11) #@71 compiler-macro for inlining `rxt-location-p'. (fn CL-WHOLE-ARG CL-X) (defalias 'rxt-location-p--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block rxt-location-p (and (memq (type-of cl-x) cl-struct-rxt-location-tags) t)) nil] 9 (#$ . 44411)]) (put 'rxt-location-p 'compiler-macro 'rxt-location-p--cmacro) #@13 (fn CL-X) (defalias 'rxt-location-p #[257 "\301!>\205 \302\207" [cl-struct-rxt-location-tags type-of t] 3 (#$ . 44758)]) (byte-code "\300\301\302\303#\304\305\306\301#\207" [function-put rxt-location-p side-effect-free error-free put rxt-location cl-deftype-satisfies] 5) #@76 compiler-macro for inlining `rxt-location-source'. (fn CL-WHOLE-ARG CL-X) (defalias 'rxt-location-source--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block rxt-location-source (progn (or (rxt-location-p cl-x) (signal 'wrong-type-argument (list 'rxt-location cl-x))) (aref cl-x 1))) nil] 9 (#$ . 45041)]) (put 'rxt-location-source 'compiler-macro 'rxt-location-source--cmacro) #@64 Access slot "source" of `rxt-location' struct CL-X. (fn CL-X) (defalias 'rxt-location-source #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-rxt-location-tags type-of signal wrong-type-argument rxt-location 1] 5 (#$ . 45460)]) (byte-code "\300\301\302\303#\300\207" [function-put rxt-location-source side-effect-free t] 4) #@75 compiler-macro for inlining `rxt-location-start'. (fn CL-WHOLE-ARG CL-X) (defalias 'rxt-location-start--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block rxt-location-start (progn (or (rxt-location-p cl-x) (signal 'wrong-type-argument (list 'rxt-location cl-x))) (aref cl-x 2))) nil] 9 (#$ . 45809)]) (put 'rxt-location-start 'compiler-macro 'rxt-location-start--cmacro) #@63 Access slot "start" of `rxt-location' struct CL-X. (fn CL-X) (defalias 'rxt-location-start #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-rxt-location-tags type-of signal wrong-type-argument rxt-location 2] 5 (#$ . 46223)]) (byte-code "\300\301\302\303#\300\207" [function-put rxt-location-start side-effect-free t] 4) #@73 compiler-macro for inlining `rxt-location-end'. (fn CL-WHOLE-ARG CL-X) (defalias 'rxt-location-end--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block rxt-location-end (progn (or (rxt-location-p cl-x) (signal 'wrong-type-argument (list 'rxt-location cl-x))) (aref cl-x 3))) nil] 9 (#$ . 46569)]) (put 'rxt-location-end 'compiler-macro 'rxt-location-end--cmacro) #@61 Access slot "end" of `rxt-location' struct CL-X. (fn CL-X) (defalias 'rxt-location-end #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-rxt-location-tags type-of signal wrong-type-argument rxt-location 3] 5 (#$ . 46973)]) (byte-code "\300\301\302\303#\304\305\306\"\207" [function-put rxt-location-end side-effect-free t defalias copy-rxt-location copy-sequence] 4) #@97 compiler-macro for inlining `make-rxt-location'. (fn CL-WHOLE &cl-quote &key SOURCE START END) (defalias 'make-rxt-location--cmacro #[385 "\300\301\"A@\300\302\"A@\300\303\"A@\211\203=\211@\304>\203&\211AA\262\202\305>A@\2034\306\262\202\307\310@\"\210\202\210\311\312\313\306\306&\207" [plist-member :source :start :end (:source :start :end :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:source :start :end)" cl--defsubst-expand (source start end) (cl-block make-rxt-location (record 'rxt-location source start end))] 14 (#$ . 47364)]) (put 'make-rxt-location 'compiler-macro 'make-rxt-location--cmacro) #@77 Constructor for objects of type `rxt-location'. (fn &key SOURCE START END) (defalias 'make-rxt-location #[128 "\300\301\"A@\300\302\"A@\300\303\"A@\211\203=\211@\304>\203&\211AA\262\202\305>A@\2034\306\262\202\307\310@\"\210\202\210\311\312$\207" [plist-member :source :start :end (:source :start :end :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:source :start :end)" record rxt-location] 9 (#$ . 48036)]) (byte-code "\300\301\302\303#\304\305\306\307\310\306\311\312\305\303& \207" [function-put make-rxt-location side-effect-free t cl-struct-define rxt-location nil cl-structure-object record ((cl-tag-slot) (source) (start) (end)) cl-struct-rxt-location-tags] 11) #@17 (fn LOCATION) (defalias 'rxt-location-text #[257 "\301!>\205[\301!>\204\302\303\304D\"\210\211\305H\301!>\204)\302\303\304D\"\210\306H\301!>\204;\302\303\304D\"\210\307H\310!\203Nr\211q\210\311\")\207\211;\203X\211O\207\266\312\207" [cl-struct-rxt-location-tags type-of signal wrong-type-argument rxt-location 2 3 1 buffer-live-p buffer-substring-no-properties nil] 7 (#$ . 48766)]) (defvar rxt-location-map (make-hash-table :weakness 'key)) #@15 (fn OBJECT) (defalias 'rxt-location #[257 "\301\"\207" [rxt-location-map gethash] 4 (#$ . 49242)]) (byte-code "\300\301\302\303#\300\207" [function-put rxt-location gv-expander #[385 "\300\301\302$\207" [gv--defsetter rxt-location #[514 "\300\301BBB\207" [puthash (rxt-location-map)] 6 "\n\n(fn VALUE OBJECT)"]] 7 "\n\n(fn DO &rest ARGS)"]] 4) #@15 (fn OBJECT) (defalias 'rxt-source-text #[257 "\300\301!!\207" [rxt-location-text rxt-location] 4 (#$ . 49600)]) #@82 Return a readable representation of TREE, a regex syntax-tree object. (fn TREE) (defalias 'rxt-to-string #[257 "\301!\206\f\302\303!)\207" [print-level rxt-source-text 1 prin1-to-string] 3 (#$ . 49721)]) (defalias 'rxt-syntax-tree-readable 'rxt-to-string) (defvar rxt-pcre-case-fold nil) #@69 compiler-macro for inlining `rxt-string-p'. (fn CL-WHOLE-ARG CL-X) (defalias 'rxt-string-p--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block rxt-string-p (and (memq (type-of cl-x) cl-struct-rxt-string-tags) t)) nil] 9 (#$ . 50020)]) (put 'rxt-string-p 'compiler-macro 'rxt-string-p--cmacro) #@13 (fn CL-X) (defalias 'rxt-string-p #[257 "\301!>\205 \302\207" [cl-struct-rxt-string-tags type-of t] 3 (#$ . 50355)]) (byte-code "\300\301\302\303#\304\305\306\301#\207" [function-put rxt-string-p side-effect-free error-free put rxt-string cl-deftype-satisfies] 5) #@73 compiler-macro for inlining `rxt-string-chars'. (fn CL-WHOLE-ARG CL-X) (defalias 'rxt-string-chars--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block rxt-string-chars (progn (or (rxt-string-p cl-x) (signal 'wrong-type-argument (list 'rxt-string cl-x))) (aref cl-x 1))) nil] 9 (#$ . 50630)]) (put 'rxt-string-chars 'compiler-macro 'rxt-string-chars--cmacro) #@61 Access slot "chars" of `rxt-string' struct CL-X. (fn CL-X) (defalias 'rxt-string-chars #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-rxt-string-tags type-of signal wrong-type-argument rxt-string 1] 5 (#$ . 51030)]) (byte-code "\300\301\302\303#\300\207" [function-put rxt-string-chars side-effect-free t] 4) #@77 compiler-macro for inlining `rxt-string-case-fold'. (fn CL-WHOLE-ARG CL-X) (defalias 'rxt-string-case-fold--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block rxt-string-case-fold (progn (or (rxt-string-p cl-x) (signal 'wrong-type-argument (list 'rxt-string cl-x))) (aref cl-x 2))) nil] 9 (#$ . 51366)]) (put 'rxt-string-case-fold 'compiler-macro 'rxt-string-case-fold--cmacro) #@65 Access slot "case-fold" of `rxt-string' struct CL-X. (fn CL-X) (defalias 'rxt-string-case-fold #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-rxt-string-tags type-of signal wrong-type-argument rxt-string 2] 5 (#$ . 51786)]) (byte-code "\300\301\302\303#\304\305\306\"\207" [function-put rxt-string-case-fold side-effect-free t defalias copy-rxt-string copy-sequence] 4) #@94 compiler-macro for inlining `make-rxt-string'. (fn CL-WHOLE &cl-quote &key CHARS CASE-FOLD) (defalias 'make-rxt-string--cmacro #[385 "\300\301\"A@\300\302\"\206\303A@\211\203;\211@\304>\203$\211AA\262\202\305>A@\2032\306\262\202\307\310@\"\210\202\210\311\312\313\306\306&\207" [plist-member :chars :case-fold (nil rxt-pcre-case-fold) (:chars :case-fold :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:chars :case-fold)" cl--defsubst-expand (chars case-fold) (cl-block make-rxt-string (record 'rxt-string chars case-fold))] 12 (#$ . 52183)]) (put 'make-rxt-string 'compiler-macro 'make-rxt-string--cmacro) #@74 Constructor for objects of type `rxt-string'. (fn &key CHARS CASE-FOLD) (defalias 'make-rxt-string #[128 "\301\302\"A@\301\303\"\206\304DA@\211\203=\211@\305>\203&\211AA\262\202\306>A@\2034\304\262\202\307\310@\"\210\202\210\311\312#\207" [rxt-pcre-case-fold plist-member :chars :case-fold nil (:chars :case-fold :allow-other-keys) :allow-other-keys error "Keyword argument %s not one of (:chars :case-fold)" record rxt-string] 7 (#$ . 52854)]) (byte-code "\300\301\302\303#\300\207" [function-put make-rxt-string side-effect-free t] 4) #@98 compiler-macro for inlining `rxt-string'. (fn CL-WHOLE-ARG &cl-quote CHARS &optional CASE-FOLD) (defalias 'rxt-string--cmacro #[642 "\211\203 \211A\262\242\202\300\203\301\302\303\304G\\D\"\210\305\306\307\310\211\211&\207" [rxt-pcre-case-fold signal wrong-number-of-arguments rxt-string--cmacro 3 cl--defsubst-expand (chars case-fold) (cl-block rxt-string (record 'rxt-string chars case-fold)) nil] 12 (#$ . 53419)]) (put 'rxt-string 'compiler-macro 'rxt-string--cmacro) #@79 Constructor for objects of type `rxt-string'. (fn CHARS &optional CASE-FOLD) (defalias 'rxt-string #[385 "\211\203 \211A\262\242\202\203\301\302\303\304G\\D\"\210\305\303#\207" [rxt-pcre-case-fold signal wrong-number-of-arguments rxt-string 2 record] 8 (#$ . 53912)]) (byte-code "\300\301\302\303#\304\301\305\306\307\305\310\311\301\303& \207" [function-put rxt-string side-effect-free t cl-struct-define nil rxt-syntax-tree record ((cl-tag-slot) (chars) (case-fold rxt-pcre-case-fold)) cl-struct-rxt-string-tags] 11) (defalias 'rxt-empty-string #[0 "\301\302\303#\207" [rxt-pcre-case-fold record rxt-string ""] 4]) #@11 (fn RE) (defalias 'rxt-trivial-p #[257 "\301!>\205\301!>\204\302\303\304D\"\210\211\305H\306\232\207" [cl-struct-rxt-string-tags type-of signal wrong-type-argument rxt-string 1 ""] 5 (#$ . 54549)]) #@72 compiler-macro for inlining `rxt-primitive-p'. (fn CL-WHOLE-ARG CL-X) (defalias 'rxt-primitive-p--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block rxt-primitive-p (and (memq (type-of cl-x) cl-struct-rxt-primitive-tags) t)) nil] 9 (#$ . 54764)]) (put 'rxt-primitive-p 'compiler-macro 'rxt-primitive-p--cmacro) #@13 (fn CL-X) (defalias 'rxt-primitive-p #[257 "\301!>\205 \302\207" [cl-struct-rxt-primitive-tags type-of t] 3 (#$ . 55117)]) (byte-code "\300\301\302\303#\304\305\306\301#\207" [function-put rxt-primitive-p side-effect-free error-free put rxt-primitive cl-deftype-satisfies] 5) #@75 compiler-macro for inlining `rxt-primitive-pcre'. (fn CL-WHOLE-ARG CL-X) (defalias 'rxt-primitive-pcre--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block rxt-primitive-pcre (progn (or (rxt-primitive-p cl-x) (signal 'wrong-type-argument (list 'rxt-primitive cl-x))) (aref cl-x 1))) nil] 9 (#$ . 55404)]) (put 'rxt-primitive-pcre 'compiler-macro 'rxt-primitive-pcre--cmacro) #@63 Access slot "pcre" of `rxt-primitive' struct CL-X. (fn CL-X) (defalias 'rxt-primitive-pcre #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-rxt-primitive-tags type-of signal wrong-type-argument rxt-primitive 1] 5 (#$ . 55820)]) (byte-code "\300\301\302\303#\300\207" [function-put rxt-primitive-pcre side-effect-free t] 4) #@73 compiler-macro for inlining `rxt-primitive-rx'. (fn CL-WHOLE-ARG CL-X) (defalias 'rxt-primitive-rx--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block rxt-primitive-rx (progn (or (rxt-primitive-p cl-x) (signal 'wrong-type-argument (list 'rxt-primitive cl-x))) (aref cl-x 2))) nil] 9 (#$ . 56168)]) (put 'rxt-primitive-rx 'compiler-macro 'rxt-primitive-rx--cmacro) #@61 Access slot "rx" of `rxt-primitive' struct CL-X. (fn CL-X) (defalias 'rxt-primitive-rx #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-rxt-primitive-tags type-of signal wrong-type-argument rxt-primitive 2] 5 (#$ . 56574)]) (byte-code "\300\301\302\303#\304\305\306\"\207" [function-put rxt-primitive-rx side-effect-free t defalias copy-rxt-primitive copy-sequence] 4) #@89 compiler-macro for inlining `make-rxt-primitive'. (fn CL-WHOLE &cl-quote &key PCRE RX) (defalias 'make-rxt-primitive--cmacro #[385 "\300\301\"A@\300\302\"A@\211\2037\211@\303>\203 \211AA\262\202 \304>A@\203.\305\262\202 \306\307@\"\210\202 \210\310\311\312\305\305&\207" [plist-member :pcre :rx (:pcre :rx :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:pcre :rx)" cl--defsubst-expand (pcre rx) (cl-block make-rxt-primitive (record 'rxt-primitive pcre rx))] 12 (#$ . 56968)]) (put 'make-rxt-primitive 'compiler-macro 'make-rxt-primitive--cmacro) #@69 Constructor for objects of type `rxt-primitive'. (fn &key PCRE RX) (defalias 'make-rxt-primitive #[128 "\300\301\"A@\300\302\"A@\211\2037\211@\303>\203 \211AA\262\202 \304>A@\203.\305\262\202 \306\307@\"\210\202 \210\310\311#\207" [plist-member :pcre :rx (:pcre :rx :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:pcre :rx)" record rxt-primitive] 7 (#$ . 57574)]) (byte-code "\300\301\302\303#\300\207" [function-put make-rxt-primitive side-effect-free t] 4) #@73 compiler-macro for inlining `rxt-primitive'. (fn CL-WHOLE-ARG PCRE RX) (defalias 'rxt-primitive--cmacro #[771 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (pcre rx) (cl-block rxt-primitive (record 'rxt-primitive pcre rx)) nil] 11 (#$ . 58088)]) (put 'rxt-primitive 'compiler-macro 'rxt-primitive--cmacro) #@64 Constructor for objects of type `rxt-primitive'. (fn PCRE RX) (defalias 'rxt-primitive #[514 "\300\301#\207" [record rxt-primitive] 6 (#$ . 58413)]) (byte-code "\300\301\302\303#\304\301\305\306\307\305\310\311\301\303& \207" [function-put rxt-primitive side-effect-free t cl-struct-define nil rxt-syntax-tree record ((cl-tag-slot) (pcre) (rx)) cl-struct-rxt-primitive-tags] 11) (defalias 'rxt-bos #[0 "\300\301\302\303#\207" [record rxt-primitive "\\A" bos] 4]) (defalias 'rxt-eos #[0 "\300\301\302\303#\207" [record rxt-primitive "\\Z" eos] 4]) (defalias 'rxt-bol #[0 "\300\301\302\303#\207" [record rxt-primitive "^" bol] 4]) (defalias 'rxt-eol #[0 "\300\301\302\303#\207" [record rxt-primitive "$" eol] 4]) (defalias 'rxt-anything #[0 "\300\301\302\303#\207" [record rxt-primitive "." anything] 4]) (defalias 'rxt-nonl #[0 "\300\301\302\303#\207" [record rxt-primitive "." nonl] 4]) (defalias 'rxt-word-boundary #[0 "\300\301\302\303#\207" [record rxt-primitive "\\b" word-boundary] 4]) (defalias 'rxt-not-word-boundary #[0 "\300\301\302\303#\207" [record rxt-primitive "\\B" not-word-boundary] 4]) (defalias 'rxt-wordchar #[0 "\300\301\302\303#\207" [record rxt-primitive "\\w" wordchar] 4]) (defalias 'rxt-not-wordchar #[0 "\300\301\302\303#\207" [record rxt-primitive "\\W" not-wordchar] 4]) (defalias 'rxt-symbol-start #[0 "\300\301\302\303#\207" [record rxt-primitive nil symbol-start] 4]) (defalias 'rxt-symbol-end #[0 "\300\301\302\303#\207" [record rxt-primitive nil symbol-end] 4]) (defalias 'rxt-bow #[0 "\300\301\302\303#\207" [record rxt-primitive nil bow] 4]) (defalias 'rxt-eow #[0 "\300\301\302\303#\207" [record rxt-primitive nil eow] 4]) #@66 compiler-macro for inlining `rxt-seq-p'. (fn CL-WHOLE-ARG CL-X) (defalias 'rxt-seq-p--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block rxt-seq-p (and (memq (type-of cl-x) cl-struct-rxt-seq-tags) t)) nil] 9 (#$ . 60081)]) (put 'rxt-seq-p 'compiler-macro 'rxt-seq-p--cmacro) #@13 (fn CL-X) (defalias 'rxt-seq-p #[257 "\301!>\205 \302\207" [cl-struct-rxt-seq-tags type-of t] 3 (#$ . 60398)]) (byte-code "\300\301\302\303#\304\305\306\301#\207" [function-put rxt-seq-p side-effect-free error-free put rxt-seq cl-deftype-satisfies] 5) #@69 compiler-macro for inlining `rxt-seq-elts'. (fn CL-WHOLE-ARG CL-X) (defalias 'rxt-seq-elts--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block rxt-seq-elts (progn (or (rxt-seq-p cl-x) (signal 'wrong-type-argument (list 'rxt-seq cl-x))) (aref cl-x 1))) nil] 9 (#$ . 60661)]) (put 'rxt-seq-elts 'compiler-macro 'rxt-seq-elts--cmacro) #@57 Access slot "elts" of `rxt-seq' struct CL-X. (fn CL-X) (defalias 'rxt-seq-elts #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-rxt-seq-tags type-of signal wrong-type-argument rxt-seq 1] 5 (#$ . 61035)]) (byte-code "\300\301\302\303#\304\305\306\"\207" [function-put rxt-seq-elts side-effect-free t defalias copy-rxt-seq copy-sequence] 4) #@69 compiler-macro for inlining `make-rxt-seq'. (fn CL-WHOLE-ARG ELTS) (defalias 'make-rxt-seq--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (elts) (cl-block make-rxt-seq (record 'rxt-seq elts)) nil] 9 (#$ . 61399)]) (put 'make-rxt-seq 'compiler-macro 'make-rxt-seq--cmacro) #@55 Constructor for objects of type `rxt-seq'. (fn ELTS) (defalias 'make-rxt-seq #[257 "\300\301\"\207" [record rxt-seq] 4 (#$ . 61701)]) (byte-code "\300\301\302\303#\304\305\306\307\310\306\311\312\305\303& \207" [function-put make-rxt-seq side-effect-free t cl-struct-define rxt-seq nil rxt-syntax-tree record ((cl-tag-slot) (elts)) cl-struct-rxt-seq-tags] 11) #@18 (fn &rest RES) (defalias 'rxt-seq #[128 "\300!\211:\203\211A:\203\301\302\"\207\211@\207\303 \207" [rxt-seq-flatten record rxt-seq rxt-empty-string] 5 (#$ . 62069)]) #@12 (fn RES) (defalias 'rxt-seq-flatten #[257 "\211:\205W\211@\302A!\303!>\203,\304\302\303!>\204%\305\306\307D\"\210\310H!\"\207\311!\2033\207\303! >\203R\211:\203R\303@! >\203R\312@\"AB\207B\266\202\207" [cl-struct-rxt-seq-tags cl-struct-rxt-string-tags rxt-seq-flatten type-of append signal wrong-type-argument rxt-seq 1 rxt-trivial-p rxt-string-concat] 9 (#$ . 62249)]) #@18 (fn STR1 STR2) (defalias 'rxt-string-concat #[514 "\303!>\204\304\305\306D\"\210\307H\303!>\204!\304\305\306D\"\210\307H=\204/\310\311D\"\207\310\306\303!>\204A\304\305\306D\"\210\312H\303!>\204T\304\305\306D\"\210\312HP\303!>\204h\304\305\306D\"\210\307H#\313!\313!\203\303\211\203\303\314\310\313\303! >\204\220\304\305\313 D\"\210\312H\303! >\204\245\304\305\313\nD\"\210\307H\303! >\204\272\304\305\313\nD\"\210\315H$\n#\266\207" [cl-struct-rxt-string-tags cl-struct-rxt-location-tags rxt-location-map type-of signal wrong-type-argument rxt-string 2 record rxt-seq 1 rxt-location puthash 3] 16 (#$ . 62651)]) #@69 compiler-macro for inlining `rxt-choice-p'. (fn CL-WHOLE-ARG CL-X) (defalias 'rxt-choice-p--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block rxt-choice-p (and (memq (type-of cl-x) cl-struct-rxt-choice-tags) t)) nil] 9 (#$ . 63331)]) (put 'rxt-choice-p 'compiler-macro 'rxt-choice-p--cmacro) #@13 (fn CL-X) (defalias 'rxt-choice-p #[257 "\301!>\205 \302\207" [cl-struct-rxt-choice-tags type-of t] 3 (#$ . 63666)]) (byte-code "\300\301\302\303#\304\305\306\301#\207" [function-put rxt-choice-p side-effect-free error-free put rxt-choice cl-deftype-satisfies] 5) #@72 compiler-macro for inlining `rxt-choice-elts'. (fn CL-WHOLE-ARG CL-X) (defalias 'rxt-choice-elts--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block rxt-choice-elts (progn (or (rxt-choice-p cl-x) (signal 'wrong-type-argument (list 'rxt-choice cl-x))) (aref cl-x 1))) nil] 9 (#$ . 63941)]) (put 'rxt-choice-elts 'compiler-macro 'rxt-choice-elts--cmacro) #@60 Access slot "elts" of `rxt-choice' struct CL-X. (fn CL-X) (defalias 'rxt-choice-elts #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-rxt-choice-tags type-of signal wrong-type-argument rxt-choice 1] 5 (#$ . 64336)]) (byte-code "\300\301\302\303#\304\305\306\"\207" [function-put rxt-choice-elts side-effect-free t defalias copy-rxt-choice copy-sequence] 4) #@72 compiler-macro for inlining `make-rxt-choice'. (fn CL-WHOLE-ARG ELTS) (defalias 'make-rxt-choice--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (elts) (cl-block make-rxt-choice (record 'rxt-choice elts)) nil] 9 (#$ . 64718)]) (put 'make-rxt-choice 'compiler-macro 'make-rxt-choice--cmacro) #@58 Constructor for objects of type `rxt-choice'. (fn ELTS) (defalias 'make-rxt-choice #[257 "\300\301\"\207" [record rxt-choice] 4 (#$ . 65038)]) (byte-code "\300\301\302\303#\304\305\306\307\310\306\311\312\305\303& \207" [function-put make-rxt-choice side-effect-free t cl-struct-define rxt-choice nil rxt-syntax-tree record ((cl-tag-slot) (elts)) cl-struct-rxt-choice-tags] 11) (defvar rxt-empty (record 'rxt-choice nil)) #@11 (fn RE) (defalias 'rxt-empty-p #[257 "\301!>\203\301!>\204\302\303\304D\"\210\211\305H?\206!\306!\207" [cl-struct-rxt-choice-tags type-of signal wrong-type-argument rxt-choice 1 rxt-empty-char-set-p] 5 (#$ . 65468)]) #@675 Construct the alternation (union) of several regexps. ALTERNATIVES should be a list of `rxt-syntax-tree' objects. The return value is an `rxt-choice' object representing a regexp which matches any one of ALTERNATIVES, but simplified in the following ways: - If ALTERNATIVES contains only one element, it is returned unchanged. - All existing `rxt-choice' elements in ALTERNATIVES are replaced by a flat list of their subexpressions: symbolically, a|(b|(c|d)) is replaced by a|b|c|d - All character sets and single-character strings in ALTERNATIVES are combined together into one or two character sets, respecting case-folding behaviour. (fn &rest ALTERNATIVES) (defalias 'rxt-choice #[128 "\301!\211G\302U\203\211A\262\242\202\303\304\305GD\"\211A\262\242\242\306\307!?\205,C\307!?\2055C#\211\204=\207\211:\203Q\211\242\243\211\204L\207\310\311\"\207\310\311\"\207" [rxt-empty rxt--simplify-alternatives 3 signal wrong-number-of-arguments (other-elements char-set case-fold-char-set) append rxt-empty-p record rxt-choice] 11 (#$ . 65705)]) #@655 Simplify a set of regexp alternatives. ALTERNATIVES should be a list of `rxt-syntax-tree' objects to be combined into an `rxt-choice' structure. The result is a three-element list (OTHER-ELEMENTS CHAR-SET CASE-FOLDED-CHAR-SET): - CHAR-SET is an `rxt-char-set-union' containing the union of all case-sensitive character sets and single-character strings in RES. - CASE-FOLDED-CHAR-SET is similar but combines all the case-insensitive character sets and single-character strings. - OTHER-ELEMENTS is a list of all other elements, with all `rxt-choice' structures replaced by a flat list of their component subexpressions. (fn ALTERNATIVES) (defalias 'rxt--simplify-alternatives #[257 "\211\204\302\303\304\302\"\303\304\305\"E\207\211@\306A!\211G\307U\203%\211A\262\242\202,\310\311\312GD\"\211A\262\242\242\313!>\203W\314\313!>\204N\310\315\316D\"\210\317H\"E\207\320!\203bE\207\321!\203\200\322!\203w\323\"E\207\323\"E\207\313! >\203\311\313! >\204\230\310\315\324D\"\210\317HG\317U\203\311\313! >\204\261\310\315\324D\"\210\325H\203\300\323\"E\207\323\"E\207BE\207" [cl-struct-rxt-choice-tags cl-struct-rxt-string-tags nil make-rxt-char-set-union :case-fold t rxt--simplify-alternatives 3 signal wrong-number-of-arguments (tail char-set case-fold-char-set) type-of append wrong-type-argument rxt-choice 1 rxt-empty-p rxt-char-set-union-p rxt-char-set-union-case-fold rxt-char-set-union rxt-string 2] 11 (#$ . 66791)]) #@69 compiler-macro for inlining `rxt-repeat-p'. (fn CL-WHOLE-ARG CL-X) (defalias 'rxt-repeat-p--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block rxt-repeat-p (and (memq (type-of cl-x) cl-struct-rxt-repeat-tags) t)) nil] 9 (#$ . 68303)]) (put 'rxt-repeat-p 'compiler-macro 'rxt-repeat-p--cmacro) #@13 (fn CL-X) (defalias 'rxt-repeat-p #[257 "\301!>\205 \302\207" [cl-struct-rxt-repeat-tags type-of t] 3 (#$ . 68638)]) (byte-code "\300\301\302\303#\304\305\306\301#\207" [function-put rxt-repeat-p side-effect-free error-free put rxt-repeat cl-deftype-satisfies] 5) #@72 compiler-macro for inlining `rxt-repeat-from'. (fn CL-WHOLE-ARG CL-X) (defalias 'rxt-repeat-from--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block rxt-repeat-from (progn (or (rxt-repeat-p cl-x) (signal 'wrong-type-argument (list 'rxt-repeat cl-x))) (aref cl-x 1))) nil] 9 (#$ . 68913)]) (put 'rxt-repeat-from 'compiler-macro 'rxt-repeat-from--cmacro) #@60 Access slot "from" of `rxt-repeat' struct CL-X. (fn CL-X) (defalias 'rxt-repeat-from #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-rxt-repeat-tags type-of signal wrong-type-argument rxt-repeat 1] 5 (#$ . 69308)]) (byte-code "\300\301\302\303#\300\207" [function-put rxt-repeat-from side-effect-free t] 4) #@70 compiler-macro for inlining `rxt-repeat-to'. (fn CL-WHOLE-ARG CL-X) (defalias 'rxt-repeat-to--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block rxt-repeat-to (progn (or (rxt-repeat-p cl-x) (signal 'wrong-type-argument (list 'rxt-repeat cl-x))) (aref cl-x 2))) nil] 9 (#$ . 69641)]) (put 'rxt-repeat-to 'compiler-macro 'rxt-repeat-to--cmacro) #@58 Access slot "to" of `rxt-repeat' struct CL-X. (fn CL-X) (defalias 'rxt-repeat-to #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-rxt-repeat-tags type-of signal wrong-type-argument rxt-repeat 2] 5 (#$ . 70026)]) (byte-code "\300\301\302\303#\300\207" [function-put rxt-repeat-to side-effect-free t] 4) #@72 compiler-macro for inlining `rxt-repeat-body'. (fn CL-WHOLE-ARG CL-X) (defalias 'rxt-repeat-body--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block rxt-repeat-body (progn (or (rxt-repeat-p cl-x) (signal 'wrong-type-argument (list 'rxt-repeat cl-x))) (aref cl-x 3))) nil] 9 (#$ . 70353)]) (put 'rxt-repeat-body 'compiler-macro 'rxt-repeat-body--cmacro) #@60 Access slot "body" of `rxt-repeat' struct CL-X. (fn CL-X) (defalias 'rxt-repeat-body #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-rxt-repeat-tags type-of signal wrong-type-argument rxt-repeat 3] 5 (#$ . 70748)]) (byte-code "\300\301\302\303#\300\207" [function-put rxt-repeat-body side-effect-free t] 4) #@74 compiler-macro for inlining `rxt-repeat-greedy'. (fn CL-WHOLE-ARG CL-X) (defalias 'rxt-repeat-greedy--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block rxt-repeat-greedy (progn (or (rxt-repeat-p cl-x) (signal 'wrong-type-argument (list 'rxt-repeat cl-x))) (aref cl-x 4))) nil] 9 (#$ . 71081)]) (put 'rxt-repeat-greedy 'compiler-macro 'rxt-repeat-greedy--cmacro) #@62 Access slot "greedy" of `rxt-repeat' struct CL-X. (fn CL-X) (defalias 'rxt-repeat-greedy #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-rxt-repeat-tags type-of signal wrong-type-argument rxt-repeat 4] 5 (#$ . 71486)]) (byte-code "\300\301\302\303#\304\305\306\"\207" [function-put rxt-repeat-greedy side-effect-free t defalias copy-rxt-repeat copy-sequence] 4) #@98 compiler-macro for inlining `make-rxt-repeat'. (fn CL-WHOLE &cl-quote &key FROM TO BODY GREEDY) (defalias 'make-rxt-repeat--cmacro #[385 "\300\301\"A@\300\302\"A@\300\303\"A@\300\304\"A@\211\203D\211@\305>\203,\211AA\262\202\306>A@\203;\307\262\202\310\311@\"\210\202\210\312\313\314\307 \307    & \207" [plist-member :from :to :body :greedy (:from :to :body :greedy :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:from :to :body :greedy)" cl--defsubst-expand (from to body greedy) (cl-block make-rxt-repeat (record 'rxt-repeat from to body greedy))] 16 (#$ . 71874)]) (put 'make-rxt-repeat 'compiler-macro 'make-rxt-repeat--cmacro) #@78 Constructor for objects of type `rxt-repeat'. (fn &key FROM TO BODY GREEDY) (defalias 'make-rxt-repeat #[128 "\300\301\"A@\300\302\"A@\300\303\"A@\300\304\"A@\211\203D\211@\305>\203,\211AA\262\202\306>A@\203;\307\262\202\310\311@\"\210\202\210\312\313%\207" [plist-member :from :to :body :greedy (:from :to :body :greedy :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:from :to :body :greedy)" record rxt-repeat] 11 (#$ . 72571)]) (byte-code "\300\301\302\303#\304\305\306\307\310\306\311\312\305\303& \207" [function-put make-rxt-repeat side-effect-free t cl-struct-define rxt-repeat nil rxt-syntax-tree record ((cl-tag-slot) (from) (to) (body) (greedy)) cl-struct-rxt-repeat-tags] 11) #@42 (fn FROM TO BODY &optional (GREEDY t)) (defalias 'rxt-repeat #[899 "\211\203 \211A\262\242\202\300\203\301\302\303\304G\\D\"\210\305=\203%\306 \207\307\303%\207" [t signal wrong-number-of-arguments rxt-repeat 4 0 rxt-empty-string record] 11 (#$ . 73321)]) #@71 compiler-macro for inlining `rxt-submatch-p'. (fn CL-WHOLE-ARG CL-X) (defalias 'rxt-submatch-p--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block rxt-submatch-p (and (memq (type-of cl-x) cl-struct-rxt-submatch-tags) t)) nil] 9 (#$ . 73603)]) (put 'rxt-submatch-p 'compiler-macro 'rxt-submatch-p--cmacro) #@13 (fn CL-X) (defalias 'rxt-submatch-p #[257 "\301!>\205 \302\207" [cl-struct-rxt-submatch-tags type-of t] 3 (#$ . 73950)]) (byte-code "\300\301\302\303#\304\305\306\301#\207" [function-put rxt-submatch-p side-effect-free error-free put rxt-submatch cl-deftype-satisfies] 5) #@74 compiler-macro for inlining `rxt-submatch-body'. (fn CL-WHOLE-ARG CL-X) (defalias 'rxt-submatch-body--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block rxt-submatch-body (progn (or (rxt-submatch-p cl-x) (signal 'wrong-type-argument (list 'rxt-submatch cl-x))) (aref cl-x 1))) nil] 9 (#$ . 74233)]) (put 'rxt-submatch-body 'compiler-macro 'rxt-submatch-body--cmacro) #@62 Access slot "body" of `rxt-submatch' struct CL-X. (fn CL-X) (defalias 'rxt-submatch-body #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-rxt-submatch-tags type-of signal wrong-type-argument rxt-submatch 1] 5 (#$ . 74642)]) (byte-code "\300\301\302\303#\304\305\306\"\207" [function-put rxt-submatch-body side-effect-free t defalias copy-rxt-submatch copy-sequence] 4) #@85 compiler-macro for inlining `make-rxt-submatch'. (fn CL-WHOLE &cl-quote &key BODY) (defalias 'make-rxt-submatch--cmacro #[385 "\300\301\"A@\211\2031\211@\302>\203\211AA\262\202\303>A@\203(\304\262\202\305\306@\"\210\202\210\307\310\311\304\304&\207" [plist-member :body (:body :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:body)" cl--defsubst-expand (body) (cl-block make-rxt-submatch (record 'rxt-submatch body))] 10 (#$ . 75036)]) (put 'make-rxt-submatch 'compiler-macro 'make-rxt-submatch--cmacro) #@65 Constructor for objects of type `rxt-submatch'. (fn &key BODY) (defalias 'make-rxt-submatch #[128 "\300\301\"A@\211\2031\211@\302>\203\211AA\262\202\303>A@\203(\304\262\202\305\306@\"\210\202\210\307\310\"\207" [plist-member :body (:body :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:body)" record rxt-submatch] 6 (#$ . 75600)]) (byte-code "\300\301\302\303#\300\207" [function-put make-rxt-submatch side-effect-free t] 4) #@69 compiler-macro for inlining `rxt-submatch'. (fn CL-WHOLE-ARG BODY) (defalias 'rxt-submatch--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (body) (cl-block rxt-submatch (record 'rxt-submatch body)) nil] 9 (#$ . 76082)]) (put 'rxt-submatch 'compiler-macro 'rxt-submatch--cmacro) #@60 Constructor for objects of type `rxt-submatch'. (fn BODY) (defalias 'rxt-submatch #[257 "\300\301\"\207" [record rxt-submatch] 4 (#$ . 76389)]) (byte-code "\300\301\302\303#\304\301\305\306\307\305\310\311\301\303& \207" [function-put rxt-submatch side-effect-free t cl-struct-define nil rxt-syntax-tree record ((cl-tag-slot) (body)) cl-struct-rxt-submatch-tags] 11) #@80 compiler-macro for inlining `rxt-submatch-numbered-p'. (fn CL-WHOLE-ARG CL-X) (defalias 'rxt-submatch-numbered-p--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block rxt-submatch-numbered-p (and (memq (type-of cl-x) cl-struct-rxt-submatch-numbered-tags) t)) nil] 9 (#$ . 76764)]) (put 'rxt-submatch-numbered-p 'compiler-macro 'rxt-submatch-numbered-p--cmacro) #@13 (fn CL-X) (defalias 'rxt-submatch-numbered-p #[257 "\301!>\205 \302\207" [cl-struct-rxt-submatch-numbered-tags type-of t] 3 (#$ . 77165)]) (byte-code "\300\301\302\303#\304\305\306\301#\207" [function-put rxt-submatch-numbered-p side-effect-free error-free put rxt-submatch-numbered cl-deftype-satisfies] 5) #@80 compiler-macro for inlining `rxt-submatch-numbered-n'. (fn CL-WHOLE-ARG CL-X) (defalias 'rxt-submatch-numbered-n--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block rxt-submatch-numbered-n (progn (or (rxt-submatch-numbered-p cl-x) (signal 'wrong-type-argument (list 'rxt-submatch-numbered cl-x))) (aref cl-x 1))) nil] 9 (#$ . 77484)]) (put 'rxt-submatch-numbered-n 'compiler-macro 'rxt-submatch-numbered-n--cmacro) #@68 Access slot "n" of `rxt-submatch-numbered' struct CL-X. (fn CL-X) (defalias 'rxt-submatch-numbered-n #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-rxt-submatch-numbered-tags type-of signal wrong-type-argument rxt-submatch-numbered 1] 5 (#$ . 77941)]) (byte-code "\300\301\302\303#\300\207" [function-put rxt-submatch-numbered-n side-effect-free t] 4) #@83 compiler-macro for inlining `rxt-submatch-numbered-body'. (fn CL-WHOLE-ARG CL-X) (defalias 'rxt-submatch-numbered-body--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block rxt-submatch-numbered-body (progn (or (rxt-submatch-numbered-p cl-x) (signal 'wrong-type-argument (list 'rxt-submatch-numbered cl-x))) (aref cl-x 2))) nil] 9 (#$ . 78320)]) (put 'rxt-submatch-numbered-body 'compiler-macro 'rxt-submatch-numbered-body--cmacro) #@71 Access slot "body" of `rxt-submatch-numbered' struct CL-X. (fn CL-X) (defalias 'rxt-submatch-numbered-body #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-rxt-submatch-numbered-tags type-of signal wrong-type-argument rxt-submatch-numbered 2] 5 (#$ . 78792)]) (byte-code "\300\301\302\303#\304\305\306\"\207" [function-put rxt-submatch-numbered-body side-effect-free t defalias copy-rxt-submatch-numbered copy-sequence] 4) #@96 compiler-macro for inlining `make-rxt-submatch-numbered'. (fn CL-WHOLE &cl-quote &key N BODY) (defalias 'make-rxt-submatch-numbered--cmacro #[385 "\300\301\"A@\300\302\"A@\211\2037\211@\303>\203 \211AA\262\202 \304>A@\203.\305\262\202 \306\307@\"\210\202 \210\310\311\312\305\305&\207" [plist-member :n :body (:n :body :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:n :body)" cl--defsubst-expand (n body) (cl-block make-rxt-submatch-numbered (record 'rxt-submatch-numbered n body))] 12 (#$ . 79240)]) (put 'make-rxt-submatch-numbered 'compiler-macro 'make-rxt-submatch-numbered--cmacro) #@76 Constructor for objects of type `rxt-submatch-numbered'. (fn &key N BODY) (defalias 'make-rxt-submatch-numbered #[128 "\300\301\"A@\300\302\"A@\211\2037\211@\303>\203 \211AA\262\202 \304>A@\203.\305\262\202 \306\307@\"\210\202 \210\310\311#\207" [plist-member :n :body (:n :body :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:n :body)" record rxt-submatch-numbered] 7 (#$ . 79888)]) (byte-code "\300\301\302\303#\300\207" [function-put make-rxt-submatch-numbered side-effect-free t] 4) #@80 compiler-macro for inlining `rxt-submatch-numbered'. (fn CL-WHOLE-ARG N BODY) (defalias 'rxt-submatch-numbered--cmacro #[771 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (n body) (cl-block rxt-submatch-numbered (record 'rxt-submatch-numbered n body)) nil] 11 (#$ . 80430)]) (put 'rxt-submatch-numbered 'compiler-macro 'rxt-submatch-numbered--cmacro) #@71 Constructor for objects of type `rxt-submatch-numbered'. (fn N BODY) (defalias 'rxt-submatch-numbered #[514 "\300\301#\207" [record rxt-submatch-numbered] 6 (#$ . 80800)]) (byte-code "\300\301\302\303#\304\301\305\306\307\305\310\311\301\303& \207" [function-put rxt-submatch-numbered side-effect-free t cl-struct-define nil rxt-syntax-tree record ((cl-tag-slot) (n) (body)) cl-struct-rxt-submatch-numbered-tags] 11) #@70 compiler-macro for inlining `rxt-backref-p'. (fn CL-WHOLE-ARG CL-X) (defalias 'rxt-backref-p--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block rxt-backref-p (and (memq (type-of cl-x) cl-struct-rxt-backref-tags) t)) nil] 9 (#$ . 81226)]) (put 'rxt-backref-p 'compiler-macro 'rxt-backref-p--cmacro) #@13 (fn CL-X) (defalias 'rxt-backref-p #[257 "\301!>\205 \302\207" [cl-struct-rxt-backref-tags type-of t] 3 (#$ . 81567)]) (byte-code "\300\301\302\303#\304\305\306\301#\207" [function-put rxt-backref-p side-effect-free error-free put rxt-backref cl-deftype-satisfies] 5) #@70 compiler-macro for inlining `rxt-backref-n'. (fn CL-WHOLE-ARG CL-X) (defalias 'rxt-backref-n--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block rxt-backref-n (progn (or (rxt-backref-p cl-x) (signal 'wrong-type-argument (list 'rxt-backref cl-x))) (aref cl-x 1))) nil] 9 (#$ . 81846)]) (put 'rxt-backref-n 'compiler-macro 'rxt-backref-n--cmacro) #@58 Access slot "n" of `rxt-backref' struct CL-X. (fn CL-X) (defalias 'rxt-backref-n #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-rxt-backref-tags type-of signal wrong-type-argument rxt-backref 1] 5 (#$ . 82233)]) (byte-code "\300\301\302\303#\304\305\306\"\207" [function-put rxt-backref-n side-effect-free t defalias copy-rxt-backref copy-sequence] 4) #@81 compiler-macro for inlining `make-rxt-backref'. (fn CL-WHOLE &cl-quote &key N) (defalias 'make-rxt-backref--cmacro #[385 "\300\301\"A@\211\2031\211@\302>\203\211AA\262\202\303>A@\203(\304\262\202\305\306@\"\210\202\210\307\310\311\304\304&\207" [plist-member :n (:n :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:n)" cl--defsubst-expand (n) (cl-block make-rxt-backref (record 'rxt-backref n))] 10 (#$ . 82612)]) (put 'make-rxt-backref 'compiler-macro 'make-rxt-backref--cmacro) #@61 Constructor for objects of type `rxt-backref'. (fn &key N) (defalias 'make-rxt-backref #[128 "\300\301\"A@\211\2031\211@\302>\203\211AA\262\202\303>A@\203(\304\262\202\305\306@\"\210\202\210\307\310\"\207" [plist-member :n (:n :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:n)" record rxt-backref] 6 (#$ . 83152)]) (byte-code "\300\301\302\303#\300\207" [function-put make-rxt-backref side-effect-free t] 4) #@65 compiler-macro for inlining `rxt-backref'. (fn CL-WHOLE-ARG N) (defalias 'rxt-backref--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (n) (cl-block rxt-backref (record 'rxt-backref n)) nil] 9 (#$ . 83618)]) (put 'rxt-backref 'compiler-macro 'rxt-backref--cmacro) #@56 Constructor for objects of type `rxt-backref'. (fn N) (defalias 'rxt-backref #[257 "\300\301\"\207" [record rxt-backref] 4 (#$ . 83910)]) (byte-code "\300\301\302\303#\304\301\305\306\307\305\310\311\301\303& \207" [function-put rxt-backref side-effect-free t cl-struct-define nil rxt-syntax-tree record ((cl-tag-slot) (n)) cl-struct-rxt-backref-tags] 11) #@75 compiler-macro for inlining `rxt-syntax-class-p'. (fn CL-WHOLE-ARG CL-X) (defalias 'rxt-syntax-class-p--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block rxt-syntax-class-p (and (memq (type-of cl-x) cl-struct-rxt-syntax-class-tags) t)) nil] 9 (#$ . 84274)]) (put 'rxt-syntax-class-p 'compiler-macro 'rxt-syntax-class-p--cmacro) #@13 (fn CL-X) (defalias 'rxt-syntax-class-p #[257 "\301!>\205 \302\207" [cl-struct-rxt-syntax-class-tags type-of t] 3 (#$ . 84645)]) (byte-code "\300\301\302\303#\304\305\306\301#\207" [function-put rxt-syntax-class-p side-effect-free error-free put rxt-syntax-class cl-deftype-satisfies] 5) #@80 compiler-macro for inlining `rxt-syntax-class-symbol'. (fn CL-WHOLE-ARG CL-X) (defalias 'rxt-syntax-class-symbol--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block rxt-syntax-class-symbol (progn (or (rxt-syntax-class-p cl-x) (signal 'wrong-type-argument (list 'rxt-syntax-class cl-x))) (aref cl-x 1))) nil] 9 (#$ . 84944)]) (put 'rxt-syntax-class-symbol 'compiler-macro 'rxt-syntax-class-symbol--cmacro) #@68 Access slot "symbol" of `rxt-syntax-class' struct CL-X. (fn CL-X) (defalias 'rxt-syntax-class-symbol #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-rxt-syntax-class-tags type-of signal wrong-type-argument rxt-syntax-class 1] 5 (#$ . 85391)]) (byte-code "\300\301\302\303#\304\305\306\"\207" [function-put rxt-syntax-class-symbol side-effect-free t defalias copy-rxt-syntax-class copy-sequence] 4) #@91 compiler-macro for inlining `make-rxt-syntax-class'. (fn CL-WHOLE &cl-quote &key SYMBOL) (defalias 'make-rxt-syntax-class--cmacro #[385 "\300\301\"A@\211\2031\211@\302>\203\211AA\262\202\303>A@\203(\304\262\202\305\306@\"\210\202\210\307\310\311\304\304&\207" [plist-member :symbol (:symbol :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:symbol)" cl--defsubst-expand (symbol) (cl-block make-rxt-syntax-class (record 'rxt-syntax-class symbol))] 10 (#$ . 85815)]) (put 'make-rxt-syntax-class 'compiler-macro 'make-rxt-syntax-class--cmacro) #@71 Constructor for objects of type `rxt-syntax-class'. (fn &key SYMBOL) (defalias 'make-rxt-syntax-class #[128 "\300\301\"A@\211\2031\211@\302>\203\211AA\262\202\303>A@\203(\304\262\202\305\306@\"\210\202\210\307\310\"\207" [plist-member :symbol (:symbol :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:symbol)" record rxt-syntax-class] 6 (#$ . 86415)]) (byte-code "\300\301\302\303#\304\305\306\307\310\306\311\312\305\303& \207" [function-put make-rxt-syntax-class side-effect-free t cl-struct-define rxt-syntax-class nil rxt-syntax-tree record ((cl-tag-slot) (symbol)) cl-struct-rxt-syntax-class-tags] 11) #@15 (fn SYMBOL) (defalias 'rxt-syntax-class #[257 "\301\"\203\f\302\303\"\207\304\305\"\207" [rx-syntax assoc record rxt-syntax-class rxt-error "Invalid syntax class symbol `%s'"] 4 (#$ . 87078)]) #@76 compiler-macro for inlining `rxt-char-category-p'. (fn CL-WHOLE-ARG CL-X) (defalias 'rxt-char-category-p--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block rxt-char-category-p (and (memq (type-of cl-x) cl-struct-rxt-char-category-tags) t)) nil] 9 (#$ . 87284)]) (put 'rxt-char-category-p 'compiler-macro 'rxt-char-category-p--cmacro) #@13 (fn CL-X) (defalias 'rxt-char-category-p #[257 "\301!>\205 \302\207" [cl-struct-rxt-char-category-tags type-of t] 3 (#$ . 87661)]) (byte-code "\300\301\302\303#\304\305\306\301#\207" [function-put rxt-char-category-p side-effect-free error-free put rxt-char-category cl-deftype-satisfies] 5) #@81 compiler-macro for inlining `rxt-char-category-symbol'. (fn CL-WHOLE-ARG CL-X) (defalias 'rxt-char-category-symbol--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block rxt-char-category-symbol (progn (or (rxt-char-category-p cl-x) (signal 'wrong-type-argument (list 'rxt-char-category cl-x))) (aref cl-x 1))) nil] 9 (#$ . 87964)]) (put 'rxt-char-category-symbol 'compiler-macro 'rxt-char-category-symbol--cmacro) #@69 Access slot "symbol" of `rxt-char-category' struct CL-X. (fn CL-X) (defalias 'rxt-char-category-symbol #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-rxt-char-category-tags type-of signal wrong-type-argument rxt-char-category 1] 5 (#$ . 88418)]) (byte-code "\300\301\302\303#\304\305\306\"\207" [function-put rxt-char-category-symbol side-effect-free t defalias copy-rxt-char-category copy-sequence] 4) #@92 compiler-macro for inlining `make-rxt-char-category'. (fn CL-WHOLE &cl-quote &key SYMBOL) (defalias 'make-rxt-char-category--cmacro #[385 "\300\301\"A@\211\2031\211@\302>\203\211AA\262\202\303>A@\203(\304\262\202\305\306@\"\210\202\210\307\310\311\304\304&\207" [plist-member :symbol (:symbol :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:symbol)" cl--defsubst-expand (symbol) (cl-block make-rxt-char-category (record 'rxt-char-category symbol))] 10 (#$ . 88848)]) (put 'make-rxt-char-category 'compiler-macro 'make-rxt-char-category--cmacro) #@72 Constructor for objects of type `rxt-char-category'. (fn &key SYMBOL) (defalias 'make-rxt-char-category #[128 "\300\301\"A@\211\2031\211@\302>\203\211AA\262\202\303>A@\203(\304\262\202\305\306@\"\210\202\210\307\310\"\207" [plist-member :symbol (:symbol :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:symbol)" record rxt-char-category] 6 (#$ . 89454)]) (byte-code "\300\301\302\303#\304\305\306\307\310\306\311\312\305\303& \207" [function-put make-rxt-char-category side-effect-free t cl-struct-define rxt-char-category nil rxt-syntax-tree record ((cl-tag-slot) (symbol)) cl-struct-rxt-char-category-tags] 11) #@15 (fn SYMBOL) (defalias 'rxt-char-category #[257 "\301\"\203\f\302\303\"\207\304\305\"\207" [rx-categories assoc record rxt-char-category rxt-error "Invalid character category symbol `%s'"] 4 (#$ . 90123)]) #@71 compiler-macro for inlining `rxt-char-set-p'. (fn CL-WHOLE-ARG CL-X) (defalias 'rxt-char-set-p--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block rxt-char-set-p (and (memq (type-of cl-x) cl-struct-rxt-char-set-tags) t)) nil] 9 (#$ . 90341)]) (put 'rxt-char-set-p 'compiler-macro 'rxt-char-set-p--cmacro) #@13 (fn CL-X) (defalias 'rxt-char-set-p #[257 "\301!>\205 \302\207" [cl-struct-rxt-char-set-tags type-of t] 3 (#$ . 90688)]) (byte-code "\300\301\302\303#\304\305\306\301#\210\307\310\311\"\207" [function-put rxt-char-set-p side-effect-free error-free put rxt-char-set cl-deftype-satisfies defalias copy-rxt-char-set copy-sequence] 5) #@80 compiler-macro for inlining `make-rxt-char-set'. (fn CL-WHOLE &cl-quote &key) (defalias 'make-rxt-char-set--cmacro #[385 "\211\203\n\300\301@\"\210\302\303\304\303\303%\207" [error "Keyword argument %s not one of nil" cl--defsubst-expand nil (cl-block make-rxt-char-set (record 'rxt-char-set))] 8 (#$ . 91030)]) (put 'make-rxt-char-set 'compiler-macro 'make-rxt-char-set--cmacro) #@60 Constructor for objects of type `rxt-char-set'. (fn &key) (defalias 'make-rxt-char-set #[128 "\211\203\n\300\301@\"\210\302\303!\207" [error "Keyword argument %s not one of nil" record rxt-char-set] 4 (#$ . 91420)]) (byte-code "\300\301\302\303#\304\305\306\307\310\306\311\312\305\303& \207" [function-put make-rxt-char-set side-effect-free t cl-struct-define rxt-char-set nil rxt-syntax-tree record ((cl-tag-slot)) cl-struct-rxt-char-set-tags] 11) #@77 compiler-macro for inlining `rxt-char-set-union-p'. (fn CL-WHOLE-ARG CL-X) (defalias 'rxt-char-set-union-p--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block rxt-char-set-union-p (and (memq (type-of cl-x) cl-struct-rxt-char-set-union-tags) t)) nil] 9 (#$ . 91879)]) (put 'rxt-char-set-union-p 'compiler-macro 'rxt-char-set-union-p--cmacro) #@13 (fn CL-X) (defalias 'rxt-char-set-union-p #[257 "\301!>\205 \302\207" [cl-struct-rxt-char-set-union-tags type-of t] 3 (#$ . 92262)]) (byte-code "\300\301\302\303#\304\305\306\301#\207" [function-put rxt-char-set-union-p side-effect-free error-free put rxt-char-set-union cl-deftype-satisfies] 5) #@81 compiler-macro for inlining `rxt-char-set-union-chars'. (fn CL-WHOLE-ARG CL-X) (defalias 'rxt-char-set-union-chars--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block rxt-char-set-union-chars (progn (or (rxt-char-set-union-p cl-x) (signal 'wrong-type-argument (list 'rxt-char-set-union cl-x))) (aref cl-x 1))) nil] 9 (#$ . 92569)]) (put 'rxt-char-set-union-chars 'compiler-macro 'rxt-char-set-union-chars--cmacro) #@69 Access slot "chars" of `rxt-char-set-union' struct CL-X. (fn CL-X) (defalias 'rxt-char-set-union-chars #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-rxt-char-set-union-tags type-of signal wrong-type-argument rxt-char-set-union 1] 5 (#$ . 93025)]) (byte-code "\300\301\302\303#\300\207" [function-put rxt-char-set-union-chars side-effect-free t] 4) #@82 compiler-macro for inlining `rxt-char-set-union-ranges'. (fn CL-WHOLE-ARG CL-X) (defalias 'rxt-char-set-union-ranges--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block rxt-char-set-union-ranges (progn (or (rxt-char-set-union-p cl-x) (signal 'wrong-type-argument (list 'rxt-char-set-union cl-x))) (aref cl-x 2))) nil] 9 (#$ . 93401)]) (put 'rxt-char-set-union-ranges 'compiler-macro 'rxt-char-set-union-ranges--cmacro) #@70 Access slot "ranges" of `rxt-char-set-union' struct CL-X. (fn CL-X) (defalias 'rxt-char-set-union-ranges #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-rxt-char-set-union-tags type-of signal wrong-type-argument rxt-char-set-union 2] 5 (#$ . 93862)]) (byte-code "\300\301\302\303#\300\207" [function-put rxt-char-set-union-ranges side-effect-free t] 4) #@83 compiler-macro for inlining `rxt-char-set-union-classes'. (fn CL-WHOLE-ARG CL-X) (defalias 'rxt-char-set-union-classes--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block rxt-char-set-union-classes (progn (or (rxt-char-set-union-p cl-x) (signal 'wrong-type-argument (list 'rxt-char-set-union cl-x))) (aref cl-x 3))) nil] 9 (#$ . 94241)]) (put 'rxt-char-set-union-classes 'compiler-macro 'rxt-char-set-union-classes--cmacro) #@71 Access slot "classes" of `rxt-char-set-union' struct CL-X. (fn CL-X) (defalias 'rxt-char-set-union-classes #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-rxt-char-set-union-tags type-of signal wrong-type-argument rxt-char-set-union 3] 5 (#$ . 94707)]) (byte-code "\300\301\302\303#\300\207" [function-put rxt-char-set-union-classes side-effect-free t] 4) #@85 compiler-macro for inlining `rxt-char-set-union-case-fold'. (fn CL-WHOLE-ARG CL-X) (defalias 'rxt-char-set-union-case-fold--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block rxt-char-set-union-case-fold (progn (or (rxt-char-set-union-p cl-x) (signal 'wrong-type-argument (list 'rxt-char-set-union cl-x))) (aref cl-x 4))) nil] 9 (#$ . 95089)]) (put 'rxt-char-set-union-case-fold 'compiler-macro 'rxt-char-set-union-case-fold--cmacro) #@73 Access slot "case-fold" of `rxt-char-set-union' struct CL-X. (fn CL-X) (defalias 'rxt-char-set-union-case-fold #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-rxt-char-set-union-tags type-of signal wrong-type-argument rxt-char-set-union 4] 5 (#$ . 95565)]) (byte-code "\300\301\302\303#\304\305\306\"\207" [function-put rxt-char-set-union-case-fold side-effect-free t defalias copy-rxt-char-set-union copy-sequence] 4) #@117 compiler-macro for inlining `make-rxt-char-set-union'. (fn CL-WHOLE &cl-quote &key CHARS RANGES CLASSES CASE-FOLD) (defalias 'make-rxt-char-set-union--cmacro #[385 "\300\301\"A@\300\302\"A@\300\303\"A@\300\304\"\206\305A@\211\203H\211@\306>\2030\211AA\262\202\307>A@\203?\310\262\202\311\312@\"\210\202\210\313\314\315\310 \310    & \207" [plist-member :chars :ranges :classes :case-fold (nil rxt-pcre-case-fold) (:chars :ranges :classes :case-fold :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:chars :ranges :classes :case-fold)" cl--defsubst-expand (chars ranges classes case-fold) (cl-block make-rxt-char-set-union (record 'rxt-char-set-union chars ranges classes case-fold))] 16 (#$ . 96011)]) (put 'make-rxt-char-set-union 'compiler-macro 'make-rxt-char-set-union--cmacro) #@97 Constructor for objects of type `rxt-char-set-union'. (fn &key CHARS RANGES CLASSES CASE-FOLD) (defalias 'make-rxt-char-set-union #[128 "\301\302\"A@\301\303\"A@\301\304\"A@\301\305\"\206\306DA@\211\203J\211@\307>\2032\211AA\262\202\310>A@\203A\306\262\202\311\312@\"\210\202\210\313\314%\207" [rxt-pcre-case-fold plist-member :chars :ranges :classes :case-fold nil (:chars :ranges :classes :case-fold :allow-other-keys) :allow-other-keys error "Keyword argument %s not one of (:chars :ranges :classes :case-fold)" record rxt-char-set-union] 11 (#$ . 96857)]) (byte-code "\300\301\302\303#\304\305\306\307\310\306\311\312\305\303& \207" [function-put make-rxt-char-set-union side-effect-free t cl-struct-define rxt-char-set-union nil rxt-char-set record ((cl-tag-slot) (chars) (ranges) (classes) (case-fold rxt-pcre-case-fold)) cl-struct-rxt-char-set-union-tags] 11) #@13 (fn CSET) (defalias 'rxt-empty-char-set-p #[257 "\301!>\205G\301!>\204\302\303\304D\"\210\211\305H?\205G\301!>\204-\302\303\304D\"\210\211\306H?\205G\301!>\204C\302\303\304D\"\210\211\307H?\207" [cl-struct-rxt-char-set-union-tags type-of signal wrong-type-argument rxt-char-set-union 1 2 3] 5 (#$ . 97757)]) #@427 Construct an regexp character set representing the union of ITEMS. Each element of ITEMS may be either: a character; a single-character string; a single-character `rxt-string' object; a cons, (FROM . TO) representing a range of characters; a symbol, representing a named character class; or an `rxt-char-set-union' object. All `rxt-char-set-union' objects in ITEMS must have the same `case-fold' property. (fn &rest ITEMS) (defalias 'rxt-char-set-union #[128 "\303\211\211\304\211\203D\211@\305!\203\211B\262\202=\211;\2035\211G\306U\204*\307\310!\210\311!B\262\202=\312!>\203u\312!>\204L\313\314\315D\"\210\211\306HG\306U\204Y\307\316!\210\311\312!>\204i\313\314\315D\"\210\306H!B\262\202=\211:\203\244\211@\305!\204\212\313\314\317\320E\"\210\210\211A\305!\204\233\313\314\317\321E\"\210\210\211B\262\202=\2119\203\261\211B\262\202=\312! >\2037\304=\203\326\312! >\204\316\313\314\322D\"\210\211\323H\262\202\362\312! >\204\346\313\314\322D\"\210\323H=\204\362\324\325\"\210\312! >\204\313\314\322D\"\210\306H\244\262\312! >\204\313\314\322D\"\210\326H\244\262\312! >\204.\313\314\322D\"\210\327H\244\262\202=\324\330\331#\210A\266\202\202\210\332\322\304=\203T\n\202U%\207" [cl-struct-rxt-string-tags cl-struct-rxt-char-set-union-tags rxt-pcre-case-fold nil undetermined natnump 1 cl--assertion-failed (= 1 (length item)) string-to-char type-of signal wrong-type-argument rxt-string (= 1 (length (rxt-string-chars item))) character (car item) (cdr item) rxt-char-set-union 4 error "Cannot construct union of char-sets with unlike case-fold setting: %S" 2 3 "cl-etypecase failed: %s, %s" (character string rxt-string cons symbol rxt-char-set-union) record] 13 (#$ . 98092)]) #@61 Return a list of all characters in CHAR-SET. (fn CHAR-SET) (defalias 'rxt--all-char-set-union-chars #[257 "\301!>\204\f\302\303!\210\304\301!>\204\305\306\307D\"\210\310H\301!>\204.\305\306\307D\"\210\311H\312\211\211:\203j@\262\211A\262\242\262\312X\203ZB\262T\262\202H\211\237\266\203\237\244\262A\262\2024\211\237\266\204\"\207" [cl-struct-rxt-char-set-union-tags type-of cl--assertion-failed (rxt-char-set-union-p char-set) append signal wrong-type-argument rxt-char-set-union 1 2 nil] 12 (#$ . 99873)]) #@281 Return a minimal char-set to match the same characters as CHAR-SET. With optional argument CASE-FOLD-P, return a char-set which emulates case-folding behaviour by including both uppercase and lowercase versions of all characters in CHAR-SET. (fn CHAR-SET &optional CASE-FOLD-P) (defalias 'rxt--simplify-char-set #[513 "\301!>\204\f\302\303!\210\301!>\204\304\305\306D\"\210\307H\203H\310!\311\211:\203A@\262\226\227D\237\244\262A\262\202'\211\237\266\203\202K\310!\312\313\"!\311\211\311\211:\203\227@\262\211A\262\242\262\211U\203u\211B\262\202\220\211TU\203\211\211B\262B\262\202\220\211BB\262A\262\202V\266\314\315\237\316\237\317\n\320 ?\205\277\301!>\204\273\304\305\306D\"\210\321H&\207" [cl-struct-rxt-char-set-union-tags type-of cl--assertion-failed (rxt-char-set-union-p char-set) signal wrong-type-argument rxt-char-set-union 3 rxt--all-char-set-union-chars nil rxt--extract-ranges rxt--remove-redundant-chars make-rxt-char-set-union :chars :ranges :classes :case-fold 4] 19 (#$ . 100426)]) #@96 Remove all characters which match a character class in CLASSES from CHARS. (fn CHARS CLASSES) (defalias 'rxt--remove-redundant-chars #[514 "\211\204\207\300\301\302B!\303\304\305\"#\306\307\"\207" [replace-regexp-in-string rx-to-string any "" apply string append nil] 8 (#$ . 101504)]) #@374 Return a list of all contiguous ranges in CHARS. CHARS should be a list of characters (integers). The return value is a list of conses (START . END) representing ranges, such that the union of all the ranges represents the same of characters as CHARS. Example: (rxt--extract-ranges (list ?a ?b ?c ?q ?x ?y ?z)) => ((?a . ?c) (?q . ?q) (?x . ?z)) (fn CHARS) (defalias 'rxt--extract-ranges #[257 "\300\301\302\303\304!\305\"!\"\306C\306C\307\310$\240\210\211\311\240\210\242\312GS\"\207" [apply vector cl-remove-duplicates sort copy-sequence < nil make-closure #[514 "\211W?\2054\300H\300H\211ZZU\203BC\207\\\303\245\301\242\"\301\242T\"\302\242\"\266\205\207" [V0 V1 V2 2] 10 "\n\n(fn START END)"] #[514 "\204\207\211\204 \207\300!@@AT@U\203-\301\302\303\304#@ABC\302\305\"#\207\301\"\207" [last append cl-subseq 0 -1 1] 10 "\n\n(fn LEFT RIGHT)"] 0] 10 (#$ . 101805)]) #@80 compiler-macro for inlining `rxt-char-set-negation-p'. (fn CL-WHOLE-ARG CL-X) (defalias 'rxt-char-set-negation-p--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block rxt-char-set-negation-p (and (memq (type-of cl-x) cl-struct-rxt-char-set-negation-tags) t)) nil] 9 (#$ . 102739)]) (put 'rxt-char-set-negation-p 'compiler-macro 'rxt-char-set-negation-p--cmacro) #@13 (fn CL-X) (defalias 'rxt-char-set-negation-p #[257 "\301!>\205 \302\207" [cl-struct-rxt-char-set-negation-tags type-of t] 3 (#$ . 103141)]) (byte-code "\300\301\302\303#\304\305\306\301#\207" [function-put rxt-char-set-negation-p side-effect-free error-free put rxt-char-set-negation cl-deftype-satisfies] 5) #@82 compiler-macro for inlining `rxt-char-set-negation-elt'. (fn CL-WHOLE-ARG CL-X) (defalias 'rxt-char-set-negation-elt--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block rxt-char-set-negation-elt (progn (or (rxt-char-set-negation-p cl-x) (signal 'wrong-type-argument (list 'rxt-char-set-negation cl-x))) (aref cl-x 1))) nil] 9 (#$ . 103461)]) (put 'rxt-char-set-negation-elt 'compiler-macro 'rxt-char-set-negation-elt--cmacro) #@70 Access slot "elt" of `rxt-char-set-negation' struct CL-X. (fn CL-X) (defalias 'rxt-char-set-negation-elt #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-rxt-char-set-negation-tags type-of signal wrong-type-argument rxt-char-set-negation 1] 5 (#$ . 103929)]) (byte-code "\300\301\302\303#\304\305\306\"\207" [function-put rxt-char-set-negation-elt side-effect-free t defalias copy-rxt-char-set-negation copy-sequence] 4) #@93 compiler-macro for inlining `make-rxt-char-set-negation'. (fn CL-WHOLE &cl-quote &key ELT) (defalias 'make-rxt-char-set-negation--cmacro #[385 "\300\301\"A@\211\2031\211@\302>\203\211AA\262\202\303>A@\203(\304\262\202\305\306@\"\210\202\210\307\310\311\304\304&\207" [plist-member :elt (:elt :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:elt)" cl--defsubst-expand (elt) (cl-block make-rxt-char-set-negation (record 'rxt-char-set-negation elt))] 10 (#$ . 104375)]) (put 'make-rxt-char-set-negation 'compiler-macro 'make-rxt-char-set-negation--cmacro) #@73 Constructor for objects of type `rxt-char-set-negation'. (fn &key ELT) (defalias 'make-rxt-char-set-negation #[128 "\300\301\"A@\211\2031\211@\302>\203\211AA\262\202\303>A@\203(\304\262\202\305\306@\"\210\202\210\307\310\"\207" [plist-member :elt (:elt :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:elt)" record rxt-char-set-negation] 6 (#$ . 104988)]) (byte-code "\300\301\302\303#\304\305\306\307\310\306\311\312\305\303& \207" [function-put make-rxt-char-set-negation side-effect-free t cl-struct-define rxt-char-set-negation nil rxt-char-set record ((cl-tag-slot) (elt)) cl-struct-rxt-char-set-negation-tags] 11) #@209 Construct the logical complement (negation) of CHAR-SET. CHAR-SET may be any of the following types: `rxt-char-set-union', `rxt-syntax-class', `rxt-char-category', or `rxt-char-set-negation'. (fn CHAR-SET) (defalias 'rxt-negate #[257 "\304!>\204\304! >\204\304!\n>\203\305\306\"\207\304! >\2038\304! >\2044\307\310\306D\"\210\211\311H\207\312\313\314#\205A\315\207" [cl-struct-rxt-char-set-union-tags cl-struct-rxt-syntax-class-tags cl-struct-rxt-char-category-tags cl-struct-rxt-char-set-negation-tags type-of record rxt-char-set-negation signal wrong-type-argument 1 error "cl-etypecase failed: %s, %s" ((or rxt-char-set-union rxt-syntax-class rxt-char-category) rxt-char-set-negation) nil] 5 (#$ . 105665)]) #@84 compiler-macro for inlining `rxt-char-set-intersection-p'. (fn CL-WHOLE-ARG CL-X) (defalias 'rxt-char-set-intersection-p--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block rxt-char-set-intersection-p (and (memq (type-of cl-x) cl-struct-rxt-char-set-intersection-tags) t)) nil] 9 (#$ . 106402)]) (put 'rxt-char-set-intersection-p 'compiler-macro 'rxt-char-set-intersection-p--cmacro) #@13 (fn CL-X) (defalias 'rxt-char-set-intersection-p #[257 "\301!>\205 \302\207" [cl-struct-rxt-char-set-intersection-tags type-of t] 3 (#$ . 106828)]) (byte-code "\300\301\302\303#\304\305\306\301#\207" [function-put rxt-char-set-intersection-p side-effect-free error-free put rxt-char-set-intersection cl-deftype-satisfies] 5) #@87 compiler-macro for inlining `rxt-char-set-intersection-elts'. (fn CL-WHOLE-ARG CL-X) (defalias 'rxt-char-set-intersection-elts--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block rxt-char-set-intersection-elts (progn (or (rxt-char-set-intersection-p cl-x) (signal 'wrong-type-argument (list 'rxt-char-set-intersection cl-x))) (aref cl-x 1))) nil] 9 (#$ . 107164)]) (put 'rxt-char-set-intersection-elts 'compiler-macro 'rxt-char-set-intersection-elts--cmacro) #@75 Access slot "elts" of `rxt-char-set-intersection' struct CL-X. (fn CL-X) (defalias 'rxt-char-set-intersection-elts #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-rxt-char-set-intersection-tags type-of signal wrong-type-argument rxt-char-set-intersection 1] 5 (#$ . 107665)]) (byte-code "\300\301\302\303#\304\305\306\"\207" [function-put rxt-char-set-intersection-elts side-effect-free t defalias copy-rxt-char-set-intersection copy-sequence] 4) #@98 compiler-macro for inlining `make-rxt-char-set-intersection'. (fn CL-WHOLE &cl-quote &key ELTS) (defalias 'make-rxt-char-set-intersection--cmacro #[385 "\300\301\"A@\211\2031\211@\302>\203\211AA\262\202\303>A@\203(\304\262\202\305\306@\"\210\202\210\307\310\311\304\304&\207" [plist-member :elts (:elts :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:elts)" cl--defsubst-expand (elts) (cl-block make-rxt-char-set-intersection (record 'rxt-char-set-intersection elts))] 10 (#$ . 108138)]) (put 'make-rxt-char-set-intersection 'compiler-macro 'make-rxt-char-set-intersection--cmacro) #@78 Constructor for objects of type `rxt-char-set-intersection'. (fn &key ELTS) (defalias 'make-rxt-char-set-intersection #[128 "\300\301\"A@\211\2031\211@\302>\203\211AA\262\202\303>A@\203(\304\262\202\305\306@\"\210\202\210\307\310\"\207" [plist-member :elts (:elts :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:elts)" record rxt-char-set-intersection] 6 (#$ . 108781)]) (byte-code "\300\301\302\303#\304\305\306\307\310\306\311\312\305\303& \207" [function-put make-rxt-char-set-intersection side-effect-free t cl-struct-define rxt-char-set-intersection nil rxt-char-set record ((cl-tag-slot) (elts)) cl-struct-rxt-char-set-intersection-tags] 11) #@23 (fn &rest CHARSETS) (defalias 'rxt-char-set-intersection #[128 "\303\304\305\303\211\211%\306!\211\203O\211@\307! >\2033\305\307! >\204*\310\311\312D\"\210\313H\"\262\202H\307!\n>\203C\211B\262\202H\314\315\"\210A\266\202\202 \210\204X\316!\207\317!\204e\316!B\262A\204m@\207\304\320\"\207" [rxt-pcre-case-fold cl-struct-rxt-char-set-negation-tags cl-struct-rxt-char-set-union-tags nil record rxt-char-set-union rxt-int-flatten type-of signal wrong-type-argument rxt-char-set-negation 1 rxt-error "Can't take intersection of non-character-set %S" rxt-negate rxt-empty-char-set-p rxt-char-set-intersection] 11 (#$ . 109486)]) #@14 (fn CSETS) (defalias 'rxt-int-flatten #[257 "\211:\2051\211@\301A!\302!>\203,\303\301\302!>\204%\304\305\306D\"\210\307H!\"\207B\266\202\207" [cl-struct-rxt-char-set-intersection-tags rxt-int-flatten type-of append signal wrong-type-argument rxt-char-set-intersection 1] 9 (#$ . 110151)]) #@641 Consume a token at point and evaluate corresponding forms. CASES is a list of `cond'-like clauses, (REGEXP BODY ...) where the REGEXPs define possible tokens which may appear at point. The CASES are considered in order. For each case, if the text at point matches REGEXP, then point is moved to the end of the matched token, the corresponding BODY is evaluated and their value returned. The matched token is available within the BODY forms as (match-string 0). There can be a default case where REGEXP is `t', which evaluates the corresponding FORMS but does not move point. Returns `nil' if none of the CASES matches. (fn &rest CASES) (defalias 'rxt-token-case '(macro . #[128 "\300\301\211\211:\2034@\262\211A\262\242\262\302=\203\"\302B\202)\303D\304BBB\262A\262\202\211\237\266\204B\207" [cond nil t looking-at (goto-char (match-end 0))] 9 (#$ . 110463)])) (put 'rxt-token-case 'edebug-form-spec '(&rest (sexp &rest form))) #@192 Evaluate BODY and record source location information on its value. BODY may evaluate to any kind of object, but its value should generally not be `eq' to any other object. (fn &rest BODY) (defalias 'rxt-with-source-location '(macro . #[128 "\300\301!\300\302!\303\304B\305!DD\306\307D\310\311\312\313\314\nD\315BBBBBEF\207" [make-symbol "begin" "value" let ((point)) macroexp-progn setf rxt-location make-rxt-location :source rxt-source-text-string :start 1- (:end (1- (point)))] 13 (#$ . 111422)])) (put 'rxt-with-source-location 'edebug-form-spec '(&rest form)) #@350 Read a Perl-style delimited regexp and flags from the current buffer. Point should be before the regexp literal before calling this. Currently only regexps delimited by / ... / are supported. A preceding "m", "qr" or "s" will be ignored, as will the replacement string in an s/.../.../ construction. Returns two strings: the regexp and the flags. (defalias 'rxt-read-delimited-pcre #[0 "\212\300\301!\210\302\303!\203\304\225b\210\305\202\302\306!\205\304\225b\210\307\302\310!\204(\311\312!\210\304\225\313\314!\210\315\224\2038\313\314!\210\316\"\302\317!\205L\304\225b\210\320\321\304!\"\262\262\262\262)\207" [skip-syntax-forward "-" looking-at "s" 0 t "\\(?:m\\|qr\\)" nil "/" error "Only Perl regexps delimited by slashes are supported" search-forward-regexp "[^\\]\\(/\\)" 1 buffer-substring-no-properties "[gimosx]*" rxt--add-flags match-string-no-properties] 8 (#$ . 112003)]) (defconst rxt-pcre-char-set-alist '((119 95 alnum) (100 digit) (104 9 32 160 5760 6158 8192 8193 8194 8195 8196 8197 8198 8199 8200 8201 8202 8239 8287 12288) (115 9 10 12 13 32) (118 10 11 12 13 133 8232 8233))) (defconst rxt-pcre-named-classes-regexp "\\[:\\(\\(?:a\\(?:l\\(?:num\\|pha\\)\\|scii\\)\\|blank\\|cntrl\\|digit\\|graph\\|lower\\|p\\(?:\\(?:rin\\|unc\\)t\\)\\|space\\|upper\\|word\\|xdigit\\)\\):]") (defconst rxt-elisp-named-classes-regexp "\\[:\\(\\(?:a\\(?:l\\(?:num\\|pha\\)\\|scii\\)\\|blank\\|cntrl\\|digit\\|graph\\|lower\\|multibyte\\|nonascii\\|p\\(?:\\(?:rin\\|unc\\)t\\)\\|space\\|u\\(?:nibyte\\|pper\\)\\|word\\|xdigit\\)\\):]") #@138 t if the rxt string parser is parsing PCRE syntax, nil for Elisp syntax. This should only be let-bound internally, never set otherwise. (defvar rxt-parse-pcre nil (#$ . 113569)) #@261 t if the rxt string parser is emulating PCRE's "extended" mode. In extended mode (indicated by /x in Perl/PCRE), whitespace outside of character classes and \Q...\E quoting is ignored, and a `#' character introduces a comment that extends to the end of line. (defvar rxt-pcre-extended-mode nil (#$ . 113755)) #@164 t if the rxt string parser is emulating PCRE's single-line "/s" mode. When /s is used, PCRE's "." matches newline characters, which otherwise it would not match. (defvar rxt-pcre-s-mode nil (#$ . 114072)) #@77 non-nil to emulate PCRE's case-insensitive "/i" mode in translated regexps. (defvar rxt-pcre-case-fold nil (#$ . 114284)) (defvar rxt-branch-end-regexp nil) (defvar rxt-choice-regexp nil) (defvar rxt-brace-begin-regexp nil) (defvar rxt-m-to-n-brace-regexp nil) (defvar rxt-m-to-\?-brace-regexp nil) (defvar rxt-m-brace-regexp nil) (defvar rxt-named-classes-regexp nil) (defvar rxt-subgroup-count nil) (defvar rxt-source-text-string nil) #@11 (fn RE) (defalias 'rxt-parse-pcre #[257 "\300\301\"\207" [rxt-parse-re t] 4 (#$ . 114727)]) #@11 (fn RE) (defalias 'rxt-parse-elisp #[257 "\300\301\"\207" [rxt-parse-re nil] 4 (#$ . 114828)]) #@18 (fn RE PCRE-P) (defalias 'rxt-parse-re #[514 "\211\306\211\306\211\203\307\202\310\311\312\313BB!\311\314\315\312\316BBE!\311\312\317BB!\311\312\320\321\322\323BBBBB! \311\312\324\321\325BBBB!!\311\312\326\327BBB!\"\203]#\202_$%\330&\306'\331\332\333\"r\211q\210\334\335\"\216c\210eb\210(\336 +\262. \207" [rxt-parse-pcre rxt-pcre-extended-mode rxt-pcre-s-mode rxt-pcre-case-fold rxt-choice-regexp rxt-branch-end-regexp nil "" "\\" rx-to-string seq ("|") or buffer-end ((or "|" ")")) ("{") (submatch (* (any "0-9"))) "," (submatch (+ (any "0-9"))) ("}") (submatch (+ (any "0-9"))) ("}") (submatch (+ (any "0-9"))) ("}") 0 generate-new-buffer " *temp*" t make-closure #[0 "\301\300!\205 \302\300!\207" [V0 buffer-name kill-buffer] 2] rxt-parse-exp rxt-brace-begin-regexp rxt-m-to-n-brace-regexp rxt-m-to-\?-brace-regexp rxt-m-brace-regexp rxt-pcre-named-classes-regexp rxt-elisp-named-classes-regexp rxt-named-classes-regexp rxt-subgroup-count case-fold-search rxt-source-text-string] 11 (#$ . 114932)]) (defalias 'rxt-parse-exp #[0 "` \nm\203\306 \202;\307\31029\311 \211B\262\312 !\203*\313\225b\266\202\314\310\315\316\317!\"\"\266\202\262+\211\320\321\322\fS`S$ #\266\207" [rxt-pcre-extended-mode rxt-pcre-s-mode rxt-pcre-case-fold rxt-choice-regexp rxt-source-text-string rxt-location-map rxt-seq nil --cl-block-nil-- rxt-parse-branch looking-at 0 throw apply rxt-choice reverse puthash record rxt-location] 10]) (defalias 'rxt-extended-skip #[0 "\205\301\302!\210\303\304!\205\305\306!\210\301\302!\210\202\207" [rxt-pcre-extended-mode skip-syntax-forward "-" looking-at "#" beginning-of-line 2] 2]) (defalias 'rxt-parse-branch #[0 "\303 \210`\304\305\306!\204\307!B\262\304\262\202\310\311\312!\"\266\202\211\313\314\315 S`S$\n#\266\207" [rxt-branch-end-regexp rxt-source-text-string rxt-location-map rxt-extended-skip nil t looking-at rxt-parse-piece apply rxt-seq reverse puthash record rxt-location] 10]) #@31 (fn &optional BRANCH-BEGIN) (defalias 'rxt-parse-piece #[256 "\302 \210`\303!\304!\262\211\305\306\307S`S$ #\266\207" [rxt-source-text-string rxt-location-map rxt-extended-skip rxt-parse-atom rxt-parse-quantifiers puthash record rxt-location] 11 (#$ . 116934)]) #@13 (fn ATOM) (defalias 'rxt-parse-quantifiers #[257 "\3002!m?\205 \301!\211=\203\302\300\303\"\266\202\262\2020\210\207" [done rxt-parse-quantifier throw t] 5 (#$ . 117212)]) #@13 (fn ATOM) (defalias 'rxt-parse-quantifier #[257 "\301 \210\302\303!\203\304\225b\210\305\304\306\306$\207\302\307!\203%\304\225b\210\305\304\306\310$\207\302\311!\2036\304\225b\210\305\312\306\306$\207\302\313!\203G\304\225b\210\305\312\306\310$\207\302\314!\203X\304\225b\210\305\304\312\306$\207\302\315!\203i\304\225b\210\305\304\312\310$\207\302!\203\225\304\225b\210\316 \211G\317U\203\205\211A\262\242\202\214\320\321\322GD\"\242\305#\207\207" [rxt-brace-begin-regexp rxt-extended-skip looking-at "\\*\\?" 0 rxt-repeat nil "\\*" t "\\+\\?" 1 "\\+" "\\?\\?" "\\?" rxt-parse-braces 2 signal wrong-number-of-arguments (from to)] 8 (#$ . 117404)]) #@31 (fn &optional BRANCH-BEGIN) (defalias 'rxt-parse-atom #[256 "m\203\301\302!\207\203\303 \207\304!\207" [rxt-parse-pcre rxt-error "Unexpected end of regular expression" rxt-parse-atom/pcre rxt-parse-atom/el] 3 (#$ . 118087)]) (defalias 'rxt-parse-atom/common #[0 "\300\301!\203 \302\225b\210\303 \207\300\304!\203\302\225b\210\305 \207\300\306!\205&\302\225b\210\307 \207" [looking-at "\\[" 0 rxt-parse-char-class "\\\\b" rxt-word-boundary "\\\\B" rxt-not-word-boundary] 2]) #@21 (fn BRANCH-BEGIN) (defalias 'rxt-parse-atom/el #[257 "`\306 \206\206\307\310!\203\311\225b\210\312 \202\206\307\313!\2030\311\225b\210\203(\314 \202\206\315\316\317#\202\206\307\320!\203M\311\225b\210\307 !\203E\321 \202\206\315\316\322#\202\206\307\323!\203\\\311\225b\210\324 \202\206\307\325!\203k\311\225b\210\326 \202\206\307\327!\203z\311\225b\210\330 \202\206\307\331!\203\211\311\225b\210\332 \202\206\307\333!\203\230\311\225b\210\334 \202\206\307\335!\203\247\311\225b\210\336 \202\206\307\337!\203\266\311\225b\210\340 \202\206\307\341!\203\305\311\225b\210\342 \202\206\307\343!\203\324\311\225b\210\344 \202\206\307\345!\203\311\225b\210\346\347!\350\230\351\352\346\353!!\n\"@\211\203\354!\203\375\355!\202\376\211\262\266\202\202\206\356\357\346\311!\"\266\202\202\206\307\360!\203L\311\225b\210\346\347!\361\230\351\352\346\353!! \"@\211\203A\362!\2039\355!\202:\211\262\266\202\202\206\356\363\346\311!\"\266\202\202\206\307\364!\203a\311\225b\210\315\365\366\346\347!!\"\202\206\307\367!\203u\311\225b\210\315\316\346\347!#\202\206\307\370!\205\206\311\225b\210\315\316\346\311!#\211\371\315\372\fS`S$ #\266\207" [rxt-pcre-case-fold rxt-branch-end-regexp rx-syntax rx-categories rxt-source-text-string rxt-location-map rxt-parse-atom/common looking-at "\\." 0 rxt-nonl "\\^" rxt-bol record rxt-string "^" "\\$" rxt-eol "$" "\\\\`" rxt-bos "\\\\'" rxt-eos "\\\\<" rxt-bow "\\\\>" rxt-eow "\\\\_<" rxt-symbol-start "\\\\_>" rxt-symbol-end "\\\\(" rxt-parse-subgroup/el "\\\\w" rxt-wordchar "\\\\W" rxt-not-wordchar "\\\\\\([Ss]\\)\\(.\\)" match-string 1 "S" rassoc string-to-char 2 rxt-syntax-class rxt-negate rxt-error "Invalid syntax class `\\%s'" "\\\\\\([Cc]\\)\\(.\\)" "C" rxt-char-category "Invalid character category `%s'" "\\\\\\([1-9]\\)" rxt-backref string-to-number "\\\\\\(.\\)" "\n\\|." puthash rxt-location] 11 (#$ . 118579)]) (defalias 'rxt-parse-atom/pcre #[0 "\305 \210`\306 \206:\307 \211\205\310\311\312!#\262\206:\313\314!\2033\315\225b\210 \203.\316 \202:\317 \202:\313\320!\203B\315\225b\210\321 \202:\313\322!\203Q\315\225b\210\323 \202:\313\324!\203`\315\225b\210\325 \202:\313\326!\203o\315\225b\210\327 \202:\313\330!\203~\315\225b\210\331 \202:\313\332!\203\264\315\225b\210`\333\334\335\336#\210\315\224\337S\"\312\206\234`Sf!\340\310\311#\341\310\311#!\"\266\203\262\202:\313\342!\203\310\315\225b\210\343\344\345\346!!!\202:\313\347!\203\315\225b\210\345\346!\350!\211\315V\203\374\211\351W\204\352\nY\203\374\203\363\352\353\354\"\210\310\355\"\266\202\202:\346\224b\210\356\357!\210\310\311\312\350\345\315!\360\"!#\266\202\202:\313\361!\203)\315\225b\210\310\311\345\346!#\202:\313\362!\205:\315\225b\210\310\311\345\315!#\211\363\310\364 S`S$\f#\266\207" [rxt-pcre-case-fold rxt-pcre-s-mode rxt-subgroup-count rxt-source-text-string rxt-location-map rxt-extended-skip rxt-parse-atom/common rxt-parse-escapes/pcre record rxt-string char-to-string looking-at "\\." 0 rxt-anything rxt-nonl "\\^" rxt-bol "\\$" rxt-eol "\\\\A" rxt-bos "\\\\Z" rxt-eos "(" rxt-parse-subgroup/pcre "\\\\Q" search-forward "\\E" nil t buffer-substring-no-properties rxt-seq rxt-parse-quantifiers "\\\\\\([DHSVWdhsvw]\\)" rxt--pcre-char-set string-to-char match-string 1 "\\\\\\([0-9]+\\)" string-to-number 10 display-warning rxt "Backreferences with case-folding are handled poorly" rxt-backref re-search-forward "[0-7]\\{0,3\\}" 8 "\\\\\\(.\\)" "\n\\|." puthash rxt-location] 12]) #@182 Consume a one-char PCRE escape at point and return its codepoint equivalent. Handles only those character escapes which have the same meaning in character classes as outside them. (defalias 'rxt-parse-escapes/pcre #[0 "\300\301!\203\f\302\225b\210\303\207\300\304!\203\302\225b\210\305\207\300\306!\203$\302\225b\210\307\207\300\310!\2030\302\225b\210\311\207\300\312!\203<\302\225b\210\313\207\300\314!\203H\302\225b\210\315\207\300\316!\203\\\302\225b\210\317\320\321\322!\226!\323\"\207\300\324!\203m\302\225b\210\325\321\322!\326\"\207\300\327!\205}\302\225b\210\325\321\322!\326\"\207" [looking-at "\\\\a" 0 7 "\\\\e" 27 "\\\\f" 12 "\\\\n" 10 "\\\\r" 13 "\\\\t" 9 "\\\\c\\(.\\)" logxor string-to-char match-string 1 64 "\\\\x\\([0-9A-Za-z]\\{1,2\\}\\)" string-to-number 16 "\\\\x{\\([0-9A-Za-z]*\\)}"] 4 (#$ . 122117)]) (defalias 'rxt-parse-subgroup/pcre #[0 "\3052B\306 \n\307 \210\310\311!\203\365\312\225b\210\310\313!\203(\312\225b\210\314\305\315 \"\210\202\310\316!\2038\312\225b\210\317\262\202\310\320!\203O\312\225b\210\321\313!\210\314\305\315 \"\210\202\310\322!\203\354\312\225b\210\323\312!\323\324!\206e\323\325!\323\326!\206l\327\330\331\"\203v\317\262\330\332\"\203\200\317\262\330\333\"\203\212\317\262\330\331\"\203\224\306\262\330\332\"\203\236\306\262\330\333\"\203\250\306\262\334\306\317\335#)\266\203\203\301\336\337\340\341\"\"\210\266\310\316!\203\323\312\225b\210\317\262\202\310\313!\203\312\225b\210\211\314\305\315 \"\210\202\342\343\306f\"\210\202\310\344!\203\312\225b\210`\321\313\306\345#\210\342\346`{\"\266\204\fT\211\347 \307 \210\310\313!\2039\312\225b\210\2032\211\202<\350\351\"\202<\342\352!+\262\266\2040\207" [rxt-pcre-extended-mode rxt-pcre-s-mode rxt-pcre-case-fold inhibit-changing-match-data rxt-subgroup-count return nil rxt-extended-skip looking-at "\\?" 0 ")" throw rxt-empty-string ":" t "#" search-forward "\\([gimosx]*\\)-\\([gimosx]+\\)\\|\\([gimosx]+\\)" match-string 1 3 2 "" cl-find 120 115 105 "[gmo]" string-match display-warning rxt format "Unhandled PCRE flags in (?%s" rxt-error "Unrecognized PCRE extended construction `(?%c'" "\\*" go-to-end "Unrecognized PCRE extended construction `(*%s'" rxt-parse-exp record rxt-submatch "Subexpression missing close paren"] 14]) (defalias 'rxt-parse-subgroup/el #[0 "\301\302!\203\303\225b\210T\304\202;\301\305!\203.\303\225b\210\306\307\310!!W\203(\211\211\262\202;\301\311!\205;\303\225b\210\312\313!\314 \301\315!\203^\303\225b\210\304=\203N\207\247\203Y\316\317#\207\316\320\"\207\312\321!\207" [rxt-subgroup-count looking-at "\\?:" 0 shy "\\?\\([0-9]+\\):" string-to-number match-string 1 "\\?" rxt-error "Unknown match group sequence" rxt-parse-exp "\\\\)" record rxt-submatch-numbered rxt-submatch "Subexpression missing close paren"] 6]) (defalias 'rxt-parse-braces #[0 "\303!\203\304\225b\210\305\306\307!!\305\306\310!!D\207\303 !\203(\304\225b\210\305\306\307!!\311D\207\303\n!\203;\304\225b\210\305\306\307!!\211D\207`\312\313\311\314#\210\315\316\317`\"\"\207" [rxt-m-to-n-brace-regexp rxt-m-to-\?-brace-regexp rxt-m-brace-regexp looking-at 0 string-to-number match-string 1 2 nil search-forward "}" go-to-end rxt-error "Bad brace expression {%s" buffer-substring-no-properties] 6]) (defalias 'rxt-parse-char-class #[0 "m\203\302\303!\210`\304\305!\203\306\225b\210\307\202\310`\203$\311\312 !\202&\312 \203.\311\202/\313\2037\314\2028\315\3162fm\203D\302\303!\210\304\317!\203X`U\204X\320\316\"\210\202<\321 !\"\262\210\202<\210\310u\210\266\205\211\322\323\324S`S$ #\266\207" [rxt-source-text-string rxt-location-map rxt-error "Missing close right bracket in regexp" looking-at "\\^" 0 t nil rxt-negate rxt-char-set-union identity rxt-char-set-intersection rxt-choice done "]" throw rxt-parse-char-class-piece puthash record rxt-location] 10]) (defalias 'rxt-parse-char-class-piece #[0 "\301 \302!>\203 \207\211\250\203 \303 \211\203\304B!\207\304!\207\304!\207" [cl-struct-rxt-char-set-tags rxt-parse-char-class-atom type-of rxt-maybe-parse-range-end rxt-char-set-union] 5]) (defalias 'rxt-parse-char-class-atom #[0 "\203 \302 \206J\303 !\203\304\225b\210\305\306\307!!\207\303\310!\203*\304\225b\210\311\312\306\304!\"\207\303\313!\203;\304\225b\210\311\314\306\304!\"\207\303\315!\205J\304\225b\210\316\306\304!!\207" [rxt-parse-pcre rxt-named-classes-regexp rxt-parse-char-class-atom/pcre looking-at 0 intern match-string 1 "\\[:[a-z]*:]" rxt-error "Unknown posix character class `%s'" "\\[\\([.=]\\)[a-z]*\\1]" "Unsupported collation syntax `%s'" "\n\\|." string-to-char] 4]) (defalias 'rxt-parse-char-class-atom/pcre #[0 "\300 \206C\301\302!\203\303\225b\210\304\305\306!\307\"\207\301\310!\203(\303\225b\210\311\312\305\306!!!\207\301\313!\2034\303\225b\210\307\207\301\314!\205C\303\225b\210\312\305\306!!\207" [rxt-parse-escapes/pcre looking-at "\\\\\\([0-7]\\{1,3\\}\\)" 0 string-to-number match-string 1 8 "\\\\\\([DHSVWdhsvw]\\)" rxt--pcre-char-set string-to-char "\\\\b" "\\\\\\(.\\)"] 4]) (defalias 'rxt-maybe-parse-range-end #[0 "\300\211\301\302!\203\212\300u\210\303 \262`\262)\304!\205\211b\210\207" [nil looking-at "-[^]]" rxt-parse-char-class-atom characterp] 4]) #@13 (fn CHAR) (defalias 'rxt--pcre-char-set #[257 "\211\227U?\301\"\302\303\"\203\304!\207\207" [rxt-pcre-char-set-alist assoc-default apply rxt-char-set-union rxt-negate] 7 (#$ . 127412)]) #@57 Alist of verbose equivalents for short `rx' primitives. (defconst rxt-rx-verbose-equivalents '((bol . line-start) (eol . line-end) (nonl . not-newline) (bos . string-start) (eos . string-end) (bow . word-start) (eow . word-end) (seq . sequence)) (#$ . 127615)) #@12 (fn SYM) (defalias 'rxt-rx-symbol #[257 "\203\f\302 \"\206 \207\211\207" [rxt-verbose-rx-translation rxt-rx-verbose-equivalents assoc-default] 4 (#$ . 127882)]) #@11 (fn RE) (defalias 'rxt-adt->rx #[257 "\306!>\203\307\306!>\204\310\311\312D\"\210\313H!\202\247\306! >\203\247\306! >\2046\310\311\314D\"\210\211\313H\203S\306! >\204K\310\311\314D\"\210\211\315H\316\230\203h\306! >\204b\310\311\314D\"\210\211\315H\202\247\317\306! >\204x\310\311\314D\"\210\315H\320\321\211T\211\262\203\237GW\203\237H\262\322\226\227EB\262\202~\211\237\266\204B\202\247\306!\n>\203\312\317\323\324\306!\n>\204\302\310\311\325D\"\210\315H\"B\202\247\306! >\203\355\326\323\324\306! >\204\345\310\311\327D\"\210\315H\"B\202\247\306!\f>\203y\306\211!\f>\204\310\311\330D\"\210\315H!\n>\203`\331\323\324\306\211!\f>\204\"\310\311\330D\"\210\315H!\n>\204F\310\311\325\306!\f>\204?\310\311\330 D\"\210\315HD\"\210\306!\f>\204V\310\311\330D\"\210\315H\315H\"B\202\247\331\324\306!\f>\204q\310\311\330D\"\210\315H!D\202\247\306! >\203'\306\211! >\205\213\332!\n>\203\371\307\333!\306! >\204\243\310\311\334D\"\210\315H\323\324\306\211! >\204\272\310\311\334D\"\210\313H!\n>\204\336\310\311\325\306! >\204\327\310\311\334\nD\"\210\313HD\"\210\306! >\204\356\310\311\334D\"\210\313H\315H\"BB\202\247\307\333!\306! >\204 \310\311\334D\"\210\315H\324\306! >\204\310\311\334D\"\210\313H!E\202\247\306!@>\203j\306!@>\204@\310\311\335D\"\210\211\315H\211\336X\203a\337\306!@>\204Z\310\311\335D\"\210\315HD\202e\340\341\"\262\202\247\306!A>\203\213\342\306!A>\204\204\310\311\343D\"\210\315HD\202\247\306!B>\203\254\344\306!B>\204\245\310\311\345D\"\210\315HD\202\247\306!C>\203\353\306!C>\204\305\310\311\346D\"\210\211\315H\306!C>\204\330\310\311\346D\"\210\313H\306!C>\204\353\310\311\346D\"\210\347H\324\306!C>\204\310\311\346D\"\210\350H!D\203u\351U\203\204\352D\202X\315=\203)\204)\353D\202X\351U\203;\315=\203;\354D\202X\204F\355E\202X\232\203S\356E\202X\357F\203kE\203e\211\202n\360D\202n\361D\262\266\204\202\247\351U\203\217\204\217\203\207\362\202\210\363D\266\204\202\247\315=\203\251\204\251\203\241\364\202\242\365D\266\204\202\247\351U\203\305\315=\203\305\203\275\366\202\276\367D\266\204\202\247\204\322\355E\266\204\202\247\232\203\341\370E\266\204\202\247\357F\266\204\202\247\306!F>\203~\321\306!F>\204\310\311\371D\"\210\347H\210\372\"\306!F>\204\310\311\371D\"\210\211\315H\306!F>\2040\310\311\371D\"\210\313H\306!F>\204C\310\311\371D\"\210\350H\321\306!F>\204X\310\311\371D\"\210\347H\210\204r\204rG\315U\203r@\266\206\202\247\322\373#B\266\206\202\247\306!G>\203\241\374\324\306!G>\204\231\310\311\375D\"\210\315H!D\202\247\340\376\377!\"E\203\313\2119\203\274\201I\201J!!\262\211\201K\201L!H#\266\207" [cl-struct-rxt-primitive-tags cl-struct-rxt-string-tags cl-struct-rxt-seq-tags cl-struct-rxt-choice-tags cl-struct-rxt-submatch-tags cl-struct-rxt-submatch-numbered-tags type-of rxt-rx-symbol signal wrong-type-argument rxt-primitive 2 rxt-string 1 "" seq -1 nil any mapcar rxt-adt->rx rxt-seq or rxt-choice rxt-submatch submatch t submatch-n rxt-submatch-numbered rxt-backref 9 backref rxt-error "Too many backreferences (%s)" syntax rxt-syntax-class category rxt-char-category rxt-repeat 4 3 0 zero-or-more one-or-more zero-or-one >= repeat ** maximal-match minimal-match * *\? + +\? 32 63 = rxt-char-set-union rxt--simplify-char-set append not rxt-char-set-negation "No RX translation of `%s'" rxt-to-string cl-struct-rxt-backref-tags cl-struct-rxt-syntax-class-tags cl-struct-rxt-char-category-tags cl-struct-rxt-repeat-tags rxt-verbose-rx-translation rxt-explain cl-struct-rxt-char-set-union-tags cl-struct-rxt-char-set-negation-tags rxt-location-map make-symbol symbol-name puthash rxt-location] 12 (#$ . 128055)]) #@11 (fn RE) (defalias 'rxt-adt->pcre #[257 "\300!\211G\301U\203\211A\262\242\202\302\303\304GD\"\305\207" [rxt-adt->pcre/lev 2 signal wrong-number-of-arguments (s _) nil] 6 (#$ . 131957)]) #@11 (fn RE) (defalias 'rxt-adt->pcre/lev #[257 "\306!>\203)\306!>\204\307\310\311D\"\210\211\312H\211\203\"\211\312D\207\313\314\315!\"\207\306! >\2035\316!\207\306!\n>\203A\317!\207\306! >\203M\320!\207\306!\f>\203Y\321!\207\306! >\203y\322\323\306! >\204r\307\310\324D\"\210\312H\"\312D\207\306!>\203\206\325!\207\306!>\204\230\306!>\203\234\326!\207\313\314\315!\"\207" [cl-struct-rxt-primitive-tags cl-struct-rxt-string-tags cl-struct-rxt-seq-tags cl-struct-rxt-choice-tags cl-struct-rxt-submatch-tags cl-struct-rxt-backref-tags type-of signal wrong-type-argument rxt-primitive 1 rxt-error "No PCRE translation of `%s'" rxt-to-string rxt-string->pcre rxt-seq->pcre rxt-choice->pcre rxt-submatch->pcre format "\\%d" rxt-backref rxt-repeat->pcre rxt-char-set->pcre cl-struct-rxt-repeat-tags cl-struct-rxt-char-set-union-tags cl-struct-rxt-char-set-negation-tags] 7 (#$ . 132159)]) (defconst rxt-pcre-metachars "[$(-+.?[-^{-}]") (defconst rxt-pcre-charset-metachars "[[-^-]") #@11 (fn RE) (defalias 'rxt-string->pcre #[257 "\302!>\204\303\304\305D\"\210\211\306H\307 \310#G\306V\203\"\311\202#\306D\207" [cl-struct-rxt-string-tags rxt-pcre-metachars type-of signal wrong-type-argument rxt-string 1 replace-regexp-in-string "\\\\\\&" 2] 6 (#$ . 133183)]) #@11 (fn RE) (defalias 'rxt-seq->pcre #[257 "\301!>\204\302\303\304D\"\210\211\305H\211\204\306\207\307!\207" [cl-struct-rxt-seq-tags type-of signal wrong-type-argument rxt-seq 1 "" rxt-seq-elts->pcre] 5 (#$ . 133473)]) #@13 (fn ELTS) (defalias 'rxt-seq-elts->pcre #[257 "\300@!\211G\301U\203\211A\262\242\202\302\303\304GD\"\242A\204&D\207\305A!\211G\301U\203:\211A\262\242\202A\302\303\306GD\"\242\307\"\307\"P\301D\207" [rxt-adt->pcre/lev 2 signal wrong-number-of-arguments (s lev) rxt-seq-elts->pcre (s1 lev1) rxt-paren-if-necessary] 11 (#$ . 133704)]) #@14 (fn S LEV) (defalias 'rxt-paren-if-necessary #[514 "\211\300W\203\207\301\302Q\207" [3 "(?:" ")"] 5 (#$ . 134068)]) #@11 (fn RE) (defalias 'rxt-choice->pcre #[257 "\301!>\204\302\303\304D\"\210\211\305H\211\205\306!\207" [cl-struct-rxt-choice-tags type-of signal wrong-type-argument rxt-choice 1 rxt-choice-elts->pcre] 5 (#$ . 134196)]) #@13 (fn ELTS) (defalias 'rxt-choice-elts->pcre #[257 "\300@!\211G\301U\203\211A\262\242\202\302\303\304GD\"\242A\204&D\207\305A!\211G\301U\203:\211A\262\242\202A\302\303\306GD\"\307\310Q\311D\207" [rxt-adt->pcre/lev 2 signal wrong-number-of-arguments (s lev) rxt-choice-elts->pcre (s1 lev1) nil "|" 3] 10 (#$ . 134428)]) #@11 (fn RE) (defalias 'rxt-submatch->pcre #[257 "\301\302!>\204\303\304\305D\"\210\306H!\211G\307U\203$\211A\262\242\202+\303\310\311GD\"\312\313\314Q\315D\207" [cl-struct-rxt-submatch-tags rxt-adt->pcre/lev type-of signal wrong-type-argument rxt-submatch 1 2 wrong-number-of-arguments (s lev) nil "(" ")" 0] 7 (#$ . 134774)]) #@11 (fn RE) (defalias 'rxt-repeat->pcre #[257 "\301!>\204\302\303\304D\"\210\211\305H\301!>\204!\302\303\304D\"\210\306H\301!>\2043\302\303\304D\"\210\307H\301!>\204F\302\303\304D\"\210\310H\311!\211G\306U\203\\\211A\262\242\202c\302\312\313GD\"\242\203z\305U\203z\305U\203zD\207\203\217\314U\203\217\314U\203\217\315\306D\207\211\305V\203\236\316\317Q\262\314\262\203\341\314U\203\275\305U\203\275\203\270\320\202\271\321P\202U\203\320\322\323!\324R\202\322\323 !\325\323\n!\324\260\202\314U\203\366\203\361\326\202\362\327P\202\305U\203 \203\330\202\331P\202\322\323 !\332R\305D\207" [cl-struct-rxt-repeat-tags type-of signal wrong-type-argument rxt-repeat 1 2 3 4 rxt-adt->pcre/lev wrong-number-of-arguments (s lev) 0 "" "(?:" ")" "?" "??" "{" number-to-string "}" "," "*" "*?" "+" "+?" ",}"] 14 (#$ . 135117)]) #@11 (fn RE) (defalias 'rxt-char-set->pcre #[257 "\302!>\203\303\304!\305Q\306D\207\302! >\203C\302! >\204(\307\310\311D\"\210\211\306H\302!>\203<\312\304!\305Q\306D\207\313\314\315!\"\207\313\316\"\207" [cl-struct-rxt-char-set-union-tags cl-struct-rxt-char-set-negation-tags type-of "[" rxt-char-set->pcre/chars "]" 1 signal wrong-type-argument rxt-char-set-negation "[^" rxt-error "No PCRE translation of `%s'" rxt-to-string "Non-char-set in rxt-char-set->pcre: %s"] 6 (#$ . 136035)]) #@11 (fn RE) (defalias 'rxt-char-set->pcre/chars #[257 "\301\302!>\204\303\304\305D\"\210\306H\302!>\204\"\303\304\305D\"\210\307H\302!>\2045\303\304\305D\"\210\310H\311\312#\311\313\314\"\312#\311\315\312#Q\207" [cl-struct-rxt-char-set-union-tags #[257 "\301!\302\"\203\303P\207\211\304\230\204 \302\305\"\203 \306\307\"\207\207" [rxt-pcre-charset-metachars char-to-string string-match "\\" " " "[^[:graph:]]" format "\\x{%x}"] 5 "\n\n(fn CHAR)"] type-of signal wrong-type-argument rxt-char-set-union 1 2 3 mapconcat "" make-closure #[257 "\301\302\300@!\300A!#\207" [V0 format "%s-%s"] 6 "\n\n(fn RG)"] #[257 "\300\301\"\207" [format "[:%s:]"] 4 "\n\n(fn CLASS)"]] 11 (#$ . 136541)]) #@11 (fn RE) (defalias 'rxt-adt->strings #[257 "\306!>\203 \307C\207\306! >\203'\306! >\204\"\310\311\312D\"\210\211\313HC\207\306!\n>\203D\314\306!\n>\204?\310\311\315D\"\210\313H!\207\306! >\203a\316\306! >\204\\\310\311\317D\"\210\313H!\207\306!\f>\203~\320\306!\f>\204y\310\311\321D\"\210\313H!\207\306! >\203\233\320\306! >\204\226\310\311\322D\"\210\323H!\207\306!>\203\250\324!\207\306!>\203\265\325!\207\326\327\330!\"\207" [cl-struct-rxt-primitive-tags cl-struct-rxt-string-tags cl-struct-rxt-seq-tags cl-struct-rxt-choice-tags cl-struct-rxt-submatch-tags cl-struct-rxt-submatch-numbered-tags type-of "" signal wrong-type-argument rxt-string 1 rxt-seq-elts->strings rxt-seq rxt-choice-elts->strings rxt-choice rxt-adt->strings rxt-submatch rxt-submatch-numbered 2 rxt-repeat->strings rxt-char-set->strings error "Can't generate productions of %s" rxt-syntax-tree-readable cl-struct-rxt-repeat-tags cl-struct-rxt-char-set-union-tags] 6 (#$ . 137266)]) #@20 (fn HEADS TAILS) (defalias 'rxt-concat-product #[514 "\300\301\302\"\"\207" [cl-mapcan make-closure #[257 "\301\302\303\"\300\"\207" [V0 mapcar make-closure #[257 "\300P\207" [V0] 3 "\n\n(fn TS)"]] 5 "\n\n(fn HS)"]] 6 (#$ . 138272)]) #@13 (fn ELTS) (defalias 'rxt-seq-elts->strings #[257 "\211\204\300\207\301@!\302A!\303\"\207" [("") rxt-adt->strings rxt-seq-elts->strings rxt-concat-product] 6 (#$ . 138518)]) #@13 (fn ELTS) (defalias 'rxt-choice-elts->strings #[257 "\211\205\300\301@!\302A!\"\207" [append rxt-adt->strings rxt-choice-elts->strings] 5 (#$ . 138705)]) #@11 (fn RE) (defalias 'rxt-repeat->strings #[257 "\301!>\204\302\303\304D\"\210\211\305H\301!>\204!\302\303\304D\"\210\306H\211\204/\307\310\311!\"\207\312\301!>\204@\302\303\304D\"\210\313H!\314#\207" [cl-struct-rxt-repeat-tags type-of signal wrong-type-argument rxt-repeat 1 2 error "Can't generate all productions of unbounded repeat \"%s\"" rxt-syntax-tree-readable rxt-adt->strings 3 rxt-repeat-n-m->strings] 8 (#$ . 138871)]) #@24 (fn FROM TO STRINGS) (defalias 'rxt-repeat-n-m->strings #[771 "\300U\203\301\207U\203\302\"\207\302\"\303!Z\300\211W\2039\304\305\"\262\244\262\210\211T\262\202\266\207" [0 ("") rxt-repeat-n->strings cl-copy-list nil rxt-concat-product] 11 (#$ . 139328)]) #@18 (fn N STRINGS) (defalias 'rxt-repeat-n->strings #[514 "\300U\203\301\207\302U\203\207\303\304S\"\"\207" [0 ("") 1 rxt-concat-product rxt-repeat-n->strings] 6 (#$ . 139619)]) #@11 (fn RE) (defalias 'rxt-char-set->strings #[257 "\301!>\204\302\303\304D\"\210\211\305H\203\306\307\310!\"\207\311\312\301!>\204-\302\303\304D\"\210\313H\"\301!>\204@\302\303\304D\"\210\314H\211\203j\211@\211A@\211V\204a\312!B\262\211T\262\202M\266A\266\202\202C\210\207" [cl-struct-rxt-char-set-union-tags type-of signal wrong-type-argument rxt-char-set-union 3 error "Can't generate all productions of named character classes in \"%s\"" rxt-syntax-tree-readable mapcar char-to-string 1 2] 8 (#$ . 139810)]) (byte-code "\300\301\302\303\304$\210\305\301\306\"\210\300\307\310\311\304$\210\305\307\306\"\210\300\312\313\311\304$\210\305\312\306\"\210\300\314\315\311\304$\210\305\314\306\"\210\300\316\317\311\304$\210\305\316\306\"\210\300\320\321\311\304$\210\305\320\306\"\207" [ad-add-advice reb-update-modestring (rxt nil t (advice lambda nil "This function is hacked for emulated PCRE syntax and regexp conversion." (setq reb-mode-string (concat (format " (%s)" reb-re-syntax) reb-mode-string)) (force-mode-line-update))) after nil ad-activate t reb-change-syntax (rxt nil t (advice lambda (&optional syntax) "This function is hacked for emulated PCRE syntax and regexp conversion." (interactive (list (intern (completing-read (format "Select syntax (%s): " reb-re-syntax) '(read string pcre sregex rx) nil t "" nil (symbol-name reb-re-syntax))))) (unless (memq syntax '(read string pcre lisp-re sregex rx)) (error "Invalid syntax: %s" syntax)) (let ((re-builder-buffer (get-buffer reb-buffer))) (setq reb-re-syntax syntax) (when re-builder-buffer (with-current-buffer reb-target-buffer (cl-case syntax (rx (let ((rx (rxt-elisp-to-rx reb-regexp))) (setq reb-regexp-src (with-temp-buffer (insert "\n" "'") (rxt-print rx) (buffer-string))))) (pcre (setq reb-regexp-src (rxt-elisp-to-pcre reb-regexp))))) (with-current-buffer re-builder-buffer (let ((inhibit-modification-hooks t)) (reb-initialize-buffer)) (rxt--re-builder-switch-pcre-mode)))))) around reb-read-regexp (rxt nil t (advice lambda nil "This function is hacked for emulated PCRE syntax and regexp conversion." (if (eq reb-re-syntax 'pcre) (setq ad-return-value (save-excursion (goto-char (point-min)) (rxt-read-delimited-pcre))) ad-do-it))) reb-insert-regexp (rxt nil t (advice lambda nil "This function is hacked for emulated PCRE syntax and regexp conversion." (if (eq reb-re-syntax 'pcre) (let ((src (reb-target-binding reb-regexp-src))) (if src (insert "\n/" (replace-regexp-in-string "/" "\\/" src t t) "/") (insert "\n//"))) ad-do-it))) reb-cook-regexp (rxt nil t (advice lambda (re) "This function is hacked for emulated PCRE syntax and regexp conversion." (if (eq reb-re-syntax 'pcre) (setq ad-return-value (rxt-pcre-to-elisp re)) ad-do-it))) reb-update-regexp (rxt nil t (advice lambda nil "This function is hacked for emulated PCRE syntax and regexp conversion." (setq ad-return-value (let* ((re-src (reb-read-regexp)) (re (reb-cook-regexp re-src))) (with-current-buffer reb-target-buffer (let ((oldre reb-regexp)) (prog1 (not (string= oldre re)) (setq reb-regexp re) (when (or (reb-lisp-syntax-p) (eq reb-re-syntax 'pcre)) (setq reb-regexp-src re-src)))))))))] 5) (defalias 'rxt--re-builder-switch-pcre-mode #[0 "\301\302=\203 \303\202\f\304!\207" [reb-re-syntax rxt--read-pcre-mode pcre 1 0] 3]) (byte-code "\300\301\302\"\210\303\304!\210\303\305!\207" [add-hook reb-mode-hook rxt--re-builder-switch-pcre-mode provide rxt pcre2el] 3)