亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? struct.h

?? 使用BorlandC++4.5編譯的一個MUD客戶端程序
?? H
字號:
head	2.1;access;symbols;locks; strict;comment	@ * @;2.1date	95.10.24.15.46.14;	author tsurace;	state Release;branches;next	1.1;1.1date	95.10.12.21.01.12;	author tsurace;	state Beta;branches;next	;desc@Data structures and some hairy defines.@2.1log@Roll.@text@/* struct.h: Most of the program's data structures */
/* $Id: struct.h 1.1 1995/10/12 21:01:12 tsurace Beta tsurace $ */

typedef struct dframe	Dframe;
typedef union  instr	Instr;
typedef struct prog	Prog;
typedef struct cframe	Cframe;
typedef struct estate	Estate;
typedef struct flist	Flist;
typedef struct ulist	Ulist;
typedef struct rmt	Rmt;
typedef struct win	Win;
typedef struct key	Key;
typedef struct file	File;
typedef struct unode	Unode;
typedef struct func	Func;
typedef struct array	Array;
typedef struct plist	Plist;
typedef struct prmt	Prmt;
typedef struct consttag Const;

/* First part: Interpreter data */

/* A stack frame, holds all possible value types at runtime */
struct dframe {
	int type;
	union {
		long val;
		void (*bobj)();
		Unode *unode;
		struct {
			Istr *is;
			int pos;
		} s;
		struct {
			Array *array;
			int pos;
		} a;
		Func *func;
		int pnum;
		regexp *reg;
		int *assoc;
		Plist *plist;
	} u;
};
#define F_INT		 0  /* Integer value	      val   */
#define F_PPTR		 1  /* Primitive pointer      pnum  */
#define F_BPTR		 2  /* Builtin pointer	      bobj  */
#define F_RMT		 3  /* Remote pointer	      unode */
#define F_WIN		 4  /* Window pointer	      unode */
#define F_KEY		 5  /* Key binding pointer    unode */
#define F_FILE		 6  /* File pointer	      unode */
#define F_SPTR		 7  /* String pointer	      s	    */
#define F_APTR		 8  /* Array pointer	      a	    */
#define F_FPTR		 9  /* Function pointer	      func  */
#define F_REG		10  /* Regexp		      reg   */
#define F_ASSOC		11  /* Association type	      assoc */
#define F_PLIST		12  /* Property list	      plist */
#define F_NULL		13  /* No value			    */
#define F_EXCEPT	14  /* Interpreter exception  val   */
#define Dval	u.val
#define Dbobj	u.bobj
#define Dunode	u.unode
#define Distr	u.s.is
#define Dspos	u.s.pos
#define Darray	u.a.array
#define Dapos	u.a.pos
#define Dfunc	u.func
#define Dpnum	u.pnum
#define Dreg	u.reg
#define Dassoc	u.assoc
#define Dplist	u.plist
#define Dset_elem(df, t, elem, val) if (1) { (df).type = t; \
					     (df).elem = (val); } else
#define Dset_int(df, n) Dset_elem(df, F_INT, Dval, n)
#define Dset_sptr(df, is, pos) if (1) { (df).type = F_SPTR; (df).Distr = (is); \
					(df).Dspos = (pos); } else
#define Dset_sptr_ref(df, istr, pos) if (1) { Dset_sptr(df, istr, pos); \
					     (df).Distr->refs = 1; } else
#define Dset_aptr(df, ar, pos) if (1) { (df).type = F_APTR; \
					(df).Darray = (ar); \
					(df).Dapos = (pos); } else

/* Types of interpreter exceptions */
#define INTERP_ERROR	0	/* Abort interpretation	   */
#define INTERP_SUSPEND	1	/* Exit interpreter	   */
#define INTERP_NOFREE	2	/* Don't fiddle with stack */

#define Utype	    u.unode->type
#define Sstr	    u.s.is->rs->str
#define Sbegin	    Sstr.c.s
#define Slen	    Sstr.c.l
#define Srstr	    u.s.is->rs
#define Srefs	    u.s.is->refs
#define Scstr(df)   (cstr_sl((df).Sbegin + (df).u.s.pos, (df).Slen - \
		     (df).u.s.pos))
#define Sastr(df)   ((df).Sbegin + (df).u.s.pos)
#define Avals	    u.a.array->vals
#define Asize	    u.a.array->alloc
#define Aelem(df)   ((df).Avals[(df).u.a.pos])

struct cframe {
	Prog *prog;
	Instr *instr;
	Array *avars;
	Array *lvars;
	int uargc, uargv;
	int dstart;
	int attached;
};

/* Snapshot of an execution state, to be stored on a stack or timer queue */
struct estate {
	int dframes;
	Dframe *dimage;
	int cframes;
	Cframe *cimage;
	Estate *next;
	time_t timer;
	Unode *win, *rmt;
	int wid, rid;
};

/* A primitive function or operator */
struct prmt {
	char *name;
	void (*func)();
	int argc;
};

/* Second part: user nodes
**
** User nodes can be destroyed by the user, in which case data
** frames which point to those nodes are reset to a value of F_NULL.
** The 'frefs' element of the unode structure is used to keep a list
** of data frames that refer to the unode. */

struct flist {
	Dframe *fr;
	Flist *next;
};

/* Hash tables use lists of user nodes */

struct ulist {
	Unode *un;
	Ulist *next;
};

struct rmt {
	char *addr;
	int port;
	int fd;
	char busy;
	char back;
	char raw;
	char inbuf;
	char disconnected;
	char iac;		/* Telnet state machine: received IAC */
	char intent;		/* Received WILL, WON'T, DO, or DON'T */
	char echo;		/* Echo mode */
	char eor;		/* End-of-record enabled */
	String *buf;
	String *telnetbuf;
	Unode *win;
	Func *netread;
	Func *promptread;
	Estate *rstack;
	Dframe *obj;
};
#define Raddr		u.r.addr
#define Rport		u.r.port
#define Rfd		u.r.fd
#define Rbusy		u.r.busy
#define Rback		u.r.back
#define Rraw		u.r.raw
#define Rinbuf		u.r.inbuf
#define Rdisconnected	u.r.disconnected
#define Riac		u.r.iac
#define Rintent		u.r.intent
#define Recho		u.r.echo
#define Reor		u.r.eor
#define Rbuf		u.r.buf
#define Rtelnetbuf	u.r.telnetbuf
#define Rwin		u.r.win
#define Rnetread	u.r.netread
#define Rpromptread	u.r.promptread
#define Rrstack		u.r.rstack
#define Robj		u.r.obj

struct win {
	short top;
	short bot;
	short col;
	char nl;
	Unode *rmt;
	Func *termread;
	Estate *ghstack;
	Estate *glstack;
	Estate *rstack;
	Dframe *obj;
};
#define Wtop		u.w.top
#define Wbot		u.w.bot
#define Wcol		u.w.col
#define Wnl		u.w.nl
#define Wrmt		u.w.rmt
#define Wtermread	u.w.termread
#define Wghstack	u.w.ghstack
#define Wglstack	u.w.glstack
#define Wrstack		u.w.rstack
#define Wobj		u.w.obj

struct key {
	char *seq;
	int type;
	union {
		Func *cmd;
		int efunc;
	} ku;
};
#define K_CMD	0
#define K_EFUNC 1
#define Kseq	u.k.seq
#define Ktype	u.k.type
#define Kcmd	u.k.ku.cmd
#define Kefunc	u.k.ku.efunc

struct file {
	char *name;
	int type;
	FILE *fp;
};
#define FT_FILE 0
#define FT_PROC 1
#define Fname	u.f.name
#define Ftype	u.f.type
#define Ffp	u.f.fp

/* A double-linked ring node, may contain any of the above */
struct unode {
	union {
		Rmt r;
		Win w;
		Key k;
		File f;
	} u;
	short id;
	short dummy;
	Flist *frefs;
	struct unode *prev, *next;
};

struct array {
	Dframe *vals;
	union {
		int refs;
		Flist *fr;
		Array *next;
		Plist *plist;
	} r;
	int alloc;
	unsigned intern		: 1;
	unsigned fixed		: 1;
	unsigned gbit		: 1; /* Garbage bit */
	unsigned used		: 1;
	unsigned garbage	: 1;
	unsigned isp		: 1; /* Is plist */
};

struct plist {
	Array *array;
	int *assoc;
	int refs;
};

struct func {
	char *name;
	Prog *cmd;
	Func *left, *right;
};

/* Third part: Programs */

struct prog {
	Instr *code;
	int refs, avarc, lvarc, reqargs;
};

union instr {
	int type;
	long iconst;
	int tnum;
	int pnum;
	int argc;
	Func *func;
	struct {
		short pnum;
		short argc;
	} pc;
	Rstr *sconst;
	void (*bobj)();
	Instr *loc;
	/* Used in compiler */
	int offset;
	int sindex;
	char *ident;
};

/* These instruction types normally precede data.  The first number
** in the comment is the size of the complete instruction including
** the type.  When changing instruction types, change the width table
** in interp.c as well. */
#define I_ICONST     0	      /* 2 Integer constant		    */
#define I_SCONST     1	      /* 2 String constant		    */
#define I_PCALL	     2	      /* 2 Primitive call		    */
#define I_FCALL	     3	      /* 3 Function call		    */
#define I_EXEC	     4	      /* 2 Call by function pointer	    */
#define I_GVAR	     5	      /* 2 Var or function pointer	    */
#define I_BOBJ	     6	      /* 2 Built-in variable		    */
#define I_AVAR	     7	      /* 2 Argument variable		    */
#define I_LVAR	     8	      /* 2 Local variable		    */
#define I_PPTR	     9	      /* 2 Pointer to primitive		    */
#define I_FPTR	    10	      /* 2 Pointer to function		    */
#define I_JMPF	    11	      /* 2 Jump on false (data is offset)   */
#define I_JMPT	    12	      /* 2 Jump on true			    */
#define I_JMPPF	    13	      /* 2 Jump and preserve on true	    */
#define I_JMPPT	    14	      /* 2 Jump and preserve on false	    */
#define I_JMP	    15	      /* 2 Unconditional jump		    */
#define I_CVTB	    16	      /* 1 Convert top frame to boolean int */
#define I_EVAL	    17	      /* 1 Evaluate an lvalue		    */
#define I_NULL	    18	      /* 1 Push null value		    */
#define I_POP	    19	      /* 1 Explicit pop instruction	    */
#define I_DUP	    20	      /* 1 Duplicate top of stack	    */
#define I_STOP	    21	      /* 1 End of data or command reference */

/* Miscellaneous structures */

/* Constant table entry */
struct consttag {
	char *name;
	int val;
	Const *next;
};

@1.1log@Initial revision@text@d2 1a2 1/* $Id$ */@

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产一区二区三区忘忧草 | 欧美伊人久久久久久久久影院 | 成人av在线影院| 精品在线一区二区三区| 亚洲高清不卡在线| 亚洲免费视频成人| 国产精品女主播在线观看| ww久久中文字幕| 夜夜嗨av一区二区三区| 久久久久国产一区二区三区四区| 777久久久精品| 欧美午夜精品免费| 一本大道久久a久久综合| av网站免费线看精品| 亚洲第一在线综合网站| 亚洲精品综合在线| 国产精品久久久久久亚洲毛片 | 久热成人在线视频| 国产成人自拍网| 奇米精品一区二区三区四区| ww亚洲ww在线观看国产| 日韩一级黄色大片| 91麻豆精品国产91久久久久久 | 日韩av电影一区| 日日夜夜免费精品| 午夜伦理一区二区| 专区另类欧美日韩| 亚洲日本va在线观看| 中文字幕在线一区| 中文字幕一区二区三区av| 国产精品久久影院| 中日韩av电影| 亚洲午夜在线视频| 奇米777欧美一区二区| 美女国产一区二区三区| 日本免费在线视频不卡一不卡二| 免费高清在线视频一区·| 亚洲夂夂婷婷色拍ww47| 亚洲成av人影院| 日本欧美大码aⅴ在线播放| 极品少妇xxxx偷拍精品少妇| 美国毛片一区二区| 成人性生交大合| 欧美午夜理伦三级在线观看| 日韩视频免费观看高清完整版| 精品久久久久久无| 久久精品亚洲麻豆av一区二区| 国产喂奶挤奶一区二区三区| 国产精品国产a级| 天天做天天摸天天爽国产一区 | 在线日韩国产精品| 91精品国产色综合久久久蜜香臀| 久久中文字幕电影| 亚洲精品国产品国语在线app| 午夜不卡在线视频| 国产成人亚洲精品青草天美 | 丝袜诱惑制服诱惑色一区在线观看| 午夜天堂影视香蕉久久| 国产99久久久国产精品免费看| 91久久精品一区二区三区| 91精品婷婷国产综合久久竹菊| 国产日韩欧美一区二区三区综合| 最新中文字幕一区二区三区| 免费成人美女在线观看.| 91麻豆自制传媒国产之光| 91精品国产欧美一区二区18| 自拍偷拍亚洲激情| 日本伊人午夜精品| 91福利视频网站| 中文字幕欧美三区| 捆绑变态av一区二区三区| 91久久久免费一区二区| 国产午夜亚洲精品午夜鲁丝片| 午夜久久电影网| 国产成人av影院| 在线视频国内自拍亚洲视频| 国产精品国产三级国产有无不卡 | 国产永久精品大片wwwapp| 国精产品一区一区三区mba桃花 | 欧美成人精精品一区二区频| 一区二区三区中文字幕精品精品 | 亚洲丶国产丶欧美一区二区三区| 成人自拍视频在线| 精品少妇一区二区三区视频免付费 | 亚洲青青青在线视频| 国产精品一区二区三区99| 91看片淫黄大片一级在线观看| 久久亚洲欧美国产精品乐播 | 精品久久久久久最新网址| 亚洲123区在线观看| 色婷婷激情久久| 国产精品入口麻豆九色| 国产高清亚洲一区| 精品国产乱码久久久久久1区2区| 亚洲成av人片www| 91九色02白丝porn| 亚洲视频一区在线| 色婷婷久久99综合精品jk白丝| 亚洲欧美一区二区不卡| 欧美日韩免费观看一区二区三区 | 亚洲成人三级小说| 精品国产伦一区二区三区观看体验| 久久av资源网| 日韩国产在线观看一区| 久久麻豆一区二区| 在线免费不卡电影| 理论片日本一区| 一区二区中文字幕在线| 欧美日韩一二三区| 国产乱人伦偷精品视频免下载| 亚洲视频一区在线观看| 日韩欧美国产一区在线观看| 国产99久久久国产精品潘金| 一级女性全黄久久生活片免费| 欧美tickle裸体挠脚心vk| 色一情一伦一子一伦一区| 免费成人av在线| 亚洲婷婷综合久久一本伊一区| 4438x成人网最大色成网站| kk眼镜猥琐国模调教系列一区二区| 爽好多水快深点欧美视频| 中文子幕无线码一区tr| 51午夜精品国产| 在线亚洲欧美专区二区| 国产成人免费在线视频| 男女性色大片免费观看一区二区 | 99re成人精品视频| 久久99精品国产麻豆不卡| 亚洲精品国产品国语在线app| 久久久亚洲午夜电影| 制服丝袜国产精品| 在线国产电影不卡| gogogo免费视频观看亚洲一| 久久激五月天综合精品| 五月天久久比比资源色| 亚洲女同女同女同女同女同69| 久久夜色精品国产噜噜av| 日韩精品一区二区三区在线| 欧美日韩国产综合视频在线观看| 91在线免费看| 成人avav影音| 91极品美女在线| 色综合婷婷久久| 成人听书哪个软件好| 国产精品白丝av| 国产一区二区91| 国产资源在线一区| 精品一区二区在线看| 青青草成人在线观看| 亚洲福利一区二区三区| 亚洲一区二区三区四区的| 一区二区三区免费| 亚洲最新视频在线观看| 亚洲一区二区成人在线观看| 亚洲欧美国产高清| 亚洲色图一区二区| 亚洲午夜视频在线观看| 亚洲va国产天堂va久久en| 天天做天天摸天天爽国产一区| 天堂在线亚洲视频| 久久精品国产精品亚洲红杏| 激情亚洲综合在线| 成人免费毛片aaaaa**| 色婷婷狠狠综合| 91精品国产91久久久久久最新毛片| 欧美日韩电影在线播放| 日韩午夜在线观看| 国产清纯白嫩初高生在线观看91| 国产欧美一区二区三区在线老狼| 国产精品女同互慰在线看| 亚洲免费观看高清| 日本午夜精品视频在线观看| 国产一区三区三区| 99国产精品久久久久久久久久 | 亚洲精品在线免费播放| 久久久国产精品午夜一区ai换脸| 中文字幕乱码亚洲精品一区| 亚洲婷婷在线视频| 另类的小说在线视频另类成人小视频在线 | 成人h动漫精品一区二区| 在线亚洲精品福利网址导航| 欧美一区二区播放| 中文av一区二区| 日韩高清在线电影| 成人午夜在线播放| 欧美高清视频一二三区 | 久草中文综合在线| 国产精品资源网站| 欧美亚洲图片小说| 精品国产一区二区三区av性色 | 欧美一级电影网站| 国产亚洲欧美一级| 亚洲福利国产精品| 成人激情黄色小说| 91精品福利在线一区二区三区| 国产精品视频麻豆| 日韩不卡一区二区三区| 91麻豆免费观看| 久久奇米777| 秋霞午夜av一区二区三区|