[Python-checkins] CVS: python/dist/src/Modules _sre.c,2.14,2.15 sre_constants.h,2.4,2.5

Fredrik Lundh python-dev@python.org
Fri, 30 Jun 2000 03:41:33 -0700


Update of /cvsroot/python/python/dist/src/Modules
In directory slayer.i.sourceforge.net:/tmp/cvs-serv26572/Modules

Modified Files:
	_sre.c sre_constants.h 
Log Message:

- fixed lookahead assertions (#10, #11, #12)

- untabified sre_constants.py

Index: _sre.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Modules/_sre.c,v
retrieving revision 2.14
retrieving revision 2.15
diff -C2 -r2.14 -r2.15
*** _sre.c	2000/06/30 07:05:48	2.14
--- _sre.c	2000/06/30 10:41:31	2.15
***************
*** 21,24 ****
--- 21,25 ----
   * 00-06-29 fl	fixed split, added more scanner features (0.9.2)
   * 00-06-30 fl	tuning, fast search (0.9.3)
+  * 00-06-30 fl	added assert (lookahead) primitives (0.9.4)
   *
   * Copyright (c) 1997-2000 by Secret Labs AB.  All rights reserved.
***************
*** 31,35 ****
  #ifndef SRE_RECURSIVE
  
! char copyright[] = " SRE 0.9.3 Copyright (c) 1997-2000 by Secret Labs AB ";
  
  #include "Python.h"
--- 32,36 ----
  #ifndef SRE_RECURSIVE
  
! char copyright[] = " SRE 0.9.4 Copyright (c) 1997-2000 by Secret Labs AB ";
  
  #include "Python.h"
***************
*** 577,585 ****
  			break;
  
! #if 0
! 		case SRE_OP_CALL:
! 			/* match subpattern, without backtracking */
  			/* args: <skip> <pattern> */
! 			TRACE(("%8d: subpattern\n", PTR(ptr)));
  			state->ptr = ptr;
  			i = SRE_MATCH(state, pattern + 1);
--- 578,585 ----
  			break;
  
! 		case SRE_OP_ASSERT:
! 			/* assert subpattern */
  			/* args: <skip> <pattern> */
! 			TRACE(("%8d: assert subpattern\n", PTR(ptr)));
  			state->ptr = ptr;
  			i = SRE_MATCH(state, pattern + 1);
***************
*** 589,595 ****
  				goto failure;
  			pattern += pattern[0];
- 			ptr = state->ptr;
  			break;
! #endif
  
  #if 0
--- 589,606 ----
  				goto failure;
  			pattern += pattern[0];
  			break;
! 
! 		case SRE_OP_ASSERT_NOT:
! 			/* assert not subpattern */
! 			/* args: <skip> <pattern> */
! 			TRACE(("%8d: assert not subpattern\n", PTR(ptr)));
! 			state->ptr = ptr;
! 			i = SRE_MATCH(state, pattern + 1);
!             if (i < 0)
!                 return i;
!             if (i)
! 				goto failure;
! 			pattern += pattern[0];
! 			break;
  
  #if 0

Index: sre_constants.h
===================================================================
RCS file: /cvsroot/python/python/dist/src/Modules/sre_constants.h,v
retrieving revision 2.4
retrieving revision 2.5
diff -C2 -r2.4 -r2.5
*** sre_constants.h	2000/06/29 08:55:54	2.4
--- sre_constants.h	2000/06/30 10:41:31	2.5
***************
*** 1,28 ****
! /* generated from sre_constants.py */
  #define SRE_OP_FAILURE 0
  #define SRE_OP_SUCCESS 1
  #define SRE_OP_ANY 2
  #define SRE_OP_ASSERT 3
! #define SRE_OP_AT 4
! #define SRE_OP_BRANCH 5
! #define SRE_OP_CALL 6
! #define SRE_OP_CATEGORY 7
! #define SRE_OP_GROUP 8
! #define SRE_OP_GROUP_IGNORE 9
! #define SRE_OP_IN 10
! #define SRE_OP_IN_IGNORE 11
! #define SRE_OP_INFO 12
! #define SRE_OP_JUMP 13
! #define SRE_OP_LITERAL 14
! #define SRE_OP_LITERAL_IGNORE 15
! #define SRE_OP_MARK 16
! #define SRE_OP_MAX_REPEAT 17
! #define SRE_OP_MAX_REPEAT_ONE 18
! #define SRE_OP_MIN_REPEAT 19
! #define SRE_OP_NOT_LITERAL 20
! #define SRE_OP_NOT_LITERAL_IGNORE 21
! #define SRE_OP_NEGATE 22
! #define SRE_OP_RANGE 23
! #define SRE_OP_REPEAT 24
  #define SRE_AT_BEGINNING 0
  #define SRE_AT_BEGINNING_LINE 1
--- 1,41 ----
! /*
!  * Secret Labs' Regular Expression Engine
!  *
!  * regular expression matching engine
!  *
!  * NOTE: This file is generated by sre_constants.py.  If you need
!  * to change anything in here, edit sre_constants.py and run it.
!  *
!  * Copyright (c) 1997-2000 by Secret Labs AB.  All rights reserved.
!  *
!  * See the _sre.c file for information on usage and redistribution.
!  */
! 
  #define SRE_OP_FAILURE 0
  #define SRE_OP_SUCCESS 1
  #define SRE_OP_ANY 2
  #define SRE_OP_ASSERT 3
! #define SRE_OP_ASSERT_NOT 4
! #define SRE_OP_AT 5
! #define SRE_OP_BRANCH 6
! #define SRE_OP_CALL 7
! #define SRE_OP_CATEGORY 8
! #define SRE_OP_GROUP 9
! #define SRE_OP_GROUP_IGNORE 10
! #define SRE_OP_IN 11
! #define SRE_OP_IN_IGNORE 12
! #define SRE_OP_INFO 13
! #define SRE_OP_JUMP 14
! #define SRE_OP_LITERAL 15
! #define SRE_OP_LITERAL_IGNORE 16
! #define SRE_OP_MARK 17
! #define SRE_OP_MAX_REPEAT 18
! #define SRE_OP_MAX_REPEAT_ONE 19
! #define SRE_OP_MIN_REPEAT 20
! #define SRE_OP_NOT_LITERAL 21
! #define SRE_OP_NOT_LITERAL_IGNORE 22
! #define SRE_OP_NEGATE 23
! #define SRE_OP_RANGE 24
! #define SRE_OP_REPEAT 25
  #define SRE_AT_BEGINNING 0
  #define SRE_AT_BEGINNING_LINE 1