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

📄 hoc.h

📁 这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易于我们学习和理解
💻 H
字号:
typedef void (*Inst)(void);#define	STOP	(Inst) 0typedef struct Symbol	Symbol;typedef union Datum 	Datum;typedef struct Formal	Formal;typedef struct Saveval	Saveval;typedef struct Fndefn	Fndefn;typedef union Symval	Symval;union Symval { /* value of a symbol */	double	val;		/* VAR */	double	(*ptr)(double);	/* BLTIN */	Fndefn	*defn;		/* FUNCTION, PROCEDURE */	char	*str;		/* STRING */};struct Symbol {	/* symbol table entry */	char	*name;	long	type;	Symval u;	struct Symbol	*next;	/* to link to another */};Symbol	*install(char*, int, double), *lookup(char*);union Datum {	/* interpreter stack type */	double	val;	Symbol	*sym;};struct Saveval {	/* saved value of variable */	Symval	val;	long		type;	Saveval	*next;};struct Formal {	/* formal parameter */	Symbol	*sym;	Saveval	*save;	Formal	*next;};struct Fndefn {	/* formal parameter */	Inst	*code;	Formal	*formals;	int	nargs;};extern	Formal *formallist(Symbol*, Formal*);extern	double Fgetd(int);extern	int moreinput(void);extern	void restore(Symbol*);extern	void restoreall(void);extern	void execerror(char*, char*);extern	void define(Symbol*, Formal*), verify(Symbol*);extern	Datum pop(void);extern	void initcode(void), push(Datum), xpop(void), constpush(void);extern	void varpush(void);extern	void eval(void), add(void), sub(void), mul(void), div(void), mod(void);extern	void negate(void), power(void);extern	void addeq(void), subeq(void), muleq(void), diveq(void), modeq(void);extern	Inst *progp, *progbase, prog[], *code(Inst);extern	void assign(void), bltin(void), varread(void);extern	void prexpr(void), prstr(void);extern	void gt(void), lt(void), eq(void), ge(void), le(void), ne(void);extern	void and(void), or(void), not(void);extern	void ifcode(void), whilecode(void), forcode(void);extern	void call(void), arg(void), argassign(void);extern	void funcret(void), procret(void);extern	void preinc(void), predec(void), postinc(void), postdec(void);extern	void execute(Inst*);extern	void printtop(void);extern double	Log(double), Log10(double), Gamma(double), Sqrt(double), Exp(double);extern double	Asin(double), Acos(double), Sinh(double), Cosh(double), integer(double);extern double	Pow(double, double);extern	void init(void);extern	int yyparse(void);extern	void execerror(char*, char*);extern	void *emalloc(unsigned);

⌨️ 快捷键说明

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