本文整理汇总了C++中AbstractExpression::Interpret方法的典型用法代码示例。如果您正苦于以下问题:C++ AbstractExpression::Interpret方法的具体用法?C++ AbstractExpression::Interpret怎么用?C++ AbstractExpression::Interpret使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类AbstractExpression
的用法示例。
在下文中一共展示了AbstractExpression::Interpret方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
int main(int argc,char* argv[]) {
Context* c = new Context();
AbstractExpression* te = new TerminalExpression("hello");
AbstractExpression* nte = new NonterminalExpression(te,2);
nte->Interpret(*c);
delete nte;
delete c;
return 0;
}
示例2: main
int main(int argc, char* argv[])
{
//生成表达式
AbstractExpression* expression;
//解析器对象
Context context;
//两个变量
VariableExp* varX = new VariableExp("keyX");
VariableExp* varY = new VariableExp("keyY");
/*一个复杂表达式 或(与(常量,变量),与(变量,非(变量)))*/
expression = new OrExp(
new AndExp(new ConstantExp(true), varX),
new AndExp(varY, new NotExp(varX)));
//在解析器中建立外部名字和值的关联
context.Assign(varX, false);
context.Assign(varY, true);
//递归运算表达式求值
bool result = expression->Interpret(context);
cout<<"result: "<<result<<endl;
printf("Hello World!\n");
return 0;
}
示例3: InterpreterTest
///一些应用提供了内建(Build-In)的脚本或者宏语言来让用户可以定义他们能够在系统 中进行的操作。Interpreter 模式的目的就是使用一个解释器为用户提供一个一门定义语言的 语法表示的解释器,然后通过这个解释器来解释语言中的句子
///Interpreter 模式中使用类来表示文法规则,因此可以很容易实现文法的扩展。另外对于 终结符我们可以使用 Flyweight 模式来实现终结符的共享。
void InterpreterTest() {
Interpreter_Context* c = new Interpreter_Context();
AbstractExpression* te = new TerminalExpression("hello");
AbstractExpression* nte = new NonterminalExpression(te,2);
nte->Interpret(*c);
}