⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 c_test.h

📁 这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易于我们学习和理解
💻 H
字号:
/* Various types of operations.  Keeping things grouped nicely * (unary,binary) makes switch() statements more efficeint. */enum Test_op {	TO_NONOP = 0,	/* non-operator */	/* unary operators */	TO_STNZE, TO_STZER, TO_OPTION,	TO_FILAXST,	TO_FILEXST,	TO_FILREG, TO_FILBDEV, TO_FILCDEV, TO_FILSYM, TO_FILFIFO, TO_FILSOCK,	TO_FILCDF, TO_FILID, TO_FILGID, TO_FILSETG, TO_FILSTCK, TO_FILUID,	TO_FILRD, TO_FILGZ, TO_FILTT, TO_FILSETU, TO_FILWR, TO_FILEX,	/* binary operators */	TO_STEQL, TO_STNEQ, TO_STLT, TO_STGT, TO_INTEQ, TO_INTNE, TO_INTGT,	TO_INTGE, TO_INTLT, TO_INTLE, TO_FILEQ, TO_FILNT, TO_FILOT};typedef enum Test_op Test_op;/* Used by Test_env.isa() (order important - used to index *_tokens[] arrays) */enum Test_meta {	TM_OR,		/* -o or || */	TM_AND,		/* -a or && */	TM_NOT,		/* ! */	TM_OPAREN,	/* ( */	TM_CPAREN,	/* ) */	TM_UNOP,	/* unary operator */	TM_BINOP,	/* binary operator */	TM_END		/* end of input */};typedef enum Test_meta Test_meta;#define TEF_ERROR	BIT(0)		/* set if we've hit an error */#define TEF_DBRACKET	BIT(1)		/* set if [[ .. ]] test */typedef struct test_env Test_env;struct test_env {	int	flags;		/* TEF_* */	union {		char	**wp;		/* used by ptest_* */		XPtrV	*av;		/* used by dbtestp_* */	} pos;	char **wp_end;			/* used by ptest_* */	int	(*isa) ARGS((Test_env *te, Test_meta meta));	const char *(*getopnd) ARGS((Test_env *te, Test_op op, int do_eval));	int	(*eval) ARGS((Test_env *te, Test_op op, const char *opnd1,				 const char *opnd2, int do_eval));	void	(*error) ARGS((Test_env *te, int offset, const char *msg));};Test_op	test_isop ARGS((Test_env *te, Test_meta meta, const char *s));int     test_eval ARGS((Test_env *te, Test_op op, const char *opnd1,			const char *opnd2, int do_eval));int	test_parse ARGS((Test_env *te));

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -