@@ -22,20 +22,17 @@ let tests =
22
22
case " .[-1]" (Pipe (Identity , Index (- 1 )));
23
23
case " .[1]" (Pipe (Identity , Index 1 ));
24
24
case " [1]" (List [ Literal (Number 1. ) ]);
25
- case " .store.books" (Pipe (Key (" store" , false ), Key (" books" , false )));
26
- case " .books[1]" (Pipe (Key (" books" , false ), Index 1 ));
27
- case " .books[1].author"
28
- (Pipe (Pipe (Key (" books" , false ), Index 1 ), Key (" author" , false )));
29
- case " .store" (Key (" store" , false ));
25
+ case " .store.books" (Pipe (Key " store" , Key " books" ));
26
+ case " .books[1]" (Pipe (Key " books" , Index 1 ));
27
+ case " .books[1].author" (Pipe (Pipe (Key " books" , Index 1 ), Key " author" ));
28
+ case " .store" (Key " store" );
30
29
case " ." Identity ;
31
- case " .store | .books" (Pipe (Key ( " store" , false ), Key ( " books" , false ) ));
30
+ case " .store | .books" (Pipe (Key " store" , Key " books" ));
32
31
case " . | map(.price + 1)"
33
- (Pipe
34
- ( Identity ,
35
- Map (Operation (Key (" price" , false ), Add , Literal (Number 1. ))) ));
36
- case " .WAT" (Key (" WAT" , false ));
32
+ (Pipe (Identity , Map (Operation (Key " price" , Add , Literal (Number 1. )))));
33
+ case " .WAT" (Key " WAT" );
37
34
case " head" Head ;
38
- case " .WAT?" (Key ( " WAT" , true ));
35
+ case " .WAT?" (Optional ( Key " WAT" ));
39
36
case " 1, 2" (Comma (Literal (Number 1. ), Literal (Number 2. )));
40
37
case " empty" Empty ;
41
38
case " (1, 2) + 3"
@@ -51,12 +48,17 @@ let tests =
51
48
case " [1, 2]" (List [ Literal (Number 1. ); Literal (Number 2. ) ]);
52
49
case " select(true)" (Select (Literal (Bool true )));
53
50
case " [1][0]" (Pipe (List [ Literal (Number 1. ) ], Index 0 ));
54
- case " [1].foo" (Pipe (List [ Literal (Number 1. ) ], Key ( " foo" , false ) ));
55
- case " (empty).foo?" (Pipe (Empty , Key ( " foo" , true )));
51
+ case " [1].foo" (Pipe (List [ Literal (Number 1. ) ], Key " foo" ));
52
+ case " (empty).foo?" (Pipe (Empty , Optional ( Key " foo" )));
56
53
case " .[1:3]" (Pipe (Identity , Slice (Some 1 , Some 3 )));
57
54
case " .[1:]" (Pipe (Identity , Slice (Some 1 , None )));
58
55
case " .[:3]" (Pipe (Identity , Slice (None , Some 3 )));
59
56
case " .[-2:]" (Pipe (Identity , Slice (Some (- 2 ), None )));
57
+ case " .[]" (Pipe (Identity , Iterator ));
58
+ case " .foo[]" (Pipe (Key " foo" , Iterator ));
59
+ case " .foo[]?" (Pipe (Key " foo" , Optional Iterator ));
60
+ case " .foo?[]" (Pipe (Optional (Key " foo" ), Iterator ));
61
+ case " .foo?[]?" (Pipe (Optional (Key " foo" ), Optional Iterator ));
60
62
case " {}" (Object [] );
61
63
case " {\" foo\" : 42, bar: [\" hello world\" , 42], user}"
62
64
(Object
0 commit comments