Commit 5da269411e90e3e7a5ce35bb223b8ee9391fb8fb

Thomas de Grivel 2023-07-25T23:08:48

remove whitespace from ic3

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
diff --git a/ic3/ic3.c b/ic3/ic3.c
index 8d723a8..54abfce 100644
--- a/ic3/ic3.c
+++ b/ic3/ic3.c
@@ -34,6 +34,30 @@ sw buf_ignore_character (s_buf *buf)
   return csize;
 }
 
+sw ic3_buf_ignore_spaces (s_buf *out, s_buf *in)
+{
+  character c;
+  sw csize;
+  sw r;
+  sw result = 0;
+  assert(in);
+  assert(out);
+  while ((r = buf_peek_character_utf8(in, &c)) > 0 &&
+         c >= 0 &&
+         c < UCD_MAX &&
+         g_ucd[c].flags & (UCD_OTHER_CONTROL | UCD_SEPARATOR_SPACE)) {
+    csize = r;
+    if ((r = buf_ignore(in, csize)) != csize)
+      return -1;
+    result += csize;
+    if ((r = buf_flush(out)) < 0)
+      return -1;
+  }
+  if (r < 0)
+    return r;
+  return result;
+}
+
 sw buf_xfer_spaces (s_buf *out, s_buf *in)
 {
   character c;
@@ -75,7 +99,7 @@ int main (int argc, char **argv)
   in.line = 0;
   buf_init(&out, false, sizeof(o), o);
   buf_file_open_w(&out, stdout);
-  while ((r = buf_xfer_spaces(&out, &in)) >= 0) {
+  while ((r = ic3_buf_ignore_spaces(&out, &in)) >= 0) {
     if ((r = buf_parse_tag(&in, &input)) > 0) {
       if (! eval_tag(&input, &result)) {
         tag_clean(&input);
diff --git a/test/ic3/array.out.expected b/test/ic3/array.out.expected
index 38cf4e8..ebe727d 100644
--- a/test/ic3/array.out.expected
+++ b/test/ic3/array.out.expected
@@ -1,6 +1,3 @@
 (u8) {0, 1}
-
 (u8) {{0, 1}, {2, 3}}
-
 (u8) {{{0, 1}, {2, 3}}, {{4, 5}, {6, 7}}}
-
diff --git a/test/ic3/bool.out.expected b/test/ic3/bool.out.expected
index 4e01ccd..b93975a 100644
--- a/test/ic3/bool.out.expected
+++ b/test/ic3/bool.out.expected
@@ -1,11 +1,7 @@
 true
-
 false
-
 true
-
 false
-
 false
 false
 false
@@ -15,6 +11,4 @@ true
 true
 true
 true
-
 false
-
diff --git a/test/ic3/call.out.expected b/test/ic3/call.out.expected
index 23cb720..500214c 100644
--- a/test/ic3/call.out.expected
+++ b/test/ic3/call.out.expected
@@ -1,25 +1,12 @@
 quote test()
-
 quote test(1)
-
 quote test(1, 2)
-
 quote test(1, 2, 3)
-
 quote Test.test()
-
 quote Test.test(1)
-
 quote Test.test(1, 2)
-
 quote Test.test(1, 2, 3)
-
 quote first((1, 2))
-
 quote C3.first((1, 2))
-
-
 1
-
 2
-
diff --git a/test/ic3/character.out.expected b/test/ic3/character.out.expected
index edd82e2..94813fc 100644
--- a/test/ic3/character.out.expected
+++ b/test/ic3/character.out.expected
@@ -1,28 +1,14 @@
 '0'
-
 '9'
-
 'A'
-
 'Z'
-
 'a'
-
 'z'
-
 'Π'
-
 'ÿ'
-
 '꒴'
-
 '𐅀'
-
 '🎳'
-
 '😄'
-
 '🟣'
-
 '🤩'
-
diff --git a/test/ic3/comment.out.expected b/test/ic3/comment.out.expected
index ccb7a93..9df02fe 100644
--- a/test/ic3/comment.out.expected
+++ b/test/ic3/comment.out.expected
@@ -1,6 +1,3 @@
 "a"
-
 "b"
-
 "c"
-
diff --git a/test/ic3/fn.out.expected b/test/ic3/fn.out.expected
index 5d24ef1..f812d11 100644
--- a/test/ic3/fn.out.expected
+++ b/test/ic3/fn.out.expected
@@ -1,26 +1,18 @@
 quote fn (x) { x }
-
 quote fn (x, _y) { x }
-
 quote fn ((x | _y)) { x }
-
 quote fn {
   (()) { :error }
   ((x | _y)) { x }
   (_) { :error }
 }
 
-
 fn (x) { x }
-
 fn (x, _y) { x }
-
 fn ((x | _y)) { x }
-
 fn {
   (()) { :error }
   ((x | _y)) { x }
   (_) { :error }
 }
 
-
diff --git a/test/ic3/hello.out.expected b/test/ic3/hello.out.expected
index ced139d..68b3cbd 100644
--- a/test/ic3/hello.out.expected
+++ b/test/ic3/hello.out.expected
@@ -1,2 +1 @@
 "Hello, world !"
-
diff --git a/test/ic3/ident.out.expected b/test/ic3/ident.out.expected
index 5221f31..fd4c50b 100644
--- a/test/ic3/ident.out.expected
+++ b/test/ic3/ident.out.expected
@@ -1,54 +1,27 @@
 quote _" "
-
 quote _"\n"
-
 quote _"\0"
-
 quote _"\n"
-
 quote _"\r"
-
 quote _" "
-
 quote _"\t"
-
 quote _"\v"
-
 quote _0
-
 quote _9
-
 quote _A
-
 quote _Z
-
 quote a
-
 quote z
-
 quote _À
-
 quote _É
-
 quote _Ÿ
-
 quote à
-
 quote é
-
 quote ÿ
-
 quote _Π
-
 quote ꒴
-
 quote 𐅀
-
 quote 🎳
-
 quote 😄
-
 quote 🟣
-
 quote 🤩
-
diff --git a/test/ic3/integer.out.expected b/test/ic3/integer.out.expected
index fc42495..2e5bf73 100644
--- a/test/ic3/integer.out.expected
+++ b/test/ic3/integer.out.expected
@@ -1,153 +1,70 @@
 0
-
 1
-
 18
-
 291
-
 4660
-
 74565
-
 1193046
-
 19088743
-
 305419896
-
 4886718345
-
 78187493530
-
 1250999896491
-
 20015998343868
-
 320255973501901
-
 5124095576030430
-
 81985529216486895
-
 1311768467463790320
-
 24197857203266734864793317670504947440
-
 446371678960830626287503741310750946166416432579510853360
-
 8234104123542484900769178205574010627627573691361805720124810878238590820080
-
-
 0
-
 -1
-
 -18
-
 -291
-
 -4660
-
 -74565
-
 -1193046
-
 -19088743
-
 -305419896
-
 -4886718345
-
 -78187493530
-
 -1250999896491
-
 -20015998343868
-
 -320255973501901
-
 -5124095576030430
-
 -81985529216486895
-
 -1311768467463790320
-
 -24197857203266734864793317670504947440
-
 -446371678960830626287503741310750946166416432579510853360
-
 -8234104123542484900769178205574010627627573691361805720124810878238590820080
-
-
 0
-
 0
-
 1
-
 -1
-
 2
-
 -2
-
-
 1234567890
-
 -1234567890
-
 12345678901234567890
-
 -12345678901234567890
-
 123456789012345678901234567890
-
 -123456789012345678901234567890
-
 1234567890123456789012345678901234567890
-
 -1234567890123456789012345678901234567890
-
 12345678901234567890123456789012345678901234567890
-
 -12345678901234567890123456789012345678901234567890
-
 123456789012345678901234567890123456789012345678901234567890
-
 -123456789012345678901234567890123456789012345678901234567890
-
 1234567890123456789012345678901234567890123456789012345678901234567890
-
 -1234567890123456789012345678901234567890123456789012345678901234567890
-
-
 12345678901234567890123456789012345678901234567890123456789012345678901234567890
-
-
 -12345678901234567890123456789012345678901234567890123456789012345678901234567890
-
-
 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
-
-
 -123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
-
-
 1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
-
-
 -1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
-
-
 1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
-
-
 -1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
-
-
 1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
-
-
 -1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
-
diff --git a/test/ic3/list.out.expected b/test/ic3/list.out.expected
index d85228a..c512c93 100644
--- a/test/ic3/list.out.expected
+++ b/test/ic3/list.out.expected
@@ -1,45 +1,22 @@
 ()
-
 (())
-
 ((), ())
-
 ((), (), ())
-
 ((), (), (), ())
-
 ((), ())
-
 ((), (), ())
-
 ((), (), ())
-
 ((), (), (), ())
-
 ((), ())
-
 ((), (), ())
-
 ((), (), (), ())
-
 (((), ()), (), ())
-
 ((()), ())
-
 (a)
-
 (a, b)
-
 (a, b, c)
-
 (a | b)
-
 (a, b | c)
-
 (a, b, c, d)
-
 (a, b, c | d)
-
-
 (a, b, c | d)
-
diff --git a/test/ic3/str.out.expected b/test/ic3/str.out.expected
index a43e62a..769ed5e 100644
--- a/test/ic3/str.out.expected
+++ b/test/ic3/str.out.expected
@@ -1,70 +1,33 @@
 " "
-
 "\n"
-
 "\0"
-
 "\n"
-
 "\r"
-
 " "
-
 "\t"
-
 "\v"
-
 "0"
-
 "9"
-
 "A"
-
 "Z"
-
 "a"
-
 "z"
-
 "À"
-
 "É"
-
 "Ÿ"
-
 "à"
-
 "é"
-
 "ÿ"
-
 "Π"
-
 "꒴"
-
 "𐅀"
-
 "🎳"
-
 "😄"
-
 "🟣"
-
 "🤩"
-
 "abc"
-
 "abc"
-
-
 "abc\ndef"
-
-
 "abc\ndef\n"
-
-
 "abc\ndef"
-
-
 "abc\ndef"
-
diff --git a/test/ic3/sym.out.expected b/test/ic3/sym.out.expected
index 7f7d7cd..b175d40 100644
--- a/test/ic3/sym.out.expected
+++ b/test/ic3/sym.out.expected
@@ -1,54 +1,27 @@
 :" "
-
 :"\n"
-
 :"\0"
-
 :"\n"
-
 :"\r"
-
 :" "
-
 :"\t"
-
 :"\v"
-
 :0
-
 :9
-
 A
-
 Z
-
 :a
-
 :z
-
 À
-
 É
-
 Ÿ
-
 :à
-
 :é
-
 :ÿ
-
 Π
-
 :꒴
-
 :𐅀
-
 :🎳
-
 :😄
-
 :🟣
-
 :🤩
-
diff --git a/test/ic3/tuple.out.expected b/test/ic3/tuple.out.expected
index 1a8ea5f..f3b386b 100644
--- a/test/ic3/tuple.out.expected
+++ b/test/ic3/tuple.out.expected
@@ -1,39 +1,19 @@
 {(), ()}
-
 {"", ""}
-
 {(), ""}
-
 {"", ()}
-
 {:a, :b}
-
 {:a, :b, :c}
-
 {:a, :b, :c, :d}
-
 {:a, :b, :c, :d, :e}
-
 {:a, :b, :c, :d, :e, :f}
-
 {:a, :b, :c, :d, :e, :f, :g}
-
 {:a, :b, :c, :d, :e, :f, :g, :h}
-
 {:a, :b, :c, :d, :e, :f, :g, :h, :i}
-
 {:a, :b, :c, :d, :e, :f, :g, :h, :i, :j}
-
 {{:a, :b}, {:c, :d}}
-
 {{:a, :b}, {:c, :d}, {:e, :f}}
-
 {{:a, :b}, {:c, :d}, {:e, :f}, {:g, :h}}
-
 {{:a, :b}, {:c, :d}, {:e, :f}, {:g, :h}, {:i, :j}}
-
-
 {:a, :b, :c}
-
 {a, b, c}
-