summaryrefslogtreecommitdiff
path: root/inc/parser
diff options
context:
space:
mode:
authorchris <chris@jalakai.co.uk>2005-09-22 17:43:56 +0200
committerchris <chris@jalakai.co.uk>2005-09-22 17:43:56 +0200
commit1b828ec874199e382adf654b33e39254b34d175d (patch)
treef9766b4f04a1edacfac7b03b4bee01ccb25b7496 /inc/parser
parent478cd9975df432009a713e8017061ac5a19663d8 (diff)
downloadrpg-1b828ec874199e382adf654b33e39254b34d175d.tar.gz
rpg-1b828ec874199e382adf654b33e39254b34d175d.tar.bz2
lexer fix: will now support ">" in look ahead/behind patterns & (?u) inline flag
darcs-hash:20050922154356-9b6ab-0e881a2f3fc6f3f8acd2f16df8a9dde68f6085e3.gz
Diffstat (limited to 'inc/parser')
-rw-r--r--inc/parser/lexer.php33
1 files changed, 17 insertions, 16 deletions
diff --git a/inc/parser/lexer.php b/inc/parser/lexer.php
index 394eae3f6..e0492d7c9 100644
--- a/inc/parser/lexer.php
+++ b/inc/parser/lexer.php
@@ -139,10 +139,11 @@ class Doku_LexerParallelRegex {
for ($i = 0; $i < $cnt; $i++) {
// Replace lookaheads / lookbehinds with marker
+ $m = "\1\1";
$pattern = preg_replace(
array (
- '/\(\?(i|m|s|x|U)\)/U',
- '/\(\?(\-[i|m|s|x|U])\)/U',
+ '/\(\?(i|m|s|x|u|U)\)/U',
+ '/\(\?(\-[i|m|s|x|u|U])\)/U',
'/\(\?\=(.*)\)/sU',
'/\(\?\!(.*)\)/sU',
'/\(\?\<\=(.*)\)/sU',
@@ -150,13 +151,13 @@ class Doku_LexerParallelRegex {
'/\(\?\:(.*)\)/sU',
),
array (
- '<<<<SO:\\1>>>>',
- '<<<<SOR:\\1>>>>',
- '<<<<LA:IS:\\1>>>>',
- '<<<<LA:NOT:\\1>>>>',
- '<<<<LB:IS:\\1>>>>',
- '<<<<LB:NOT:\\1>>>>',
- '<<<<GRP:\\1>>>>',
+ $m.'SO:\\1'.$m,
+ $m.'SOR:\\1'.$m,
+ $m.'LA:IS:\\1'.$m,
+ $m.'LA:NOT:\\1'.$m,
+ $m.'LB:IS:\\1'.$m,
+ $m.'LB:NOT:\\1'.$m,
+ $m.'GRP:\\1'.$m,
),
$this->_patterns[$i]
);
@@ -170,13 +171,13 @@ class Doku_LexerParallelRegex {
// Restore lookaheads / lookbehinds
$pattern = preg_replace(
array (
- '<<<<<SO:(.{1})>>>>>',
- '<<<<<SOR:(.{2})>>>>>',
- '/<<<<LA:IS:(.*)>>>>/sU',
- '/<<<<LA:NOT:(.*)>>>>/sU',
- '/<<<<LB:IS:(.*)>>>>/sU',
- '/<<<<LB:NOT:(.*)>>>>/sU',
- '/<<<<GRP:(.*)>>>>/sU',
+ '/'.$m.'SO:(.{1})'.$m.'/',
+ '/'.$m.'SOR:(.{2})'.$m.'/',
+ '/'.$m.'LA:IS:(.*)'.$m.'/sU',
+ '/'.$m.'LA:NOT:(.*)'.$m.'/sU',
+ '/'.$m.'LB:IS:(.*)'.$m.'/sU',
+ '/'.$m.'LB:NOT:(.*)'.$m.'/sU',
+ '/'.$m.'GRP:(.*)'.$m.'/sU',
),
array (
'(?\\1)',