Files
pork/ast/src/main/kotlin/gay/pizza/pork/ast/gen/NodeVisitorExtensions.kt

45 lines
1.8 KiB
Kotlin
Raw Normal View History

// GENERATED CODE FROM PORK AST CODEGEN
package gay.pizza.pork.ast.gen
fun <T> NodeVisitor<T>.visit(node: Node): T =
when (node) {
is Symbol -> visitSymbol(node)
is Block -> visitBlock(node)
is CompilationUnit -> visitCompilationUnit(node)
is LetAssignment -> visitLetAssignment(node)
is VarAssignment -> visitVarAssignment(node)
is SetAssignment -> visitSetAssignment(node)
is InfixOperation -> visitInfixOperation(node)
is BooleanLiteral -> visitBooleanLiteral(node)
is FunctionCall -> visitFunctionCall(node)
is ArgumentSpec -> visitArgumentSpec(node)
is FunctionDefinition -> visitFunctionDefinition(node)
2023-09-11 04:57:13 -04:00
is LetDefinition -> visitLetDefinition(node)
is If -> visitIf(node)
is ImportPath -> visitImportPath(node)
is ImportDeclaration -> visitImportDeclaration(node)
2023-09-09 00:08:30 -04:00
is IntegerLiteral -> visitIntegerLiteral(node)
is LongLiteral -> visitLongLiteral(node)
2023-09-09 00:08:30 -04:00
is DoubleLiteral -> visitDoubleLiteral(node)
is ListLiteral -> visitListLiteral(node)
is Parentheses -> visitParentheses(node)
is PrefixOperation -> visitPrefixOperation(node)
is SuffixOperation -> visitSuffixOperation(node)
is StringLiteral -> visitStringLiteral(node)
is SymbolReference -> visitSymbolReference(node)
is While -> visitWhile(node)
is ForInItem -> visitForInItem(node)
2023-09-11 05:34:09 -04:00
is ForIn -> visitForIn(node)
is Break -> visitBreak(node)
is Continue -> visitContinue(node)
2023-09-12 02:03:41 -04:00
is NoneLiteral -> visitNoneLiteral(node)
is Native -> visitNative(node)
2023-09-17 08:38:11 -07:00
is IndexedBy -> visitIndexedBy(node)
}
fun <T> NodeVisitor<T>.visitNodes(vararg nodes: Node?): List<T> =
nodes.asSequence().filterNotNull().map { visit(it) }.toList()
fun <T> NodeVisitor<T>.visitAll(vararg nodeLists: List<Node?>): List<T> =
nodeLists.asSequence().flatten().filterNotNull().map { visit(it) }.toList()