Skip to content

Commit 309411f

Browse files
committed
update expression atoms grammars to allow for qualified identifiers
1 parent b987de9 commit 309411f

File tree

2 files changed

+56
-1
lines changed

2 files changed

+56
-1
lines changed

railroad-diagrams.py

Lines changed: 56 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -468,5 +468,60 @@ def zilch_import_group():
468468

469469
return mk_diagram2('module-import-group', inner)
470470

471+
def zilch_expression_atom():
472+
inner = Choice(
473+
3,
474+
NonTerminal('literal'),
475+
Group(
476+
Sequence(
477+
ZeroOrMore(
478+
NonTerminal('identifier'),
479+
Terminal('::')
480+
),
481+
NonTerminal('identifier')
482+
),
483+
'qualified identifier'
484+
),
485+
Group(
486+
Sequence(
487+
NonTerminal('expression'),
488+
Terminal('('),
489+
ZeroOrMore(
490+
NonTerminal('expression'),
491+
Terminal(',')
492+
),
493+
Terminal(')')
494+
),
495+
'function application'
496+
),
497+
Group(
498+
Sequence(
499+
Terminal('?'),
500+
Optional(
501+
NonTerminal('identifier')
502+
)
503+
),
504+
'typed hole'
505+
),
506+
Group(
507+
Sequence(
508+
Terminal('('),
509+
NonTerminal('expression'),
510+
Terminal(')')
511+
),
512+
'parenthesized expression'
513+
),
514+
Group(
515+
Sequence(
516+
NonTerminal('expression'),
517+
NonTerminal('symbol'),
518+
NonTerminal('expression')
519+
),
520+
'infix operator application'
521+
)
522+
)
523+
524+
return mk_diagram2('expression-atom', inner)
525+
471526

472-
zilch_import().writeSvg(sys.stdout.write)
527+
zilch_expression_atom().writeSvg(sys.stdout.write)

res/zilch/expression/atom.png

-249 Bytes
Loading

0 commit comments

Comments
 (0)