65.9K
CodeProject 正在变化。 阅读更多。
Home

ALXParser - 单个表达式dBase解析器

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.71/5 (16投票s)

2002年9月3日

viewsIcon

62488

downloadIcon

973

一个单表达式的 dBase 语法解析器。支持函数和变量。

Example of use parser

引言

这是一个支持函数、变量、求值和错误处理的 dBase 语言解析器。该解析器是我编写的,包含在 CALXParser 类中。

计算过程分为两个阶段:

  1. 语法分析和填充计算所需的数据结构,
  2. 执行准备好的脚本。

这使得在大型循环中使用解析器时,可以减少执行时间。

基本方法

这些方法用于获取表达式分析的结果。

void Parse(LPCSTR lpszExpression);
VARIANT* Execute();

变量操作方法

这些方法用于定义变量或更改值。

BOOL AddVariable(LPCSTR szName, VARIANT& varValue);
BOOL DelVariable(LPCSTR szName);
void DelUnusedVariables(LPCSTR szName);

BOOL SetVariableValue(LPCSTR szName, VARIANT& varValue);
BOOL SetVariableValue(VARIANT& varValue);
BOOL GetVariableValue(LPCSTR szName, VARIANT& varValue);
BOOL GetVariableValue(VARIANT& varValue);

LPCSTR GetFirstVariableName();
LPCSTR GetNextVariableName();	

示例

使用示例。

// pointer on result
VARIANT* pvarResult = NULL;

try
{
	// prepare script
	m_Parser.Parse(strExpression);
	// execute script
	pvarResult = m_Parser.Execute();
}
catch(CALXParserException* e)
{
	// processing of errors
	for(int i = 0; i < e->GetErrorCount(); i++)
	{
		e->GetErrorInfo(i);
		e->ReportError();
	}
	e->Delete();
	return;
}

// work with result
// ...
© . All rights reserved.