From: John Benediktsson Date: Wed, 10 Aug 2022 00:41:07 +0000 (-0700) Subject: regexp: don't use execute so the generated code is easier to read X-Git-Tag: 0.99~1147 X-Git-Url: https://gitweb.factorcode.org/gitweb.cgi?p=factor.git;a=commitdiff_plain;h=2f59f72ed58809c266ad1d2a777be7285d246a06 regexp: don't use execute so the generated code is easier to read --- diff --git a/basis/regexp/compiler/compiler.factor b/basis/regexp/compiler/compiler.factor index c4b3aa2b69..9102836d68 100644 --- a/basis/regexp/compiler/compiler.factor +++ b/basis/regexp/compiler/compiler.factor @@ -1,7 +1,7 @@ ! Copyright (C) 2009 Daniel Ehrenberg. ! See http://factorcode.org/license.txt for BSD license. USING: accessors assocs combinators combinators.short-circuit -kernel kernel.private math namespaces regexp.classes +kernel kernel.private math namespaces quotations regexp.classes regexp.transition-tables sequences sequences.private sets strings unicode words ; IN: regexp.compiler @@ -51,7 +51,7 @@ M: word-break question>quot [ question>> question>quot ] [ yes>> ] [ no>> ] tri [ (execution-quot) ] bi@ '[ 2dup @ _ _ if ] - ] [ '[ _ execute ] ] if ; + ] [ 1quotation ] if ; : execution-quot ( next-state -- quot ) dup sequence? [ first ] when diff --git a/basis/regexp/regexp.factor b/basis/regexp/regexp.factor index b243f16f58..42138d5c66 100644 --- a/basis/regexp/regexp.factor +++ b/basis/regexp/regexp.factor @@ -1,9 +1,10 @@ ! Copyright (C) 2008, 2009 Doug Coleman, Daniel Ehrenberg. ! See http://factorcode.org/license.txt for BSD license. USING: accessors arrays classes compiler.units kernel -kernel.private lexer make math ranges namespaces regexp.ast -regexp.compiler regexp.negation regexp.parser sequences -sequences.private splitting strings vocabs.loader words ; +kernel.private lexer make math ranges namespaces quotations +regexp.ast regexp.compiler regexp.negation regexp.parser +sequences sequences.private splitting strings vocabs.loader +words ; IN: regexp TUPLE: regexp @@ -18,7 +19,7 @@ TUPLE: reverse-regexp < regexp ; M: lookahead question>quot ! Returns ( index string -- ? ) - term>> ast>dfa dfa>shortest-word '[ f _ execute ] ; + term>> ast>dfa dfa>shortest-word 1quotation [ f ] prepose ; : ( ast -- reversed ) "r" string>options ; @@ -27,7 +28,7 @@ M: lookbehind question>quot ! Returns ( index string -- ? ) term>> ast>dfa dfa>reverse-shortest-word - '[ [ 1 - ] dip f _ execute ] ; + 1quotation [ [ 1 - ] dip f ] prepose ; : match-index-from ( i string regexp -- index/f ) ! This word is unsafe. It assumes that i is a fixnum