Beispiel #1
0
int main( ) {
	PrettyPrint pp;
	ClassAdParser parser;
	string buffer = "";
	string condString = "( ( MemoryRequirements < 234 ) || ( MemoryRequirements =?= undefined ) )";

	cout << "-------------" << endl;
	cout << "BOOLEXPR TEST" << endl;
	cout << "-------------" << endl;
	cout << "condString = " << condString << endl;
	cout << endl;

	ExprTree *condTree = NULL;
	if( !( condTree =  parser.ParseExpression( condString ) ) ) {
		cerr << "error parsing expression" << endl;
	}

	Condition *cond = new Condition( );
	if( !( BoolExpr::ExprToCondition( condTree, cond ) ) ) {
		cerr << "error with ExprToCondition" << endl;
	}

	cond->ToString( buffer );
	cout << "cond.ToString( ) = " << buffer << endl;
	buffer = "";
	cout << endl;

	string attr;
	Operation::OpKind op1 = Operation::__NO_OP__;
	Operation::OpKind op2 = Operation::__NO_OP__;
	Value val1, val2;
	Value::ValueType type;

	cond->GetAttr( attr );
	cout << "attr = " << attr << endl;

	cond->GetOp( op1 );
	GetOpName( op1, buffer );
	cout << "op1 = " << buffer << endl;
	cout << "op1 is op number " << (int)op1 << endl;
	buffer = "";

	cond->GetOp2( op2 );
	GetOpName( op2, buffer );
	cout << "op2 = " << buffer << endl;
	buffer = "";

	cond->GetVal( val1 );
	pp.Unparse( buffer, val1 );
	cout << "val1 = " << buffer << endl;
	buffer = "";

	cond->GetVal2( val2 );
	pp.Unparse( buffer, val2 );
	cout << "val2 = " << buffer << endl;
	buffer = "";

	cond->GetType( type );
	GetTypeName( type, buffer );
	cout << "type = " << buffer << endl;
	buffer = "";
	
}