@@ -30,7 +30,8 @@ let declaration :=
3030 | ~= SYM ; EOL * ; EQ ; EOL * ;
3131 ~= galaxy_expr; < Def >
3232 | INTERFACE ; EOL * ; x= SYM ; EOL * ;
33- i= interface_item* ; END ; { Def (x, Raw (Interface i)) }
33+ i= interface_item* ;
34+ END ; INTERFACE ?; { Def (x, Raw (Interface i)) }
3435 | SHOW ; EOL * ; ~= galaxy_expr; < Show >
3536 | SHOWEXEC ; EOL * ; ~= galaxy_expr; < ShowExec >
3637 | TRACE ; EOL * ; ~= galaxy_expr; < Trace >
@@ -44,15 +45,15 @@ let type_declaration :=
4445
4546let galaxy_expr :=
4647 | ~= galaxy_content; EOL * ; DOT ; <>
47- | ~= galaxy_block; END ; <>
48+ | ~= galaxy_block; <>
4849 | ~= undelimited_raw_galaxy; < Raw >
4950
5051let interface_item :=
5152 | ~= type_declaration; EOL * ; <>
5253
5354let undelimited_raw_galaxy :=
54- | ~= marked_constellation; EOL * ; DOT ; < Const >
55- | GALAXY ; EOL * ; ~= galaxy_item* ; EOL * ; END ; < Galaxy >
55+ | ~= marked_constellation; EOL * ; DOT ; < Const >
56+ | GALAXY ; EOL * ; ~= galaxy_item* ; EOL * ; END ; GALAXY ?; < Galaxy >
5657
5758let delimited_raw_galaxy :=
5859 | ~= pars(marked_constellation); < Const >
@@ -82,14 +83,18 @@ let galaxy_item :=
8283 | ~= SYM ; EQ ; EOL * ; ~= galaxy_content; DOT ; EOL * ; < GLabelDef >
8384 | x= SYM ; EQ ; EOL * ; mcs= marked_constellation; EOL * ; DOT ; EOL * ;
8485 { GLabelDef (x, Raw (Const mcs)) }
85- | ~= SYM ; EQ ; EOL * ; ~= galaxy_block; END ; EOL * ; < GLabelDef >
86+ | ~= SYM ; EQ ; EOL * ; ~= galaxy_block; EOL * ; < GLabelDef >
8687 | ~= type_declaration; EOL * ; < GTypeDef >
8788
8889let galaxy_block :=
89- | PROCESS ; EOL * ; { Process [] }
90- | PROCESS ; EOL * ; ~= process_item+ ; < Process >
91- | EXEC ; EOL * ; ~= galaxy_content; < Exec >
92- | EXEC ; EOL * ; mcs= marked_constellation; { Exec (Raw (Const mcs)) }
90+ | PROCESS ; EOL * ; END ; PROCESS ?;
91+ { Process [] }
92+ | PROCESS ; EOL * ; ~= process_item+ ; END ; PROCESS ?;
93+ < Process >
94+ | EXEC ; EOL * ; ~= galaxy_content; END ; EXEC ?;
95+ < Exec >
96+ | EXEC ; EOL * ; mcs= marked_constellation; END ; EXEC ?;
97+ { Exec (Raw (Const mcs)) }
9398
9499let process_item :=
95100 | ~= galaxy_content; DOT ; EOL * ; <>
0 commit comments