mirror of
https://github.com/irmen/prog8.git
synced 2024-08-19 14:29:17 +00:00
replaced todo's that aren't real todo's with regular exception
This commit is contained in:
parent
6dd44aaf0d
commit
ca63051c71
@ -645,7 +645,7 @@ internal class AsmGen(private val program: Program,
|
|||||||
is BuiltinFunctionStatementPlaceholder -> throw AssemblyError("builtin function should not have placeholder anymore?")
|
is BuiltinFunctionStatementPlaceholder -> throw AssemblyError("builtin function should not have placeholder anymore?")
|
||||||
is AnonymousScope -> translate(stmt)
|
is AnonymousScope -> translate(stmt)
|
||||||
is Block -> throw AssemblyError("block should have been handled elsewhere")
|
is Block -> throw AssemblyError("block should have been handled elsewhere")
|
||||||
else -> TODO("no translation for $stmt")
|
else -> throw AssemblyError("missing asm translation for $stmt")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -58,8 +58,7 @@ internal class AssignmentAsmGen(private val program: Program, private val asmgen
|
|||||||
assignFromMemoryByte(assign.target, null, read.addressExpression as IdentifierReference)
|
assignFromMemoryByte(assign.target, null, read.addressExpression as IdentifierReference)
|
||||||
}
|
}
|
||||||
else -> {
|
else -> {
|
||||||
asmgen.translateExpression(read.addressExpression)
|
throw AssemblyError("missing asm gen for memread assignment into ${assign.target}")
|
||||||
TODO("read memory byte from result and put that in ${assign.target}")
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -117,7 +116,7 @@ internal class AssignmentAsmGen(private val program: Program, private val asmgen
|
|||||||
asmgen.translateExpression(assign.value as FunctionCall)
|
asmgen.translateExpression(assign.value as FunctionCall)
|
||||||
assignFromEvalResult(assign.target)
|
assignFromEvalResult(assign.target)
|
||||||
}
|
}
|
||||||
is ArrayLiteralValue, is StringLiteralValue -> TODO("string/array/struct assignment? $assign")
|
is ArrayLiteralValue, is StringLiteralValue -> throw AssemblyError("no asm gen for string/array assignment $assign")
|
||||||
is StructLiteralValue -> throw AssemblyError("struct literal value assignment should have been flattened ${assign.value.position}")
|
is StructLiteralValue -> throw AssemblyError("struct literal value assignment should have been flattened ${assign.value.position}")
|
||||||
is RangeExpr -> throw AssemblyError("range expression should have been changed into array values ${assign.value.position}")
|
is RangeExpr -> throw AssemblyError("range expression should have been changed into array values ${assign.value.position}")
|
||||||
}
|
}
|
||||||
@ -199,14 +198,14 @@ internal class AssignmentAsmGen(private val program: Program, private val asmgen
|
|||||||
""")
|
""")
|
||||||
}
|
}
|
||||||
target.memoryAddress!=null -> {
|
target.memoryAddress!=null -> {
|
||||||
TODO("assign address $sourceName to memory word $target")
|
throw AssemblyError("no asm gen for assign address $sourceName to memory word $target")
|
||||||
}
|
}
|
||||||
targetArrayIdx!=null -> {
|
targetArrayIdx!=null -> {
|
||||||
val index = targetArrayIdx.arrayspec.index
|
val index = targetArrayIdx.arrayspec.index
|
||||||
val targetName = asmgen.asmIdentifierName(targetArrayIdx.identifier)
|
val targetName = asmgen.asmIdentifierName(targetArrayIdx.identifier)
|
||||||
TODO("assign address $sourceName to array $targetName [ $index ]")
|
throw AssemblyError("no asm gen for assign address $sourceName to array $targetName [ $index ]")
|
||||||
}
|
}
|
||||||
else -> TODO("assign address $sourceName to $target")
|
else -> throw AssemblyError("no asm gen for assign address $sourceName to $target")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -225,7 +224,7 @@ internal class AssignmentAsmGen(private val program: Program, private val asmgen
|
|||||||
""")
|
""")
|
||||||
}
|
}
|
||||||
target.memoryAddress!=null -> {
|
target.memoryAddress!=null -> {
|
||||||
TODO("assign wordvar $sourceName to memory ${target.memoryAddress}")
|
throw AssemblyError("no asm gen for assign wordvar $sourceName to memory ${target.memoryAddress}")
|
||||||
}
|
}
|
||||||
targetArrayIdx!=null -> {
|
targetArrayIdx!=null -> {
|
||||||
val index = targetArrayIdx.arrayspec.index
|
val index = targetArrayIdx.arrayspec.index
|
||||||
@ -236,7 +235,7 @@ internal class AssignmentAsmGen(private val program: Program, private val asmgen
|
|||||||
val arrayDt = targetArrayIdx.identifier.inferType(program).typeOrElse(DataType.STRUCT)
|
val arrayDt = targetArrayIdx.identifier.inferType(program).typeOrElse(DataType.STRUCT)
|
||||||
popAndWriteArrayvalueWithIndexA(arrayDt, targetName)
|
popAndWriteArrayvalueWithIndexA(arrayDt, targetName)
|
||||||
}
|
}
|
||||||
else -> TODO("assign wordvar to $target")
|
else -> throw AssemblyError("no asm gen for assign wordvar to $target")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -267,7 +266,7 @@ internal class AssignmentAsmGen(private val program: Program, private val asmgen
|
|||||||
asmgen.translateExpression(index)
|
asmgen.translateExpression(index)
|
||||||
asmgen.out(" lda #<$targetName | ldy #>$targetName | jsr c64flt.pop_float_to_indexed_var")
|
asmgen.out(" lda #<$targetName | ldy #>$targetName | jsr c64flt.pop_float_to_indexed_var")
|
||||||
}
|
}
|
||||||
else -> TODO("assign floatvar to $target")
|
else -> throw AssemblyError("no asm gen for assign floatvar to $target")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -318,7 +317,7 @@ internal class AssignmentAsmGen(private val program: Program, private val asmgen
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else -> TODO("assign bytevar to $target")
|
else -> throw AssemblyError("no asm gen for assign bytevar to $target")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -413,7 +412,7 @@ internal class AssignmentAsmGen(private val program: Program, private val asmgen
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else -> TODO("assign register $register to $target")
|
else -> throw AssemblyError("no asm gen for assign register $register to $target")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -498,7 +497,7 @@ internal class AssignmentAsmGen(private val program: Program, private val asmgen
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
target.memoryAddress!=null -> {
|
target.memoryAddress!=null -> {
|
||||||
TODO("assign word $word to memory ${target.memoryAddress}")
|
throw AssemblyError("no asm gen for assign word $word to memory ${target.memoryAddress}")
|
||||||
}
|
}
|
||||||
targetArrayIdx!=null -> {
|
targetArrayIdx!=null -> {
|
||||||
val index = targetArrayIdx.arrayspec.index
|
val index = targetArrayIdx.arrayspec.index
|
||||||
@ -516,7 +515,7 @@ internal class AssignmentAsmGen(private val program: Program, private val asmgen
|
|||||||
sta $targetName+1,y
|
sta $targetName+1,y
|
||||||
""")
|
""")
|
||||||
}
|
}
|
||||||
else -> TODO("assign word $word to $target")
|
else -> throw AssemblyError("no asm gen for assign word $word to $target")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -547,7 +546,7 @@ internal class AssignmentAsmGen(private val program: Program, private val asmgen
|
|||||||
sta $targetName,y
|
sta $targetName,y
|
||||||
""")
|
""")
|
||||||
}
|
}
|
||||||
else -> TODO("assign byte $byte to $target")
|
else -> throw AssemblyError("no asm gen for assign byte $byte to $target")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -600,7 +599,7 @@ internal class AssignmentAsmGen(private val program: Program, private val asmgen
|
|||||||
""") // TODO use a subroutine for this
|
""") // TODO use a subroutine for this
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else -> TODO("assign float 0.0 to $target")
|
else -> throw AssemblyError("no asm gen for assign float 0.0 to $target")
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// non-zero value
|
// non-zero value
|
||||||
@ -660,7 +659,7 @@ internal class AssignmentAsmGen(private val program: Program, private val asmgen
|
|||||||
""") // TODO use a subroutine for this
|
""") // TODO use a subroutine for this
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else -> TODO("assign float $float to $target")
|
else -> throw AssemblyError("no asm gen for assign float $float to $target")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -687,9 +686,9 @@ internal class AssignmentAsmGen(private val program: Program, private val asmgen
|
|||||||
targetArrayIdx!=null -> {
|
targetArrayIdx!=null -> {
|
||||||
val index = targetArrayIdx.arrayspec.index
|
val index = targetArrayIdx.arrayspec.index
|
||||||
val targetName = asmgen.asmIdentifierName(targetArrayIdx.identifier)
|
val targetName = asmgen.asmIdentifierName(targetArrayIdx.identifier)
|
||||||
TODO("assign memory byte at $address to array $targetName [ $index ]")
|
throw AssemblyError("no asm gen for assign memory byte at $address to array $targetName [ $index ]")
|
||||||
}
|
}
|
||||||
else -> TODO("assign memory byte $target")
|
else -> throw AssemblyError("no asm gen for assign memory byte $target")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(identifier!=null) {
|
else if(identifier!=null) {
|
||||||
@ -721,9 +720,9 @@ internal class AssignmentAsmGen(private val program: Program, private val asmgen
|
|||||||
targetArrayIdx!=null -> {
|
targetArrayIdx!=null -> {
|
||||||
val index = targetArrayIdx.arrayspec.index
|
val index = targetArrayIdx.arrayspec.index
|
||||||
val targetName = asmgen.asmIdentifierName(targetArrayIdx.identifier)
|
val targetName = asmgen.asmIdentifierName(targetArrayIdx.identifier)
|
||||||
TODO("assign memory byte $sourceName to array $targetName [ $index ]")
|
throw AssemblyError("no asm gen for assign memory byte $sourceName to array $targetName [ $index ]")
|
||||||
}
|
}
|
||||||
else -> TODO("assign memory byte $target")
|
else -> throw AssemblyError("no asm gen for assign memory byte $target")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -27,7 +27,7 @@ internal class ExpressionsAsmGen(private val program: Program, private val asmge
|
|||||||
is RegisterExpr -> translateExpression(expression)
|
is RegisterExpr -> translateExpression(expression)
|
||||||
is IdentifierReference -> translateExpression(expression)
|
is IdentifierReference -> translateExpression(expression)
|
||||||
is FunctionCall -> translateExpression(expression)
|
is FunctionCall -> translateExpression(expression)
|
||||||
is ArrayLiteralValue, is StringLiteralValue -> TODO("string/array/struct assignment?")
|
is ArrayLiteralValue, is StringLiteralValue -> throw AssemblyError("no asm gen for string/array assignment")
|
||||||
is StructLiteralValue -> throw AssemblyError("struct literal value assignment should have been flattened")
|
is StructLiteralValue -> throw AssemblyError("struct literal value assignment should have been flattened")
|
||||||
is RangeExpr -> throw AssemblyError("range expression should have been changed into array values")
|
is RangeExpr -> throw AssemblyError("range expression should have been changed into array values")
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user