import lexer_example
@with_lexer(foo_lexer)
grammar foo_grammar {
    @main_rule main_rule <- Scope+(name)
    name <- Name(@identifier)

}

@abstract class FooNode : Node {

    @export fun node_unit (): AnalysisUnit = (node.as[Name]).do((n) => n.unit())
}

class Scope : ASTList[Name] {
}

@has_abstract_list class Name : FooNode implements TokenNode {
}
