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


C++ Token_stream::end方法代码示例

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


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

示例1: get_value

double Symbol_table::get_value(string s)
{
	for (int i = 0; i<vars.size(); ++i)
		if (vars[i].name == s) return vars[i].value;
	ts.end();
	error("get: undefined name ",s);
}
开发者ID:dreamaddict,项目名称:Stroustrup-book-exercises,代码行数:7,代码来源:ch7calcexercises1-9.cpp

示例2: declaration

double declaration()
{
	Token t = ts.get();
	if (t.kind != VAR) {
		ts.end();
		error ("Valid name expected in declaration");
	}
	string name = t.name;
	Token t2 = ts.get();
	if (t2.kind != '=') {
		ts.end();
		error("'=' missing in declaration of " ,name);
	}
	double d = expression();
	variables.set_value(name, d);
	return d;
}
开发者ID:dreamaddict,项目名称:Stroustrup-book-exercises,代码行数:17,代码来源:ch7calcexercises1-9.cpp

示例3: primary

double primary()
{
	Token t = ts.get();
	switch (t.kind) {
	// Handles expressions in parentheses.
	case '(':
	{	double d = expression();
		t = ts.get();
		if (t.kind != ')') {
			ts.end();
			error("')' expected");
		}
		return d;
	}
	// This handles unary + or -
	case '-':
		return - primary();
	case '+':
		return + primary();
	case NUMBER:
		return t.value;
	case VAR:
		return variables.get_value(t.name);
	case SQRT:	{
		t=ts.get();
		if(t.kind!='(') {
			ts.end();
			error("sqrt: sqrt must be of the form sqrt(expression)");
		}
		ts.unget(t);
		double d = primary();
		if(d<0) {
			ts.end();
			error("sqrt: cannot take square root of a negative number");
		}
		return sqrt(d);
	}
	default:
		ts.end();
		error("primary expected");
	}
}
开发者ID:dreamaddict,项目名称:Stroustrup-book-exercises,代码行数:42,代码来源:ch7calcexercises1-9.cpp

示例4: term

double term()
{
	double left = power();
	while(true) {
		Token t = ts.get();
		switch(t.kind) {
		case '*':
			left *= power();
			break;
		case '/':
		{	double d = power();
			if (d == 0) {
				ts.end();
				error("divide by zero");
			}
			left /= d;
			break;
		}
		default:
			ts.unget(t);
			return left;
		}
	}
}
开发者ID:dreamaddict,项目名称:Stroustrup-book-exercises,代码行数:24,代码来源:ch7calcexercises1-9.cpp


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