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

}

@abstract class FooNode : Node {
}

class Example : FooNode {

    @export @memoized fun get_array (): Array[Int] = [1, 2]

    @export @memoized fun test_prop (numbers : Array[Int], c : String): Int =
    if (c = "one") then (numbers?(0)) else (numbers?(1))

    @export @memoized fun test_prop2 (numbers : Array[FooNode]): Bool =
    numbers.length() = 0
}
