示例#1
0
        protected virtual void _Generate(AstNodeExprGetAddress GetAddress)
        {
            var AstNodeExprFieldAccess = (GetAddress.Expression as AstNodeExprFieldAccess);
            var AstNodeExprArgument    = (GetAddress.Expression as AstNodeExprArgument);

            if (AstNodeExprFieldAccess != null)
            {
                Generate(AstNodeExprFieldAccess.Instance);
                Emit(OpCodes.Ldflda, AstNodeExprFieldAccess.Field);
            }
            else if (AstNodeExprArgument != null)
            {
                Emit(OpCodes.Ldarga, AstNodeExprArgument.AstArgument.Index);
            }
            else
            {
                throw (new NotImplementedException("Can't implement AstNodeExprGetAddress for '" + GetAddress.Expression.GetType() + "'"));
            }
        }
示例#2
0
 protected virtual void _Generate(AstNodeExprGetAddress getAddress)
 {
     Output.Write("&");
     Generate(getAddress.Expression);
 }