SingleProtocolInterpreter

Interpreter for a single protocol. This class is defined for convenience, so that the protocol argument on implemented methods isn't necessary.

Constructors

Link copied to clipboard

Functions

Link copied to clipboard
abstract suspend fun buildExpressionObject(expr: AtomicExpressionNode): Obj
open suspend override fun buildExpressionObject(protocol: Protocol, expr: AtomicExpressionNode): Obj
Link copied to clipboard
abstract suspend fun buildObject(className: ClassName, typeArguments: List<ValueType>, arguments: List<AtomicExpressionNode>): Obj
open suspend override fun buildObject(protocol: Protocol, className: ClassName, typeArguments: List<ValueType>, arguments: List<AtomicExpressionNode>): Obj
Link copied to clipboard
open override fun getContextMarker(): Int
Link copied to clipboard
abstract fun getNullObject(): Obj
open override fun getNullObject(protocol: Protocol): Obj
Link copied to clipboard
abstract suspend fun popContext()
Link copied to clipboard
open suspend override fun popFunctionContext()
Link copied to clipboard
abstract suspend fun pushContext()
Link copied to clipboard
open suspend override fun pushFunctionContext(arguments: PersistentMap<ParameterNode, Pair<Protocol, FunctionArgumentNode>>)
Link copied to clipboard
open suspend override fun restoreContext(marker: Int)
Link copied to clipboard
abstract suspend fun runGuard(expr: AtomicExpressionNode): Value
open suspend override fun runGuard(protocol: Protocol, expr: AtomicExpressionNode): Value
Link copied to clipboard
abstract suspend fun runLet(stmt: LetNode)
open suspend override fun runLet(protocol: Protocol, stmt: LetNode)
Link copied to clipboard
abstract suspend fun runOutput(stmt: OutputNode)
open suspend override fun runOutput(protocol: Protocol, stmt: OutputNode)
Link copied to clipboard
abstract suspend fun runReceive(sender: LetNode, sendProtocol: Protocol, receiver: SimpleStatementNode, recvProtocol: Protocol, events: ProtocolCommunication)
Link copied to clipboard
abstract suspend fun runSend(sender: LetNode, sendProtocol: Protocol, receiver: SimpleStatementNode, recvProtocol: Protocol, events: ProtocolCommunication)
Link copied to clipboard
open suspend override fun runSimpleStatement(protocol: Protocol, stmt: SimpleStatementNode)
Link copied to clipboard
abstract suspend fun runUpdate(stmt: UpdateNode)
open suspend override fun runUpdate(protocol: Protocol, stmt: UpdateNode)

Properties

Link copied to clipboard
open override val availableProtocols: Set<Protocol>
Link copied to clipboard

Inheritors

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard