ast: move gay.pizza.pork.ast to gay.pizza.pork.ast.gen

This commit is contained in:
Alex Zenla 2023-10-06 15:39:13 -07:00
parent d36310e698
commit 945ba85c98
Signed by: alex
GPG Key ID: C0780728420EBFE5
83 changed files with 102 additions and 115 deletions

View File

@ -1,5 +1,5 @@
// GENERATED CODE FROM PORK AST CODEGEN // GENERATED CODE FROM PORK AST CODEGEN
package gay.pizza.pork.ast package gay.pizza.pork.ast.gen
import kotlinx.serialization.SerialName import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable

View File

@ -1,5 +1,5 @@
// GENERATED CODE FROM PORK AST CODEGEN // GENERATED CODE FROM PORK AST CODEGEN
package gay.pizza.pork.ast package gay.pizza.pork.ast.gen
import kotlinx.serialization.SerialName import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable

View File

@ -1,5 +1,5 @@
// GENERATED CODE FROM PORK AST CODEGEN // GENERATED CODE FROM PORK AST CODEGEN
package gay.pizza.pork.ast package gay.pizza.pork.ast.gen
import kotlinx.serialization.SerialName import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable

View File

@ -1,5 +1,5 @@
// GENERATED CODE FROM PORK AST CODEGEN // GENERATED CODE FROM PORK AST CODEGEN
package gay.pizza.pork.ast package gay.pizza.pork.ast.gen
import kotlinx.serialization.SerialName import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable

View File

@ -1,5 +1,5 @@
// GENERATED CODE FROM PORK AST CODEGEN // GENERATED CODE FROM PORK AST CODEGEN
package gay.pizza.pork.ast package gay.pizza.pork.ast.gen
import kotlinx.serialization.SerialName import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable

View File

@ -1,5 +1,5 @@
// GENERATED CODE FROM PORK AST CODEGEN // GENERATED CODE FROM PORK AST CODEGEN
package gay.pizza.pork.ast package gay.pizza.pork.ast.gen
import kotlinx.serialization.SerialName import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable

View File

@ -1,5 +1,5 @@
// GENERATED CODE FROM PORK AST CODEGEN // GENERATED CODE FROM PORK AST CODEGEN
package gay.pizza.pork.ast package gay.pizza.pork.ast.gen
import kotlinx.serialization.SerialName import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable

View File

@ -1,5 +1,5 @@
// GENERATED CODE FROM PORK AST CODEGEN // GENERATED CODE FROM PORK AST CODEGEN
package gay.pizza.pork.ast package gay.pizza.pork.ast.gen
import kotlinx.serialization.SerialName import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable

View File

@ -1,5 +1,5 @@
// GENERATED CODE FROM PORK AST CODEGEN // GENERATED CODE FROM PORK AST CODEGEN
package gay.pizza.pork.ast package gay.pizza.pork.ast.gen
import kotlinx.serialization.SerialName import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable

View File

@ -1,5 +1,5 @@
// GENERATED CODE FROM PORK AST CODEGEN // GENERATED CODE FROM PORK AST CODEGEN
package gay.pizza.pork.ast package gay.pizza.pork.ast.gen
import kotlinx.serialization.SerialName import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable

View File

@ -1,5 +1,5 @@
// GENERATED CODE FROM PORK AST CODEGEN // GENERATED CODE FROM PORK AST CODEGEN
package gay.pizza.pork.ast package gay.pizza.pork.ast.gen
import kotlinx.serialization.SerialName import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable

View File

@ -1,5 +1,5 @@
// GENERATED CODE FROM PORK AST CODEGEN // GENERATED CODE FROM PORK AST CODEGEN
package gay.pizza.pork.ast package gay.pizza.pork.ast.gen
import kotlinx.serialization.SerialName import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable

View File

@ -1,5 +1,5 @@
// GENERATED CODE FROM PORK AST CODEGEN // GENERATED CODE FROM PORK AST CODEGEN
package gay.pizza.pork.ast package gay.pizza.pork.ast.gen
import kotlinx.serialization.SerialName import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable

View File

@ -1,5 +1,5 @@
// GENERATED CODE FROM PORK AST CODEGEN // GENERATED CODE FROM PORK AST CODEGEN
package gay.pizza.pork.ast package gay.pizza.pork.ast.gen
import kotlinx.serialization.SerialName import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable

View File

@ -1,5 +1,5 @@
// GENERATED CODE FROM PORK AST CODEGEN // GENERATED CODE FROM PORK AST CODEGEN
package gay.pizza.pork.ast package gay.pizza.pork.ast.gen
import kotlinx.serialization.SerialName import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable

View File

@ -1,5 +1,5 @@
// GENERATED CODE FROM PORK AST CODEGEN // GENERATED CODE FROM PORK AST CODEGEN
package gay.pizza.pork.ast package gay.pizza.pork.ast.gen
import kotlinx.serialization.SerialName import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable

View File

@ -1,5 +1,5 @@
// GENERATED CODE FROM PORK AST CODEGEN // GENERATED CODE FROM PORK AST CODEGEN
package gay.pizza.pork.ast package gay.pizza.pork.ast.gen
import kotlinx.serialization.SerialName import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable

View File

@ -1,5 +1,5 @@
// GENERATED CODE FROM PORK AST CODEGEN // GENERATED CODE FROM PORK AST CODEGEN
package gay.pizza.pork.ast package gay.pizza.pork.ast.gen
import kotlinx.serialization.SerialName import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable

View File

@ -1,5 +1,5 @@
// GENERATED CODE FROM PORK AST CODEGEN // GENERATED CODE FROM PORK AST CODEGEN
package gay.pizza.pork.ast package gay.pizza.pork.ast.gen
import kotlinx.serialization.SerialName import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable

View File

@ -1,5 +1,5 @@
// GENERATED CODE FROM PORK AST CODEGEN // GENERATED CODE FROM PORK AST CODEGEN
package gay.pizza.pork.ast package gay.pizza.pork.ast.gen
import kotlinx.serialization.SerialName import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable

View File

@ -1,5 +1,5 @@
// GENERATED CODE FROM PORK AST CODEGEN // GENERATED CODE FROM PORK AST CODEGEN
package gay.pizza.pork.ast package gay.pizza.pork.ast.gen
import kotlinx.serialization.SerialName import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable

View File

@ -1,5 +1,5 @@
// GENERATED CODE FROM PORK AST CODEGEN // GENERATED CODE FROM PORK AST CODEGEN
package gay.pizza.pork.ast package gay.pizza.pork.ast.gen
import kotlinx.serialization.SerialName import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable

View File

@ -1,5 +1,5 @@
// GENERATED CODE FROM PORK AST CODEGEN // GENERATED CODE FROM PORK AST CODEGEN
package gay.pizza.pork.ast package gay.pizza.pork.ast.gen
import kotlinx.serialization.SerialName import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable

View File

@ -1,5 +1,5 @@
// GENERATED CODE FROM PORK AST CODEGEN // GENERATED CODE FROM PORK AST CODEGEN
package gay.pizza.pork.ast package gay.pizza.pork.ast.gen
import kotlinx.serialization.SerialName import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable

View File

@ -1,5 +1,5 @@
// GENERATED CODE FROM PORK AST CODEGEN // GENERATED CODE FROM PORK AST CODEGEN
package gay.pizza.pork.ast package gay.pizza.pork.ast.gen
import kotlinx.serialization.SerialName import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable

View File

@ -1,5 +1,5 @@
// GENERATED CODE FROM PORK AST CODEGEN // GENERATED CODE FROM PORK AST CODEGEN
package gay.pizza.pork.ast package gay.pizza.pork.ast.gen
import kotlinx.serialization.SerialName import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable

View File

@ -1,5 +1,5 @@
// GENERATED CODE FROM PORK AST CODEGEN // GENERATED CODE FROM PORK AST CODEGEN
package gay.pizza.pork.ast package gay.pizza.pork.ast.gen
import kotlinx.serialization.SerialName import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable

View File

@ -1,5 +1,5 @@
// GENERATED CODE FROM PORK AST CODEGEN // GENERATED CODE FROM PORK AST CODEGEN
package gay.pizza.pork.ast package gay.pizza.pork.ast.gen
class NodeCoalescer(val handler: (Node) -> Unit) : NodeVisitor<Unit> { class NodeCoalescer(val handler: (Node) -> Unit) : NodeVisitor<Unit> {
override fun visitArgumentSpec(node: ArgumentSpec): Unit = override fun visitArgumentSpec(node: ArgumentSpec): Unit =

View File

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

View File

@ -1,5 +1,5 @@
// GENERATED CODE FROM PORK AST CODEGEN // GENERATED CODE FROM PORK AST CODEGEN
package gay.pizza.pork.ast package gay.pizza.pork.ast.gen
interface NodeParser { interface NodeParser {
fun parseArgumentSpec(): ArgumentSpec fun parseArgumentSpec(): ArgumentSpec

View File

@ -1,5 +1,5 @@
// GENERATED CODE FROM PORK AST CODEGEN // GENERATED CODE FROM PORK AST CODEGEN
package gay.pizza.pork.ast package gay.pizza.pork.ast.gen
fun NodeParser.parse(type: NodeType): Node = fun NodeParser.parse(type: NodeType): Node =
when (type) { when (type) {

View File

@ -1,5 +1,5 @@
// GENERATED CODE FROM PORK AST CODEGEN // GENERATED CODE FROM PORK AST CODEGEN
package gay.pizza.pork.ast package gay.pizza.pork.ast.gen
enum class NodeType(val parent: NodeType? = null) { enum class NodeType(val parent: NodeType? = null) {
Node, Node,

View File

@ -1,5 +1,5 @@
// GENERATED CODE FROM PORK AST CODEGEN // GENERATED CODE FROM PORK AST CODEGEN
package gay.pizza.pork.ast package gay.pizza.pork.ast.gen
interface NodeVisitor<T> { interface NodeVisitor<T> {
fun visitArgumentSpec(node: ArgumentSpec): T fun visitArgumentSpec(node: ArgumentSpec): T

View File

@ -1,5 +1,5 @@
// GENERATED CODE FROM PORK AST CODEGEN // GENERATED CODE FROM PORK AST CODEGEN
package gay.pizza.pork.ast package gay.pizza.pork.ast.gen
fun <T> NodeVisitor<T>.visit(node: Node): T = fun <T> NodeVisitor<T>.visit(node: Node): T =
when (node) { when (node) {

View File

@ -1,5 +1,5 @@
// GENERATED CODE FROM PORK AST CODEGEN // GENERATED CODE FROM PORK AST CODEGEN
package gay.pizza.pork.ast package gay.pizza.pork.ast.gen
import kotlinx.serialization.SerialName import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable

View File

@ -1,5 +1,5 @@
// GENERATED CODE FROM PORK AST CODEGEN // GENERATED CODE FROM PORK AST CODEGEN
package gay.pizza.pork.ast package gay.pizza.pork.ast.gen
import kotlinx.serialization.SerialName import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable

View File

@ -1,5 +1,5 @@
// GENERATED CODE FROM PORK AST CODEGEN // GENERATED CODE FROM PORK AST CODEGEN
package gay.pizza.pork.ast package gay.pizza.pork.ast.gen
import kotlinx.serialization.SerialName import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable

View File

@ -1,5 +1,5 @@
// GENERATED CODE FROM PORK AST CODEGEN // GENERATED CODE FROM PORK AST CODEGEN
package gay.pizza.pork.ast package gay.pizza.pork.ast.gen
import kotlinx.serialization.SerialName import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable

View File

@ -1,5 +1,5 @@
// GENERATED CODE FROM PORK AST CODEGEN // GENERATED CODE FROM PORK AST CODEGEN
package gay.pizza.pork.ast package gay.pizza.pork.ast.gen
import kotlinx.serialization.SerialName import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable

View File

@ -1,5 +1,5 @@
// GENERATED CODE FROM PORK AST CODEGEN // GENERATED CODE FROM PORK AST CODEGEN
package gay.pizza.pork.ast package gay.pizza.pork.ast.gen
import kotlinx.serialization.SerialName import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable

View File

@ -1,5 +1,5 @@
// GENERATED CODE FROM PORK AST CODEGEN // GENERATED CODE FROM PORK AST CODEGEN
package gay.pizza.pork.ast package gay.pizza.pork.ast.gen
import kotlinx.serialization.SerialName import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable

View File

@ -1,5 +1,5 @@
// GENERATED CODE FROM PORK AST CODEGEN // GENERATED CODE FROM PORK AST CODEGEN
package gay.pizza.pork.ast package gay.pizza.pork.ast.gen
import kotlinx.serialization.SerialName import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable

View File

@ -1,5 +1,5 @@
// GENERATED CODE FROM PORK AST CODEGEN // GENERATED CODE FROM PORK AST CODEGEN
package gay.pizza.pork.ast package gay.pizza.pork.ast.gen
import kotlinx.serialization.SerialName import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable

View File

@ -1,5 +1,5 @@
// GENERATED CODE FROM PORK AST CODEGEN // GENERATED CODE FROM PORK AST CODEGEN
package gay.pizza.pork.ast package gay.pizza.pork.ast.gen
import kotlinx.serialization.SerialName import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable

View File

@ -1,5 +1,5 @@
// GENERATED CODE FROM PORK AST CODEGEN // GENERATED CODE FROM PORK AST CODEGEN
package gay.pizza.pork.ast package gay.pizza.pork.ast.gen
import kotlinx.serialization.SerialName import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable

View File

@ -1,5 +1,5 @@
// GENERATED CODE FROM PORK AST CODEGEN // GENERATED CODE FROM PORK AST CODEGEN
package gay.pizza.pork.ast package gay.pizza.pork.ast.gen
import kotlinx.serialization.SerialName import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable

View File

@ -19,10 +19,10 @@ open class GenerateStandardAstCode : DefaultTask() {
var astDescriptionFile: File = project.file("src/main/ast/pork.yml") var astDescriptionFile: File = project.file("src/main/ast/pork.yml")
@get:Input @get:Input
var codePackage: String = "gay.pizza.pork.ast" var codePackage: String = "gay.pizza.pork.ast.gen"
@get:OutputDirectory @get:OutputDirectory
var outputDirectory: File = project.file("src/main/kotlin/gay/pizza/pork/ast") var outputDirectory: File = project.file("src/main/kotlin/gay/pizza/pork/ast/gen")
@get:OutputFile @get:OutputFile
var typeGraphFile: File = project.file("src/main/graph/types.dot") var typeGraphFile: File = project.file("src/main/graph/types.dot")

View File

@ -112,7 +112,7 @@ class AstPorkIdeaCodegen(pkg: String, outputDirectory: Path, world: AstWorld) :
if (type.referencedElementValue != null && type.referencedElementType != null) { if (type.referencedElementValue != null && type.referencedElementType != null) {
kotlinClass.imports.add(0, "com.intellij.psi.PsiReference") kotlinClass.imports.add(0, "com.intellij.psi.PsiReference")
kotlinClass.imports.add("gay.pizza.pork.ast.NodeType") kotlinClass.imports.add("gay.pizza.pork.ast.gen.NodeType")
val getReferenceFunction = KotlinFunction( val getReferenceFunction = KotlinFunction(
"getReference", "getReference",
@ -157,7 +157,7 @@ class AstPorkIdeaCodegen(pkg: String, outputDirectory: Path, world: AstWorld) :
"com.intellij.extapi.psi.ASTWrapperPsiElement", "com.intellij.extapi.psi.ASTWrapperPsiElement",
"com.intellij.lang.ASTNode", "com.intellij.lang.ASTNode",
"com.intellij.psi.PsiElement", "com.intellij.psi.PsiElement",
"gay.pizza.pork.ast.NodeType", "gay.pizza.pork.ast.gen.NodeType",
"gay.pizza.pork.idea.PorkElementTypes" "gay.pizza.pork.idea.PorkElementTypes"
) )
) )

View File

@ -1,6 +1,6 @@
package gay.pizza.pork.evaluator package gay.pizza.pork.evaluator
import gay.pizza.pork.ast.* import gay.pizza.pork.ast.gen.*
import gay.pizza.pork.frontend.ImportLocator import gay.pizza.pork.frontend.ImportLocator
class CompilationUnitContext( class CompilationUnitContext(

View File

@ -1,6 +1,6 @@
package gay.pizza.pork.evaluator package gay.pizza.pork.evaluator
import gay.pizza.pork.ast.* import gay.pizza.pork.ast.gen.*
import kotlin.math.abs import kotlin.math.abs
@Suppress("JavaIoSerializableObjectMustHaveReadResolve") @Suppress("JavaIoSerializableObjectMustHaveReadResolve")

View File

@ -1,6 +1,6 @@
package gay.pizza.pork.evaluator package gay.pizza.pork.evaluator
import gay.pizza.pork.ast.FunctionDefinition import gay.pizza.pork.ast.gen.FunctionDefinition
class FunctionContext(val compilationUnitContext: CompilationUnitContext, val node: FunctionDefinition) : CallableFunction { class FunctionContext(val compilationUnitContext: CompilationUnitContext, val node: FunctionDefinition) : CallableFunction {
val name: String = "${compilationUnitContext.name} ${node.symbol.id}" val name: String = "${compilationUnitContext.name} ${node.symbol.id}"

View File

@ -1,6 +1,6 @@
package gay.pizza.pork.evaluator package gay.pizza.pork.evaluator
import gay.pizza.pork.ast.ArgumentSpec import gay.pizza.pork.ast.gen.ArgumentSpec
import gay.pizza.pork.common.unused import gay.pizza.pork.common.unused
class InternalNativeProvider(val quiet: Boolean = false) : NativeProvider { class InternalNativeProvider(val quiet: Boolean = false) : NativeProvider {

View File

@ -1,6 +1,6 @@
package gay.pizza.pork.evaluator package gay.pizza.pork.evaluator
import gay.pizza.pork.ast.ArgumentSpec import gay.pizza.pork.ast.gen.ArgumentSpec
interface NativeProvider { interface NativeProvider {
fun provideNativeFunction(definitions: List<String>, arguments: List<ArgumentSpec>): CallableFunction fun provideNativeFunction(definitions: List<String>, arguments: List<ArgumentSpec>): CallableFunction

View File

@ -1,6 +1,6 @@
package gay.pizza.pork.ffi package gay.pizza.pork.ffi
import gay.pizza.pork.ast.* import gay.pizza.pork.ast.gen.*
import java.lang.reflect.Method import java.lang.reflect.Method
import java.lang.reflect.Modifier import java.lang.reflect.Modifier
import java.lang.reflect.Parameter import java.lang.reflect.Parameter

View File

@ -1,6 +1,6 @@
package gay.pizza.pork.ffi package gay.pizza.pork.ffi
import gay.pizza.pork.ast.visit import gay.pizza.pork.ast.gen.visit
import gay.pizza.pork.frontend.ContentSource import gay.pizza.pork.frontend.ContentSource
import gay.pizza.pork.parser.CharSource import gay.pizza.pork.parser.CharSource
import gay.pizza.pork.parser.Printer import gay.pizza.pork.parser.Printer

View File

@ -1,6 +1,6 @@
package gay.pizza.pork.ffi package gay.pizza.pork.ffi
import gay.pizza.pork.ast.ArgumentSpec import gay.pizza.pork.ast.gen.ArgumentSpec
import gay.pizza.pork.evaluator.CallableFunction import gay.pizza.pork.evaluator.CallableFunction
import gay.pizza.pork.evaluator.NativeProvider import gay.pizza.pork.evaluator.NativeProvider
import gay.pizza.pork.evaluator.None import gay.pizza.pork.evaluator.None

View File

@ -2,7 +2,7 @@ package gay.pizza.pork.ffi
import com.sun.jna.Function import com.sun.jna.Function
import com.sun.jna.NativeLibrary import com.sun.jna.NativeLibrary
import gay.pizza.pork.ast.ArgumentSpec import gay.pizza.pork.ast.gen.ArgumentSpec
import gay.pizza.pork.evaluator.CallableFunction import gay.pizza.pork.evaluator.CallableFunction
import gay.pizza.pork.evaluator.NativeProvider import gay.pizza.pork.evaluator.NativeProvider
import gay.pizza.pork.evaluator.None import gay.pizza.pork.evaluator.None

View File

@ -1,7 +1,7 @@
package gay.pizza.pork.frontend package gay.pizza.pork.frontend
import gay.pizza.pork.ast.CompilationUnit import gay.pizza.pork.ast.gen.CompilationUnit
import gay.pizza.pork.ast.ImportDeclaration import gay.pizza.pork.ast.gen.ImportDeclaration
import gay.pizza.pork.parser.DiscardNodeAttribution import gay.pizza.pork.parser.DiscardNodeAttribution
import gay.pizza.pork.parser.Parser import gay.pizza.pork.parser.Parser
import gay.pizza.pork.parser.TokenStreamSource import gay.pizza.pork.parser.TokenStreamSource

View File

@ -1,7 +1,7 @@
package gay.pizza.pork.frontend.scope package gay.pizza.pork.frontend.scope
import gay.pizza.pork.ast.CompilationUnit import gay.pizza.pork.ast.gen.CompilationUnit
import gay.pizza.pork.ast.Symbol import gay.pizza.pork.ast.gen.Symbol
class CompilationUnitScope(val worldScope: WorldScope, val unit: CompilationUnit) { class CompilationUnitScope(val worldScope: WorldScope, val unit: CompilationUnit) {
val externalSymbols = mutableSetOf<ScopeSymbol>() val externalSymbols = mutableSetOf<ScopeSymbol>()

View File

@ -1,7 +1,7 @@
package gay.pizza.pork.frontend.scope package gay.pizza.pork.frontend.scope
import gay.pizza.pork.ast.Definition import gay.pizza.pork.ast.gen.Definition
import gay.pizza.pork.ast.Node import gay.pizza.pork.ast.gen.Node
class ScopeSymbol( class ScopeSymbol(
val compilationUnit: Node, val compilationUnit: Node,

View File

@ -1,6 +1,6 @@
package gay.pizza.pork.frontend.scope package gay.pizza.pork.frontend.scope
import gay.pizza.pork.ast.CompilationUnit import gay.pizza.pork.ast.gen.CompilationUnit
class VisibleScopeSymbol(val visibleToUnit: CompilationUnit, val scopeSymbol: ScopeSymbol) { class VisibleScopeSymbol(val visibleToUnit: CompilationUnit, val scopeSymbol: ScopeSymbol) {
val isInternalSymbol: Boolean val isInternalSymbol: Boolean

View File

@ -1,6 +1,6 @@
package gay.pizza.pork.frontend.scope package gay.pizza.pork.frontend.scope
import gay.pizza.pork.ast.CompilationUnit import gay.pizza.pork.ast.gen.CompilationUnit
import gay.pizza.pork.frontend.World import gay.pizza.pork.frontend.World
class WorldScope(val world: World) { class WorldScope(val world: World) {

View File

@ -1,8 +1,8 @@
package gay.pizza.pork.minimal package gay.pizza.pork.minimal
import gay.pizza.pork.ast.CompilationUnit import gay.pizza.pork.ast.gen.CompilationUnit
import gay.pizza.pork.ast.NodeVisitor import gay.pizza.pork.ast.gen.NodeVisitor
import gay.pizza.pork.ast.visit import gay.pizza.pork.ast.gen.visit
import gay.pizza.pork.evaluator.* import gay.pizza.pork.evaluator.*
import gay.pizza.pork.ffi.JavaAutogenContentSource import gay.pizza.pork.ffi.JavaAutogenContentSource
import gay.pizza.pork.ffi.JavaNativeProvider import gay.pizza.pork.ffi.JavaNativeProvider

View File

@ -1,7 +1,7 @@
package gay.pizza.pork.parser package gay.pizza.pork.parser
import gay.pizza.pork.ast.Node import gay.pizza.pork.ast.gen.Node
import gay.pizza.pork.ast.NodeType import gay.pizza.pork.ast.gen.NodeType
object DiscardNodeAttribution : NodeAttribution { object DiscardNodeAttribution : NodeAttribution {
override fun push(token: Token) {} override fun push(token: Token) {}

View File

@ -1,7 +1,7 @@
package gay.pizza.pork.parser package gay.pizza.pork.parser
import gay.pizza.pork.ast.Node import gay.pizza.pork.ast.gen.Node
import gay.pizza.pork.ast.NodeType import gay.pizza.pork.ast.gen.NodeType
interface NodeAttribution { interface NodeAttribution {
fun push(token: Token) fun push(token: Token)

View File

@ -1,6 +1,6 @@
package gay.pizza.pork.parser package gay.pizza.pork.parser
import gay.pizza.pork.ast.* import gay.pizza.pork.ast.gen.*
class Parser(source: TokenSource, attribution: NodeAttribution) : class Parser(source: TokenSource, attribution: NodeAttribution) :
ParserBase(source, attribution) { ParserBase(source, attribution) {

View File

@ -1,9 +1,9 @@
package gay.pizza.pork.parser package gay.pizza.pork.parser
import gay.pizza.pork.ast.Node import gay.pizza.pork.ast.gen.Node
import gay.pizza.pork.ast.NodeCoalescer import gay.pizza.pork.ast.gen.NodeCoalescer
import gay.pizza.pork.ast.data import gay.pizza.pork.ast.gen.data
import gay.pizza.pork.ast.visit import gay.pizza.pork.ast.gen.visit
data class ParserAttributes(val tokens: List<Token>) { data class ParserAttributes(val tokens: List<Token>) {
companion object { companion object {

View File

@ -1,8 +1,8 @@
package gay.pizza.pork.parser package gay.pizza.pork.parser
import gay.pizza.pork.ast.Node import gay.pizza.pork.ast.gen.Node
import gay.pizza.pork.ast.NodeParser import gay.pizza.pork.ast.gen.NodeParser
import gay.pizza.pork.ast.NodeType import gay.pizza.pork.ast.gen.NodeType
abstract class ParserBase(source: TokenSource, val attribution: NodeAttribution) : NodeParser { abstract class ParserBase(source: TokenSource, val attribution: NodeAttribution) : NodeParser {
val source: TokenSource = source.ignoringParserIgnoredTypes() val source: TokenSource = source.ignoringParserIgnoredTypes()

View File

@ -1,8 +1,8 @@
package gay.pizza.pork.parser package gay.pizza.pork.parser
import gay.pizza.pork.ast.InfixOperator import gay.pizza.pork.ast.gen.InfixOperator
import gay.pizza.pork.ast.PrefixOperator import gay.pizza.pork.ast.gen.PrefixOperator
import gay.pizza.pork.ast.SuffixOperator import gay.pizza.pork.ast.gen.SuffixOperator
internal object ParserHelpers { internal object ParserHelpers {
fun convertInfixOperator(token: Token): InfixOperator = when (token.type) { fun convertInfixOperator(token: Token): InfixOperator = when (token.type) {

View File

@ -1,8 +1,8 @@
package gay.pizza.pork.parser package gay.pizza.pork.parser
import gay.pizza.pork.ast.Node import gay.pizza.pork.ast.gen.Node
import gay.pizza.pork.ast.NodeType import gay.pizza.pork.ast.gen.NodeType
import gay.pizza.pork.ast.data import gay.pizza.pork.ast.gen.data
open class ParserNodeAttribution : NodeAttribution { open class ParserNodeAttribution : NodeAttribution {
private val stack = mutableListOf<MutableList<Token>>() private val stack = mutableListOf<MutableList<Token>>()

View File

@ -1,6 +1,6 @@
package gay.pizza.pork.parser package gay.pizza.pork.parser
import gay.pizza.pork.ast.NodeType import gay.pizza.pork.ast.gen.NodeType
class ParserStackAnalysis(private val stack: Array<StackTraceElement>) { class ParserStackAnalysis(private val stack: Array<StackTraceElement>) {
constructor(throwable: Throwable) : this(throwable.stackTrace) constructor(throwable: Throwable) : this(throwable.stackTrace)

View File

@ -1,6 +1,6 @@
package gay.pizza.pork.parser package gay.pizza.pork.parser
import gay.pizza.pork.ast.* import gay.pizza.pork.ast.gen.*
import gay.pizza.pork.common.IndentPrinter import gay.pizza.pork.common.IndentPrinter
class Printer(buffer: StringBuilder) : NodeVisitor<Unit> { class Printer(buffer: StringBuilder) : NodeVisitor<Unit> {

View File

@ -2,17 +2,11 @@ package gay.pizza.pork.idea
import com.intellij.model.Pointer import com.intellij.model.Pointer
import com.intellij.model.Symbol import com.intellij.model.Symbol
import com.intellij.navigation.ItemPresentation
import com.intellij.navigation.NavigatableSymbol import com.intellij.navigation.NavigatableSymbol
import com.intellij.navigation.PsiElementNavigationItem
import com.intellij.openapi.project.Project import com.intellij.openapi.project.Project
import com.intellij.platform.backend.navigation.NavigationRequest import com.intellij.platform.backend.navigation.NavigationRequest
import com.intellij.platform.backend.navigation.NavigationRequests
import com.intellij.platform.backend.navigation.NavigationTarget import com.intellij.platform.backend.navigation.NavigationTarget
import com.intellij.platform.backend.presentation.TargetPresentation import com.intellij.platform.backend.presentation.TargetPresentation
import com.intellij.psi.PsiElement
import gay.pizza.pork.idea.psi.PorkElementHelpers
import gay.pizza.pork.idea.psi.PorkReferencable
import gay.pizza.pork.idea.psi.gen.PorkElement import gay.pizza.pork.idea.psi.gen.PorkElement
@Suppress("UnstableApiUsage") @Suppress("UnstableApiUsage")

View File

@ -2,7 +2,7 @@ package gay.pizza.pork.idea
import com.intellij.psi.tree.IElementType import com.intellij.psi.tree.IElementType
import com.intellij.psi.tree.TokenSet import com.intellij.psi.tree.TokenSet
import gay.pizza.pork.ast.NodeType import gay.pizza.pork.ast.gen.NodeType
import gay.pizza.pork.parser.TokenType import gay.pizza.pork.parser.TokenType
object PorkElementTypes { object PorkElementTypes {

View File

@ -5,8 +5,8 @@ import com.intellij.lang.PsiBuilder
import com.intellij.lang.PsiParser import com.intellij.lang.PsiParser
import com.intellij.psi.tree.IElementType import com.intellij.psi.tree.IElementType
import com.intellij.psi.tree.IFileElementType import com.intellij.psi.tree.IFileElementType
import gay.pizza.pork.ast.NodeType import gay.pizza.pork.ast.gen.NodeType
import gay.pizza.pork.ast.parse import gay.pizza.pork.ast.gen.parse
import gay.pizza.pork.parser.Parser import gay.pizza.pork.parser.Parser
class PorkParser : PsiParser { class PorkParser : PsiParser {

View File

@ -1,8 +1,8 @@
package gay.pizza.pork.idea package gay.pizza.pork.idea
import com.intellij.lang.PsiBuilder import com.intellij.lang.PsiBuilder
import gay.pizza.pork.ast.Node import gay.pizza.pork.ast.gen.Node
import gay.pizza.pork.ast.NodeType import gay.pizza.pork.ast.gen.NodeType
import gay.pizza.pork.parser.ParseError import gay.pizza.pork.parser.ParseError
import gay.pizza.pork.parser.ParserNodeAttribution import gay.pizza.pork.parser.ParserNodeAttribution

View File

@ -10,7 +10,7 @@ import com.intellij.psi.impl.PsiFileFactoryImpl
import com.intellij.psi.util.PsiTreeUtil import com.intellij.psi.util.PsiTreeUtil
import com.intellij.psi.util.childrenOfType import com.intellij.psi.util.childrenOfType
import com.intellij.util.PlatformIcons import com.intellij.util.PlatformIcons
import gay.pizza.pork.ast.NodeType import gay.pizza.pork.ast.gen.NodeType
import gay.pizza.pork.common.unused import gay.pizza.pork.common.unused
import gay.pizza.pork.idea.PorkDeclarationSymbol import gay.pizza.pork.idea.PorkDeclarationSymbol
import gay.pizza.pork.idea.PorkElementTypes import gay.pizza.pork.idea.PorkElementTypes

View File

@ -2,15 +2,8 @@ package gay.pizza.pork.idea.psi
import com.intellij.openapi.util.TextRange import com.intellij.openapi.util.TextRange
import com.intellij.psi.PsiElement import com.intellij.psi.PsiElement
import com.intellij.psi.PsiFile
import com.intellij.psi.PsiManager
import com.intellij.psi.PsiReferenceBase import com.intellij.psi.PsiReferenceBase
import com.intellij.psi.search.FilenameIndex
import com.intellij.psi.util.PsiTreeUtil
import com.intellij.psi.util.childrenOfType
import gay.pizza.pork.idea.psi.gen.ImportDeclarationElement
import gay.pizza.pork.idea.psi.gen.PorkElement import gay.pizza.pork.idea.psi.gen.PorkElement
import gay.pizza.pork.idea.psi.gen.SymbolElement
abstract class PorkReference(element: PorkElement, textRange: TextRange) : PsiReferenceBase<PsiElement>(element, textRange), PorkReferencable { abstract class PorkReference(element: PorkElement, textRange: TextRange) : PsiReferenceBase<PsiElement>(element, textRange), PorkReferencable {
override val internalPorkElement: PorkElement = element override val internalPorkElement: PorkElement = element

View File

@ -4,7 +4,7 @@ package gay.pizza.pork.idea.psi.gen
import com.intellij.lang.ASTNode import com.intellij.lang.ASTNode
import com.intellij.navigation.ItemPresentation import com.intellij.navigation.ItemPresentation
import com.intellij.psi.PsiReference import com.intellij.psi.PsiReference
import gay.pizza.pork.ast.NodeType import gay.pizza.pork.ast.gen.NodeType
import gay.pizza.pork.idea.psi.PorkElementHelpers import gay.pizza.pork.idea.psi.PorkElementHelpers
import javax.swing.Icon import javax.swing.Icon

View File

@ -4,7 +4,7 @@ package gay.pizza.pork.idea.psi.gen
import com.intellij.extapi.psi.ASTWrapperPsiElement import com.intellij.extapi.psi.ASTWrapperPsiElement
import com.intellij.lang.ASTNode import com.intellij.lang.ASTNode
import com.intellij.psi.PsiElement import com.intellij.psi.PsiElement
import gay.pizza.pork.ast.NodeType import gay.pizza.pork.ast.gen.NodeType
import gay.pizza.pork.idea.PorkElementTypes import gay.pizza.pork.idea.PorkElementTypes
object PorkElementFactory { object PorkElementFactory {

View File

@ -5,7 +5,7 @@ import com.intellij.lang.ASTNode
import com.intellij.navigation.ItemPresentation import com.intellij.navigation.ItemPresentation
import com.intellij.psi.PsiElement import com.intellij.psi.PsiElement
import com.intellij.psi.PsiReference import com.intellij.psi.PsiReference
import gay.pizza.pork.ast.NodeType import gay.pizza.pork.ast.gen.NodeType
import gay.pizza.pork.idea.psi.PorkElementHelpers import gay.pizza.pork.idea.psi.PorkElementHelpers
import javax.swing.Icon import javax.swing.Icon

View File

@ -3,7 +3,7 @@ package gay.pizza.pork.tool
import com.github.ajalt.clikt.core.CliktCommand import com.github.ajalt.clikt.core.CliktCommand
import com.github.ajalt.clikt.parameters.arguments.argument import com.github.ajalt.clikt.parameters.arguments.argument
import gay.pizza.dough.fs.PlatformFsProvider import gay.pizza.dough.fs.PlatformFsProvider
import gay.pizza.pork.ast.Node import gay.pizza.pork.ast.gen.Node
import gay.pizza.pork.minimal.FileTool import gay.pizza.pork.minimal.FileTool
import kotlinx.serialization.ExperimentalSerializationApi import kotlinx.serialization.ExperimentalSerializationApi
import kotlinx.serialization.json.Json import kotlinx.serialization.json.Json

View File

@ -3,8 +3,8 @@ package gay.pizza.pork.tool
import com.github.ajalt.clikt.core.CliktCommand import com.github.ajalt.clikt.core.CliktCommand
import com.github.ajalt.clikt.parameters.arguments.argument import com.github.ajalt.clikt.parameters.arguments.argument
import gay.pizza.dough.fs.PlatformFsProvider import gay.pizza.dough.fs.PlatformFsProvider
import gay.pizza.pork.ast.NodeCoalescer import gay.pizza.pork.ast.gen.NodeCoalescer
import gay.pizza.pork.ast.visit import gay.pizza.pork.ast.gen.visit
import gay.pizza.pork.minimal.FileTool import gay.pizza.pork.minimal.FileTool
import gay.pizza.pork.parser.ParserAttributes import gay.pizza.pork.parser.ParserAttributes
import gay.pizza.pork.parser.ParserNodeAttribution import gay.pizza.pork.parser.ParserNodeAttribution