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

📄 a.h

📁 这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易于我们学习和理解
💻 H
字号:
#include <u.h>#include <libc.h>#include <bio.h>#include "../8c/8.out.h"#ifndef	EXTERN#define	EXTERN	extern#endiftypedef	struct	Sym	Sym;typedef	struct	Ref	Ref;typedef	struct	Gen	Gen;typedef	struct	Io	Io;typedef	struct	Hist	Hist;typedef	struct	Gen2 	Gen2;#define	MAXALIGN	7#define	FPCHIP		1#define	NSYMB		500#define	BUFSIZ		8192#define	HISTSZ		20#define	NINCLUDE	10#define	NHUNK		10000#define	EOF		(-1)#define	IGN		(-2)#define	GETC()		((--fi.c < 0)? filbuf(): *fi.p++ & 0xff)#define	NHASH		503#define	STRINGSZ	200#define	NMACRO		10struct	Sym{	Sym*	link;	Ref*	ref;	char*	macro;	long	value;	ushort	type;	char	*name;	char	sym;};#define	S	((Sym*)0)struct	Ref{	int	class;};EXTERN struct{	char*	p;	int	c;} fi;struct	Io{	Io*	link;	char	b[BUFSIZ];	char*	p;	short	c;	short	f;};#define	I	((Io*)0)EXTERN struct{	Sym*	sym;	short	type;} h[NSYM];struct	Gen{	double	dval;	char	sval[8];	long	offset;	Sym*	sym;	short	type;	short	index;	short	scale;};struct	Gen2{	Gen	from;	Gen	to;};struct	Hist{	Hist*	link;	char*	name;	long	line;	long	offset;};#define	H	((Hist*)0)enum{	CLAST,	CMACARG,	CMACRO,	CPREPROC,};EXTERN	char	debug[256];EXTERN	Sym*	hash[NHASH];EXTERN	char*	Dlist[30];EXTERN	int	nDlist;EXTERN	Hist*	ehist;EXTERN	int	newflag;EXTERN	Hist*	hist;EXTERN	char*	hunk;EXTERN	char*	include[NINCLUDE];EXTERN	Io*	iofree;EXTERN	Io*	ionext;EXTERN	Io*	iostack;EXTERN	long	lineno;EXTERN	int	nerrors;EXTERN	long	nhunk;EXTERN	int	ninclude;EXTERN	Gen	nullgen;EXTERN	char*	outfile;EXTERN	int	pass;EXTERN	char*	pathname;EXTERN	long	pc;EXTERN	int	peekc;EXTERN	int	sym;EXTERN	char	symb[NSYMB];EXTERN	int	thechar;EXTERN	char*	thestring;EXTERN	long	thunk;EXTERN	Biobuf	obuf;void*	allocn(void*, long, long);void	errorexit(void);void	pushio(void);void	newio(void);void	newfile(char*, int);Sym*	slookup(char*);Sym*	lookup(void);void	syminit(Sym*);long	yylex(void);int	getc(void);int	getnsc(void);void	unget(int);int	escchar(int);void	cinit(void);void	checkscale(int);void	pinit(char*);void	cclean(void);int	isreg(Gen*);void	outcode(int, Gen2*);void	outhist(void);void	zaddr(Gen*, int);void	zname(char*, int, int);void	ieeedtod(Ieee*, double);int	filbuf(void);Sym*	getsym(void);void	domacro(void);void	macund(void);void	macdef(void);void	macexpand(Sym*, char*);void	macinc(void);void	macprag(void);void	maclin(void);void	macif(int);void	macend(void);void	dodefine(char*);void	prfile(long);void	linehist(char*, int);void	gethunk(void);void	yyerror(char*, ...);int	yyparse(void);void	setinclude(char*);int	assemble(char*);/* *	system-dependent stuff from ../cc/compat.c */enum	/* keep in synch with ../cc/cc.h */{	Plan9	= 1<<0,	Unix	= 1<<1,	Windows	= 1<<2};int	mywait(int*);int	mycreat(char*, int);int	systemtype(int);int	pathchar(void);char*	mygetwd(char*, int);int	myexec(char*, char*[]);int	mydup(int, int);int	myfork(void);int	mypipe(int*);void*	mysbrk(ulong);

⌨️ 快捷键说明

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