@@ -137,6 +137,9 @@ impl PolicyParser {
137
137
self . context . node_range = token. get_range ( ) ;
138
138
self . context . node_text = token. get_word ( ) ;
139
139
140
+ self . context . previous_node_range = previous. get_range ( ) ;
141
+ self . context . previous_node_text = previous. get_word ( ) ;
142
+
140
143
match other {
141
144
"(" | "=" => self . context . previous_node_kind = other. into ( ) ,
142
145
"and" => self . context . previous_node_kind = "keyword_and" . into ( ) ,
@@ -278,9 +281,9 @@ mod tests {
278
281
node_kind: "" . into( ) ,
279
282
node_range: TextRange :: new( TextSize :: new( 42 ) , TextSize :: new( 56 ) ) ,
280
283
in_check_or_using_clause: false ,
281
- previous_node_kind: "keyword_policy " . into( ) ,
282
- previous_node_range: TextRange :: new( 0 . into( ) , 0 . into( ) ) ,
283
- previous_node_text: "" . into( ) ,
284
+ previous_node_kind: "" . into( ) ,
285
+ previous_node_range: TextRange :: new( 25 . into( ) , 41 . into( ) ) ,
286
+ previous_node_text: "\" my cool policy \" " . into( ) ,
284
287
}
285
288
) ;
286
289
@@ -304,9 +307,9 @@ mod tests {
304
307
node_kind: "policy_table" . into( ) ,
305
308
node_range: TextRange :: new( TextSize :: new( 45 ) , TextSize :: new( 59 ) ) ,
306
309
in_check_or_using_clause: false ,
307
- previous_node_kind: "keyword_policy " . into( ) ,
308
- previous_node_range: TextRange :: new( 0 . into( ) , 0 . into( ) ) ,
309
- previous_node_text: "" . into( ) ,
310
+ previous_node_kind: "keyword_on " . into( ) ,
311
+ previous_node_range: TextRange :: new( 42 . into( ) , 44 . into( ) ) ,
312
+ previous_node_text: "on " . into( ) ,
310
313
}
311
314
) ;
312
315
@@ -330,9 +333,9 @@ mod tests {
330
333
node_kind: "policy_table" . into( ) ,
331
334
node_range: TextRange :: new( TextSize :: new( 50 ) , TextSize :: new( 64 ) ) ,
332
335
in_check_or_using_clause: false ,
333
- previous_node_kind: "keyword_policy " . into( ) ,
334
- previous_node_range: TextRange :: new( 0 . into( ) , 0 . into( ) ) ,
335
- previous_node_text: "" . into( ) ,
336
+ previous_node_kind: "keyword_on " . into( ) ,
337
+ previous_node_range: TextRange :: new( 42 . into( ) , 44 . into( ) ) ,
338
+ previous_node_text: "on " . into( ) ,
336
339
}
337
340
) ;
338
341
@@ -357,9 +360,9 @@ mod tests {
357
360
node_kind: "" . into( ) ,
358
361
node_range: TextRange :: new( TextSize :: new( 72 ) , TextSize :: new( 86 ) ) ,
359
362
in_check_or_using_clause: false ,
360
- previous_node_kind: "keyword_policy " . into( ) ,
361
- previous_node_range: TextRange :: new( 0 . into( ) , 0 . into( ) ) ,
362
- previous_node_text: "" . into( ) ,
363
+ previous_node_kind: "" . into( ) ,
364
+ previous_node_range: TextRange :: new( 69 . into( ) , 71 . into( ) ) ,
365
+ previous_node_text: "as " . into( ) ,
363
366
}
364
367
) ;
365
368
@@ -385,9 +388,9 @@ mod tests {
385
388
node_kind: "" . into( ) ,
386
389
node_range: TextRange :: new( TextSize :: new( 95 ) , TextSize :: new( 109 ) ) ,
387
390
in_check_or_using_clause: false ,
388
- previous_node_kind: "keyword_policy " . into( ) ,
389
- previous_node_range: TextRange :: new( 0 . into( ) , 0 . into( ) ) ,
390
- previous_node_text: "" . into( ) ,
391
+ previous_node_kind: "" . into( ) ,
392
+ previous_node_range: TextRange :: new( 72 . into( ) , 82 . into( ) ) ,
393
+ previous_node_text: "permissive " . into( ) ,
391
394
}
392
395
) ;
393
396
@@ -413,9 +416,9 @@ mod tests {
413
416
node_kind: "policy_role" . into( ) ,
414
417
node_range: TextRange :: new( TextSize :: new( 98 ) , TextSize :: new( 112 ) ) ,
415
418
in_check_or_using_clause: false ,
416
- previous_node_kind: "keyword_policy " . into( ) ,
417
- previous_node_range: TextRange :: new( 0 . into( ) , 0 . into( ) ) ,
418
- previous_node_text: "" . into( ) ,
419
+ previous_node_kind: "keyword_to " . into( ) ,
420
+ previous_node_range: TextRange :: new( 95 . into( ) , 97 . into( ) ) ,
421
+ previous_node_text: "to " . into( ) ,
419
422
}
420
423
) ;
421
424
}
@@ -445,9 +448,9 @@ mod tests {
445
448
node_range: TextRange :: new( TextSize :: new( 57 ) , TextSize :: new( 71 ) ) ,
446
449
node_kind: "policy_table" . into( ) ,
447
450
in_check_or_using_clause: false ,
448
- previous_node_kind: "keyword_policy " . into( ) ,
449
- previous_node_range: TextRange :: new( 0 . into( ) , 0 . into( ) ) ,
450
- previous_node_text: "" . into( ) ,
451
+ previous_node_kind: "keyword_on " . into( ) ,
452
+ previous_node_range: TextRange :: new( 54 . into( ) , 56 . into( ) ) ,
453
+ previous_node_text: "on " . into( ) ,
451
454
}
452
455
)
453
456
}
@@ -477,9 +480,9 @@ mod tests {
477
480
node_range: TextRange :: new( TextSize :: new( 62 ) , TextSize :: new( 76 ) ) ,
478
481
node_kind: "policy_table" . into( ) ,
479
482
in_check_or_using_clause: false ,
480
- previous_node_kind: "keyword_policy " . into( ) ,
481
- previous_node_range: TextRange :: new( 0 . into( ) , 0 . into( ) ) ,
482
- previous_node_text: "" . into( ) ,
483
+ previous_node_kind: "keyword_on " . into( ) ,
484
+ previous_node_range: TextRange :: new( 54 . into( ) , 56 . into( ) ) ,
485
+ previous_node_text: "on " . into( ) ,
483
486
}
484
487
)
485
488
}
@@ -507,8 +510,8 @@ mod tests {
507
510
node_kind: "policy_name" . into( ) ,
508
511
in_check_or_using_clause: false ,
509
512
previous_node_kind: "keyword_policy" . into( ) ,
510
- previous_node_range: TextRange :: new( 0 . into( ) , 0 . into( ) ) ,
511
- previous_node_text: "" . into( ) ,
513
+ previous_node_range: TextRange :: new( 16 . into( ) , 22 . into( ) ) ,
514
+ previous_node_text: "policy " . into( ) ,
512
515
}
513
516
) ;
514
517
@@ -534,8 +537,8 @@ mod tests {
534
537
node_kind: "policy_name" . into( ) ,
535
538
in_check_or_using_clause: false ,
536
539
previous_node_kind: "keyword_policy" . into( ) ,
537
- previous_node_range: TextRange :: new( 0 . into( ) , 0 . into( ) ) ,
538
- previous_node_text: "" . into( ) ,
540
+ previous_node_range: TextRange :: new( 16 . into( ) , 22 . into( ) ) ,
541
+ previous_node_text: "policy " . into( ) ,
539
542
}
540
543
) ;
541
544
}
@@ -580,9 +583,9 @@ mod tests {
580
583
node_range: TextRange :: new( TextSize :: new( 112 ) , TextSize :: new( 126 ) ) ,
581
584
node_kind: "" . into( ) ,
582
585
in_check_or_using_clause: true ,
583
- previous_node_kind: "keyword_policy " . into( ) ,
584
- previous_node_range: TextRange :: new( 0 . into( ) , 0 . into( ) ) ,
585
- previous_node_text: "" . into( ) ,
586
+ previous_node_kind: "= " . into( ) ,
587
+ previous_node_range: TextRange :: new( 110 . into( ) , 111 . into( ) ) ,
588
+ previous_node_text: "= " . into( ) ,
586
589
}
587
590
) ;
588
591
}
@@ -611,9 +614,9 @@ mod tests {
611
614
node_range: TextRange :: new( TextSize :: new( 106 ) , TextSize :: new( 120 ) ) ,
612
615
node_kind: "" . into( ) ,
613
616
in_check_or_using_clause: true ,
614
- previous_node_kind: "keyword_policy " . into( ) ,
615
- previous_node_range: TextRange :: new( 0 . into( ) , 0 . into( ) ) ,
616
- previous_node_text: "" . into( ) ,
617
+ previous_node_kind: "( " . into( ) ,
618
+ previous_node_range: TextRange :: new( 105 . into( ) , 106 . into( ) ) ,
619
+ previous_node_text: "( " . into( ) ,
617
620
}
618
621
)
619
622
}
@@ -642,9 +645,9 @@ mod tests {
642
645
node_range: TextRange :: new( TextSize :: new( 111 ) , TextSize :: new( 125 ) ) ,
643
646
node_kind: "" . into( ) ,
644
647
in_check_or_using_clause: true ,
645
- previous_node_kind: "keyword_policy " . into( ) ,
646
- previous_node_range: TextRange :: new( 0 . into( ) , 0 . into( ) ) ,
647
- previous_node_text: "" . into( ) ,
648
+ previous_node_kind: "( " . into( ) ,
649
+ previous_node_range: TextRange :: new( 110 . into( ) , 111 . into( ) ) ,
650
+ previous_node_text: "( " . into( ) ,
648
651
}
649
652
)
650
653
}
0 commit comments