From 762485c2ca8990a52743162689e3a04a9abf0b3d Mon Sep 17 00:00:00 2001 From: Daniel Ehrenberg Date: Sun, 8 Mar 2009 18:50:41 -0500 Subject: [PATCH] Fixing xmode use lines; adding fake reluctant ?*+ to make XMode work (they're actually greedy) --- basis/regexp/parser/parser.factor | 3 +++ basis/xmode/marker/marker.factor | 3 +-- basis/xmode/rules/rules.factor | 4 +++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/basis/regexp/parser/parser.factor b/basis/regexp/parser/parser.factor index 1c001cdc57..adbf0c53d3 100644 --- a/basis/regexp/parser/parser.factor +++ b/basis/regexp/parser/parser.factor @@ -158,6 +158,9 @@ Times = "," Number:n "}" => [[ 0 n ]] | Number:n "," Number:m "}" => [[ n m ]] Repeated = Element:e "{" Times:t => [[ e t ]] + | Element:e "??" => [[ e ]] + | Element:e "*?" => [[ e ]] + | Element:e "+?" => [[ e ]] | Element:e "?" => [[ e ]] | Element:e "*" => [[ e ]] | Element:e "+" => [[ e ]] diff --git a/basis/xmode/marker/marker.factor b/basis/xmode/marker/marker.factor index e106af7952..de1f4254ea 100755 --- a/basis/xmode/marker/marker.factor +++ b/basis/xmode/marker/marker.factor @@ -4,9 +4,8 @@ IN: xmode.marker USING: kernel namespaces make xmode.rules xmode.tokens xmode.marker.state xmode.marker.context xmode.utilities xmode.catalog sequences math assocs combinators strings -regexp splitting ascii regexp.backend unicode.case +regexp splitting ascii unicode.case regexp.matchers ascii combinators.short-circuit accessors ; -! regexp.backend is for the regexp class ! Next two words copied from parser-combinators ! Just like head?, but they optionally ignore case diff --git a/basis/xmode/rules/rules.factor b/basis/xmode/rules/rules.factor index 99364fe7cd..51f216fa44 100644 --- a/basis/xmode/rules/rules.factor +++ b/basis/xmode/rules/rules.factor @@ -1,6 +1,8 @@ +! Copyright (C) 2008 Slava Pestov. +! See http://factorcode.org/license.txt for BSD license. USING: accessors xmode.tokens xmode.keyword-map kernel sequences vectors assocs strings memoize unicode.case -regexp regexp.backend ; ! regexp.backend has the regexp class +regexp ; IN: xmode.rules TUPLE: string-matcher string ignore-case? ; -- 2.34.1