bool move_tokens_to_statement(evl_tokens &statement_tokens, evl_tokens &tokens)
{
	for (; !tokens.empty();)
	{
		statement_tokens.push_back(tokens.front());
		tokens.erase(tokens.begin()); // consume one token per iteration 
		if (statement_tokens.back().str == ";")
			break; // exit if the ending ";" is found 
	}
	if (statement_tokens.back().str != ";")
	{
		std::cerr << "Look for ';' but reach the end of file" << std::endl;
		return false;
	}
	return true;
}
Beispiel #2
0
bool move_wire_to_statement(evl_tokens &statement_tokens, evl_tokens &tokens) {
	assert(statement_tokens.empty());
	assert(!tokens.empty());

	for (; !tokens.empty();) {
		statement_tokens.push_back(tokens.front());
		tokens.erase(tokens.begin());
		if (statement_tokens.back().str == "=")
			break;		//exit if the ending "=" is found
	}
	if (statement_tokens.back().str != "=") {
		std::cerr << "Look for '=' but reach the end of file" << std::endl;
		return false;
	}
	return true;
}