Files
Pierre-Marie de Rodat ca751250b4 Introduce the lkt_build_and_run test driver
Transition all relevant testcases to it. In the process, port
docstrings/comments from test.py files to expected_concrete_syntax.lkt
(now test.lkt) sources and fix stylechecks issues there.

(cherry picked from commit e1c4fe5804)
2024-11-28 15:40:33 +00:00

37 lines
702 B
Plaintext

# Test that the "is_ghost" AST node predicate works in the Python API
import lexer_example
@with_lexer(foo_lexer)
grammar foo_grammar {
@main_rule main_rule <- list+(Param(name mode plus))
name <- Name(@Identifier)
mode <- or(
| Enum.Null("null")
| Enum.Example("example")
| Enum.Default()
)
plus <- PlusQualifier("+")
}
@abstract
class FooNode implements Node[FooNode] {
}
enum class Enum: FooNode {
case Null, Example, Default
}
class Name: FooNode implements TokenNode {
}
class Param: FooNode {
@parse_field name: Name
@parse_field mode: Enum
@parse_field has_plus: PlusQualifier
}
@qualifier
enum class PlusQualifier: FooNode {
}