Implementation
@override
Iterable<Grammar<ProtoX>> get includes {
return [
CastedGrammar<ProtoX, SyntaxDeclaration>(
builder: (context) => GrammarContext(
scanner: context.scanner,
syntax: SyntaxDeclaration.withDefault(),
),
caster: (previous, next) {
next.syntax = next.syntax.rebuild((builder) {
builder.syntaxDeclarations.add(previous.syntax);
});
},
grammar: SyntaxDeclarationGrammar(),
),
CastedGrammar<ProtoX, Package>(
builder: (context) => GrammarContext(
scanner: context.scanner,
syntax: Package.withDefault(),
),
caster: (previous, next) {
next.syntax = next.syntax.rebuild((builder) {
builder.packages.add(previous.syntax);
});
},
grammar: PackageGrammar(),
),
CastedGrammar<ProtoX, Message>(
builder: (context) => GrammarContext(
scanner: context.scanner,
syntax: Message.withDefault(),
),
caster: (previous, next) {
next.syntax = next.syntax.rebuild((builder) {
builder.messages.add(previous.syntax);
});
},
grammar: MessageGrammar(),
),
];
}