aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/interp/scan.boot38
1 files changed, 18 insertions, 20 deletions
diff --git a/src/interp/scan.boot b/src/interp/scan.boot
index 865047ae..3cda5b55 100644
--- a/src/interp/scan.boot
+++ b/src/interp/scan.boot
@@ -655,26 +655,24 @@ subMatch(l,i) ==
substringMatch(l,scanDict,i)
substringMatch (l,d,i)==
- h:= QENUM(l, i)
- u:=d.h
- ll:=SIZE l
- done:=false
- s1:='""
- for j in 0.. SIZE u - 1 while not done repeat
- s:=u.j
- ls:=SIZE s
- done:=if ls+i > ll
- then false
- else
- eql:= true
- for k in 1..ls-1 while eql repeat
- eql:= EQL(QENUM(s,k),QENUM(l,k+i))
- if eql
- then
- s1:=s
- true
- else false
- s1
+ h := QENUM(l, i)
+ u := d.h
+ ll := #l
+ done := false
+ s1 := '""
+ for j in 0..#u - 1 while not done repeat
+ s := u.j
+ ls := #s
+ done :=
+ ls+i > ll => false
+ eql := true
+ for k in 1..ls-1 while eql repeat
+ eql := QENUM(s,k) = QENUM(l,k+i)
+ eql =>
+ s1 := s
+ true
+ false
+ s1