import lexer_example
@with_lexer(foo_lexer)
grammar foo_grammar {
    @main_rule main_rule <- Example("example")

}

@abstract class FooNode : Node {
}

class Example : FooNode {
    var1 : LogicVar
    var2 : LogicVar

    fun predicate (n : FooNode, flag1 : Bool = false, flag2 : Bool = true): Bool =
    flag1 and (n.is_null) and flag2

    @export fun prop (): Example = {
        val _ = %predicate(BareExample.predicate, node.var1, node.var2);

        node.as_bare_entity
    }
}
