Elide nested groups.
authorChris Hanson <org/chris-hanson/cph>
Sun, 7 Jan 2007 06:48:52 +0000 (06:48 +0000)
committerChris Hanson <org/chris-hanson/cph>
Sun, 7 Jan 2007 06:48:52 +0000 (06:48 +0000)
v7/src/runtime/rexp.scm

index 31b140116303a0c5c9749d062f462244e297ca53..0e7d173d4087941a6348e1a4160681122f39ad67 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Id: rexp.scm,v 1.26 2007/01/05 21:19:28 cph Exp $
+$Id: rexp.scm,v 1.27 2007/01/07 06:48:52 cph Exp $
 
 Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
     1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
@@ -106,7 +106,10 @@ USA.
              rexps))
 
 (define (rexp-group . rexps)
-  `(GROUP ,(apply rexp-sequence rexps)))
+  (let ((rexp (apply rexp-sequence rexps)))
+    (if (and (pair? rexp) (eq? (car rexp) 'GROUP))
+       rexp
+       `(GROUP ,rexp))))
 
 (define (rexp-optional . rexps)
   `(OPTIONAL ,(rexp-groupify (apply rexp-sequence rexps))))