mirror of
https://github.com/justinethier/cyclone.git
synced 2025-07-14 00:07:36 +02:00
Added close-port and close-output-port
This commit is contained in:
parent
8ba904cc30
commit
8fa6ecf7bf
5 changed files with 26 additions and 3 deletions
2
cgen.scm
2
cgen.scm
|
@ -441,7 +441,9 @@
|
|||
((eq? p 'Cyc-default-exception-handler) "Cyc_default_exception_handler")
|
||||
((eq? p 'Cyc-current-exception-handler) "Cyc_current_exception_handler")
|
||||
((eq? p 'open-input-file) "Cyc_io_open_input_file")
|
||||
((eq? p 'close-port) "Cyc_io_close_port")
|
||||
((eq? p 'close-input-port) "Cyc_io_close_input_port")
|
||||
((eq? p 'close-output-port) "Cyc_io_close_output_port")
|
||||
((eq? p 'read-char) "Cyc_io_read_char")
|
||||
((eq? p 'peek-char) "Cyc_io_peek_char")
|
||||
((eq? p 'Cyc-display) "Cyc_display_va")
|
||||
|
|
2
eval.scm
2
eval.scm
|
@ -286,7 +286,9 @@
|
|||
(list 'string? string?)
|
||||
(list 'symbol? symbol?)
|
||||
(list 'open-input-file open-input-file)
|
||||
(list 'close-port close-port)
|
||||
(list 'close-input-port close-input-port)
|
||||
(list 'close-output-port close-output-port)
|
||||
(list 'read-char read-char)
|
||||
(list 'peek-char peek-char)
|
||||
(list 'Cyc-write-char Cyc-write-char)
|
||||
|
|
17
runtime.c
17
runtime.c
|
@ -1002,10 +1002,13 @@ port_type Cyc_io_open_input_file(object str) {
|
|||
return p;
|
||||
}
|
||||
|
||||
TODO: Cyc_io_close_port
|
||||
TODO: close-input-port can be written in scheme code, I think, using input-port? and close-port
|
||||
|
||||
object Cyc_io_close_input_port(object port) {
|
||||
return Cyc_io_close_port(port); }
|
||||
|
||||
object Cyc_io_close_output_port(object port) {
|
||||
return Cyc_io_close_port(port); }
|
||||
|
||||
object Cyc_io_close_port(object port) {
|
||||
if (port && type_of(port) == port_tag) {
|
||||
FILE *stream = ((port_type *)port)->fp;
|
||||
if (stream) fclose(stream);
|
||||
|
@ -1283,8 +1286,12 @@ void _number_91_125string(object cont, object args) {
|
|||
void _open_91input_91file(object cont, object args) {
|
||||
port_type p = Cyc_io_open_input_file(car(args));
|
||||
return_funcall1(cont, &p);}
|
||||
void _close_91port(object cont, object args) {
|
||||
return_funcall1(cont, Cyc_io_close_port(car(args)));}
|
||||
void _close_91input_91port(object cont, object args) {
|
||||
return_funcall1(cont, Cyc_io_close_input_port(car(args)));}
|
||||
void _close_91output_91port(object cont, object args) {
|
||||
return_funcall1(cont, Cyc_io_close_output_port(car(args)));}
|
||||
void _read_91char(object cont, object args) {
|
||||
return_funcall1(cont, Cyc_io_read_char(car(args)));}
|
||||
void _peek_91char(object cont, object args) {
|
||||
|
@ -1977,7 +1984,9 @@ static primitive_type vector_127_primitive = {primitive_tag, "vector?", &_vector
|
|||
static primitive_type string_127_primitive = {primitive_tag, "string?", &_string_127};
|
||||
static primitive_type symbol_127_primitive = {primitive_tag, "symbol?", &_symbol_127};
|
||||
static primitive_type open_91input_91file_primitive = {primitive_tag, "open-input-file", &_open_91input_91file};
|
||||
static primitive_type close_91port_primitive = {primitive_tag, "close-port", &_close_91port};
|
||||
static primitive_type close_91input_91port_primitive = {primitive_tag, "close-input-port", &_close_91input_91port};
|
||||
static primitive_type close_91output_91port_primitive = {primitive_tag, "close-output-port", &_close_91output_91port};
|
||||
static primitive_type read_91char_primitive = {primitive_tag, "read-char", &_read_91char};
|
||||
static primitive_type peek_91char_primitive = {primitive_tag, "peek-char", &_peek_91char};
|
||||
static primitive_type Cyc_91write_primitive = {primitive_tag, "Cyc-write", &_Cyc_91write};
|
||||
|
@ -2081,7 +2090,9 @@ const object primitive_port_127 = &port_127_primitive;
|
|||
const object primitive_vector_127 = &vector_127_primitive;
|
||||
const object primitive_symbol_127 = &symbol_127_primitive;
|
||||
const object primitive_open_91input_91file = &open_91input_91file_primitive;
|
||||
const object primitive_close_91port = &close_91port_primitive;
|
||||
const object primitive_close_91input_91port = &close_91input_91port_primitive;
|
||||
const object primitive_close_91output_91port = &close_91output_91port_primitive;
|
||||
const object primitive_read_91char = &read_91char_primitive;
|
||||
const object primitive_peek_91char = &peek_91char_primitive;
|
||||
const object primitive_Cyc_91write_91char = &Cyc_91write_91char_primitive;
|
||||
|
|
|
@ -109,7 +109,9 @@ port_type Cyc_stdout(void);
|
|||
port_type Cyc_stdin(void);
|
||||
port_type Cyc_stderr(void);
|
||||
port_type Cyc_io_open_input_file(object str);
|
||||
object Cyc_io_close_port(object port);
|
||||
object Cyc_io_close_input_port(object port);
|
||||
object Cyc_io_close_output_port(object port);
|
||||
object Cyc_io_read_char(object port);
|
||||
object Cyc_io_peek_char(object port);
|
||||
|
||||
|
@ -324,7 +326,9 @@ extern const object primitive_vector_127;
|
|||
extern const object primitive_string_127;
|
||||
extern const object primitive_symbol_127;
|
||||
extern const object primitive_open_91input_91file;
|
||||
extern const object primitive_close_91port;
|
||||
extern const object primitive_close_91input_91port;
|
||||
extern const object primitive_close_91output_91port;
|
||||
extern const object primitive_read_91char;
|
||||
extern const object primitive_peek_91char;
|
||||
extern const object primitive_Cyc_91write_91char;
|
||||
|
|
|
@ -554,7 +554,9 @@
|
|||
string?
|
||||
symbol?
|
||||
open-input-file
|
||||
close-port
|
||||
close-input-port
|
||||
close-output-port
|
||||
read-char
|
||||
peek-char
|
||||
Cyc-write-char
|
||||
|
@ -594,7 +596,9 @@
|
|||
Cyc-stdin
|
||||
Cyc-stderr
|
||||
open-input-file
|
||||
close-port
|
||||
close-input-port
|
||||
close-output-port
|
||||
read-char
|
||||
peek-char
|
||||
Cyc-write-char
|
||||
|
|
Loading…
Add table
Reference in a new issue