示例#1
0
        protected override Expr VisitMULTI(ExprMulti pExpr)
        {
            Expr rhs = Visit(pExpr.Operator);
            Expr lhs = Visit(pExpr.Left);

            return(GenerateCall(PREDEFMETH.PM_EXPRESSION_ASSIGN, lhs, rhs));
        }
 public ExprMultiGet(CType type, EXPRFLAG flags, ExprMulti multi)
     : base(ExpressionKind.MultiGet, type)
 {
     Debug.Assert((flags & ~EXPRFLAG.EXF_MASK_ANY) == 0);
     Flags         = flags;
     OptionalMulti = multi;
 }
示例#3
0
        public ExprMultiGet CreateMultiGet(EXPRFLAG nFlags, CType pType, ExprMulti pOptionalMulti)
        {
            Debug.Assert(0 == (nFlags & ~(EXPRFLAG.EXF_MASK_ANY)));
            ExprMultiGet rval = new ExprMultiGet(pType);

            rval.Flags         = nFlags;
            rval.OptionalMulti = pOptionalMulti;
            return(rval);
        }
示例#4
0
        public ExprMulti CreateMulti(EXPRFLAG nFlags, CType pType, Expr pLeft, Expr pOp)
        {
            Debug.Assert(pLeft != null);
            Debug.Assert(pOp != null);
            ExprMulti rval = new ExprMulti(pType);

            rval.Flags    = nFlags;
            rval.Left     = pLeft;
            rval.Operator = pOp;
            return(rval);
        }
示例#5
0
        public ExprMultiGet CreateMultiGet(EXPRFLAG nFlags, CType pType, ExprMulti pOptionalMulti)
        {
            Debug.Assert(0 == (nFlags & ~(EXPRFLAG.EXF_MASK_ANY)));
            ExprMultiGet rval = new ExprMultiGet();

            rval.Kind          = ExpressionKind.EK_MULTIGET;
            rval.Type          = pType;
            rval.Flags         = nFlags;
            rval.OptionalMulti = pOptionalMulti;
            Debug.Assert(rval != null);
            return(rval);
        }
示例#6
0
        public ExprMulti CreateMulti(EXPRFLAG nFlags, CType pType, Expr pLeft, Expr pOp)
        {
            Debug.Assert(pLeft != null);
            Debug.Assert(pOp != null);
            ExprMulti rval = new ExprMulti();

            rval.Kind     = ExpressionKind.EK_MULTI;
            rval.Type     = pType;
            rval.Flags    = nFlags;
            rval.Left     = pLeft;
            rval.Operator = pOp;
            Debug.Assert(rval != null);
            return(rval);
        }
示例#7
0
 protected virtual Expr VisitMULTI(ExprMulti pExpr)
 {
     return(VisitEXPR(pExpr));
 }
示例#8
0
 public static ExprMultiGet CreateMultiGet(EXPRFLAG flags, CType type, ExprMulti multi) =>
 new ExprMultiGet(type, flags, multi);