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 = ""; }