SingleProtocolInterpreter

abstract class SingleProtocolInterpreter<Obj>(program: ProgramNode, protocol: Protocol) : AbstractProtocolInterpreter<Obj>

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

Constructors

SingleProtocolInterpreter
Link copied to clipboard
fun SingleProtocolInterpreter(program: ProgramNode, protocol: Protocol)

Functions

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

Properties

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

Inheritors

CommitmentProtocolCleartextInterpreter
Link copied to clipboard
ZKPProverInterpreter
Link copied to clipboard
ZKPVerifierInterpreter
Link copied to clipboard