示例#1
0
            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);
            }
示例#2
0
 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);
 }
示例#3
0
            public string ToString(ExternalExpression <Label, SymbolicValue> expr)
            {
                StringBuilder sb = new StringBuilder();

                Recurse(sb, expr);
                return(sb.ToString());
            }
示例#4
0
 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);
 }
示例#5
0
 public Set <string> SymbolicConstant(ExternalExpression <Label, SymbolicValue> pc, SymbolicValue symbol, Set <string> data)
 {
     data.Add(symbol.ToString());
     return(data);
 }
示例#6
0
 public Unit Sizeof(ExternalExpression <Label, SymbolicValue> pc, Type type, SymbolicValue dest, StringBuilder data)
 {
     data.AppendFormat("sizeof({0})", mdDecoder.FullName(type));
     return(Unit.Value);
 }
示例#7
0
 public Unit Ldnull(ExternalExpression <Label, SymbolicValue> pc, SymbolicValue dest, StringBuilder data)
 {
     data.Append("null");
     return(Unit.Value);
 }
示例#8
0
 public Unit Ldconst(ExternalExpression <Label, SymbolicValue> pc, object constant, Type type, SymbolicValue dest, StringBuilder data)
 {
     data.Append(constant.ToString());
     return(Unit.Value);
 }
示例#9
0
 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);
 }
示例#10
0
 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);
 }
示例#11
0
 public Unit SymbolicConstant(ExternalExpression <Label, SymbolicValue> pc, SymbolicValue symbol, StringBuilder data)
 {
     data.Append(symbol.ToString());
     return(Unit.Value);
 }
示例#12
0
 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));
 }
示例#13
0
 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));
 }
示例#14
0
 public Set <string> Sizeof(ExternalExpression <Label, SymbolicValue> pc, Type type, SymbolicValue dest, Set <string> data)
 {
     return(data);
 }
示例#15
0
 public Set <string> Ldnull(ExternalExpression <Label, SymbolicValue> pc, SymbolicValue dest, Set <string> data)
 {
     return(data);
 }
示例#16
0
 public Set <string> Ldconst(ExternalExpression <Label, SymbolicValue> pc, object constant, Type type, SymbolicValue dest, Set <string> data)
 {
     return(data);
 }
示例#17
0
 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.");
 }
示例#19
0
            public Set <string> Variables(ExternalExpression <Label, SymbolicValue> expr)
            {
                Set <string> emptySet = new Set <string>();

                return(Recurse(emptySet, expr));
            }