@@ -1524,65 +1524,61 @@ def test_syntax_error_attaching_metadata_to_unsupported_type(self, s: str):
1524
1524
read_str_first (s )
1525
1525
1526
1526
1527
- def test_comment_reader_macro ():
1528
- with pytest .raises (EOFError ):
1529
- read_str_first ("#_ (a list)" , is_eof_error = True )
1530
-
1531
- with pytest .raises (EOFError ):
1532
- read_str_first ("#_1" , is_eof_error = True )
1533
-
1534
- with pytest .raises (EOFError ):
1535
- read_str_first ('#_"string"' , is_eof_error = True )
1536
-
1537
- with pytest .raises (EOFError ):
1538
- read_str_first ("#_:keyword" , is_eof_error = True )
1539
-
1540
- with pytest .raises (EOFError ):
1541
- read_str_first ("#_symbol" , is_eof_error = True )
1542
-
1543
- with pytest .raises (EOFError ):
1544
- read_str_first ("#_[]" , is_eof_error = True )
1545
-
1546
- with pytest .raises (EOFError ):
1547
- read_str_first ("#_{}" , is_eof_error = True )
1548
-
1549
- with pytest .raises (EOFError ):
1550
- read_str_first ("#_()" , is_eof_error = True )
1551
-
1552
- with pytest .raises (EOFError ):
1553
- read_str_first ("#_#{}" , is_eof_error = True )
1554
-
1555
- assert kw .keyword ("kw2" ) == read_str_first ("#_:kw1 :kw2" )
1556
-
1557
- assert llist .EMPTY == read_str_first ("(#_sym)" )
1558
- assert llist .l (sym .symbol ("inc" ), 5 ) == read_str_first ("(inc #_counter 5)" )
1559
- assert llist .l (sym .symbol ("dec" ), 8 ) == read_str_first ("(#_inc dec #_counter 8)" )
1560
-
1561
- assert vec .EMPTY == read_str_first ("[#_m]" )
1562
- assert vec .v (1 ) == read_str_first ("[#_m 1]" )
1563
- assert vec .v (1 ) == read_str_first ("[#_m 1 #_2]" )
1564
- assert vec .v (1 , 2 ) == read_str_first ("[#_m 1 2]" )
1565
- assert vec .v (1 , 4 ) == read_str_first ("[#_m 1 #_2 4]" )
1566
- assert vec .v (1 , 4 ) == read_str_first ("[#_m 1 #_2 4 #_5]" )
1567
-
1568
- assert lset .EMPTY == read_str_first ("#{#_m}" )
1569
- assert lset .s (1 ) == read_str_first ("#{#_m 1}" )
1570
- assert lset .s (1 ) == read_str_first ("#{#_m 1 #_2}" )
1571
- assert lset .s (1 , 2 ) == read_str_first ("#{#_m 1 2}" )
1572
- assert lset .s (1 , 4 ) == read_str_first ("#{#_m 1 #_2 4}" )
1573
- assert lset .s (1 , 4 ) == read_str_first ("#{#_m 1 #_2 4 #_5}" )
1574
-
1575
- assert lmap .EMPTY == read_str_first ("{#_:key}" )
1576
- assert lmap .EMPTY == read_str_first ('{#_:key #_"value"}' )
1577
- assert lmap .map ({kw .keyword ("key" ): "value" }) == read_str_first (
1578
- '{:key #_"other" "value"}'
1527
+ class TestCommentReaderMacro :
1528
+ @pytest .mark .parametrize (
1529
+ "s" ,
1530
+ [
1531
+ "#_ (a list)" ,
1532
+ "#_1" ,
1533
+ '#_"string"' ,
1534
+ "#_:keyword" ,
1535
+ "#_symbol" ,
1536
+ "#_[]" ,
1537
+ "#_{}" ,
1538
+ "#_()" ,
1539
+ "#_#{}" ,
1540
+ "#_ #_ {} {}" ,
1541
+ ],
1579
1542
)
1580
- assert lmap .map ({kw .keyword ("key" ): "value" }) == read_str_first (
1581
- '{:key "value" #_"other"}'
1543
+ def test_comment_suppresses_form_with_eof (self , s : str ):
1544
+ with pytest .raises (EOFError ):
1545
+ read_str_first (s , is_eof_error = True )
1546
+
1547
+ @pytest .mark .parametrize (
1548
+ "s,v" ,
1549
+ [
1550
+ ("#_:kw1 :kw2" , kw .keyword ("kw2" )),
1551
+ ("#_ #_ :kw1 :kw2 :kw3" , kw .keyword ("kw3" )),
1552
+ ("(#_sym)" , llist .EMPTY ),
1553
+ ("(#_ #_ sym 1)" , llist .EMPTY ),
1554
+ ("(inc #_counter 5)" , llist .l (sym .symbol ("inc" ), 5 )),
1555
+ ("(#_inc dec #_counter 8)" , llist .l (sym .symbol ("dec" ), 8 )),
1556
+ ("[#_m]" , vec .EMPTY ),
1557
+ ("[#_m 1]" , vec .v (1 )),
1558
+ ("[#_m 1 #_2]" , vec .v (1 )),
1559
+ ("[#_m 1 2]" , vec .v (1 , 2 )),
1560
+ ("[#_m 1 #_2 4]" , vec .v (1 , 4 )),
1561
+ ("[#_m 1 #_2 4 #_5]" , vec .v (1 , 4 )),
1562
+ ("#{#_m}" , lset .EMPTY ),
1563
+ ("#{#_m 1}" , lset .s (1 )),
1564
+ ("#{#_m 1 #_2}" , lset .s (1 )),
1565
+ ("#{#_m 1 2}" , lset .s (1 , 2 )),
1566
+ ("#{#_m 1 #_2 4}" , lset .s (1 , 4 )),
1567
+ ("#{#_m 1 #_2 4 #_5}" , lset .s (1 , 4 )),
1568
+ ("{#_:key}" , lmap .EMPTY ),
1569
+ ('{#_:key #_"value"}' , lmap .EMPTY ),
1570
+ ('{#_ #_:key "value"}' , lmap .EMPTY ),
1571
+ ('{:key #_"other" "value"}' , lmap .map ({kw .keyword ("key" ): "value" })),
1572
+ ('{:key "value" #_"other"}' , lmap .map ({kw .keyword ("key" ): "value" })),
1573
+ ("{#_ #_:a 3 :b 5}" , lmap .map ({kw .keyword ("b" ): 5 })),
1574
+ ],
1582
1575
)
1576
+ def test_comment_suppresses_form_in_other_form (self , s : str , v ):
1577
+ assert v == read_str_first (s )
1583
1578
1584
- with pytest .raises (reader .SyntaxError ):
1585
- read_str_first ('{:key #_"value"}' )
1579
+ def test_comment_creates_syntax_error (self ):
1580
+ with pytest .raises (reader .SyntaxError ):
1581
+ read_str_first ('{:key #_"value"}' )
1586
1582
1587
1583
1588
1584
def test_comment_line ():
0 commit comments