Ejemplo n.º 1
0
 /// <summary>
 /// 将名字转换(去除标记性字符)
 /// </summary>
 /// <returns></returns>
 public Data.ImgNode Analyzing(RuleObject Rule, string name)
 {
     this.Name           = Rule.AnalySisImgName(name, out source, out type);
     this.customNameType = Rule.nameType;
     this.forceAddress   = Rule.forceAddress;
     //添加后缀
     if (texture != null)
     {
         this.hashImage    = rect.GetHashCode();
         this.texture.name = TextureName;
         //Debug.Log(TextureName);
     }
     return(this);
 }
Ejemplo n.º 2
0
 public static string BytesToPrefixedValue(long Size, PrefixType PType, OutputForm PForm, SuffixType SType, OutputForm SForm)
 {
     for (int index = 0; index <= SA_Convert.prefixvalues.GetLength(0); ++index)
       {
     if (Size < SA_Convert.prefixvalues[index + 1][(int) PType])
       return string.Concat(new object[4]
       {
     (object) ((Decimal) Size / (Decimal) SA_Convert.prefixvalues[index][(int) PType] * (Decimal) SA_Convert.suffixvalues[(int) SType]).ToString("#.##"),
     (object) ' ',
     (object) SA_Convert.prefixes[(int) (PType + (int) PForm)][index],
     (object) SA_Convert.suffixes[(int) SType][(int) SForm]
       });
       }
       return "";
 }
Ejemplo n.º 3
0
        private Expression RootedVar()
        {
            var name = Tree.Children[0].Text;

            var hasSuffixes = Tree.Children.Count > 1;

            ParameterExpression root;
            Expression origin;

            if (IsLocalVar(name, out root))
            {
                if (!hasSuffixes)
                {
                    SuffixType = SuffixType.Local;
                    return root;
                }
                origin = root;
            }
            else
            {
                if (!hasSuffixes)
                {
                    SuffixType = SuffixType.Root;
                    Name = name;
                    return null;
                }
                origin = Expression.Dynamic(
                    GetMemberBinder.New(StaticTables, name),
                    typeof (object),
                    Scope.Env.GlobalParameter);
            }

            return ChainSuffixes(origin, Tree.Children);
        }
Ejemplo n.º 4
0
        private Expression ChainSuffixes(Expression origin, IList<ITree> suffixes)
        {
            for (var i = 1; i < suffixes.Count - 1; i++)
            {
                var suffix = (CommonTree) Tree.Children[i];

                ChainNameAndArgs(origin, suffix.Children, out origin);

                switch (suffix.Type)
                {
                    case ChunkParser.IndexedSuffix:
                    {
                        var index = Gen<Exp>(suffix.Children[0]);
                        var args = new List<Expression> {origin, index};
                        origin = Expression.Dynamic(
                            GetIndexBinder.New(StaticTables, new CallInfo(1)),
                            typeof (object),
                            args.ToArray());
                        break;
                    }
                    case ChunkParser.PropertySuffix:
                    {
                        var memberName = suffix.Children[0].Text;
                        origin = Expression.Dynamic(
                            GetMemberBinder.New(StaticTables, memberName),
                            typeof (object),
                            origin);
                        break;
                    }
                }
            }

            var last = (CommonTree) suffixes[Tree.Children.Count - 1];

            ChainNameAndArgs(origin, last.Children, out origin);

            switch (last.Type)
            {
                case ChunkParser.IndexedSuffix:
                {
                    SuffixType = SuffixType.Index;
                    Index = Gen<Exp>(last.Children[0]);
                    break;
                }
                case ChunkParser.PropertySuffix:
                {
                    SuffixType = SuffixType.Property;
                    Name = last.Children[0].Text;
                    break;
                }
            }

            return origin;
        }