📄 a.h
字号:
#include <u.h>#include <libc.h>#include <bio.h>#include "../qc/q.out.h"#ifndef EXTERN#define EXTERN extern#endiftypedef struct Sym Sym;typedef struct Gen Gen;typedef struct Io Io;typedef struct Hist Hist;#define MAXALIGN 7#define FPCHIP 1#define NSYMB 8192#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 10#define ALLOC(lhs, type)\ while(nhunk < sizeof(type))\ gethunk();\ lhs = (type*)hunk;\ nhunk -= sizeof(type);\ hunk += sizeof(type);#define ALLOCN(lhs, len, n)\ if(lhs+len != hunk || nhunk < n) {\ while(nhunk <= len)\ gethunk();\ memmove(hunk, lhs, len);\ lhs = hunk;\ hunk += len;\ nhunk -= len;\ }\ hunk += n;\ nhunk -= n;struct Sym{ Sym* link; char* macro; long value; ushort type; char *name; char sym;};#define S ((Sym*)0)struct{ char* p; int c;} fi;struct Io{ Io* link; char b[BUFSIZ]; char* p; short c; short f;};#define I ((Io*)0)struct{ Sym* sym; short type;} h[NSYM];struct Gen{ Sym* sym; long offset; short type; short reg; short xreg; short name; ushort mask; double dval; char sval[8];};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 nosched;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 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 pinit(char*);void cclean(void);void outcode(int, Gen*, int, Gen*);void outgcode(int, Gen*, int, Gen*, Gen*);void zname(char*, int, int);void zaddr(Gen*, 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 outhist(void);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 + -