99 lines
2.3 KiB
Plaintext
99 lines
2.3 KiB
Plaintext
program main
|
|
fn add_local(a: i32) -> i32
|
|
local let one : unit
|
|
int 1 : i32
|
|
local var total : unit
|
|
binary + : i32
|
|
var a : i32
|
|
var one : i32
|
|
set total : unit
|
|
binary + : i32
|
|
var total : i32
|
|
int 1 : i32
|
|
var total : i32
|
|
fn keep_flag(flag: bool) -> bool
|
|
local let local_flag : unit
|
|
var flag : bool
|
|
var local_flag : bool
|
|
fn flip_flag(flag: bool) -> bool
|
|
local var current : unit
|
|
var flag : bool
|
|
set current : unit
|
|
if : bool
|
|
var current : bool
|
|
bool false : bool
|
|
bool true : bool
|
|
var current : bool
|
|
fn add_wide_local(base: i64) -> i64
|
|
local var count : unit
|
|
var base : i64
|
|
set count : unit
|
|
binary + : i64
|
|
var count : i64
|
|
i64 2 : i64
|
|
var count : i64
|
|
fn add_ratio_local(base: f64) -> f64
|
|
local var amount : unit
|
|
var base : f64
|
|
set amount : unit
|
|
binary + : f64
|
|
var amount : f64
|
|
float 0.5 : f64
|
|
var amount : f64
|
|
fn main() -> i32
|
|
local var flag : unit
|
|
bool false : bool
|
|
set flag : unit
|
|
call flip_flag : bool
|
|
var flag : bool
|
|
if : i32
|
|
var flag : bool
|
|
call add_local : i32
|
|
int 2 : i32
|
|
int 1 : i32
|
|
test "locals work"
|
|
local let base : unit
|
|
int 2 : i32
|
|
local var value : unit
|
|
call add_local : i32
|
|
var base : i32
|
|
set value : unit
|
|
binary + : i32
|
|
var value : i32
|
|
int 1 : i32
|
|
binary = : bool
|
|
var value : i32
|
|
int 5 : i32
|
|
test "bool let locals work"
|
|
local let expected : unit
|
|
bool true : bool
|
|
local let actual : unit
|
|
call keep_flag : bool
|
|
var expected : bool
|
|
var actual : bool
|
|
test "bool let locals preserve false"
|
|
if : bool
|
|
call keep_flag : bool
|
|
bool false : bool
|
|
bool false : bool
|
|
bool true : bool
|
|
test "bool var set flips true"
|
|
if : bool
|
|
call flip_flag : bool
|
|
bool true : bool
|
|
bool false : bool
|
|
bool true : bool
|
|
test "bool var set flips false"
|
|
call flip_flag : bool
|
|
bool false : bool
|
|
test "i64 var set works"
|
|
binary = : bool
|
|
call add_wide_local : i64
|
|
i64 40 : i64
|
|
i64 42 : i64
|
|
test "f64 var set works"
|
|
binary = : bool
|
|
call add_ratio_local : f64
|
|
float 41.5 : f64
|
|
float 42 : f64
|