forked from grain-lang/grain
-
Notifications
You must be signed in to change notification settings - Fork 0
/
parser.messages
6567 lines (6172 loc) 路 348 KB
/
parser.messages
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
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
program: YIELD
##
## Ends in an error in state: 0.
##
## program' -> . program [ # ]
##
## The known suffix of the stack is as follows:
##
##
program: EOL YIELD
##
## Ends in an error in state: 822.
##
## program -> eols . module_header eos toplevel_stmts EOF [ # ]
## program -> eols . module_header option(eos) EOF [ # ]
##
## The known suffix of the stack is as follows:
## eols
##
## WARNING: This example involves spurious reductions.
## This implies that, although the LR(1) items shown above provide an
## accurate view of the past (what has been recognized so far), they
## may provide an INCOMPLETE view of the future (what was expected next).
## In state 3, spurious reduction of production nonempty_list(eol) -> EOL
## In state 6, spurious reduction of production eols -> nonempty_list(eol)
##
program: AT LIDENT TYPE
##
## Ends in an error in state: 49.
##
## program -> option(attribute) . module_header eos toplevel_stmts EOF [ # ]
## program -> option(attribute) . module_header option(eos) EOF [ # ]
##
## The known suffix of the stack is as follows:
## option(attribute)
##
## WARNING: This example involves spurious reductions.
## This implies that, although the LR(1) items shown above provide an
## accurate view of the past (what has been recognized so far), they
## may provide an INCOMPLETE view of the future (what was expected next).
## In state 34, spurious reduction of production loption(attribute_arguments) ->
## In state 45, spurious reduction of production attribute -> AT id_str loption(attribute_arguments)
## In state 873, spurious reduction of production option(attribute) -> attribute
##
program: EOL AT LIDENT TYPE
##
## Ends in an error in state: 866.
##
## program -> eols option(attribute) . module_header eos toplevel_stmts EOF [ # ]
## program -> eols option(attribute) . module_header option(eos) EOF [ # ]
##
## The known suffix of the stack is as follows:
## eols option(attribute)
##
## WARNING: This example involves spurious reductions.
## This implies that, although the LR(1) items shown above provide an
## accurate view of the past (what has been recognized so far), they
## may provide an INCOMPLETE view of the future (what was expected next).
## In state 34, spurious reduction of production loption(attribute_arguments) ->
## In state 45, spurious reduction of production attribute -> AT id_str loption(attribute_arguments)
## In state 873, spurious reduction of production option(attribute) -> attribute
##
Expected a module header, e.g. `module Main`.
program: MODULE YIELD
##
## Ends in an error in state: 1.
##
## module_header -> MODULE . UIDENT [ SEMI EOL EOF ]
##
## The known suffix of the stack is as follows:
## MODULE
##
program: MODULE UIDENT EOL USE YIELD
##
## Ends in an error in state: 40.
##
## use_stmt -> FROM . qualified_uid USE use_shape [ THICKARROW STAR SLASH SEMI RPAREN RCARET RBRACK RBRACE PIPE LCARET INFIX_90 INFIX_80 INFIX_70 INFIX_60 INFIX_50 INFIX_40 INFIX_30 INFIX_120 INFIX_110 INFIX_100 EOL EOF ELSE DASH COMMA COLON ]
##
## The known suffix of the stack is as follows:
## FROM
##
program: MODULE UIDENT EOL MODULE YIELD
##
## Ends in an error in state: 725.
##
## module_stmt -> MODULE . UIDENT lbrace toplevel_stmts RBRACE [ SEMI RBRACE EOL EOF ]
##
## The known suffix of the stack is as follows:
## MODULE
##
program: MODULE UIDENT EOL FROM STRING INCLUDE UIDENT AS YIELD
##
## Ends in an error in state: 741.
##
## include_alias -> AS . UIDENT [ SEMI RBRACE EOL EOF ]
##
## The known suffix of the stack is as follows:
## AS
##
program: MODULE UIDENT EOL PROVIDE LBRACE MODULE YIELD
##
## Ends in an error in state: 829.
##
## provide_item -> MODULE . aliasable(uid) [ RBRACE EOL COMMA ]
##
## The known suffix of the stack is as follows:
## MODULE
##
Expected an uppercase module identifier.
program: MODULE UIDENT YIELD
##
## Ends in an error in state: 7.
##
## program -> module_header . eos toplevel_stmts EOF [ # ]
## program -> module_header . option(eos) EOF [ # ]
##
## The known suffix of the stack is as follows:
## module_header
##
program: EOL MODULE UIDENT YIELD
##
## Ends in an error in state: 823.
##
## program -> eols module_header . eos toplevel_stmts EOF [ # ]
## program -> eols module_header . option(eos) EOF [ # ]
##
## The known suffix of the stack is as follows:
## eols module_header
##
Expected a newline character to end the module statement.
program: MODULE UIDENT EOL MODULE UIDENT YIELD
##
## Ends in an error in state: 726.
##
## module_stmt -> MODULE UIDENT . lbrace toplevel_stmts RBRACE [ SEMI RBRACE EOL EOF ]
##
## The known suffix of the stack is as follows:
## MODULE UIDENT
##
Expected `{` to start the module body.
program: MODULE UIDENT EOL MODULE UIDENT LBRACE UIDENT EOF
##
## Ends in an error in state: 728.
##
## module_stmt -> MODULE UIDENT lbrace toplevel_stmts . RBRACE [ SEMI RBRACE EOL EOF ]
##
## The known suffix of the stack is as follows:
## MODULE UIDENT lbrace toplevel_stmts
##
## WARNING: This example involves spurious reductions.
## This implies that, although the LR(1) items shown above provide an
## accurate view of the past (what has been recognized so far), they
## may provide an INCOMPLETE view of the future (what was expected next).
## In state 196, spurious reduction of production qualified_uid -> lseparated_nonempty_list_inner(dot,type_id_str)
## In state 123, spurious reduction of production construct_expr -> qualified_uid
## In state 241, spurious reduction of production left_accessor_expr -> construct_expr
## In state 217, spurious reduction of production non_assign_expr -> left_accessor_expr
## In state 194, spurious reduction of production non_binop_expr -> non_assign_expr
## In state 148, spurious reduction of production annotated_expr -> non_binop_expr
## In state 250, spurious reduction of production non_stmt_expr -> annotated_expr
## In state 141, spurious reduction of production expr -> non_stmt_expr
## In state 685, spurious reduction of production toplevel_stmt -> expr
## In state 679, spurious reduction of production lseparated_nonempty_list_inner(eos,toplevel_stmt) -> toplevel_stmt
## In state 681, spurious reduction of production option(eos) ->
## In state 682, spurious reduction of production toplevel_stmts -> lseparated_nonempty_list_inner(eos,toplevel_stmt) option(eos)
##
Expected `}` to end the module body.
program: MODULE UIDENT EOL FOREIGN YIELD
##
## Ends in an error in state: 745.
##
## foreign_stmt -> FOREIGN . WASM id_str COLON typ option(as_prefix(id_str)) FROM file_path [ SEMI RBRACE EOL EOF ]
## foreign_stmt -> FOREIGN . WASM id_str COLON eols typ option(as_prefix(id_str)) FROM file_path [ SEMI RBRACE EOL EOF ]
##
## The known suffix of the stack is as follows:
## FOREIGN
##
Expected the keyword `wasm`.
program: MODULE UIDENT EOL FOREIGN WASM YIELD
##
## Ends in an error in state: 746.
##
## foreign_stmt -> FOREIGN WASM . id_str COLON typ option(as_prefix(id_str)) FROM file_path [ SEMI RBRACE EOL EOF ]
## foreign_stmt -> FOREIGN WASM . id_str COLON eols typ option(as_prefix(id_str)) FROM file_path [ SEMI RBRACE EOL EOF ]
##
## The known suffix of the stack is as follows:
## FOREIGN WASM
##
program: MODULE UIDENT EOL UIDENT COLON FUN LPAREN QUESTION YIELD
##
## Ends in an error in state: 198.
##
## arg_typ -> QUESTION . LIDENT COLON typ [ RPAREN EOL COMMA ]
## arg_typ -> QUESTION . LIDENT COLON eols typ [ RPAREN EOL COMMA ]
##
## The known suffix of the stack is as follows:
## QUESTION
##
Expected a lowercase identifier.
program: MODULE UIDENT EOL FOREIGN WASM LIDENT YIELD
##
## Ends in an error in state: 747.
##
## foreign_stmt -> FOREIGN WASM id_str . COLON typ option(as_prefix(id_str)) FROM file_path [ SEMI RBRACE EOL EOF ]
## foreign_stmt -> FOREIGN WASM id_str . COLON eols typ option(as_prefix(id_str)) FROM file_path [ SEMI RBRACE EOL EOF ]
##
## The known suffix of the stack is as follows:
## FOREIGN WASM id_str
##
Expected a colon followed by the type of the foreign value.
program: MODULE UIDENT EOL FOREIGN WASM LIDENT COLON YIELD
##
## Ends in an error in state: 748.
##
## foreign_stmt -> FOREIGN WASM id_str COLON . typ option(as_prefix(id_str)) FROM file_path [ SEMI RBRACE EOL EOF ]
## foreign_stmt -> FOREIGN WASM id_str COLON . eols typ option(as_prefix(id_str)) FROM file_path [ SEMI RBRACE EOL EOF ]
##
## The known suffix of the stack is as follows:
## FOREIGN WASM id_str COLON
##
Expected the type of the foreign value.
program: MODULE UIDENT EOL UIDENT COLON FUN LPAREN QUESTION LIDENT YIELD
##
## Ends in an error in state: 199.
##
## arg_typ -> QUESTION LIDENT . COLON typ [ RPAREN EOL COMMA ]
## arg_typ -> QUESTION LIDENT . COLON eols typ [ RPAREN EOL COMMA ]
##
## The known suffix of the stack is as follows:
## QUESTION LIDENT
##
Expected a colon followed by the type of the argument.
program: MODULE UIDENT EOL UIDENT COLON FUN LPAREN QUESTION LIDENT COLON YIELD
##
## Ends in an error in state: 200.
##
## arg_typ -> QUESTION LIDENT COLON . typ [ RPAREN EOL COMMA ]
## arg_typ -> QUESTION LIDENT COLON . eols typ [ RPAREN EOL COMMA ]
##
## The known suffix of the stack is as follows:
## QUESTION LIDENT COLON
##
program: MODULE UIDENT EOL UIDENT COLON FUN LPAREN QUESTION LIDENT COLON EOL YIELD
##
## Ends in an error in state: 202.
##
## arg_typ -> QUESTION LIDENT COLON eols . typ [ RPAREN EOL COMMA ]
##
## The known suffix of the stack is as follows:
## QUESTION LIDENT COLON eols
##
## WARNING: This example involves spurious reductions.
## This implies that, although the LR(1) items shown above provide an
## accurate view of the past (what has been recognized so far), they
## may provide an INCOMPLETE view of the future (what was expected next).
## In state 3, spurious reduction of production nonempty_list(eol) -> EOL
## In state 6, spurious reduction of production eols -> nonempty_list(eol)
##
program: MODULE UIDENT EOL UIDENT COLON FUN LPAREN LIDENT COLON YIELD
##
## Ends in an error in state: 205.
##
## arg_typ -> LIDENT COLON . typ [ RPAREN EOL COMMA ]
## arg_typ -> LIDENT COLON . eols typ [ RPAREN EOL COMMA ]
##
## The known suffix of the stack is as follows:
## LIDENT COLON
##
program: MODULE UIDENT EOL UIDENT COLON FUN LPAREN LIDENT COLON EOL YIELD
##
## Ends in an error in state: 207.
##
## arg_typ -> LIDENT COLON eols . typ [ RPAREN EOL COMMA ]
##
## The known suffix of the stack is as follows:
## LIDENT COLON eols
##
## WARNING: This example involves spurious reductions.
## This implies that, although the LR(1) items shown above provide an
## accurate view of the past (what has been recognized so far), they
## may provide an INCOMPLETE view of the future (what was expected next).
## In state 3, spurious reduction of production nonempty_list(eol) -> EOL
## In state 6, spurious reduction of production eols -> nonempty_list(eol)
##
Expected the type of the argument.
program: MODULE UIDENT EOL FOREIGN WASM LIDENT COLON UIDENT AS YIELD
##
## Ends in an error in state: 750.
##
## as_prefix(id_str) -> AS . id_str [ FROM ]
##
## The known suffix of the stack is as follows:
## AS
##
program: MODULE UIDENT EOL PROVIDE LBRACE MODULE UIDENT AS EOL YIELD
##
## Ends in an error in state: 52.
##
## as_prefix(uid) -> AS eols . uid [ RBRACE EOL COMMA ]
##
## The known suffix of the stack is as follows:
## AS eols
##
## WARNING: This example involves spurious reductions.
## This implies that, although the LR(1) items shown above provide an
## accurate view of the past (what has been recognized so far), they
## may provide an INCOMPLETE view of the future (what was expected next).
## In state 3, spurious reduction of production nonempty_list(eol) -> EOL
## In state 6, spurious reduction of production eols -> nonempty_list(eol)
##
program: MODULE UIDENT EOL PROVIDE LBRACE LIDENT AS EOL YIELD
##
## Ends in an error in state: 98.
##
## as_prefix(lid) -> AS option(eols) . lid [ RBRACE EOL COMMA ]
##
## The known suffix of the stack is as follows:
## AS option(eols)
##
## WARNING: This example involves spurious reductions.
## This implies that, although the LR(1) items shown above provide an
## accurate view of the past (what has been recognized so far), they
## may provide an INCOMPLETE view of the future (what was expected next).
## In state 3, spurious reduction of production nonempty_list(eol) -> EOL
## In state 6, spurious reduction of production eols -> nonempty_list(eol)
## In state 53, spurious reduction of production option(eols) -> eols
##
program: MODULE UIDENT EOL FOREIGN WASM LIDENT COLON UIDENT AS EOL YIELD
##
## Ends in an error in state: 755.
##
## as_prefix(id_str) -> AS option(eols) . id_str [ FROM ]
##
## The known suffix of the stack is as follows:
## AS option(eols)
##
## WARNING: This example involves spurious reductions.
## This implies that, although the LR(1) items shown above provide an
## accurate view of the past (what has been recognized so far), they
## may provide an INCOMPLETE view of the future (what was expected next).
## In state 3, spurious reduction of production nonempty_list(eol) -> EOL
## In state 6, spurious reduction of production eols -> nonempty_list(eol)
## In state 53, spurious reduction of production option(eols) -> eols
##
program: MODULE UIDENT EOL FROM STRING INCLUDE UIDENT AS EOL YIELD
##
## Ends in an error in state: 823.
##
## include_alias -> AS eols . qualified_uid [ SEMI RBRACE EOL EOF ]
##
## The known suffix of the stack is as follows:
## AS eols
##
## WARNING: This example involves spurious reductions.
## This implies that, although the LR(1) items shown above provide an
## accurate view of the past (what has been recognized so far), they
## may provide an INCOMPLETE view of the future (what was expected next).
## In state 3, spurious reduction of production nonempty_list(eol) -> EOL
## In state 6, spurious reduction of production eols -> nonempty_list(eol)
##
Expected an alias.
program: MODULE UIDENT EOL FOREIGN WASM LIDENT COLON UIDENT AS LIDENT YIELD
##
## Ends in an error in state: 752.
##
## foreign_stmt -> FOREIGN WASM id_str COLON typ option(as_prefix(id_str)) . FROM file_path [ SEMI RBRACE EOL EOF ]
##
## The known suffix of the stack is as follows:
## FOREIGN WASM id_str COLON typ option(as_prefix(id_str))
##
program: MODULE UIDENT EOL FOREIGN WASM LIDENT COLON EOL LIDENT THICKARROW
##
## Ends in an error in state: 757.
##
## foreign_stmt -> FOREIGN WASM id_str COLON eols typ . option(as_prefix(id_str)) FROM file_path [ SEMI RBRACE EOL EOF ]
##
## The known suffix of the stack is as follows:
## FOREIGN WASM id_str COLON eols typ
##
program: MODULE UIDENT EOL FOREIGN WASM LIDENT COLON EOL UIDENT AS LIDENT YIELD
##
## Ends in an error in state: 758.
##
## foreign_stmt -> FOREIGN WASM id_str COLON eols typ option(as_prefix(id_str)) . FROM file_path [ SEMI RBRACE EOL EOF ]
##
## The known suffix of the stack is as follows:
## FOREIGN WASM id_str COLON eols typ option(as_prefix(id_str))
##
program: MODULE UIDENT EOL FOREIGN WASM LIDENT COLON LIDENT THICKARROW
##
## Ends in an error in state: 749.
##
## foreign_stmt -> FOREIGN WASM id_str COLON typ . option(as_prefix(id_str)) FROM file_path [ SEMI RBRACE EOL EOF ]
##
## The known suffix of the stack is as follows:
## FOREIGN WASM id_str COLON typ
##
Expected the keyword `from` followed by an external WebAssembly namespace surrounded by `"`.
program: MODULE UIDENT EOL USE UIDENT YIELD
##
## Ends in an error in state: 42.
##
## use_stmt -> FROM qualified_uid . USE use_shape [ THICKARROW STAR SLASH SEMI RPAREN RCARET RBRACK RBRACE PIPE LCARET INFIX_90 INFIX_80 INFIX_70 INFIX_60 INFIX_50 INFIX_40 INFIX_30 INFIX_120 INFIX_110 INFIX_100 EOL EOF ELSE DASH COMMA COLON ]
##
## The known suffix of the stack is as follows:
## FROM qualified_uid
##
## WARNING: This example involves spurious reductions.
## This implies that, although the LR(1) items shown above provide an
## accurate view of the past (what has been recognized so far), they
## may provide an INCOMPLETE view of the future (what was expected next).
## In state 102, spurious reduction of production qualified_uid -> lseparated_nonempty_list_inner(dot,type_id_str)
##
Expected `.` followed by items to use surrounded by `{}` or `*` to use all bindings.
program: MODULE UIDENT EOL USE UIDENT DOT YIELD
##
## Ends in an error in state: 43.
##
## use_stmt -> FROM qualified_uid USE . use_shape [ THICKARROW STAR SLASH SEMI RPAREN RCARET RBRACK RBRACE PIPE LCARET INFIX_90 INFIX_80 INFIX_70 INFIX_60 INFIX_50 INFIX_40 INFIX_30 INFIX_120 INFIX_110 INFIX_100 EOL EOF ELSE DASH COMMA COLON ]
##
## The known suffix of the stack is as follows:
## FROM qualified_uid USE
##
program: MODULE UIDENT EOL USE UIDENT DOT EOL YIELD
##
## Ends in an error in state: 92.
##
## lseparated_nonempty_list_inner(dot,type_id_str) -> lseparated_nonempty_list_inner(dot,type_id_str) DOT eols . type_id_str [ DOT ]
## use_stmt -> USE lseparated_nonempty_list_inner(dot,type_id_str) DOT eols . use_shape [ THICKARROW STAR SLASH SEMI RPAREN RCARET RBRACK RBRACE PIPE LCARET INFIX_90 INFIX_80 INFIX_70 INFIX_60 INFIX_50 INFIX_40 INFIX_30 INFIX_120 INFIX_110 INFIX_100 EOL EOF ELSE DASH COMMA COLON AND ]
##
## The known suffix of the stack is as follows:
## USE lseparated_nonempty_list_inner(dot,type_id_str) DOT eols
##
## WARNING: This example involves spurious reductions.
## This implies that, although the LR(1) items shown above provide an
## accurate view of the past (what has been recognized so far), they
## may provide an INCOMPLETE view of the future (what was expected next).
## In state 3, spurious reduction of production nonempty_list(eol) -> EOL
## In state 6, spurious reduction of production eols -> nonempty_list(eol)
##
Expected bindings to use surrounded by `{}` or `*` to use all bindings.
program: MODULE UIDENT EOL USE UIDENT DOT LBRACE YIELD
##
## Ends in an error in state: 46.
##
## use_shape -> lbrace . option(use_items) rbrace [ THICKARROW STAR SLASH SEMI RPAREN RCARET RBRACK RBRACE PIPE LCARET INFIX_90 INFIX_80 INFIX_70 INFIX_60 INFIX_50 INFIX_40 INFIX_30 INFIX_120 INFIX_110 INFIX_100 EOL EOF ELSE DASH COMMA COLON ]
##
## The known suffix of the stack is as follows:
## lbrace
##
## WARNING: This example involves spurious reductions.
## This implies that, although the LR(1) items shown above provide an
## accurate view of the past (what has been recognized so far), they
## may provide an INCOMPLETE view of the future (what was expected next).
## In state 31, spurious reduction of production lbrace -> LBRACE
##
Expected a lowercase identifier to use a value, the keyword `module` followed by an uppercase identifier to use a module, or the keyword `type` followed by an uppercase identifier to use a type.
program: MODULE UIDENT EOL USE UIDENT DOT LBRACE TYPE YIELD
##
## Ends in an error in state: 48.
##
## use_item -> TYPE . aliasable(uid) [ RBRACE EOL COMMA ]
##
## The known suffix of the stack is as follows:
## TYPE
##
program: MODULE UIDENT EOL USE UIDENT DOT LBRACE MODULE YIELD
##
## Ends in an error in state: 57.
##
## use_item -> MODULE . aliasable(uid) [ RBRACE EOL COMMA ]
##
## The known suffix of the stack is as follows:
## MODULE
##
Expected an uppercase type identifier.
program: MODULE UIDENT EOL USE UIDENT DOT LBRACE EXCEPTION YIELD
##
## Ends in an error in state: 57.
##
## use_item -> EXCEPTION . aliasable(uid) [ RBRACE EOL COMMA ]
##
## The known suffix of the stack is as follows:
## EXCEPTION
##
Expected an uppercase exception identifier.
program: MODULE UIDENT EOL PROVIDE LBRACE MODULE UIDENT YIELD
##
## Ends in an error in state: 49.
##
## aliasable(uid) -> uid . option(as_prefix(uid)) [ RBRACE EOL COMMA ]
##
## The known suffix of the stack is as follows:
## uid
##
Expected the keyword `as` followed by a module alias, a comma followed by more items to use, or `}` to end the statement.
program: MODULE UIDENT EOL PROVIDE LBRACE MODULE UIDENT AS YIELD
##
## Ends in an error in state: 50.
##
## as_prefix(uid) -> AS . uid [ RBRACE EOL COMMA ]
## as_prefix(uid) -> AS . eols uid [ RBRACE EOL COMMA ]
##
## The known suffix of the stack is as follows:
## AS
##
Expected an uppercase module alias.
program: MODULE UIDENT EOL PROVIDE LBRACE LIDENT EOL YIELD
##
## Ends in an error in state: 60.
##
## rbrace -> eols . RBRACE [ WHEN THICKARROW STAR SLASH SEMI RPAREN RCARET RBRACK RBRACE PIPE LPAREN LCARET LBRACK INFIX_90 INFIX_80 INFIX_70 INFIX_60 INFIX_50 INFIX_40 INFIX_30 INFIX_120 INFIX_110 INFIX_100 GETS EQUAL EOL EOF ELSE DOT DASH COMMA COLON AS ]
##
## The known suffix of the stack is as follows:
## eols
##
## WARNING: This example involves spurious reductions.
## This implies that, although the LR(1) items shown above provide an
## accurate view of the past (what has been recognized so far), they
## may provide an INCOMPLETE view of the future (what was expected next).
## In state 3, spurious reduction of production nonempty_list(eol) -> EOL
## In state 6, spurious reduction of production eols -> nonempty_list(eol)
##
program: MODULE UIDENT EOL PROVIDE LBRACE LIDENT AS LIDENT YIELD
##
## Ends in an error in state: 800.
##
## provide_items -> lseparated_nonempty_list_inner(comma,provide_item) . option(comma) [ RBRACE EOL ]
## lseparated_nonempty_list_inner(comma,provide_item) -> lseparated_nonempty_list_inner(comma,provide_item) . comma provide_item [ RBRACE EOL COMMA ]
##
## The known suffix of the stack is as follows:
## lseparated_nonempty_list_inner(comma,provide_item)
##
Expected a comma followed by more items to provide or `}` to end the provide statement.
program: MODULE UIDENT EOL PROVIDE LBRACE LIDENT COMMA YIELD
##
## Ends in an error in state: 802.
##
## lseparated_nonempty_list_inner(comma,provide_item) -> lseparated_nonempty_list_inner(comma,provide_item) comma . provide_item [ RBRACE EOL COMMA ]
## option(comma) -> comma . [ RBRACE EOL ]
##
## The known suffix of the stack is as follows:
## lseparated_nonempty_list_inner(comma,provide_item) comma
##
## WARNING: This example involves spurious reductions.
## This implies that, although the LR(1) items shown above provide an
## accurate view of the past (what has been recognized so far), they
## may provide an INCOMPLETE view of the future (what was expected next).
## In state 63, spurious reduction of production comma -> COMMA
##
Expected a lowercase identifier to provide a value, the keyword `module` followed by an uppercase identifier to provide a module, the keyword `type` followed by an uppercase identifier to provide a type, or `}` to end the provide statement.
program: MODULE UIDENT EOL PROVIDE LBRACE YIELD
##
## Ends in an error in state: 795.
##
## provide_shape -> lbrace . option(provide_items) rbrace [ SEMI RBRACE EOL EOF ]
##
## The known suffix of the stack is as follows:
## lbrace
##
## WARNING: This example involves spurious reductions.
## This implies that, although the LR(1) items shown above provide an
## accurate view of the past (what has been recognized so far), they
## may provide an INCOMPLETE view of the future (what was expected next).
## In state 31, spurious reduction of production lbrace -> LBRACE
##
Expected a lowercase identifier to provide a value, the keyword `module` followed by an uppercase identifier to provide a module, or the keyword `type` followed by an uppercase identifier to provide a type.
program: MODULE UIDENT EOL PROVIDE LBRACE TYPE YIELD
##
## Ends in an error in state: 796.
##
## provide_item -> TYPE . aliasable(uid) [ RBRACE EOL COMMA ]
##
## The known suffix of the stack is as follows:
## TYPE
##
Expected a type identifier to provide.
program: MODULE UIDENT EOL PROVIDE LBRACE EXCEPTION YIELD
##
## Ends in an error in state: 825.
##
## provide_item -> EXCEPTION . aliasable(uid) [ RBRACE EOL COMMA ]
##
## The known suffix of the stack is as follows:
## EXCEPTION
##
Expected an exception identifier to provide.
program: MODULE UIDENT EOL USE UIDENT DOT LBRACE LIDENT AS LIDENT YIELD
##
## Ends in an error in state: 62.
##
## lseparated_nonempty_list_inner(comma,use_item) -> lseparated_nonempty_list_inner(comma,use_item) . comma use_item [ RBRACE EOL COMMA ]
## use_items -> lseparated_nonempty_list_inner(comma,use_item) . option(comma) [ RBRACE EOL ]
##
## The known suffix of the stack is as follows:
## lseparated_nonempty_list_inner(comma,use_item)
##
Expected a comma followed by more items to use or `}` to end the statement.
program: MODULE UIDENT EOL PROVIDE LBRACE LIDENT YIELD
##
## Ends in an error in state: 94.
##
## aliasable(lid) -> lid . option(as_prefix(lid)) [ RBRACE EOL COMMA ]
##
## The known suffix of the stack is as follows:
## lid
##
Expected the keyword `as` followed by an alias, a comma followed by more items to provide, or `}` to end the statement.
program: MODULE UIDENT EOL PROVIDE LBRACE LIDENT AS YIELD
##
## Ends in an error in state: 95.
##
## as_prefix(lid) -> AS . lid [ RBRACE EOL COMMA ]
##
## The known suffix of the stack is as follows:
## AS
##
Expected a lowercase alias.
program: MODULE UIDENT EOL USE UIDENT DOT LBRACE LIDENT COMMA YIELD
##
## Ends in an error in state: 66.
##
## lseparated_nonempty_list_inner(comma,use_item) -> lseparated_nonempty_list_inner(comma,use_item) comma . use_item [ RBRACE EOL COMMA ]
## option(comma) -> comma . [ RBRACE EOL ]
##
## The known suffix of the stack is as follows:
## lseparated_nonempty_list_inner(comma,use_item) comma
##
## WARNING: This example involves spurious reductions.
## This implies that, although the LR(1) items shown above provide an
## accurate view of the past (what has been recognized so far), they
## may provide an INCOMPLETE view of the future (what was expected next).
## In state 63, spurious reduction of production comma -> COMMA
##
Expected a lowercase identifier to use a value, the keyword `module` followed by an uppercase identifier to use a module, the keyword `type` followed by an uppercase identifier to use a type, or `}` to end the use statement.
program: MODULE UIDENT EOL ASSERT WHEN
##
## Ends in an error in state: 38.
##
## stmt_expr -> ASSERT . expr [ THICKARROW STAR SLASH SEMI RPAREN RCARET RBRACK RBRACE PIPE LCARET INFIX_90 INFIX_80 INFIX_70 INFIX_60 INFIX_50 INFIX_40 INFIX_30 INFIX_120 INFIX_110 INFIX_100 EOL EOF ELSE DASH COMMA COLON ]
##
## The known suffix of the stack is as follows:
## ASSERT
##
Expected an expression after `assert`.
program: MODULE UIDENT EOL AT LIDENT EOL WHILE
##
## Ends in an error in state: 439.
##
## list(attribute) -> attribute . list(attribute) [ TYPE RECORD LET INCLUDE PROVIDE ENUM ]
##
## The known suffix of the stack is as follows:
## attribute
##
## WARNING: This example involves spurious reductions.
## This implies that, although the LR(1) items shown above provide an
## accurate view of the past (what has been recognized so far), they
## may provide an INCOMPLETE view of the future (what was expected next).
## In state 3, spurious reduction of production nonempty_list(eol) -> EOL
## In state 5, spurious reduction of production eols -> nonempty_list(eol)
## In state 195, spurious reduction of production attribute -> AT id_str loption(attribute_arguments) eols
##
program: MODULE UIDENT EOL AT LIDENT WHILE
##
## Ends in an error in state: 185.
##
## attribute -> AT id_str . loption(attribute_arguments) [ TYPE RECORD LET INCLUDE PROVIDE ENUM AT ]
## attribute -> AT id_str . loption(attribute_arguments) eols [ TYPE RECORD LET INCLUDE PROVIDE ENUM AT ]
##
## The known suffix of the stack is as follows:
## AT id_str
##
program: MODULE UIDENT EOL AT WHILE
##
## Ends in an error in state: 184.
##
## attribute -> AT . id_str loption(attribute_arguments) [ TYPE RECORD LET INCLUDE PROVIDE ENUM AT ]
## attribute -> AT . id_str loption(attribute_arguments) eols [ TYPE RECORD LET INCLUDE PROVIDE ENUM AT ]
##
## The known suffix of the stack is as follows:
## AT
##
program: MODULE UIDENT EOL AT LIDENT LPAREN RPAREN WHILE
##
## Ends in an error in state: 194.
##
## attribute -> AT id_str loption(attribute_arguments) . [ TYPE RECORD LET INCLUDE PROVIDE ENUM AT ]
## attribute -> AT id_str loption(attribute_arguments) . eols [ TYPE RECORD LET INCLUDE PROVIDE ENUM AT ]
##
## The known suffix of the stack is as follows:
## AT id_str loption(attribute_arguments)
##
Attributes are only allowed on let bindings, type declarations, and foreign statements.
program: MODULE UIDENT EOL AT LIDENT LPAREN STRING COMMA WHILE
##
## Ends in an error in state: 191.
##
## lseparated_nonempty_list_inner(comma,attribute_argument) -> lseparated_nonempty_list_inner(comma,attribute_argument) comma . attribute_argument [ RPAREN EOL COMMA ]
##
## The known suffix of the stack is as follows:
## lseparated_nonempty_list_inner(comma,attribute_argument) comma
##
## WARNING: This example involves spurious reductions.
## This implies that, although the LR(1) items shown above provide an
## accurate view of the past (what has been recognized so far), they
## may provide an INCOMPLETE view of the future (what was expected next).
## In state 95, spurious reduction of production comma -> COMMA
##
program: MODULE UIDENT EOL AT LIDENT LPAREN WHILE
##
## Ends in an error in state: 186.
##
## attribute_arguments -> lparen . rparen [ TYPE RECORD LET INCLUDE PROVIDE EOL ENUM AT ]
## attribute_arguments -> lparen . lseparated_nonempty_list_inner(comma,attribute_argument) rparen [ TYPE RECORD LET INCLUDE PROVIDE EOL ENUM AT ]
##
## The known suffix of the stack is as follows:
## lparen
##
## WARNING: This example involves spurious reductions.
## This implies that, although the LR(1) items shown above provide an
## accurate view of the past (what has been recognized so far), they
## may provide an INCOMPLETE view of the future (what was expected next).
## In state 2, spurious reduction of production lparen -> LPAREN
##
Expected a string.
program: MODULE UIDENT EOL AT LIDENT LPAREN STRING WHILE
##
## Ends in an error in state: 189.
##
## attribute_arguments -> lparen lseparated_nonempty_list_inner(comma,attribute_argument) . rparen [ TYPE RECORD LET INCLUDE PROVIDE EOL ENUM AT ]
## lseparated_nonempty_list_inner(comma,attribute_argument) -> lseparated_nonempty_list_inner(comma,attribute_argument) . comma attribute_argument [ RPAREN EOL COMMA ]
##
## The known suffix of the stack is as follows:
## lparen lseparated_nonempty_list_inner(comma,attribute_argument)
##
Expected a comma followed by more attribute parameters or `)` to complete the attribute.
program: MODULE UIDENT EOL DASH WHILE
##
## Ends in an error in state: 50.
##
## const -> option(DASH) . NUMBER_INT [ THICKARROW STAR SLASH SEMI RPAREN RCARET RBRACK RBRACE PIPE LPAREN LCARET LBRACK INFIX_90 INFIX_80 INFIX_70 INFIX_60 INFIX_50 INFIX_40 INFIX_30 INFIX_120 INFIX_110 INFIX_100 GETS EOL EOF ELSE DOT DASH COMMA COLON ]
## const -> option(DASH) . NUMBER_FLOAT [ THICKARROW STAR SLASH SEMI RPAREN RCARET RBRACK RBRACE PIPE LPAREN LCARET LBRACK INFIX_90 INFIX_80 INFIX_70 INFIX_60 INFIX_50 INFIX_40 INFIX_30 INFIX_120 INFIX_110 INFIX_100 GETS EOL EOF ELSE DOT DASH COMMA COLON ]
## const -> option(DASH) . INT32 [ THICKARROW STAR SLASH SEMI RPAREN RCARET RBRACK RBRACE PIPE LPAREN LCARET LBRACK INFIX_90 INFIX_80 INFIX_70 INFIX_60 INFIX_50 INFIX_40 INFIX_30 INFIX_120 INFIX_110 INFIX_100 GETS EOL EOF ELSE DOT DASH COMMA COLON ]
## const -> option(DASH) . INT64 [ THICKARROW STAR SLASH SEMI RPAREN RCARET RBRACK RBRACE PIPE LPAREN LCARET LBRACK INFIX_90 INFIX_80 INFIX_70 INFIX_60 INFIX_50 INFIX_40 INFIX_30 INFIX_120 INFIX_110 INFIX_100 GETS EOL EOF ELSE DOT DASH COMMA COLON ]
## const -> option(DASH) . FLOAT32 [ THICKARROW STAR SLASH SEMI RPAREN RCARET RBRACK RBRACE PIPE LPAREN LCARET LBRACK INFIX_90 INFIX_80 INFIX_70 INFIX_60 INFIX_50 INFIX_40 INFIX_30 INFIX_120 INFIX_110 INFIX_100 GETS EOL EOF ELSE DOT DASH COMMA COLON ]
## const -> option(DASH) . FLOAT64 [ THICKARROW STAR SLASH SEMI RPAREN RCARET RBRACK RBRACE PIPE LPAREN LCARET LBRACK INFIX_90 INFIX_80 INFIX_70 INFIX_60 INFIX_50 INFIX_40 INFIX_30 INFIX_120 INFIX_110 INFIX_100 GETS EOL EOF ELSE DOT DASH COMMA COLON ]
## const -> option(DASH) . WASMI32 [ THICKARROW STAR SLASH SEMI RPAREN RCARET RBRACK RBRACE PIPE LPAREN LCARET LBRACK INFIX_90 INFIX_80 INFIX_70 INFIX_60 INFIX_50 INFIX_40 INFIX_30 INFIX_120 INFIX_110 INFIX_100 GETS EOL EOF ELSE DOT DASH COMMA COLON ]
## const -> option(DASH) . WASMI64 [ THICKARROW STAR SLASH SEMI RPAREN RCARET RBRACK RBRACE PIPE LPAREN LCARET LBRACK INFIX_90 INFIX_80 INFIX_70 INFIX_60 INFIX_50 INFIX_40 INFIX_30 INFIX_120 INFIX_110 INFIX_100 GETS EOL EOF ELSE DOT DASH COMMA COLON ]
## const -> option(DASH) . WASMF32 [ THICKARROW STAR SLASH SEMI RPAREN RCARET RBRACK RBRACE PIPE LPAREN LCARET LBRACK INFIX_90 INFIX_80 INFIX_70 INFIX_60 INFIX_50 INFIX_40 INFIX_30 INFIX_120 INFIX_110 INFIX_100 GETS EOL EOF ELSE DOT DASH COMMA COLON ]
## const -> option(DASH) . WASMF64 [ THICKARROW STAR SLASH SEMI RPAREN RCARET RBRACK RBRACE PIPE LPAREN LCARET LBRACK INFIX_90 INFIX_80 INFIX_70 INFIX_60 INFIX_50 INFIX_40 INFIX_30 INFIX_120 INFIX_110 INFIX_100 GETS EOL EOF ELSE DOT DASH COMMA COLON ]
## const -> option(DASH) . BIGINT [ THICKARROW STAR SLASH SEMI RPAREN RCARET RBRACK RBRACE PIPE LPAREN LCARET LBRACK INFIX_90 INFIX_80 INFIX_70 INFIX_60 INFIX_50 INFIX_40 INFIX_30 INFIX_120 INFIX_110 INFIX_100 GETS EOL EOF ELSE DOT DASH COMMA COLON ]
##
## The known suffix of the stack is as follows:
## option(DASH)
##
Expected a number to follow the minus sign.
program: MODULE UIDENT EOL ENUM UIDENT LBRACE UIDENT COMMA EOL WHILE
##
## Ends in an error in state: 956.
##
## lseparated_nonempty_list_inner(comma,data_constructor) -> lseparated_nonempty_list_inner(comma,data_constructor) comma . data_constructor [ RBRACE EOL COMMA ]
## option(comma) -> comma . [ RBRACE EOL ]
##
## The known suffix of the stack is as follows:
## lseparated_nonempty_list_inner(comma,data_constructor) comma
##
## WARNING: This example involves spurious reductions.
## This implies that, although the LR(1) items shown above provide an
## accurate view of the past (what has been recognized so far), they
## may provide an INCOMPLETE view of the future (what was expected next).
## In state 3, spurious reduction of production nonempty_list(eol) -> EOL
## In state 5, spurious reduction of production eols -> nonempty_list(eol)
## In state 96, spurious reduction of production comma -> COMMA eols
##
Expected a variant definition or `}` to complete the enum declaration.
program: MODULE UIDENT EOL ENUM UIDENT LBRACE UIDENT LPAREN UIDENT RCARET
##
## Ends in an error in state: 951.
##
## data_constructor -> UIDENT lparen option(typs) . rparen [ RBRACE EOL COMMA ]
##
## The known suffix of the stack is as follows:
## UIDENT lparen option(typs)
##
## WARNING: This example involves spurious reductions.
## This implies that, although the LR(1) items shown above provide an
## accurate view of the past (what has been recognized so far), they
## may provide an INCOMPLETE view of the future (what was expected next).
## In state 89, spurious reduction of production type_id -> lseparated_nonempty_list_inner(dot,type_id_str)
## In state 79, spurious reduction of production data_typ -> type_id
## In state 106, spurious reduction of production typ -> data_typ
## In state 88, spurious reduction of production lseparated_nonempty_list_inner(comma,typ) -> typ
## In state 94, spurious reduction of production option(comma) ->
## In state 97, spurious reduction of production typs -> lseparated_nonempty_list_inner(comma,typ) option(comma)
## In state 119, spurious reduction of production option(typs) -> typs
##
Expected type parameters surrounded by `<`/`>`, a comma followed by more types, a dot followed by an identifier, or `)` to complete the variant definition.
program: MODULE UIDENT EOL ENUM UIDENT LBRACE UIDENT LPAREN WHILE
##
## Ends in an error in state: 950.
##
## data_constructor -> UIDENT lparen . option(typs) rparen [ RBRACE EOL COMMA ]
##
## The known suffix of the stack is as follows:
## UIDENT lparen
##
## WARNING: This example involves spurious reductions.
## This implies that, although the LR(1) items shown above provide an
## accurate view of the past (what has been recognized so far), they
## may provide an INCOMPLETE view of the future (what was expected next).
## In state 2, spurious reduction of production lparen -> LPAREN
##
Expected one or more types to complete the variant definition.
program: MODULE UIDENT EOL TYPE UIDENT EQUAL UIDENT AND YIELD
##
## Ends in an error in state: 860.
##
## separated_nonempty_list(AND,data_declaration_stmt) -> data_declaration_stmt AND . separated_nonempty_list(AND,data_declaration_stmt) [ SEMI RBRACE EOL EOF ]
##
## The known suffix of the stack is as follows:
## data_declaration_stmt AND
##
program: MODULE UIDENT EOL TYPE UIDENT EQUAL UIDENT AND PROVIDE YIELD
##
## Ends in an error in state: 861.
##
## data_declaration_stmt -> PROVIDE . data_declaration [ SEMI RBRACE EOL EOF AND ]
##
## The known suffix of the stack is as follows:
## PROVIDE
##
Mutually recursive type declarations are separated by `and`, but cannot be mixed with other kinds of expressions.
program: MODULE UIDENT EOL TYPE REC YIELD
##
## Ends in an error in state: 744.
##
## data_declaration -> TYPE option(rec_flag) . UIDENT option(id_vec) equal typ [ SEMI RBRACE EOL EOF COMMA ]
##
## The known suffix of the stack is as follows:
## TYPE option(rec_flag)
##
Expected a capitalized type name.
program: MODULE UIDENT EOL ENUM UIDENT LBRACE UIDENT WHILE
##
## Ends in an error in state: 949.
##
## data_constructor -> UIDENT . [ RBRACE EOL COMMA ]
## data_constructor -> UIDENT . lparen option(typs) rparen [ RBRACE EOL COMMA ]
##
## The known suffix of the stack is as follows:
## UIDENT
##
Expected `(` followed by comma-separated types, a comma followed by more variants, or `}` to complete the enum declaration.
program: MODULE UIDENT EOL ENUM UIDENT LBRACE WHILE
##
## Ends in an error in state: 948.
##
## data_constructors -> lbrace . lseparated_nonempty_list_inner(comma,data_constructor) option(comma) rbrace [ SEMI EOL EOF COMMA ]
##
## The known suffix of the stack is as follows:
## lbrace
##
## WARNING: This example involves spurious reductions.
## This implies that, although the LR(1) items shown above provide an
## accurate view of the past (what has been recognized so far), they
## may provide an INCOMPLETE view of the future (what was expected next).
## In state 21, spurious reduction of production lbrace -> LBRACE
##
Expected a capitalized variant name.
program: MODULE UIDENT EOL ENUM UIDENT LBRACE UIDENT RBRACE WHILE
##
## Ends in an error in state: 985.
##
## separated_nonempty_list(comma,data_declaration_stmt) -> data_declaration_stmt . [ SEMI EOL EOF ]
## separated_nonempty_list(comma,data_declaration_stmt) -> data_declaration_stmt . comma separated_nonempty_list(comma,data_declaration_stmt) [ SEMI EOL EOF ]
##
## The known suffix of the stack is as follows:
## data_declaration_stmt
##
Expected `and` followed by more mutually-recursive type declarations or a newline character to complete the current one.
program: MODULE UIDENT EOL ENUM UIDENT LCARET LIDENT RCARET INFIX_80
##
## Ends in an error in state: 947.
##
## data_declaration -> ENUM UIDENT option(id_vec) . data_constructors [ SEMI EOL EOF COMMA ]
##
## The known suffix of the stack is as follows:
## ENUM UIDENT option(id_vec)
##
Expected `{` followed by comma-separated variants.
program: MODULE UIDENT EOL ENUM UIDENT WHILE
##
## Ends in an error in state: 946.
##
## data_declaration -> ENUM UIDENT . option(id_vec) data_constructors [ SEMI EOL EOF COMMA ]
##
## The known suffix of the stack is as follows:
## ENUM UIDENT
##
Expected type parameters surrounded by angle brackets or `{` followed by comma-separated variants.
program: MODULE UIDENT EOL TYPE UIDENT WHILE
##
## Ends in an error in state: 831.
##
## data_declaration -> TYPE UIDENT . option(id_vec) equal typ [ SEMI EOL EOF COMMA ]
##
## The known suffix of the stack is as follows:
## TYPE UIDENT
##
Expected type parameters surrounded by angle brackets or `=` followed by a type.