build: move parser and tokenizer into separate modules

This commit is contained in:
2023-10-16 21:52:21 -07:00
parent 9338b01b48
commit 15f5f313cc
57 changed files with 92 additions and 61 deletions

View File

@ -1,6 +1,6 @@
package gay.pizza.pork.frontend
import gay.pizza.pork.parser.CharSource
import gay.pizza.pork.tokenizer.CharSource
interface ContentSource {
fun loadAsCharSource(path: String): CharSource

View File

@ -3,8 +3,8 @@ package gay.pizza.pork.frontend
import gay.pizza.dough.fs.FsPath
import gay.pizza.dough.fs.PlatformFsProvider
import gay.pizza.dough.fs.readString
import gay.pizza.pork.parser.CharSource
import gay.pizza.pork.parser.StringCharSource
import gay.pizza.pork.tokenizer.CharSource
import gay.pizza.pork.tokenizer.StringCharSource
class FsContentSource(val root: FsPath) : ContentSource {
override fun loadAsCharSource(path: String): CharSource =

View File

@ -4,7 +4,7 @@ import gay.pizza.pork.ast.gen.CompilationUnit
import gay.pizza.pork.ast.gen.ImportDeclaration
import gay.pizza.pork.parser.DiscardNodeAttribution
import gay.pizza.pork.parser.Parser
import gay.pizza.pork.parser.Tokenizer
import gay.pizza.pork.tokenizer.Tokenizer
class World(val importSource: ImportSource) {
private val internalUnits = mutableMapOf<String, CompilationUnit>()