Exemplo n.º 1
0
        private static string /*!*/ BuildName(string prefix, ConstantVariable /*!*/ constant)
        {
            var reversed = new List <string>();
            ConstantVariable constantQualifier;

            while (true)
            {
                reversed.Add(constant.Name);
                constantQualifier = constant.Qualifier as ConstantVariable;
                if (constantQualifier == null)
                {
                    break;
                }
                constant = constantQualifier;
            }

            // A::B
            // ::A::B
            // <expr>::A::B
            if (!constant.IsGlobal)
            {
                if (constant.IsBound)
                {
                    reversed.Add("<object>");
                }
                else if (prefix != null)
                {
                    reversed.Add(prefix);
                }
            }

            return(String.Join("::", Enumerable.Reverse(reversed)));
        }
        /// <summary>
        /// Gets the fully qualified name of the base class.
        /// </summary>
        public static string GetBaseClassName(ClassDefinition classDefinition)
        {
            ConstantVariable variable = classDefinition.SuperClass as ConstantVariable;

            if (variable != null)
            {
                return(RubyControlFieldExpression.GetQualifiedName(variable));
            }
            return(String.Empty);
        }
 public IActionResult Register([FromBody] Users formUser)
 {
     formUser.LockEnabled    = false;
     formUser.LockEnd        = DateTime.Now;
     formUser.EmailConfirmed = false;
     formUser.Id             = ConstantVariable.HashKey(formUser.Email);
     unitOfWork.Users.Add(formUser);
     unitOfWork.Save();
     return(Ok("Successfully"));
 }
        static string[] GetMemberNamesFromConstant(MethodCall methodCall)
        {
            List <string>    names            = new List <string>();
            ConstantVariable constantVariable = methodCall.Target as ConstantVariable;

            while (constantVariable != null)
            {
                names.Insert(0, constantVariable.Name);
                constantVariable = constantVariable.Qualifier as ConstantVariable;
            }
            names.Add(methodCall.MethodName);
            return(names.ToArray());
        }
        /// <summary>
        /// Gets the fully qualified name (e.g. System.Windows.Forms.Form)
        /// </summary>
        public static string GetQualifiedName(ConstantVariable variable)
        {
            StringBuilder name = new StringBuilder();

            while (variable != null)
            {
                name.Insert(0, variable.Name);
                variable = variable.Qualifier as ConstantVariable;
                if (variable != null)
                {
                    name.Insert(0, '.');
                }
            }
            return(name.ToString());
        }
Exemplo n.º 6
0
        string GetFullyQualifiedName(ConstantVariable variable)
        {
            StringBuilder name      = new StringBuilder();
            bool          firstName = true;

            while (variable != null)
            {
                if (!firstName)
                {
                    name.Insert(0, '.');
                }
                name.Insert(0, variable.Name);
                variable  = variable.Qualifier as ConstantVariable;
                firstName = false;
            }
            return(name.ToString());
        }
Exemplo n.º 7
0
            /// <summary>
            /// Appends the given constant variable.
            /// </summary>
            /// <param name="variable">The variable to append.</param>
            public void Append(ConstantVariable variable)
            {
                var value = variable.Value;

                switch (value.BasicValueType)
                {
                case BasicValueType.Int1:
                    AppendConstant(value.Int1Value ? 1 : 0);
                    break;

                case BasicValueType.Int8:
                    AppendConstant(value.UInt8Value);
                    break;

                case BasicValueType.Int16:
                    AppendConstant(value.UInt16Value);
                    break;

                case BasicValueType.Int32:
                    AppendConstant(value.UInt32Value);
                    break;

                case BasicValueType.Int64:
                    AppendConstant(value.UInt64Value);
                    break;

                case BasicValueType.Float16:
                    AppendConstant(value.Float16Value);
                    break;

                case BasicValueType.Float32:
                    AppendConstant(value.Float32Value);
                    break;

                case BasicValueType.Float64:
                    AppendConstant(value.Float64Value);
                    break;

                default:
                    throw new InvalidCodeGenerationException();
                }
            }
        /// <summary>
        /// Deserializes a method call where the target is an array expression.
        ///
        /// System::Array[System::String].new("a", "b")
        /// </summary>
        object DeserializeCreateArrayExpression(string name, MethodCall methodCall)
        {
            MethodCall       arrayCreationMethodCall = methodCall.Target as MethodCall;
            ConstantVariable constantVariable        = arrayCreationMethodCall.Arguments.Expressions[0] as ConstantVariable;
            string           arrayTypeName           = RubyControlFieldExpression.GetQualifiedName(constantVariable);

            ArrayConstructor arrayConstructor = methodCall.Arguments.Expressions[0] as ArrayConstructor;

            Expression[] arrayItems = arrayConstructor.Arguments.Expressions;

            Type  arrayType = componentCreator.GetType(arrayTypeName);
            Array array     = Array.CreateInstance(arrayType, arrayItems.Length);

            for (int i = 0; i < arrayItems.Length; ++i)
            {
                Expression arrayItemExpression = arrayItems[i];
                object     instance            = Deserialize(arrayItemExpression);
                array.SetValue(instance, i);
            }
            return(array);
        }