public Set <string> Binary(ExternalExpression <Label, SymbolicValue> pc, BinaryOperator op, SymbolicValue dest, ExternalExpression <Label, SymbolicValue> s1, ExternalExpression <Label, SymbolicValue> s2, Set <string> data) { data = Recurse(data, s1); data = Recurse(data, s2); return(data); }
public Unit Unary(ExternalExpression <Label, SymbolicValue> pc, UnaryOperator op, bool overflow, bool unsigned, SymbolicValue dest, ExternalExpression <Label, SymbolicValue> source, StringBuilder data) { data.AppendFormat("{0}(", op.ToString()); Recurse(data, source); data.AppendFormat(")"); return(Unit.Value); }
public string ToString(ExternalExpression <Label, SymbolicValue> expr) { StringBuilder sb = new StringBuilder(); Recurse(sb, expr); return(sb.ToString()); }
public Unit Binary(ExternalExpression <Label, SymbolicValue> pc, BinaryOperator op, SymbolicValue dest, ExternalExpression <Label, SymbolicValue> s1, ExternalExpression <Label, SymbolicValue> s2, StringBuilder data) { data.Append(op.ToString()); data.Append('('); Recurse(data, s1); data.Append(", "); Recurse(data, s2); data.Append(')'); return(Unit.Value); }
public Set <string> SymbolicConstant(ExternalExpression <Label, SymbolicValue> pc, SymbolicValue symbol, Set <string> data) { data.Add(symbol.ToString()); return(data); }
public Unit Sizeof(ExternalExpression <Label, SymbolicValue> pc, Type type, SymbolicValue dest, StringBuilder data) { data.AppendFormat("sizeof({0})", mdDecoder.FullName(type)); return(Unit.Value); }
public Unit Ldnull(ExternalExpression <Label, SymbolicValue> pc, SymbolicValue dest, StringBuilder data) { data.Append("null"); return(Unit.Value); }
public Unit Ldconst(ExternalExpression <Label, SymbolicValue> pc, object constant, Type type, SymbolicValue dest, StringBuilder data) { data.Append(constant.ToString()); return(Unit.Value); }
public Unit Isinst(ExternalExpression <Label, SymbolicValue> pc, Type type, SymbolicValue dest, ExternalExpression <Label, SymbolicValue> obj, StringBuilder data) { data.AppendFormat("IsInst({0}) ", mdDecoder.FullName(type)); Recurse(data, obj); return(Unit.Value); }
void Recurse(StringBuilder tw, ExternalExpression <Label, SymbolicValue> expr) { decoder.ExpressionContext.Decode <StringBuilder, Unit, Decoder <Label, Local, Parameter, Method, Field, Property, Event, Type, SymbolicValue, Attribute, Assembly> >(expr, this, tw); }
public Unit SymbolicConstant(ExternalExpression <Label, SymbolicValue> pc, SymbolicValue symbol, StringBuilder data) { data.Append(symbol.ToString()); return(Unit.Value); }
Set <string> Recurse(Set <string> input, ExternalExpression <Label, SymbolicValue> expr) { return(decoder.ExpressionContext.Decode <Set <string>, Set <string>, Decoder <Label, Local, Parameter, Method, Field, Property, Event, Type, SymbolicValue, Attribute, Assembly> >(expr, this, input)); }
public Set <string> Unary(ExternalExpression <Label, SymbolicValue> pc, UnaryOperator op, bool overflow, bool unsigned, SymbolicValue dest, ExternalExpression <Label, SymbolicValue> source, Set <string> data) { return(Recurse(data, source)); }
public Set <string> Sizeof(ExternalExpression <Label, SymbolicValue> pc, Type type, SymbolicValue dest, Set <string> data) { return(data); }
public Set <string> Ldnull(ExternalExpression <Label, SymbolicValue> pc, SymbolicValue dest, Set <string> data) { return(data); }
public Set <string> Ldconst(ExternalExpression <Label, SymbolicValue> pc, object constant, Type type, SymbolicValue dest, Set <string> data) { return(data); }
public Set <string> Isinst(ExternalExpression <Label, SymbolicValue> pc, Type type, SymbolicValue dest, ExternalExpression <Label, SymbolicValue> obj, Set <string> data) { return(Recurse(data, obj)); }
public ProofOutcome ValidateExplicitAssertion(APC pc, ExternalExpression expr) { throw new Exception("The method or operation is not implemented."); }
public Set <string> Variables(ExternalExpression <Label, SymbolicValue> expr) { Set <string> emptySet = new Set <string>(); return(Recurse(emptySet, expr)); }