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

📄 mal_builder.c

📁 一个内存数据库的源代码这是服务器端还有客户端
💻 C
字号:
#line 58 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/mal/mal_builder.mx"#include "mal_config.h"#include "mal_builder.h"InstrPtrnewAssignment(MalBlkPtr mb){	InstrPtr q = newInstruction(mb,ASSIGNsymbol);	getArg(q,0)= newTmpVariable(mb,TYPE_any);	pushInstruction(mb, q);	return q;}InstrPtrnewStmt(MalBlkPtr mb, char *module, char *name){	InstrPtr q = newAssignment(mb);	setModuleId(q, (module) ? putName(module, strlen(module)) : NULL);	setFunctionId(q, (name) ? putName(name, strlen(name)) : NULL);	setDestVar(q, newTmpVariable(mb, TYPE_any));	return q;}InstrPtrnewStmt1(MalBlkPtr mb, str module, char *name){	InstrPtr q = newAssignment(mb);	setModuleId(q, module);	setFunctionId(q, (name) ? putName(name, strlen(name)) : NULL);	setDestVar(q, newTmpVariable(mb, TYPE_any));	return q;}InstrPtrnewStmt2(MalBlkPtr mb, str module, char *name){	InstrPtr q = newAssignment(mb);	setModuleId(q, module);	setFunctionId(q, name);	setDestVar(q, newTmpVariable(mb, TYPE_any));	return q;}InstrPtrnewStmtId(MalBlkPtr mb, char *id, char *module, char *name){	InstrPtr q = newAssignment(mb);	setModuleId(q, (module) ? putName(module, strlen(module)) : NULL);	setFunctionId(q, (name) ? putName(name, strlen(name)) : NULL);	setDestVar(q, newVariable(mb, GDKstrdup(id), TYPE_any));	return q;}InstrPtrnewFcnCall(MalBlkPtr mb, char *mod, char *fcn){	InstrPtr q = newAssignment(mb);	setModuleId(q, putName(mod, strlen(mod)));	setFunctionId(q, putName(fcn, strlen(fcn)));	return q;}InstrPtrnewComment(MalBlkPtr mb, const char *val){	InstrPtr q = newInstruction(NULL,REMsymbol);	ValRecord cst;	cst.vtype= TYPE_str;	cst.val.sval= GDKstrdup(val);	cst.len= strlen(cst.val.sval);	getArg(q,0) = defConstant(mb,TYPE_str,&cst);	/* mark the constant for not being copied to the stack */	isConstant(mb,getArg(q,0)) = - isConstant(mb,getArg(q,0));	pushInstruction(mb, q);	return q;}InstrPtrpushInt(MalBlkPtr mb, InstrPtr q, int val){	int _t;	ValRecord cst;	cst.vtype= TYPE_int;	cst.val.ival= val;	_t = defConstant(mb, TYPE_int,&cst);	return pushArgument(mb, q, _t);}InstrPtrpushWrd(MalBlkPtr mb, InstrPtr q, wrd val){	int _t;	ValRecord cst;	cst.vtype= TYPE_wrd;	cst.val.wval= val;	_t = defConstant(mb, TYPE_wrd,&cst);	return pushArgument(mb, q, _t);}InstrPtrpushBte(MalBlkPtr mb, InstrPtr q, bte val){	int _t;	ValRecord cst;	cst.vtype= TYPE_bte;	cst.val.btval= val;	_t = defConstant(mb, TYPE_bte,&cst);	return pushArgument(mb, q, _t);}InstrPtrpushChr(MalBlkPtr mb, InstrPtr q, char val){	int _t;	ValRecord cst;	cst.vtype= TYPE_chr;	cst.val.cval[0]= val;	cst.val.cval[1]= 0;	cst.val.cval[2]= 0;	cst.val.cval[3]= 0;	_t = defConstant(mb, TYPE_chr,&cst);	return pushArgument(mb, q, _t);}InstrPtrpushOid(MalBlkPtr mb, InstrPtr q, oid val){	int _t;	ValRecord cst;	cst.vtype= TYPE_oid;	cst.val.oval= val;	_t = defConstant(mb,TYPE_oid,&cst);	return pushArgument(mb, q, _t);}InstrPtrpushVoid(MalBlkPtr mb, InstrPtr q){	int _t;	ValRecord cst;	cst.vtype= TYPE_void;	cst.val.oval= oid_nil;	_t = defConstant(mb,TYPE_void,&cst);	return pushArgument(mb, q, _t);}InstrPtrpushLng(MalBlkPtr mb, InstrPtr q, long val){	int _t;	ValRecord cst;	cst.vtype= TYPE_lng;	cst.val.oval= val;	_t = defConstant(mb,TYPE_lng,&cst);	return pushArgument(mb, q, _t);}InstrPtrpushDbl(MalBlkPtr mb, InstrPtr q, double val){	int _t;	ValRecord cst;	cst.vtype= TYPE_dbl;	cst.val.dval= val;	_t = defConstant(mb,TYPE_dbl,&cst);	return pushArgument(mb, q, _t);}InstrPtrpushFlt(MalBlkPtr mb, InstrPtr q, float val){	int _t;	ValRecord cst;	cst.vtype= TYPE_flt;	cst.val.fval= val;	_t = defConstant(mb,TYPE_flt,&cst);	return pushArgument(mb, q, _t);}InstrPtrpushStr(MalBlkPtr mb, InstrPtr q, const char *val){	int _t;	ValRecord cst;	cst.vtype= TYPE_str;	cst.val.sval= GDKstrdup(val);	cst.len= strlen(cst.val.sval);	_t = defConstant(mb,TYPE_str,&cst);	return pushArgument(mb, q, _t);}InstrPtrpushBit(MalBlkPtr mb, InstrPtr q, int val){	int _t;	ValRecord cst;	cst.vtype= TYPE_bit;	cst.val.cval[0]= val;	cst.val.cval[1]= 0;	cst.val.cval[2]= 0;	cst.val.cval[3]= 0;	_t = defConstant(mb,TYPE_bit,&cst);	return pushArgument(mb, q, _t);}InstrPtrpushNil(MalBlkPtr mb, InstrPtr q, int tpe){	int _t;	ValRecord cst;	cst.vtype=TYPE_void;	cst.val.oval= oid_nil;	convertConstant(tpe, &cst);	_t = defConstant(mb,tpe,&cst);	return pushArgument(mb, q, _t);}InstrPtrpushNilType(MalBlkPtr mb, InstrPtr q, char *tpe){	int _t,idx;	ValRecord cst;	idx= getTypeIndex(tpe, -1, TYPE_any);	cst.vtype=TYPE_void;	cst.val.oval= oid_nil;	convertConstant(idx, &cst);	_t = defConstant(mb,idx,&cst);	return pushArgument(mb, q, _t);}

⌨️ 快捷键说明

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