38 lines
589 B
Text
38 lines
589 B
Text
include 'std/args.fa'
|
|
include 'std/lstd.fa'
|
|
include 'std/logic.fa'
|
|
include 'std/mem/gmem.fa'
|
|
|
|
|
|
macro MAX_FILE 8092 end
|
|
|
|
|
|
fun main [ str str int ] int eo
|
|
argc 2 eql #not if
|
|
"Usage: <file>" #error
|
|
end
|
|
|
|
0 1 #get_arg %SYS_open sys 3 as fd
|
|
|
|
0 @fd deref lst if
|
|
"Invalid input file" #error
|
|
end
|
|
|
|
%MAX_FILE #malloc as file_buffer
|
|
|
|
%MAX_FILE
|
|
@file_buffer deref
|
|
@fd deref
|
|
%SYS_read sys 4
|
|
|
|
@file_buffer deref %STDOUT #fputs
|
|
|
|
%MAX_FILE @file_buffer deref
|
|
#mfree pop
|
|
|
|
@fd deref %SYS_close sys 2
|
|
|
|
%EXIT_SUCCESS
|
|
end
|
|
|
|
#main #exit
|