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

📄 vbs_context.h

📁 vb script子集解释器 Makefile.vb用于生成解释器的c代码 可执行程序需要自己写main函数
💻 H
字号:
#ifndef VBS_PARSAR_CONTEXT#define VBS_PARSAR_CONTEXT#include <string>#include <map>#include <stack>#include "CTIActionStateTree.h"class Cvbs_context;#include "VBSMem.h"#include "vbs_lex.h"#ifndef Statementtypedef struct Statement_struct *Statement;#endiftypedef map<string,Statement> func_map;typedef pair<string,string> VAR;typedef const char* vb_sz;typedef Cvbs_context* PtrCont;class Cvbs_context{public:	inline void* Alloc(size_t size){return mem.alloc(size);};	inline void Release(void) {return mem.release();};	inline Cvbs_context() {debug=0;};	inline virtual ~Cvbs_context(){};	int parse(FILE* pf=NULL);	int parse(const char* szClause);	void push_var(vars_table& g_var);	void pop_var(vars_table& g_var);	string eval(const char* szExp, vars_table& var);	void do_eval(const char* szExp);	void execute(const char* szExp, vars_table& tvar);	string eval(const char* szExp);        void execute(const char* szExp);	yyscan_t get_scanner() { return scanner;};		string get_var(const char* n);	bool set_var(const char* name, const char* value);	bool insert_var(const char* szVarName,const char* value);	bool is_digital(const char* str);	bool true_value(const char* s);        int  int_value(const char*  s);	void save_func(const char* szName);		string eq(const char* s1,const char* s2);	string lt(const char* s1,const char* s2);	string le(const char* s1,const char* s2);	string gt(const char* s1,const char* s2);	string ge(const char* s1,const char* s2);	string ne(const char* s1,const char* s2);	string vb_and(const char* s1,const char* s2);	string vb_or(const char* s1,const char* s2);	string vb_xor(const char*  s1,const char* s2);	string vb_not(const char*  s1);	string plus(const char* s1,const char* s2);	string amd(const char* s1,const char* s2);	string minus(const char* s1,const char* s2);	string mult(const char* s1,const char* s2);	string divide(const char* s1,const char* s2);	string neg(const char* s);	string clng(const char* x);	string cstr(const char* x);	string len(const char* x);	string date(void);	string vbtime(void);	string vbyear(const char* x);	string vbmonth(const char* x);	string vbday(const char* x);	string vbweekday(const char* x);	string vbhour(const char* x);	string vbminute(const char* x);	string vbsecond(const char* x);	string getString(const char* szR,const char* szField, const char* nNum);	string inStr(const char* szStart,const char* s1,const char* s2, const char* szM);	string ubound(const char* name, int dim);	string rnd(const char* sz);	string rnd0(void);	void init_rnd(const char* sz);	void init_rnd0(void);	void printv(const char* s1);	        string namev(const char* n);	string name_av(const char* n,int i);	string value(const char* n);	int save_func(const char* name,const char* body);	int call(const char* name);	int set_arg_val(const char* fn, int i, const char* value);        int create_array(const char* name,int num);	int set_array_dim(const char* name,int dim);        int get_array_dim(const char* name,int idx);        int set_array_val(const char* name,int idx,const char* val);        bool isSubName(const char* name); 		const char* szValue;  //This value for lexer to output	string strValue;//This value for lexer to output multi match 	int nlastCol;	int nlastLeng;	int debug;protected:	CVBSMem mem;	vars_table var;        vars_table sub_table;	yyscan_t scanner;	int m_rnd;};#endif

⌨️ 快捷键说明

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