slovo/tests/string-parse-i32-result.checked.lower
2026-05-22 08:38:43 +02:00

71 lines
2.0 KiB
Plaintext

program main
fn parse_text(text: string) -> (result i32 i32)
call std.string.parse_i32_result : (result i32 i32)
var text : string
fn parse_stdin_text() -> (result i32 i32)
local let input : unit
call std.io.read_stdin_result : (result string i32)
match : (result i32 i32)
subject
var input : (result string i32)
arm ok text
call std.string.parse_i32_result : (result i32 i32)
var text : string
arm err code
err : (result i32 i32)
var code : i32
fn main() -> i32
local let value : unit
call parse_stdin_text : (result i32 i32)
if : i32
is_ok : bool
var value : (result i32 i32)
unwrap_ok : i32
var value : (result i32 i32)
unwrap_err : i32
var value : (result i32 i32)
test "parse 42 ok"
binary = : bool
unwrap_ok : i32
call parse_text : (result i32 i32)
string "42" : string
int 42 : i32
test "parse negative 7 ok"
binary = : bool
unwrap_ok : i32
call parse_text : (result i32 i32)
string "-7" : string
int -7 : i32
test "parse empty err"
binary = : bool
unwrap_err : i32
call parse_text : (result i32 i32)
string "" : string
int 1 : i32
test "parse trailing byte err"
binary = : bool
unwrap_err : i32
call parse_text : (result i32 i32)
string "12x" : string
int 1 : i32
test "parse overflow err"
binary = : bool
unwrap_err : i32
call parse_text : (result i32 i32)
string "2147483648" : string
int 1 : i32
test "parse stdin text structurally"
local let value : unit
call parse_stdin_text : (result i32 i32)
match : bool
subject
var value : (result i32 i32)
arm ok parsed
binary = : bool
var parsed : i32
var parsed : i32
arm err code
binary = : bool
var code : i32
int 1 : i32