This commit is contained in:
2023-11-22 21:40:09 -08:00
parent 76290a401a
commit 2692e3c991
44 changed files with 669 additions and 0 deletions

View File

@ -4,6 +4,9 @@ import com.github.ajalt.clikt.core.CliktCommand
import com.github.ajalt.clikt.parameters.arguments.argument
import gay.pizza.dough.fs.PlatformFsProvider
import gay.pizza.pork.ast.gen.Symbol
import gay.pizza.pork.bir.IrSlab
import gay.pizza.pork.bir.IrSymbolGraph
import gay.pizza.pork.bir.IrWorld
import gay.pizza.pork.compiler.Compiler
import gay.pizza.pork.minimal.FileTool
@ -31,5 +34,18 @@ class CompileCommand : CliktCommand(help = "Compile Pork to Bytecode", name = "c
println(" ${symbol.offset + index.toUInt()} ${op}${annotation}")
}
}
val compiledIrSlabs = mutableListOf<IrSlab>()
for (symbol in compiledMain.usedSymbols) {
val what = compiler.resolve(symbol)
compiledIrSlabs.add(what.compilableSlab.compiledIrSlab)
}
compiledIrSlabs.add(compiledMain.compilableSlab.compiledIrSlab)
val irWorld = IrWorld(compiledIrSlabs.toList())
val graph = IrSymbolGraph()
graph.crawl(irWorld)
graph.forEachEdge { user, owner ->
println("$user -> $owner")
}
}
}