62 std::string trimmedExpression = boost::algorithm::trim_copy_if(expression, boost::is_any_of(
"\""));
67 Grammar<std::string::const_iterator> grammar;
70 std::string::const_iterator expressionIter = trimmedExpression.begin();
71 std::string::const_iterator expressionEnd = trimmedExpression.end();
72 using boost::spirit::ascii::space_type;
73 bool r = phrase_parse(expressionIter, expressionEnd, grammar, space_type(), expr);
74 std::string remainingExpression(expressionIter, expressionEnd);
75 boost::trim(remainingExpression);
76 if (remainingExpression.length() > 0) {
77 throw std::runtime_error(
"Did you forget an operator? This was not parsed: '" + remainingExpression +
"'");