import lexer_example

@with_lexer(foo_lexer)
grammar foo_grammar {
    @main_rule main_rule <- ExampleHolder(Example("example"))
}

@abstract class FooNode implements Node[FooNode] {
}

@abstract class BaseExampleHolder : FooNode {
    @abstract @parse_field f1: FooNode
}

class ExampleHolder : BaseExampleHolder {
    @abstract @parse_field f1: FooNode
    @parse_field f2: FooNode
}

class Example : FooNode implements TokenNode {
}
