85 lines
2.5 KiB
Plaintext
85 lines
2.5 KiB
Plaintext
program main
|
|
fn parse_u64(text: string) -> (result u64 i32)
|
|
call std.string.parse_u64_result : (result u64 i32)
|
|
var text : string
|
|
fn parsed_text(text: string) -> string
|
|
call std.num.u64_to_string : string
|
|
std.result.unwrap_ok : u64
|
|
call parse_u64 : (result u64 i32)
|
|
var text : string
|
|
fn main() -> i32
|
|
local let value : unit
|
|
call parse_u64 : (result u64 i32)
|
|
string "42" : string
|
|
if : i32
|
|
std.result.is_ok : bool
|
|
var value : (result u64 i32)
|
|
if : i32
|
|
binary = : bool
|
|
call std.num.u64_to_string : string
|
|
std.result.unwrap_ok : u64
|
|
var value : (result u64 i32)
|
|
string "42" : string
|
|
int 0 : i32
|
|
int 1 : i32
|
|
std.result.unwrap_err : i32
|
|
var value : (result u64 i32)
|
|
test "parse u64 zero ok"
|
|
binary = : bool
|
|
call parsed_text : string
|
|
string "0" : string
|
|
string "0" : string
|
|
test "parse u64 high ok"
|
|
binary = : bool
|
|
call parsed_text : string
|
|
string "18446744073709551615" : string
|
|
string "18446744073709551615" : string
|
|
test "parse u64 empty err"
|
|
local let value : unit
|
|
call parse_u64 : (result u64 i32)
|
|
string "" : string
|
|
if : bool
|
|
std.result.is_err : bool
|
|
var value : (result u64 i32)
|
|
binary = : bool
|
|
std.result.unwrap_err : i32
|
|
var value : (result u64 i32)
|
|
int 1 : i32
|
|
bool false : bool
|
|
test "parse u64 plus err"
|
|
local let value : unit
|
|
call parse_u64 : (result u64 i32)
|
|
string "+1" : string
|
|
if : bool
|
|
std.result.is_err : bool
|
|
var value : (result u64 i32)
|
|
binary = : bool
|
|
std.result.unwrap_err : i32
|
|
var value : (result u64 i32)
|
|
int 1 : i32
|
|
bool false : bool
|
|
test "parse u64 negative err"
|
|
local let value : unit
|
|
call parse_u64 : (result u64 i32)
|
|
string "-1" : string
|
|
if : bool
|
|
std.result.is_err : bool
|
|
var value : (result u64 i32)
|
|
binary = : bool
|
|
std.result.unwrap_err : i32
|
|
var value : (result u64 i32)
|
|
int 1 : i32
|
|
bool false : bool
|
|
test "parse u64 above range err"
|
|
local let value : unit
|
|
call parse_u64 : (result u64 i32)
|
|
string "18446744073709551616" : string
|
|
if : bool
|
|
std.result.is_err : bool
|
|
var value : (result u64 i32)
|
|
binary = : bool
|
|
std.result.unwrap_err : i32
|
|
var value : (result u64 i32)
|
|
int 1 : i32
|
|
bool false : bool
|