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

📄 iformula.h

📁 我的简易编译器终于在花了近20个工作日后完成了。按照设计是做成一个FormulaEx.dll
💻 H
字号:
// StdAfx.h: interface for the CTestIF class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(INTERFACE_IFORMULA_HEADER_H)
#define INTERFACE_IFORMULA_HEADER_H

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

enum VAR_ITEM_STYLE{
	VIS_UNKNOW = 0,
	VIS_VARIABLE = 1,
	VIS_CONST = 2,
	VIS_TEMP = 3
};

enum LIST_VAR_TYPE{
	LV_NONE     = 0x0,
	LV_NAME    = 0x1,
	LV_TYPE    = 0x2,
	LV_VALUE   = 0x3,
	LV_SUMMARY = 0x4
};
enum LIST_FORMULA_ITEM_TYPE{
	LFI_NONE     = 0x0,
	LFI_RAW    = 0x1,
	LFI_LABEL    = 0x2
};

class IFormulaEnvir
{
public:  // 编译 与运行
	// 返回值<0 表示编译有错 否则返回模块编号
	virtual int  CompileFormula(LPCTSTR szFormula,int nLen=0)=0;
	virtual int  CompileFile(LPCTSTR szFilename)=0;
	virtual CString Run(int nModuleInd=-1)=0;
	virtual CString Run(LPCTSTR szModuleName)=0;
	virtual float   Calc(int nModuleInd)=0;
	virtual LPCTSTR GetSource()=0;
	virtual int		GetSourceLen()=0;
public: //变量列表
	virtual void SetFloat(LPCTSTR szName,float fVal)=0;
	virtual void SetVariable(LPCTSTR szName,LPCTSTR szValue)=0;
	virtual void SetArrayNumberVar(LPCTSTR szName,int nLen,float * lpValue)=0;

	virtual int  GetVariableSum()=0;
	virtual CString ListVariable(int nVarInd,LIST_VAR_TYPE nListType=LV_SUMMARY)=0;
public: // 四元式
	virtual int  GetFormulaItemSum()=0;
	virtual CString ListFormulaItem(int nFormulaInd, LIST_FORMULA_ITEM_TYPE nListType=LFI_LABEL)=0;
public:
	virtual int  GetModuleSum()=0;
	virtual CString GetModuleName(int nModuleInd)=0;
	virtual void SaveModule(LPCTSTR szModuleName)=0;
	virtual BOOL GetModule(LPCTSTR szModuleName)=0;
	virtual void SaveCompileScene(int nModuleInd,LPCTSTR szFilename)=0;
	virtual void LoadCompileScene(int nModuleInd,LPCTSTR szFilename)=0;
public:
	virtual int  GetCompileErrorSum()=0;
	virtual CString  GetCompileError(int nErrorInd)=0;

	virtual int  GetOutputSum()=0;
	virtual CString  GetOutputDesc(int nOPInd)=0;
};

#endif // !defined(INTERFACE_IFORMULA_HEADER_H)

⌨️ 快捷键说明

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