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


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

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


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

示例1: block

//<复合语句>::= [<常量说明部分>][<变量说明部分>]<语句列>
void Parser::block(ifstream &file, Stmt &s) {
	if (look.tag == CONST) {
		constDecls(file);
	}
	else if (look.tag == INT || look.tag == FLOAT || look.tag == CHAR)
		varDecls(file);
	stmts(file, s);
	int i = 0, label = s.newlabel();
	vector<Quadruple>::iterator iter;
	for (iter = s.code.begin(); iter != s.code.end(); ++iter, ++i) {	
		if (((*iter).op == ">=" || (*iter).op == ">" || (*iter).op == "<=" 
			|| (*iter).op == "<" || (*iter).op == "!=" || (*iter).op == "==" 
			|| (*iter).op == "goto") && (*iter).jumpTo == -1) {
			s.code[i].jumpTo = label;
			s.code[i].quadstring += intToString(label);
		}
	}
	Quadruple q;
	q.label = label;
	q.quadstring = "L" + intToString(q.label) + ":";
	s.code.push_back(q);
}
开发者ID:Sudoka,项目名称:C0-compiler,代码行数:23,代码来源:syntax_parser.cpp


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