📄 nepc.h
字号:
#ifndef _NEPC_H_#define _NEPC_H_#include <stdio.h>#include <stdlib.h>#include <string.h>#include <stdarg.h>#include <math.h>#define MAX_STRLEN 5120#define MAX_SYMLEN 512#define MAX_SYMNUM 1024#define SYM_NOTFOUND -1#define SYMTAB_OVFLW -3#define MEM_MALLOCERR -10#define WAITINPUT printf("\n--> ")#define SIZEOF_NODETYPE(p) ((char *)&p->intCon - (char *)p)#define SIZEOF_SYMTYPE(p) ((char *)&p->ival - (char *)p)#define PRINTINT(p) if(dflag==DEC_ON)printf( "%lld" , (INT)p->ival );\ else if(dflag==HEX_ON)printf( "0x%08X", (INT)p->ival );\ else printf( "0%o" ,(INT)p->ival )#define PRINTFLT(p) if(dflag==DEC_ON)printf( "%lf" , p->fval );\ else if(dflag==HEX_ON)printf( "0x%08X", (INT)p->fval );\ else printf( "0%o" ,(INT)p->fval )#define PRINTSTR(p) printf("%s",p->pstr)#define STR_TO_INT(str) atoll(str)#define STR_TO_FLT(str) atof(str)typedef long long int INT;typedef double FLT;typedef enum { typeIntCon,typeFltCon,typeStrCon,typeVar, typeOpr } nodeEnum;typedef enum { typeInt, typeFlt, typeStr } symTypeEnum;enum Display{DEC_ON, HEX_ON, OCT_ON};enum Display dflag=DEC_ON;typedef struct { INT val;}intNodeType;typedef struct{ FLT val;}fltNodeType;typedef struct{ char * ptr;}strNodeType;typedef struct { int index;} varNodeType;typedef struct { int name; int number; struct nodeTypeTag *op[1];} oprNodeType;typedef struct nodeTypeTag { nodeEnum type; union { intNodeType intCon; fltNodeType fltCon; strNodeType strCon; varNodeType var; oprNodeType opr; };} nodeType;typedef struct symTypeTag { symTypeEnum type; char * name; union { INT ival; FLT fval; char * pstr; };}symType,itpType;extern void yyerror(char *);extern int yyparse();static symType symtab[MAX_SYMNUM];static int symtop=0;/* math functions pointer */FLT (*p_acos)(FLT)=acos;FLT (*p_asin)(FLT)=asin;FLT (*p_atan)(FLT)=atan;FLT (*p_ceil)(FLT)=ceil;FLT (*p_cos)(FLT)=cos;FLT (*p_cosh)(FLT)=cosh;FLT (*p_exp)(FLT)=exp;FLT (*p_fabs)(FLT)=fabs;FLT (*p_floor)(FLT)=floor;FLT (*p_log)(FLT)=log;FLT (*p_log10)(FLT)=log10;FLT (*p_sin)(FLT)=sin;FLT (*p_sinh)(FLT)=sinh;FLT (*p_sqrt)(FLT)=sqrt;FLT (*p_tan)(FLT)=tan;FLT (*p_tanh)(FLT)=tanh;#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -