コード例 #1
0
std::string
AbstractExpression::debug() const
{
    std::ostringstream buffer;
    //buffer << "Expression[" << expressionutil::getTypeName(getExpressionType()) << "]";
    buffer << "Expression[" << expressionToString(getExpressionType()) << ", " << getExpressionType() << "]";
    return (buffer.str());
}
コード例 #2
0
ファイル: buildVariableDecl.cpp プロジェクト: rozz666/Rask
boost::optional<VariableDecl> Builder::buildVariableDecl(const cst::VariableDecl& vd, SharedScope scope)
{
    if (!vd.value)
    {
        logger_->log(error::Message::uninitializedVariable(vd.name.position, vd.name.value));
        return boost::none;
    }

    boost::optional<Expression> expr = buildExpression(*vd.value, scope);

    if (!expr) return boost::none;

    VariableDecl decl(variableFactory_->createVariable(vd.name, getExpressionType(*expr)), *expr);
    scope->addVariable(decl.var());

    return decl;
}
コード例 #3
0
Expression *Expression::readExpression(Scanner& scanner) {
	if (!scanner.hasMoreTokens()) return NULL;
	string lookahead = scanner.nextToken();
	scanner.saveToken(lookahead);
	ExpressionType type = getExpressionType(lookahead);

	switch (type) {
		case Boolean:
			return new BooleanExpression(scanner);
		case Rational:
			return new RationalExpression(scanner); 
		case String:
			return new StringExpression(scanner); 
		case Symbol:
			return new SymbolExpression(scanner);
		case List:
			return new ListExpression(scanner);
		default: 
			Error("Expression type not supported.");
	}
	
	// never gets here, but compilers aren't always smart enough to figure that out
	return NULL;
}
コード例 #4
0
ファイル: subqueryexpression.cpp プロジェクト: AdvEnc/voltdb
std::string SubqueryExpression::debugInfo(const std::string &spacer) const
{
    std::ostringstream buffer;
    buffer << spacer << expressionToString(getExpressionType()) << ": subqueryId: " << m_subqueryId;
    return (buffer.str());
}