initial port commit
This commit is contained in:
parent
e87f632327
commit
1646de5e8d
|
@ -0,0 +1,27 @@
|
||||||
|
#ifndef PORT_H__
|
||||||
|
#define PORT_H__
|
||||||
|
|
||||||
|
#include "picrin.h"
|
||||||
|
|
||||||
|
enum pic_port_flag {
|
||||||
|
PIC_PORT_IN,
|
||||||
|
PIC_PORT_OUT,
|
||||||
|
PIC_PORT_TEXT,
|
||||||
|
PIC_PORT_BINARY
|
||||||
|
};
|
||||||
|
|
||||||
|
enum pic_port_status {
|
||||||
|
PIC_PORT_OPEN,
|
||||||
|
PIC_PORT_CLOSE,
|
||||||
|
};
|
||||||
|
|
||||||
|
struct pic_port {
|
||||||
|
PIC_OBJECT_HEADER
|
||||||
|
FILE *file;
|
||||||
|
short flags;
|
||||||
|
char status;
|
||||||
|
};
|
||||||
|
|
||||||
|
#define pic_port_ptr(v) ((struct pic_port_t *)v.u.data)
|
||||||
|
|
||||||
|
#endif
|
|
@ -27,7 +27,8 @@ enum pic_tt {
|
||||||
/* heap */
|
/* heap */
|
||||||
PIC_TT_PAIR,
|
PIC_TT_PAIR,
|
||||||
PIC_TT_SYMBOL,
|
PIC_TT_SYMBOL,
|
||||||
PIC_TT_PROC
|
PIC_TT_PROC,
|
||||||
|
PIC_TT_PORT
|
||||||
};
|
};
|
||||||
|
|
||||||
#define PIC_OBJECT_HEADER \
|
#define PIC_OBJECT_HEADER \
|
||||||
|
@ -49,6 +50,7 @@ struct pic_symbol {
|
||||||
};
|
};
|
||||||
|
|
||||||
struct pic_proc;
|
struct pic_proc;
|
||||||
|
struct pic_port;
|
||||||
|
|
||||||
#define pic_obj_ptr(o) ((struct pic_object *)o.u.data)
|
#define pic_obj_ptr(o) ((struct pic_object *)o.u.data)
|
||||||
#define pic_pair_ptr(o) ((struct pic_pair *)o.u.data)
|
#define pic_pair_ptr(o) ((struct pic_pair *)o.u.data)
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
|
|
||||||
#include "picrin.h"
|
#include "picrin.h"
|
||||||
#include "picrin/proc.h"
|
#include "picrin/proc.h"
|
||||||
|
#include "picrin/port.h"
|
||||||
|
|
||||||
static void write_pair(pic_state *pic, struct pic_pair *pair);
|
static void write_pair(pic_state *pic, struct pic_pair *pair);
|
||||||
|
|
||||||
|
@ -36,6 +37,9 @@ write(pic_state *pic, pic_value obj)
|
||||||
case PIC_TT_PROC:
|
case PIC_TT_PROC:
|
||||||
printf("#<proc %p>", pic_proc_ptr(obj));
|
printf("#<proc %p>", pic_proc_ptr(obj));
|
||||||
break;
|
break;
|
||||||
|
case PIC_TT_PORT:
|
||||||
|
printf("#<port %p>", pic_port_ptr(obj));
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue