fa/examples/name.fa
Ari Archer c30a3de674
Deprecate mutability contexts
Signed-off-by: Ari Archer <ari.web.xyz@gmail.com>
2022-07-27 13:41:50 +03:00

31 lines
758 B
Text

include 'std/std.fa'
include 'std/mem/gmem.fa'
macro NAME_LEN 256 end
fun main [ str str int ] eo
%NAME_LEN #malloc as name -- Allocate NAME_LEN buffer
"Enter your name: " %STDOUT
%fputs -- fputs("...", stdout) => null
%NAME_LEN @name deref %STDIN
%SYS_read sys 4 -- read(STDIN, *name, NAME_LEN) => <bytes_read>
copy 2 grt if
"Empty names are not allowed" %error
end
"Your name is " %STDOUT
%fputs -- fputs("...", stdout) => null
1 swap sub @name deref
%puts -- puts(string) => null
%NAME_LEN @name deref
#mfree pop -- free(name) => null
%EXIT_SUCCESS %exit
end
#main