[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