@@ -420,55 +420,53 @@ def zilch_integer():
420
420
421
421
return mk_diagram2 ('integer' , inner )
422
422
423
+
423
424
def zilch_function_type ():
424
425
inner = Sequence (
425
426
Choice (
426
- 1 ,
427
- NonTerminal ('atomic-type' ),
428
- Sequence (
429
- Terminal ('(' ),
430
- ZeroOrMore (
431
- NonTerminal ('type' ),
432
- Terminal (',' )
433
- ),
434
- Terminal (')' )
435
- )
436
- ),
437
- HorizontalChoice (
438
- Terminal ('->' ),
439
- Terminal ('→' )
440
- ),
441
- Choice (
442
- 1 ,
443
- Skip (),
444
- NonTerminal ('identifier' ),
445
- NonTerminal ('effect-row' )
446
- ),
447
- NonTerminal ('type' )
448
- )
427
+ 1 , NonTerminal ('atomic-type' ),
428
+ Sequence (Terminal ('(' ), ZeroOrMore (NonTerminal ('type' ), Terminal (',' )),
429
+ Terminal (')' ))), HorizontalChoice (Terminal ('->' ),
430
+ Terminal ('→' )),
431
+ Choice (1 , Skip (), NonTerminal ('identifier' ), NonTerminal ('effect-row' )),
432
+ NonTerminal ('type' ))
449
433
450
434
return mk_diagram2 ('function-type' , inner )
451
435
436
+
452
437
def zilch_effect_row ():
453
438
inner = Sequence (
454
- Terminal ('<' ),
455
- ZeroOrMore (
456
- NonTerminal ('type' ),
457
- Terminal (',' )
458
- ),
439
+ Terminal ('<' ), ZeroOrMore (NonTerminal ('type' ), Terminal (',' )),
459
440
Optional (
460
- Sequence (
461
- Terminal ('|' ),
462
- OneOrMore (
463
- NonTerminal ('identifier' ),
464
- Terminal (',' )
465
- )
466
- )
467
- ),
468
- Terminal ('>' )
469
- )
441
+ Sequence (Terminal ('|' ),
442
+ OneOrMore (NonTerminal ('identifier' ), Terminal (',' )))),
443
+ Terminal ('>' ))
470
444
471
445
return mk_diagram2 ('effect-row' , inner )
472
446
473
447
474
- zilch_effect_row ().writeSvg (sys .stdout .write )
448
+ def zilch_import ():
449
+ inner = Stack (
450
+ Sequence (Optional (Terminal ('open' )), Terminal ('import' ),
451
+ OneOrMore (NonTerminal ('identifier' ), Terminal ('::' ))),
452
+ Sequence (
453
+ Optional (Sequence (Terminal ('as' ), NonTerminal ('identifier' ))),
454
+ Optional (
455
+ Sequence (Terminal ('(' ), NonTerminal ('module-import-group' ),
456
+ Terminal (')' )))))
457
+
458
+ return mk_diagram2 ('module-import' , inner )
459
+
460
+
461
+ def zilch_import_group ():
462
+ inner = ZeroOrMore (
463
+ Sequence (
464
+ Choice (2 , Terminal ('class' ), Terminal ('module' ), Terminal ('effect' ),
465
+ Skip ()), NonTerminal ('identifier' ),
466
+ Optional (Sequence (Terminal ('as' ), NonTerminal ('identifier' )))),
467
+ Terminal (',' ))
468
+
469
+ return mk_diagram2 ('module-import-group' , inner )
470
+
471
+
472
+ zilch_import ().writeSvg (sys .stdout .write )
0 commit comments