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