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

This commit is contained in:
alex committed 2023-10-06 15:52:34 -07:00
1 parent d36310e698
commit 945ba85c98
83 files changed
+102 -115

No files matched your search

@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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 =
@@ -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? =
@@ -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
@@ -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) {
@@ -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,
@@ -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
@@ -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) {
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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")
@@ -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"
) )
) )
@@ -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(
@@ -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")
@@ -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}"
@@ -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 {
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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>()
@@ -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,
@@ -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
@@ -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) {
@@ -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
@@ -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) {}
@@ -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)
@@ -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) {
@@ -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 {
@@ -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()
@@ -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) {
@@ -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>>()
@@ -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)
@@ -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> {
@@ -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")
@@ -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 {
@@ -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 {
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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 {
@@ -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
@@ -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
@@ -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