mal_type.h
来自「一个内存数据库的源代码这是服务器端还有客户端」· C头文件 代码 · 共 73 行
H
73 行
#ifndef MAL_TYPE_H#define MAL_TYPE_H#include "mal.h"/* #define DEBUG_MAL_TYPE 1 */typedef int malType;#define malVARG " malVARG"#define TMPMARKER '_'#define REFMARKER 'X'#define newBatType(H,T) (1<<16 | (((H & 0377) <<8) | (T & 0377) ))#define newColType(T) (1<<25 | (((TYPE_void & 0377) <<8) | (T & 0377) ))#define getHeadType(X) ((X>>8) & 0377 )#define getTailType(X) ((X) & 0377 )#define isaBatType(X) ((1<<16) & (X) && (X)!= TYPE_any)#define setAnyHeadIndex(X,I) X |= ((I & 017)<<22);#define setAnyTailIndex(X,I) X |= ((I & 017)<<18);#define isAnyExpression(X) ((X) >> 17)#define isPolymorphic(X) (((X) >> 17) || (X)== TYPE_any)#define isPolyType(X) (isAnyExpression(X) && (getHeadIndex(X)>0 ||getTailIndex(X)>0))#define getHeadIndex(X) (((X)>>22) & 017)#define getTailIndex(X) (((X)>>18) & 017)#define RAISEsymbol 21 /* flow of control modifiers */#define CATCHsymbol 22#define RETURNsymbol 23#define BARRIERsymbol 24#define REDOsymbol 25#define LEAVEsymbol 26#define YIELDsymbol 27#define EXITsymbol 29#define ASSIGNsymbol 40 /* interpreter entry points */#define ENDsymbol 41#define NOOPsymbol 43 /* no operation required */#define COMMANDsymbol 61 /* these tokens should be the last group !! */#define FUNCTIONsymbol 62 /* the designate the signature start */#define FACTORYsymbol 63 /* the co-routine infrastructure */#define PATTERNsymbol 64 /* the MAL self-reflection commands */#define FCNcall 50 /* internal symbols */#define FACcall 51#define CMDcall 52#define THRDcall 53#define PATcall 54 /* pattern call */#define REMsymbol 99 /* commentary to be retained */mal_export str getTypeName(malType tpe);mal_export malType coercion(malType t1, malType t2);mal_export int getTypeIndex(str nme, int len, int deftpe);mal_export malType reverseBatType(malType v);mal_export malType malAnyBatType(malType t1, malType t2);mal_export int idcmp(str n, str m);mal_export str newTmpName(char tag, int i);mal_export int isTmpName(str n);mal_export int isTypeName(str n);mal_export int isIdentifier(str s);mal_export int findGDKtype(int type); /* used in src/mal/mal_interpreter.c */#endif /* MAL_TYPE_H */
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?