Fix user-values in SMT-LIB v1.2
authorMorgan Deters <mdeters@cs.nyu.edu>
Fri, 8 Feb 2013 22:23:32 +0000 (17:23 -0500)
committerMorgan Deters <mdeters@cs.nyu.edu>
Fri, 8 Feb 2013 22:23:32 +0000 (17:23 -0500)
src/parser/smt1/Smt1.g

index 0f76baace3d4448b77294c4e75a060d58f4cce7f..e3c36cf91ac9f6f8278642e62379aeaa7c1d431f 100644 (file)
@@ -783,7 +783,15 @@ FLET_IDENTIFIER
  */
 userValue[std::string& s]
   : USER_VALUE
-    { s = AntlrInput::tokenText($USER_VALUE); }
+    { s = AntlrInput::tokenText($USER_VALUE);
+      assert(*s.begin() == '{');
+      assert(*s.rbegin() == '}');
+      // trim whitespace
+      s.erase(s.begin(), s.begin() + 1);
+      s.erase(s.begin(), std::find_if(s.begin(), s.end(), std::not1(std::ptr_fun<int, int>(std::isspace))));
+      s.erase(s.end() - 1);
+      s.erase(std::find_if(s.rbegin(), s.rend(), std::not1(std::ptr_fun<int, int>(std::isspace))).base(), s.end());
+    }
   ;
 
 PATTERN_ANNOTATION_BEGIN