@@ -36,15 +36,15 @@ public function enterNode(Node $node)
36
36
[$ immediatePredecessor , $ immediateSuccessor ] = $ this ->getImmediates ($ parent , $ myStart , $ myEnd );
37
37
if ($ immediatePredecessor !== null ) {
38
38
$ tokensBefore = [];
39
- for ($ i = $ immediatePredecessor-> getAttribute ( ' endTokenPos ' ) + 1 ; $ i < $ myStart ; $ i ++) {
39
+ for ($ i = $ immediatePredecessor ; $ i < $ myStart ; $ i ++) {
40
40
$ tokensBefore [] = $ this ->tokens [$ i ];
41
41
}
42
42
$ node ->setAttribute ('tokensBefore ' , $ tokensBefore );
43
43
}
44
44
45
45
if ($ immediateSuccessor !== null ) {
46
46
$ tokensAfter = [];
47
- for ($ i = $ myEnd + 1 ; $ i < $ immediateSuccessor-> getAttribute ( ' startTokenPos ' ) ; $ i ++) {
47
+ for ($ i = $ myEnd + 1 ; $ i <= $ immediateSuccessor ; $ i ++) {
48
48
$ tokensAfter [] = $ this ->tokens [$ i ];
49
49
}
50
50
$ node ->setAttribute ('tokensAfter ' , $ tokensAfter );
@@ -58,7 +58,7 @@ public function enterNode(Node $node)
58
58
* @param Node $parent
59
59
* @param int $myStart
60
60
* @param int $myEnd
61
- * @return array{Node |null, Node |null}
61
+ * @return array{int |null, int |null}
62
62
*/
63
63
private function getImmediates (Node $ parent , int $ myStart , int $ myEnd ): array
64
64
{
@@ -71,17 +71,21 @@ private function getImmediates(Node $parent, int $myStart, int $myEnd): array
71
71
$ parentChild = $ parentChildList ->getNode ();
72
72
$ childEnd = $ parentChild ->getAttribute ('endTokenPos ' );
73
73
if ($ childEnd < $ myStart ) {
74
- $ immediatePredecessor = $ parentChild ;
74
+ $ immediatePredecessor = $ childEnd + 1 ;
75
75
$ parentChildList = $ parentChildList ->getNext ();
76
76
continue ;
77
77
}
78
78
79
79
$ childStart = $ parentChild ->getAttribute ('startTokenPos ' );
80
80
if ($ childStart > $ myEnd ) {
81
- $ immediateSuccessor = $ parentChild ;
81
+ $ immediateSuccessor = $ childStart - 1 ;
82
82
break ;
83
83
}
84
84
85
+ if ($ childStart + 1 < $ myStart && $ childEnd > $ myEnd ) {
86
+ return [$ childStart + 1 , $ childEnd ];
87
+ }
88
+
85
89
$ parentChildList = $ parentChildList ->getNext ();
86
90
}
87
91
0 commit comments