iformula.h

来自「我的简易编译器终于在花了近20个工作日后完成了。按照设计是做成一个Formula」· C头文件 代码 · 共 70 行

H
70
字号
// 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 + =
减小字号Ctrl + -
显示快捷键?