parser: use ast user data to store attribution

This commit is contained in:
2023-09-11 20:13:15 -04:00
parent a07e0fe672
commit b64c7fb259
11 changed files with 129 additions and 65 deletions

View File

@ -8,5 +8,6 @@ import kotlinx.serialization.Serializable
@SerialName("definition")
sealed class Definition : Node() {
abstract val symbol: Symbol
abstract val modifiers: DefinitionModifiers
}

View File

@ -1,6 +1,7 @@
// GENERATED CODE FROM PORK AST CODEGEN
package gay.pizza.pork.ast
import kotlinx.serialization.Transient
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
@ -9,6 +10,9 @@ import kotlinx.serialization.Serializable
sealed class Node {
abstract val type: NodeType
@Transient
var data: Any? = null
open fun <T> visitChildren(visitor: NodeVisitor<T>): List<T> =
emptyList()

View File

@ -0,0 +1,6 @@
// GENERATED CODE FROM PORK AST CODEGEN
package gay.pizza.pork.ast
@Suppress("UNCHECKED_CAST")
fun <P> Node.data(): P? =
data as? P?