示例#1
0
        public override CodePiece GenerateCodeAssignment(CodeGenEnvironment env, SourceCodePosition pos, Expression source, ExpressionValuePointer target, bool reversed)
        {
            CodePiece p = new CodePiece();

            BTypeArray type = target.GetResultType() as BTypeArray;
            ExpressionDirectValuePointer vPointer = target as ExpressionDirectValuePointer;

            if (reversed)
            {
                p.AppendLeft(source.GenerateCode(env, reversed));
                p.AppendLeft(CodePieceStore.WriteArrayFromStack(env, vPointer.Target.CodeDeclarationPos, reversed));

                p.NormalizeX();
            }
            else
            {
                p.AppendRight(source.GenerateCode(env, reversed));
                p.AppendRight(CodePieceStore.WriteArrayFromStack(env, vPointer.Target.CodeDeclarationPos, reversed));

                p.NormalizeX();
            }

            return(p);
        }