Пример #1
0
        RNode node_assign(RNode lhs, RNode rhs)
        {
            if (lhs == null) return null;

            value_expr(rhs);
            if (lhs is RNGAsgn ||
                lhs is RNIAsgn ||
                lhs is RNLAsgn ||
                lhs is RNDAsgn ||
                lhs is RNDAsgnCurr ||
                lhs is RNMAsgn ||
                lhs is RNCDecl ||
                lhs is RNCVDecl ||
                lhs is RNCVAsgn)
            {
                lhs.val = rhs;
            }
            else if (lhs is RNCall)
            {
                lhs.args = arg_add(lhs.args, rhs);
            }
            if (rhs != null)
            {
                lhs.FixPos(rhs);
            }
            return lhs;
        }