public override object VisitPrimitiveExpression(ICSharpCode.NRefactory.Ast.PrimitiveExpression primitiveExpression, object data)
 {
     //Tim: perhaps this is too low in the tree? Resulting in having this run almost all the time?
     if (primitiveExpression.LiteralFormat == ICSharpCode.NRefactory.Parser.LiteralFormat.CharLiteral)
     {
         var regex = new Regex("\\\\u");
         if (regex.IsMatch(primitiveExpression.StringValue))
         {
             UnlockWith(primitiveExpression);
         }
     }
     return(base.VisitPrimitiveExpression(primitiveExpression, data));
 }
예제 #2
0
        private expression convert_primitive_expression(ICSharpCode.NRefactory.Ast.PrimitiveExpression expr)
        {
            TypeCode code = Type.GetTypeCode(expr.Value.GetType());

            switch (code)
            {
            case TypeCode.Boolean: return(new bool_const((bool)expr.Value));

            case TypeCode.Byte:
            case TypeCode.SByte:
            case TypeCode.Int16:
            case TypeCode.UInt16:
            case TypeCode.Int32:
                return(new int32_const(Convert.ToInt32(expr.Value)));

            case TypeCode.UInt32:
            case TypeCode.Int64:
                return(new int64_const(Convert.ToInt64(expr.Value)));

            case TypeCode.UInt64:
                return(new uint64_const(Convert.ToUInt64(expr.Value)));

            case TypeCode.Char:
                return(new char_const((char)expr.Value));

            case TypeCode.String:
                return(new string_const((string)expr.Value));

            case TypeCode.Double:
            case TypeCode.Single:
                return(new double_const(Convert.ToDouble(expr.Value)));

            default:
                return(null);
            }
        }
예제 #3
0
 public override object VisitPrimitiveExpression(ICSharpCode.NRefactory.Ast.PrimitiveExpression primitiveExpression, object data)
 {
     return((bool)primitiveExpression.Value);
 }