23 lines
487 B
Kotlin
23 lines
487 B
Kotlin
package net.shadowfacts.asmr.program
|
|
|
|
/**
|
|
* @author shadowfacts
|
|
*/
|
|
interface ExecutionFlow {
|
|
val block: ExecutableBlock
|
|
|
|
val next: ExecutableBlock?
|
|
val prev: ExecutableBlock?
|
|
}
|
|
class DirectExecutionFlow(override val block: ExecutableBlock): ExecutionFlow {
|
|
override var next: ExecutableBlock? = null
|
|
override var prev: ExecutableBlock? = null
|
|
|
|
fun link(next: ExecutableBlock) {
|
|
this.next = next
|
|
(next.executionFlow as? DirectExecutionFlow)?.let {
|
|
it.prev = block
|
|
}
|
|
}
|
|
}
|