add bit0 and bit1 constants to smt-lib v1 parser
authorMorgan Deters <mdeters@cs.nyu.edu>
Mon, 22 Apr 2013 13:49:46 +0000 (09:49 -0400)
committerMorgan Deters <mdeters@cs.nyu.edu>
Mon, 22 Apr 2013 13:49:46 +0000 (09:49 -0400)
src/parser/smt1/Smt1.g

index ee4e19689df595588f708c79c3e473d228ab8c2d..bfcd8cd4dc4f01104d4cd9bbedc139a66a6b8c88 100644 (file)
@@ -313,6 +313,10 @@ annotatedFormula[CVC4::Expr& expr]
       expr = MK_CONST( AntlrInput::tokenToRational($RATIONAL_TOK) ); }
   | n = BITVECTOR_BV_CONST '[' size = NUMERAL_TOK ']'
     { expr = MK_CONST( AntlrInput::tokenToBitvector($n, $size) ); }
+  | n = BITVECTOR1_BV_CONST
+    { unsigned int bit = AntlrInput::tokenText($n)[3] - '0';
+      expr = MK_CONST( BitVector(1, bit) );
+    }
     // NOTE: Theory constants go here
     /* TODO: quantifiers, arithmetic constants */
 
@@ -745,6 +749,13 @@ BITVECTOR_BV_CONST
   : 'bv' DIGIT+
   ;
 
+/**
+ * Matches a bit-vector constant of the form bit(0|1)
+ */
+BITVECTOR1_BV_CONST
+  : 'bit0' | 'bit1'
+  ;
+
 
 /**
  * Matches an identifier from the input. An identifier is a sequence of letters,