read("WITH");
do {
String name = readUniqueIdentifier().toLowerCase(Locale.US);
read("=");
if (readIf("{")) {
defs.addProperty(name, parseMap());
} else {
Expression value = readExpression();
defs.addProperty(name, value.optimize(session).getValue(session).toString());
}
} while (readIf("AND"));