149 lines
4.4 KiB
Plaintext
149 lines
4.4 KiB
Plaintext
program main
|
|
enum PacketState
|
|
variant Missing
|
|
variant Live Packet
|
|
variant Cached Packet
|
|
struct Packet
|
|
field values: (array i32 3)
|
|
field labels: (array string 2)
|
|
field flags: (array bool 2)
|
|
fn make_packet(base: i32, head: string) -> Packet
|
|
construct Packet : Packet
|
|
field values
|
|
array : (array i32 3)
|
|
var base : i32
|
|
binary + : i32
|
|
var base : i32
|
|
int 1 : i32
|
|
binary + : i32
|
|
var base : i32
|
|
int 2 : i32
|
|
field labels
|
|
array : (array string 2)
|
|
var head : string
|
|
string "tail" : string
|
|
field flags
|
|
array : (array bool 2)
|
|
bool false : bool
|
|
bool true : bool
|
|
fn live(packet: Packet) -> PacketState
|
|
enum-variant PacketState.Live #1 payload : PacketState
|
|
var packet : Packet
|
|
fn cached(packet: Packet) -> PacketState
|
|
enum-variant PacketState.Cached #2 payload : PacketState
|
|
var packet : Packet
|
|
fn echo_state(state: PacketState) -> PacketState
|
|
var state : PacketState
|
|
fn local_state(base: i32, head: string) -> PacketState
|
|
local let state : unit
|
|
enum-variant PacketState.Live #1 payload : PacketState
|
|
call make_packet : Packet
|
|
var base : i32
|
|
var head : string
|
|
var state : PacketState
|
|
fn call_state(base: i32, head: string) -> PacketState
|
|
call echo_state : PacketState
|
|
call cached : PacketState
|
|
call make_packet : Packet
|
|
var base : i32
|
|
var head : string
|
|
fn state_value(state: PacketState, i: i32) -> i32
|
|
match : i32
|
|
subject
|
|
var state : PacketState
|
|
arm PacketState.Missing
|
|
int 0 : i32
|
|
arm PacketState.Live payload
|
|
index : i32
|
|
field-access values : (array i32 3)
|
|
var payload : Packet
|
|
var i : i32
|
|
arm PacketState.Cached payload
|
|
index : i32
|
|
field-access values : (array i32 3)
|
|
var payload : Packet
|
|
var i : i32
|
|
fn state_label(state: PacketState, i: i32) -> string
|
|
match : string
|
|
subject
|
|
var state : PacketState
|
|
arm PacketState.Missing
|
|
string "" : string
|
|
arm PacketState.Live payload
|
|
index : string
|
|
field-access labels : (array string 2)
|
|
var payload : Packet
|
|
var i : i32
|
|
arm PacketState.Cached payload
|
|
index : string
|
|
field-access labels : (array string 2)
|
|
var payload : Packet
|
|
var i : i32
|
|
fn state_flag(state: PacketState, i: i32) -> bool
|
|
match : bool
|
|
subject
|
|
var state : PacketState
|
|
arm PacketState.Missing
|
|
bool false : bool
|
|
arm PacketState.Live payload
|
|
index : bool
|
|
field-access flags : (array bool 2)
|
|
var payload : Packet
|
|
var i : i32
|
|
arm PacketState.Cached payload
|
|
index : bool
|
|
field-access flags : (array bool 2)
|
|
var payload : Packet
|
|
var i : i32
|
|
fn main() -> i32
|
|
call state_value : i32
|
|
call call_state : PacketState
|
|
int 7 : i32
|
|
string "sun" : string
|
|
int 2 : i32
|
|
test "struct payload missing arm"
|
|
binary = : bool
|
|
call state_value : i32
|
|
enum-variant PacketState.Missing #0 : PacketState
|
|
int 0 : i32
|
|
int 0 : i32
|
|
test "struct payload live constructor flow"
|
|
binary = : bool
|
|
call state_value : i32
|
|
call live : PacketState
|
|
call make_packet : Packet
|
|
int 7 : i32
|
|
string "sun" : string
|
|
int 2 : i32
|
|
int 9 : i32
|
|
test "struct payload cached param return call flow"
|
|
binary = : bool
|
|
call state_value : i32
|
|
call call_state : PacketState
|
|
int 7 : i32
|
|
string "sun" : string
|
|
int 1 : i32
|
|
int 8 : i32
|
|
test "struct payload string array field access"
|
|
binary = : bool
|
|
call state_label : string
|
|
call call_state : PacketState
|
|
int 7 : i32
|
|
string "sun" : string
|
|
int 0 : i32
|
|
string "sun" : string
|
|
test "struct payload bool array field access"
|
|
call state_flag : bool
|
|
call call_state : PacketState
|
|
int 7 : i32
|
|
string "sun" : string
|
|
int 1 : i32
|
|
test "struct payload local return flow"
|
|
binary = : bool
|
|
call state_label : string
|
|
call local_state : PacketState
|
|
int 9 : i32
|
|
string "orb" : string
|
|
int 1 : i32
|
|
string "tail" : string
|