[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
2000年6月30日 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

AltStyle によって変換されたページ (->オリジナル) /