82 lines
2.2 KiB
Plaintext
82 lines
2.2 KiB
Plaintext
program main
|
|
enum Color
|
|
variant Red
|
|
variant Blue
|
|
variant Green
|
|
struct Pixel
|
|
field x: i32
|
|
field label: string
|
|
field color: Color
|
|
fn make_pixels(head: string) -> (array Pixel 3)
|
|
array : (array Pixel 3)
|
|
construct Pixel : Pixel
|
|
field x
|
|
int 1 : i32
|
|
field label
|
|
var head : string
|
|
field color
|
|
enum-variant Color.Red #0 : Color
|
|
construct Pixel : Pixel
|
|
field x
|
|
int 2 : i32
|
|
field label
|
|
string "mid" : string
|
|
field color
|
|
enum-variant Color.Blue #1 : Color
|
|
construct Pixel : Pixel
|
|
field x
|
|
int 3 : i32
|
|
field label
|
|
string "tail" : string
|
|
field color
|
|
enum-variant Color.Green #2 : Color
|
|
fn echo_pixels(pixels: (array Pixel 3)) -> (array Pixel 3)
|
|
var pixels : (array Pixel 3)
|
|
fn at(pixels: (array Pixel 3), i: i32) -> Pixel
|
|
index : Pixel
|
|
var pixels : (array Pixel 3)
|
|
var i : i32
|
|
fn first_label(head: string) -> string
|
|
field-access label : string
|
|
call at : Pixel
|
|
call make_pixels : (array Pixel 3)
|
|
var head : string
|
|
int 0 : i32
|
|
fn last_color(head: string) -> Color
|
|
field-access color : Color
|
|
index : Pixel
|
|
call echo_pixels : (array Pixel 3)
|
|
call make_pixels : (array Pixel 3)
|
|
var head : string
|
|
int 2 : i32
|
|
fn main() -> i32
|
|
match : i32
|
|
subject
|
|
call last_color : Color
|
|
string "head" : string
|
|
arm Color.Green
|
|
int 0 : i32
|
|
arm Color.Red
|
|
int 1 : i32
|
|
arm Color.Blue
|
|
int 1 : i32
|
|
test "struct array string field access"
|
|
binary = : bool
|
|
call first_label : string
|
|
string "head" : string
|
|
string "head" : string
|
|
test "struct array nested enum field access"
|
|
binary = : bool
|
|
call last_color : Color
|
|
string "head" : string
|
|
enum-variant Color.Green #2 : Color
|
|
test "struct array local param return call flow"
|
|
binary = : bool
|
|
field-access x : i32
|
|
call at : Pixel
|
|
call echo_pixels : (array Pixel 3)
|
|
call make_pixels : (array Pixel 3)
|
|
string "sun" : string
|
|
int 1 : i32
|
|
int 2 : i32
|