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

📄 init.c

📁 这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易于我们学习和理解
💻 C
字号:
#include <u.h>#include <libc.h>#include "hoc.h"#include "y.tab.h"static struct {		/* Keywords */	char	*name;	int	kval;} keywords[] = {	"proc",		PROC,	"func",		FUNC,	"return",	RETURN,	"if",		IF,	"else",		ELSE,	"while",	WHILE,	"for",		FOR,	"print",	PRINT,	"read",		READ,	0,		0,};static struct {		/* Constants */	char *name;	double cval;} consts[] = {	"PI",	 3.14159265358979323846,	"E",	 2.71828182845904523536,	"GAMMA", 0.57721566490153286060,  /* Euler */	"DEG",	57.29577951308232087680,  /* deg/radian */	"PHI",   1.61803398874989484820,  /* golden ratio */	0,	 0};static struct {		/* Built-ins */	char *name;	double	(*func)(double);} builtins[] = {	"sin",	sin,	"cos",	cos,	"tan",	tan,	"atan",	atan,	"asin",	Asin,	/* checks range */	"acos", Acos,	/* checks range */	"sinh",	Sinh,	/* checks range */	"cosh",	Cosh,	/* checks range */	"tanh",	tanh,	"log",	Log,	/* checks range */	"log10", Log10,	/* checks range */	"exp",	Exp,	/* checks range */	"sqrt",	Sqrt,	/* checks range */	"int",	integer,	"abs",	fabs,	0,	0};voidinit(void)	/* install constants and built-ins in table */{	int i;	Symbol *s;	for (i = 0; keywords[i].name; i++)		install(keywords[i].name, keywords[i].kval, 0.0);	for (i = 0; consts[i].name; i++)		install(consts[i].name, VAR, consts[i].cval);	for (i = 0; builtins[i].name; i++) {		s = install(builtins[i].name, BLTIN, 0.0);		s->u.ptr = builtins[i].func;	}}

⌨️ 快捷键说明

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