mirror of
https://github.com/GayPizzaSpecifications/pork.git
synced 2025-10-01 12:39:37 +00:00
39 lines
1.6 KiB
Kotlin
39 lines
1.6 KiB
Kotlin
// GENERATED CODE FROM PORK AST CODEGEN
|
|
package gay.pizza.pork.ast
|
|
|
|
fun NodeParser.parse(type: NodeType): Node =
|
|
when (type) {
|
|
NodeType.Expression -> parseExpression()
|
|
NodeType.Symbol -> parseSymbol()
|
|
NodeType.Declaration -> parseDeclaration()
|
|
NodeType.Definition -> parseDefinition()
|
|
NodeType.Block -> parseBlock()
|
|
NodeType.CompilationUnit -> parseCompilationUnit()
|
|
NodeType.LetAssignment -> parseLetAssignment()
|
|
NodeType.VarAssignment -> parseVarAssignment()
|
|
NodeType.SetAssignment -> parseSetAssignment()
|
|
NodeType.InfixOperation -> parseInfixOperation()
|
|
NodeType.BooleanLiteral -> parseBooleanLiteral()
|
|
NodeType.FunctionCall -> parseFunctionCall()
|
|
NodeType.FunctionDefinition -> parseFunctionDefinition()
|
|
NodeType.LetDefinition -> parseLetDefinition()
|
|
NodeType.If -> parseIf()
|
|
NodeType.ImportDeclaration -> parseImportDeclaration()
|
|
NodeType.IntegerLiteral -> parseIntegerLiteral()
|
|
NodeType.LongLiteral -> parseLongLiteral()
|
|
NodeType.DoubleLiteral -> parseDoubleLiteral()
|
|
NodeType.ListLiteral -> parseListLiteral()
|
|
NodeType.Parentheses -> parseParentheses()
|
|
NodeType.PrefixOperation -> parsePrefixOperation()
|
|
NodeType.SuffixOperation -> parseSuffixOperation()
|
|
NodeType.StringLiteral -> parseStringLiteral()
|
|
NodeType.SymbolReference -> parseSymbolReference()
|
|
NodeType.While -> parseWhile()
|
|
NodeType.ForIn -> parseForIn()
|
|
NodeType.Break -> parseBreak()
|
|
NodeType.Continue -> parseContinue()
|
|
NodeType.NoneLiteral -> parseNoneLiteral()
|
|
NodeType.Native -> parseNative()
|
|
else -> throw RuntimeException("Unable to automatically parse type: ${type.name}")
|
|
}
|