示例#1
0
        protected override Expression VisitMember(MemberExpression node)
        {
            HbExpression accessedExpression = null;


            Visit(node.Expression);

            accessedExpression = Retrieve();
            var memberName = node.Member.Name;
            var attr       = node.Member.GetCustomAttribute <OverrideHbFieldNameAttribute>();

            if (attr != null)
            {
                memberName = attr.Name;
            }
            else
            {
                if (node.Member.Name == "Length")
                {
                    if (node.Expression.Type.IsArray)
                    {
                        memberName = "length";
                    }
                }
            }
            Return(new HbMemberExpression {
                Accessed = accessedExpression, MemberName = memberName
            });
            return(node);
        }
示例#2
0
 private void Return(HbExpression expr)
 {
     _resultsStack.Push(expr);
 }