@@ -28,7 +28,7 @@ class QRegex::NFA {
28
28
29
29
my $ ACTIONS ;
30
30
my $ nfadeb ;
31
- my $ ind ;
31
+ my int $ ind ;
32
32
33
33
sub dentin () {
34
34
if $ nfadeb {
@@ -513,7 +513,7 @@ class QRegex::NFA {
513
513
dentout($ ! states )
514
514
}
515
515
516
- method mergesubrule ($ start , $ to , $ fate , $ cursor , $ name , % caller_seen ? ) {
516
+ method mergesubrule (int $ start , int $ to , int $ fate , $ cursor , $ name , % caller_seen ? ) {
517
517
my $ indent := dentin();
518
518
my % seen := nqp :: clone (% caller_seen );
519
519
my @ substates ;
@@ -588,7 +588,7 @@ class QRegex::NFA {
588
588
while $ s < $ send {
589
589
note (" $ s :" );
590
590
for @ substates [$ s ] -> $ a , $ v , $ t {
591
- my $ act := nqp ::bitand_i($ a ,0xff );
591
+ my int $ act := nqp ::bitand_i($ a ,0xff );
592
592
my $ action := $ ACTIONS [$ act ];
593
593
if $ act == $ EDGE_CODEPOINT || $ act == $ EDGE_CODEPOINT_LL {
594
594
note (" \t $ t $ action " ~ nqp :: chr ($ v ));
@@ -617,7 +617,7 @@ class QRegex::NFA {
617
617
dentout(self . mergesubstates($ start , $ to , $ fate , @ substates , $ cursor , % seen ));
618
618
}
619
619
620
- method mergesubstates ($ start , $ to , $ fate , @ substates , $ cursor , % seen ? ) {
620
+ method mergesubstates (int $ start , int $ to , int $ fate , @ substates , $ cursor , % seen ? ) {
621
621
my $ indent := dentin();
622
622
note (" $ indent mergesubstates start $ start to $ to fate $ fate" ) if $ nfadeb ;
623
623
$ ! states [0 ][$ fate ] := $ fate ; # overridden by !protoregex_nfa
@@ -652,7 +652,7 @@ class QRegex::NFA {
652
652
}
653
653
}
654
654
elsif $ substate [$ j ] == $ EDGE_SUBRULE {
655
- my $ j2 := $ substate [$ j + 2];
655
+ my int $ j2 := $ substate [$ j + 2];
656
656
my $ j1 := $ substate [$ j + 1];
657
657
nqp :: splice ($ substate ,[], $ j , 3 );
658
658
self . mergesubrule($ i , $ j2 , $ fate , $ cursor , $ j1 , % seen );
@@ -814,11 +814,11 @@ class QRegex::NFA {
814
814
note (" now $ send states before unlinking empties" ) if $ nfadeb ;
815
815
$ s := 1 ;
816
816
while $ s < $ send {
817
- my $ edges := $ ! states [$ s ];
818
817
if nqp ::atpos_i($ remap ,$ s ) && $ s > 1 {
819
818
$ ! states [$ s ] := [];
820
819
}
821
820
else {
821
+ my $ edges := $ ! states [$ s ];
822
822
my int $ eend := nqp :: elems ($ edges );
823
823
my int $ e := 2 ;
824
824
while $ e < $ eend {
@@ -859,8 +859,7 @@ class QRegex::NFA {
859
859
$ edges [$ e + 1 ] := $ sedges [1 ];
860
860
$ edges [$ e + 2 ] := $ sedges [2 ];
861
861
862
- my int $ refcnt := nqp ::atpos_i($ refs ,$ to );
863
- $ refcnt := $ refcnt - 1 ;
862
+ my int $ refcnt := nqp ::atpos_i($ refs ,$ to ) - 1 ;
864
863
nqp ::bindpos_i($ refs ,$ to ,$ refcnt );
865
864
$ ! states [$ to ] := [] unless $ refcnt ; # remove if no refs remaining
866
865
}
@@ -908,7 +907,7 @@ class QRegex::NFA {
908
907
$ s := 1 ;
909
908
while $ s < $ send {
910
909
if + $ ! states [$ s ] {
911
- my $ newpos := nqp ::atpos_i($ remap ,$ s );
910
+ my int $ newpos := nqp ::atpos_i($ remap ,$ s );
912
911
note (" OOPS outrageous $ newpos" ) if $ newpos > $ s ;
913
912
if $ newpos {
914
913
nqp ::bindpos($ newstates , $ newpos , $ ! states [$ s ]);
@@ -919,7 +918,7 @@ class QRegex::NFA {
919
918
my int $ to := $ edges [$ e ];
920
919
my int $ act := nqp ::bitand_i($ edges [$ e -2], 0xff );
921
920
if $ to {
922
- my $ to2 := nqp ::atpos_i($ remap ,$ to );
921
+ my int $ to2 := nqp ::atpos_i($ remap ,$ to );
923
922
note (" In $ s -> $ newpos remapping " ~ $ ACTIONS [$ act ] ~ " $ to -> $ to2" ) if $ nfadeb ;
924
923
$ edges [$ e ] := $ to2 ;
925
924
}
@@ -930,7 +929,7 @@ class QRegex::NFA {
930
929
while $ e < $ eend {
931
930
my int $ act := nqp ::bitand_i($ edges [$ e ], 0xff );
932
931
if $ act < $ EDGE_CHARLIST {
933
- my $ f := 0 ;
932
+ my int $ f := 0 ;
934
933
while $ f < $ e {
935
934
if $ act == $ edges [$ f ] && $ edges [$ e + 2] == $ edges [$ f + 2] && $ edges [$ e + 1] == $ edges [$ f + 1] {
936
935
note (" Deleting dup edge at $ s $ e /$ f" ) if $ nfadeb ;
0 commit comments