# Prism node classes that ast.rs translates and the runtime supports.
# Source of truth — build.rs validates this stays exactly in sync with
# the `as_*_node` accessor calls in src/ast.rs and re-exports it as
# `rubyrs::SUPPORTED_PRISM_NODES`.
#
# Most entries correspond to an `as_*_node()` call in ast.rs. A small
# number of nodes are reached via a typed parent-method accessor that
# returns the concrete node type directly (no `as_*_node` cast) — e.g.
# `ParametersNode::block()` returns `Option<BlockParameterNode>`, read
# in the `def` arm of ast.rs. Those nodes are listed here AND enrolled
# in the `typed_accessor_exempt` set in build.rs; the cross-check then
# passes for both directions. When adding such an entry, update both
# this file and the exempt set together.
#
# Format: one CamelCase name per line, sorted, `#` comments OK.

AliasMethodNode
AlternationPatternNode
AndNode
ArrayNode
ArrayPatternNode
AssocNode
AssocSplatNode
BackReferenceReadNode
BeginNode
BlockArgumentNode
BlockNode
BlockParameterNode
BlockParametersNode
BreakNode
CallAndWriteNode
CallNode
CallOperatorWriteNode
CallOrWriteNode
CallTargetNode
CapturePatternNode
CaseMatchNode
CaseNode
ClassNode
ClassVariableAndWriteNode
ClassVariableOperatorWriteNode
ClassVariableOrWriteNode
ClassVariableReadNode
ClassVariableWriteNode
ConstantAndWriteNode
ConstantOperatorWriteNode
ConstantOrWriteNode
ConstantPathAndWriteNode
ConstantPathNode
ConstantPathOperatorWriteNode
ConstantPathOrWriteNode
ConstantPathWriteNode
ConstantReadNode
ConstantWriteNode
DefNode
DefinedNode
ElseNode
EmbeddedStatementsNode
EmbeddedVariableNode
FalseNode
FindPatternNode
FlipFlopNode
FloatNode
ForNode
ForwardingArgumentsNode
ForwardingParameterNode
ForwardingSuperNode
GlobalVariableAndWriteNode
GlobalVariableOperatorWriteNode
GlobalVariableOrWriteNode
GlobalVariableReadNode
GlobalVariableTargetNode
GlobalVariableWriteNode
HashNode
HashPatternNode
IfNode
ImplicitNode
ImplicitRestNode
InNode
IndexAndWriteNode
IndexOperatorWriteNode
IndexOrWriteNode
IndexTargetNode
InstanceVariableAndWriteNode
InstanceVariableOperatorWriteNode
InstanceVariableOrWriteNode
InstanceVariableReadNode
InstanceVariableTargetNode
InstanceVariableWriteNode
IntegerNode
InterpolatedRegularExpressionNode
InterpolatedStringNode
InterpolatedSymbolNode
InterpolatedXStringNode
ItLocalVariableReadNode
ItParametersNode
KeywordHashNode
KeywordRestParameterNode
LambdaNode
LocalVariableAndWriteNode
LocalVariableOperatorWriteNode
LocalVariableOrWriteNode
LocalVariableReadNode
LocalVariableTargetNode
LocalVariableWriteNode
MatchPredicateNode
MatchRequiredNode
ModuleNode
MultiTargetNode
MultiWriteNode
NextNode
NilNode
NoKeywordsParameterNode
NumberedParametersNode
NumberedReferenceReadNode
OptionalKeywordParameterNode
OptionalParameterNode
OrNode
ParenthesesNode
PinnedExpressionNode
PinnedVariableNode
PostExecutionNode
PreExecutionNode
ProgramNode
RangeNode
RationalNode
RegularExpressionNode
RequiredKeywordParameterNode
RequiredParameterNode
RescueModifierNode
RestParameterNode
RetryNode
ReturnNode
SelfNode
ShareableConstantNode
SingletonClassNode
SourceFileNode
SourceLineNode
SplatNode
StatementsNode
StringNode
SuperNode
SymbolNode
TrueNode
UndefNode
UnlessNode
UntilNode
WhenNode
WhileNode
XStringNode
YieldNode
