Exemplo n.º 1
0
 override public void VisitValueAssignEx(ValueAssignEx x)
 {
     _serializer.StartSerialize(typeof(ValueAssignEx).Name, SerializeSpan(x.Span),
                                new NodeObj("Operation", x.Operation.ToString()));
     base.VisitValueAssignEx(x);
     _serializer.EndSerialize();
 }
Exemplo n.º 2
0
 public override void VisitValueAssignEx(ValueAssignEx x)
 {
     // L = R
     VisitElement(x.LValue);
     ConsumeToken(Tokens.T_EQ, "=");
     VisitElement(x.RValue);
 }
Exemplo n.º 3
0
        /// <inheritdoc />
        override public void VisitValueAssignEx(ValueAssignEx x)
        {
            VisitElement(x.LValue);
            var lvalue = (VariableUse)result;

            VisitElement(x.RValue);
            result = new ValueAssignEx(x.Position, x.PublicOperation, lvalue, (Expression)result);
        }
Exemplo n.º 4
0
            /// <summary>
            /// Emits the RHS of assignment.
            /// </summary>
            /// <param name="node">Instance.</param>
            /// <param name="codeGenerator">A code generator.</param>
            /// <returns><see cref="PhpTypeCode"/> of the RHS.</returns>
            private PhpTypeCode EmitSourceValRead(ValueAssignEx /*!*/ node, CodeGenerator /*!*/ codeGenerator)
            {
                PhpTypeCode result;

                codeGenerator.ChainBuilder.Create();
                result = node.RValue.Emit(codeGenerator);
                codeGenerator.ChainBuilder.End();

                return(result);
            }
Exemplo n.º 5
0
        internal AssignOperationPoint(ValueAssignEx assign, LValuePoint lOperand, ValuePoint rOperand)
        {
            LOperand = lOperand;
            ROperand = rOperand;
            Assign   = assign;

            AssignTarget = lOperand as LValuePoint;
            if (AssignTarget == null)
            {
                throw new NotSupportedException("Given lOperand cannot be used ass assign target");
            }
        }
Exemplo n.º 6
0
        public override void VisitValueAssignEx(ValueAssignEx x)
        {
            var rValue = CreateRValue(x.RValue);

            switch (x.PublicOperation)
            {
            case Operations.AssignAppend:
            case Operations.AssignPrepend:
                var concatedValue = CreateRValue(x.LValue);
                Result(new AssignConcatPoint(x, concatedValue, rValue));
                return;

            case Operations.AssignValue:
                var lValue = CreateLValue(x.LValue);
                Result(new AssignPoint(x, lValue, rValue));
                return;

            default:
                //it's assign with binary operation
                var leftOperand = CreateLValue(x.LValue);
                Result(new AssignOperationPoint(x, leftOperand, rValue));
                return;
            }
        }
Exemplo n.º 7
0
 /// <summary>
 /// Visit left and right values in assignment.
 /// </summary>
 /// <param name="x"></param>
 virtual public void VisitValueAssignEx(ValueAssignEx x)
 {
     VisitAssignEx(x);
     VisitElement(x.RValue);
 }
Exemplo n.º 8
0
 /// <inheritdoc />
 public override void VisitValueAssignEx(ValueAssignEx x)
 {
     RValueResult(x);
 }
Exemplo n.º 9
0
 /// <summary>
 /// Visits ValueAssignEx.
 /// </summary>
 /// <param name="x">ValueAssignEx</param>
 public override void VisitValueAssignEx(ValueAssignEx x)
 {
     this.VisitElement(x);
 }
Exemplo n.º 10
0
 internal AssignPoint(ValueAssignEx assign, LValuePoint lOperand, ValuePoint rOperand)
 {
     LOperand = lOperand;
     ROperand = rOperand;
     Assign   = assign;
 }
Exemplo n.º 11
0
 private static AssignExpression ToAssignExpression(ValueAssignEx e)
 {
     return(new AssignExpression(Parse(e.LValue), Parse(e.RValue)));
 }