ClassAdParser par ;
string attr = "other.GlueCEStateStatus == \"Production\"";
cout << par.ParseExpression(attr, true) << endl ;
Yup, that should work, but it doesn't. It's definitely a bug.
A bug fix will be in the next release, which we'll try to do within a week.
You have two workarounds in the meantime. A lousy one, and the real one.
1) Add a space before the final quote:
string attr = "other.GlueCEStateStatus == \"Production\" ";
2) Look in lexer.C around line 455. You'll see this code:
while (isspace(tempch)) {
tempch = lexSource->ReadCharacter();
}
if (tempch != delim) { // a new token exists after the string
lexSource->UnreadCharacter();
stringComplete = true;
} else { // the adjacent string...
Change it to:
while (isspace(tempch)) {
tempch = lexSource->ReadCharacter();
}
if (tempch != delim) { // a new token exists after the string
if (tempch != -1) {
lexSource->UnreadCharacter();
}
stringComplete = true;
} else { // the adjacent string...
-alain
Condor Classads Info:
http://www.cs.wisc.edu/condor/classad/
|