/[pcre]/code/tags/pcre-8.01/HACKING
ViewVC logotype

Diff of /code/tags/pcre-8.01/HACKING

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 455 by ph10, Sun Apr 20 17:10:13 2008 UTC revision 456 by ph10, Fri Oct 2 08:53:31 2009 UTC
# Line 67  many tests of the mode that might slow i Line 67  many tests of the mode that might slow i
67  functions to work this way. This got rid of about 600 lines of source. It  functions to work this way. This got rid of about 600 lines of source. It
68  should make future maintenance and development easier. As this was such a major  should make future maintenance and development easier. As this was such a major
69  change, I never released 6.8, instead upping the number to 7.0 (other quite  change, I never released 6.8, instead upping the number to 7.0 (other quite
70  major changes are also present in the 7.0 release).  major changes were also present in the 7.0 release).
71    
72  A side effect of this work is that the previous limit of 200 on the nesting  A side effect of this work was that the previous limit of 200 on the nesting
73  depth of parentheses was removed. However, there is a downside: pcre_compile()  depth of parentheses was removed. However, there is a downside: pcre_compile()
74  runs more slowly than before (30% or more, depending on the pattern) because it  runs more slowly than before (30% or more, depending on the pattern) because it
75  is doing a full analysis of the pattern. My hope is that this is not a big  is doing a full analysis of the pattern. My hope was that this would not be a
76  issue.  big issue, and in the event, nobody has commented on it.
77    
78  Traditional matching function  Traditional matching function
79  -----------------------------  -----------------------------
80    
81  The "traditional", and original, matching function is called pcre_exec(), and  The "traditional", and original, matching function is called pcre_exec(), and
82  it implements an NFA algorithm, similar to the original Henry Spencer algorithm  it implements an NFA algorithm, similar to the original Henry Spencer algorithm
83  and the way that Perl works. Not surprising, since it is intended to be as  and the way that Perl works. This is not surprising, since it is intended to be
84  compatible with Perl as possible. This is the function most users of PCRE will  as compatible with Perl as possible. This is the function most users of PCRE
85  use most of the time.  will use most of the time.
86    
87  Supplementary matching function  Supplementary matching function
88  -------------------------------  -------------------------------
# Line 119  quantifiers) are always just two bytes l Line 119  quantifiers) are always just two bytes l
119    
120  A list of the opcodes follows:  A list of the opcodes follows:
121    
122    
123  Opcodes with no following data  Opcodes with no following data
124  ------------------------------  ------------------------------
125    
# Line 150  These items are all just one byte long Line 151  These items are all just one byte long
151    OP_EXTUNI              match an extended Unicode character    OP_EXTUNI              match an extended Unicode character
152    OP_ANYNL               match any Unicode newline sequence    OP_ANYNL               match any Unicode newline sequence
153    
154    OP_ACCEPT              )    OP_ACCEPT              ) These are Perl 5.10's "backtracking
155    OP_COMMIT              )    OP_COMMIT              ) control verbs". If OP_ACCEPT is inside
156    OP_FAIL                ) These are Perl 5.10's "backtracking    OP_FAIL                ) capturing parentheses, it may be preceded
157    OP_PRUNE               ) control verbs".    OP_PRUNE               ) by one or more OP_CLOSE, followed by a 2-byte
158    OP_SKIP                )    OP_SKIP                ) number, indicating which parentheses must be
159    OP_THEN                )    OP_THEN                ) closed.
160    
161    
162  Repeating single characters  Repeating single characters
# Line 415  at compile time, and so does not cause a Line 416  at compile time, and so does not cause a
416  data.  data.
417    
418  Philip Hazel  Philip Hazel
419  April 2008  October 2009

Legend:
Removed from v.455  
changed lines
  Added in v.456

webmaster@exim.org
ViewVC Help
Powered by ViewVC 1.1.12