1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162moduleIO=IoopenUtil.Source(* Module signatures for interpreter-architecture simulation *)includeDynamic_runner.Signaturetypestf_result=|Pass|Failof[`Syntaxofregion*string|`Runtime ofregion*string]moduletypeARCH=sig(* STF AST transformation *)valtransform_stf_stmt:Stf.Ast.stmt->Stf.Ast.stmt(* Extern evaluation *)valeval_extern_init:Value.tlist->Value.tvaleval_extern_func_lctk_call:Value.tlist->Value.tlistvaleval_extern_func_call:Value.tlist->Value.tlistvaleval_extern_method_call:Value.tlist->Value.tlist(* Architecture-specific external state *)valinit_arch_state:Value.t(* Mirror session interface *)valadd_mirror_session:Value.t->int->int->Value.tvaladd_mirror_session_mc:Value.t->int->int->Value.t(* Multicast interface *)valmc_mgrp_create:Value.t->int->Value.tvalmc_node_create:Value.t->int->intlist->Value.tvalmc_node_associate:Value.t->int->int->Value.t(* Register interface *)valregister_read:Value.t->string->int->Value.tvalregister_write:Value.t->string->int->int->Value.tvalregister_reset:Value.t->string->Value.t(* Pipeline evaluation *)valinit_pipe:stringlist->string->Value.t*Value.tvaldrive_pipe:Value.t->Value.t->IO.rx->Value.t*Value.t*IO.txlist(* Extern relation and meta-function evaluation *)valeval_extern_rel:string->Value.tlist->rel_resultvaleval_extern_func:string->Typ.tlist->Value.tlist->func_resultendmoduletypeSIM=sigincludeRUNNER(* Run a program against the spec and a STF test (For P4 only) *)valrun_stf_test:stringlist->string->string->stf_resultend