import lexer_example
@with_lexer(foo_lexer)
grammar foo_grammar {
    @main_rule main_rule <- list*(decl)
    decl <- Decl(id DeclError("error"))
    id <- Identifier(@identifier)

}

@abstract class FooNode : Node {
}

class Decl : FooNode {
    @parse_field id : Identifier
    @parse_field error : DeclError
}

@qualifier enum class DeclError : FooNode {
}

class Identifier : FooNode implements TokenNode {
}
