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

📄 parse.h

📁 这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易于我们学习和理解
💻 H
字号:
typedef struct Addr Addr;typedef struct Cmd Cmd;struct Addr{	char	type;	/* # (char addr), l (line addr), / ? . $ + - , ; */	union{		String	*re;		Addr	*aleft;		/* left side of , and ; */	} g;	Posn	num;	Addr	*next;			/* or right side of , and ; */};#define	are	g.re#define	left	g.aleftstruct Cmd{	Addr	*addr;			/* address (range of text) */	String	*re;			/* regular expression for e.g. 'x' */	union{		Cmd	*cmd;		/* target of x, g, {, etc. */		String	*text;		/* text of a, c, i; rhs of s */		Addr	*addr;		/* address for m, t */	} g;	Cmd	*next;			/* pointer to next element in {} */	short	num;	ushort	flag;			/* whatever */	ushort	cmdc;			/* command character; 'x' etc. */};#define	ccmd	g.cmd#define	ctext	g.text#define	caddr	g.addrtypedef struct Cmdtab Cmdtab;struct Cmdtab{	ushort	cmdc;		/* command character */	uchar	text;		/* takes a textual argument? */	uchar	regexp;		/* takes a regular expression? */	uchar	addr;		/* takes an address (m or t)? */	uchar	defcmd;		/* default command; 0==>none */	uchar	defaddr;	/* default address */	uchar	count;		/* takes a count e.g. s2/// */	char	*token;		/* takes text terminated by one of these */	int	(*fn)(File*, Cmd*);	/* function to call with parse tree */}cmdtab[];enum Defaddr{	/* default addresses */	aNo,	aDot,	aAll,};int	nl_cmd(File*, Cmd*), a_cmd(File*, Cmd*), b_cmd(File*, Cmd*);int	c_cmd(File*, Cmd*), cd_cmd(File*, Cmd*), d_cmd(File*, Cmd*);int	D_cmd(File*, Cmd*), e_cmd(File*, Cmd*);int	f_cmd(File*, Cmd*), g_cmd(File*, Cmd*), i_cmd(File*, Cmd*);int	k_cmd(File*, Cmd*), m_cmd(File*, Cmd*), n_cmd(File*, Cmd*);int	p_cmd(File*, Cmd*), q_cmd(File*, Cmd*);int	s_cmd(File*, Cmd*), u_cmd(File*, Cmd*), w_cmd(File*, Cmd*);int	x_cmd(File*, Cmd*), X_cmd(File*, Cmd*), plan9_cmd(File*, Cmd*);int	eq_cmd(File*, Cmd*);String	*getregexp(int);Addr	*newaddr(void);Address	address(Addr*, Address, int);int	cmdexec(File*, Cmd*);

⌨️ 快捷键说明

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