当前位置: 首页>>代码示例>>C++>>正文


C++ Stmt::parent方法代码示例

本文整理汇总了C++中Stmt::parent方法的典型用法代码示例。如果您正苦于以下问题:C++ Stmt::parent方法的具体用法?C++ Stmt::parent怎么用?C++ Stmt::parent使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Stmt的用法示例。


在下文中一共展示了Stmt::parent方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: EvaluateExpression

bool Interpret::EvaluateExpression(const string& expr_str) {
	string trim = expr_str;
	trim.erase(trim.find_last_not_of(" \n\r\t")+1);

	if (trim == "") {
		return true;
	}

	ScopeTracer tracer(session(), "Interpret::EvaluateExpression()");
	assert(_repl_module != NULL);
	assert(_repl_block != NULL);

	session()->diagnostic()->resetReport();

	// Parses the expression.
	Parser parser(trim, session());
	Stmt* stmt = parser.parseStatement();
	if (session()->diagnostic()->mostSignificantLevel() <= REPORT_ERROR) {
		return false;
	}

	// resolving
	Resolver resolver(session());
	resolver.resolveAst(stmt);

	_repl_block->addStatement(stmt);
	stmt->parent(_repl_block);

	// Resolves names.
	resolver.resolveSymbol(stmt);

	if (session()->diagnostic()->mostSignificantLevel() <= REPORT_ERROR) {
		return false;
	}

	if (session()->config()->print_ast()) {
		AstPrinter astPrinter(session(), stdout, session()->str_table());
		astPrinter.print(stmt);
	}

	// Evaluates it.
	Evaluator eval(this);
	_eval = &eval;
	Value* v = eval.evaluate(stmt);

	if (v) {
		printf("%s\n", v->toString().c_str());
	}

	env_curr()->clear();

	return true;
}
开发者ID:ILyoan,项目名称:ring,代码行数:53,代码来源:interpret.cpp


注:本文中的Stmt::parent方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。