diff --git a/codeGenCpu6502/simulator.iml b/codeGenCpu6502/simulator.iml deleted file mode 100644 index 245d3429f..000000000 --- a/codeGenCpu6502/simulator.iml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/codeGenExperimental6502/build.gradle b/codeGenExperimental6502/build.gradle index b0eb3c62c..e84ca1b99 100644 --- a/codeGenExperimental6502/build.gradle +++ b/codeGenExperimental6502/build.gradle @@ -25,7 +25,6 @@ compileTestKotlin { dependencies { implementation project(':compilerInterfaces') - implementation project(':compilerAst') implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8" // implementation "org.jetbrains.kotlin:kotlin-reflect" implementation "com.michael-bull.kotlin-result:kotlin-result-jvm:1.1.14" diff --git a/codeGenExperimental6502/codeGenExperimental6502.iml b/codeGenExperimental6502/codeGenExperimental6502.iml index f04990594..6412199dc 100644 --- a/codeGenExperimental6502/codeGenExperimental6502.iml +++ b/codeGenExperimental6502/codeGenExperimental6502.iml @@ -9,7 +9,6 @@ - diff --git a/codeGenExperimental6502/src/prog8/codegen/experimental6502/AsmGen.kt b/codeGenExperimental6502/src/prog8/codegen/experimental6502/AsmGen.kt index 5e68097a6..a9a02e68a 100644 --- a/codeGenExperimental6502/src/prog8/codegen/experimental6502/AsmGen.kt +++ b/codeGenExperimental6502/src/prog8/codegen/experimental6502/AsmGen.kt @@ -1,9 +1,9 @@ package prog8.codegen.experimental6502 -import prog8.ast.Program import prog8.compilerinterface.* +import prog8.compilerinterface.intermediate.PtProgram -class AsmGen(internal val program: Program, +class AsmGen(internal val program: PtProgram, internal val errors: IErrorReporter, internal val symbolTable: SymbolTable, internal val options: CompilationOptions): IAssemblyGenerator { @@ -14,10 +14,7 @@ class AsmGen(internal val program: Program, symbolTable.print() symbolTable.flat.forEach { println(it) } - - // TODO temporary location to do this: - val intermediateAst = IntermediateAstMaker(program).transform() - intermediateAst.print() + program.print() println("..todo: create assembly code into ${options.outputDir.toAbsolutePath()}..") return AssemblyProgram("dummy") diff --git a/compiler/src/prog8/compiler/Compiler.kt b/compiler/src/prog8/compiler/Compiler.kt index f5892855b..2650b1045 100644 --- a/compiler/src/prog8/compiler/Compiler.kt +++ b/compiler/src/prog8/compiler/Compiler.kt @@ -398,8 +398,12 @@ internal fun asmGeneratorFor(program: Program, options: CompilationOptions): IAssemblyGenerator { if(options.experimentalCodegen) { - if (options.compTarget.machine.cpu in arrayOf(CpuType.CPU6502, CpuType.CPU65c02)) - return prog8.codegen.experimental6502.AsmGen(program, errors, symbolTable, options) + if (options.compTarget.machine.cpu in arrayOf(CpuType.CPU6502, CpuType.CPU65c02)) { + + // TODO for now, only use the new Intermediary Ast for this experimental codegen: + val intermediateAst = IntermediateAstMaker(program).transform() + return prog8.codegen.experimental6502.AsmGen(intermediateAst, errors, symbolTable, options) + } } else { if (options.compTarget.machine.cpu in arrayOf(CpuType.CPU6502, CpuType.CPU65c02)) return prog8.codegen.cpu6502.AsmGen(program, errors, symbolTable, options) diff --git a/codeGenExperimental6502/src/prog8/codegen/experimental6502/IntermediateAstMaker.kt b/compiler/src/prog8/compiler/IntermediateAstMaker.kt similarity index 99% rename from codeGenExperimental6502/src/prog8/codegen/experimental6502/IntermediateAstMaker.kt rename to compiler/src/prog8/compiler/IntermediateAstMaker.kt index e5f8290b8..59dedfbfc 100644 --- a/codeGenExperimental6502/src/prog8/codegen/experimental6502/IntermediateAstMaker.kt +++ b/compiler/src/prog8/compiler/IntermediateAstMaker.kt @@ -1,10 +1,10 @@ -package prog8.codegen.experimental6502 +package prog8.compiler -import prog8.ast.Module import prog8.ast.Program +import prog8.ast.Module import prog8.ast.base.FatalAstException -import prog8.ast.expressions.* import prog8.ast.statements.* +import prog8.ast.expressions.* import prog8.compilerinterface.VarDeclType import prog8.compilerinterface.intermediate.* @@ -414,4 +414,4 @@ class IntermediateAstMaker(val srcProgram: Program) { cast.add(transformExpression(srcCast.expression)) return cast } -} +} \ No newline at end of file diff --git a/compiler/test/ast/TestIntermediateAst.kt b/compiler/test/ast/TestIntermediateAst.kt index 7b982506c..015320ac5 100644 --- a/compiler/test/ast/TestIntermediateAst.kt +++ b/compiler/test/ast/TestIntermediateAst.kt @@ -4,8 +4,8 @@ import io.kotest.assertions.fail import io.kotest.core.spec.style.FunSpec import io.kotest.matchers.ints.shouldBeGreaterThan import io.kotest.matchers.shouldBe -import prog8.codegen.experimental6502.IntermediateAstMaker import prog8.codegen.target.C64Target +import prog8.compiler.IntermediateAstMaker import prog8.compilerinterface.intermediate.PtVariable import prog8tests.helpers.compileText