[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/lisp/emacs-lisp/regexp-opt.el
From: |
Juanma Barranquero |
Subject: |
[Emacs-diffs] Changes to emacs/lisp/emacs-lisp/regexp-opt.el |
Date: |
Sat, 26 Apr 2003 19:25:00 -0400 |
Index: emacs/lisp/emacs-lisp/regexp-opt.el
diff -c emacs/lisp/emacs-lisp/regexp-opt.el:1.24
emacs/lisp/emacs-lisp/regexp-opt.el:1.25
*** emacs/lisp/emacs-lisp/regexp-opt.el:1.24 Tue Feb 4 07:53:34 2003
--- emacs/lisp/emacs-lisp/regexp-opt.el Sat Apr 26 19:24:59 2003
***************
*** 110,115 ****
--- 110,133 ----
(re (regexp-opt-group sorted-strings open)))
(if words (concat "\\<" re "\\>") re))))
+ (defconst regexp-opt-not-groupie*-re
+ (let* ((harmless-ch "[^\\\\[]")
+ (esc-pair-not-lp "\\\\[^(]")
+ (class-harmless-ch "[^][]")
+ (class-lb-harmless "[^]:]")
+ (class-lb-colon-maybe-charclass ":\\([a-z]+:]\\)?")
+ (class-lb (concat "\\[\\(" class-lb-harmless
+ "\\|" class-lb-colon-maybe-charclass "\\)"))
+ (class
+ (concat "\\[^?]?"
+ "\\(" class-harmless-ch
+ "\\|" class-lb "\\)*"
+ "\\[?]")) ; special handling for bare [ at end of re
+ (shy-lp "\\\\(\\?:"))
+ (concat "\\(" harmless-ch "\\|" esc-pair-not-lp
+ "\\|" class "\\|" shy-lp "\\)*"))
+ "Matches any part of a regular expression EXCEPT for non-shy \"\\\\(\"s")
+
;;;###autoload
(defun regexp-opt-depth (regexp)
"Return the depth of REGEXP.
***************
*** 120,130 ****
(string-match regexp "")
;; Count the number of open parentheses in REGEXP.
(let ((count 0) start)
! (while (string-match "\\(\\`\\|[^\\]\\)\\\\\\(\\\\\\\\\\)*([^?]"
! regexp start)
! (setq count (1+ count)
! ;; Go back 2 chars (one for [^?] and one for [^\\]).
! start (- (match-end 0) 2)))
count)))
;;; Workhorse functions.
--- 138,149 ----
(string-match regexp "")
;; Count the number of open parentheses in REGEXP.
(let ((count 0) start)
! (while
! (progn
! (string-match regexp-opt-not-groupie*-re regexp start)
! (setq start ( + (match-end 0) 2)) ; +2 for "\\(" after match-end.
! (<= start (length regexp)))
! (setq count (1+ count)))
count)))
;;; Workhorse functions.