3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-06-13 17:36:15 +00:00

enable binary string access to unsigned numerals over API #4568

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2020-07-07 18:58:42 -07:00
parent 4a8533e41f
commit 4b346ef693
3 changed files with 23 additions and 2 deletions

View file

@ -100,13 +100,21 @@ namespace Microsoft.Z3
#endif #endif
/// <summary> /// <summary>
/// Returns a string representation of the numeral. /// Returns a decimal string representation of the numeral.
/// </summary> /// </summary>
public override string ToString() public override string ToString()
{ {
return Native.Z3_get_numeral_string(Context.nCtx, NativeObject); return Native.Z3_get_numeral_string(Context.nCtx, NativeObject);
} }
/// <summary>
/// Returns a binary string representation of the numeral.
/// </summary>
public string ToBinaryString()
{
return Native.Z3_get_numeral_binary_string(Context.nCtx, NativeObject);
}
#region Internal #region Internal
internal BitVecNum(Context ctx, IntPtr obj) : base(ctx, obj) { Debug.Assert(ctx != null); } internal BitVecNum(Context ctx, IntPtr obj) : base(ctx, obj) { Debug.Assert(ctx != null); }
#endregion #endregion

View file

@ -61,7 +61,7 @@ public class BitVecNum extends BitVecExpr
} }
/** /**
* Returns a string representation of the numeral. * Returns a decimal string representation of the numeral.
**/ **/
@Override @Override
public String toString() public String toString()
@ -69,6 +69,15 @@ public class BitVecNum extends BitVecExpr
return Native.getNumeralString(getContext().nCtx(), getNativeObject()); return Native.getNumeralString(getContext().nCtx(), getNativeObject());
} }
/**
* Returns a binary string representation of the numeral.
**/
@Override
public String toBinaryString()
{
return Native.getNumeralBinaryString(getContext().nCtx(), getNativeObject());
}
BitVecNum(Context ctx, long obj) BitVecNum(Context ctx, long obj)
{ {
super(ctx, obj); super(ctx, obj);

View file

@ -3711,6 +3711,10 @@ class BitVecNumRef(BitVecRef):
def as_string(self): def as_string(self):
return Z3_get_numeral_string(self.ctx_ref(), self.as_ast()) return Z3_get_numeral_string(self.ctx_ref(), self.as_ast())
def as_binary_string(self):
return Z3_get_numeral_binary_string(self.ctx_ref(), self.as_ast())
def is_bv(a): def is_bv(a):
"""Return `True` if `a` is a Z3 bit-vector expression. """Return `True` if `a` is a Z3 bit-vector expression.