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

            if (reversed)
            {
                p.AppendLeft(source.GenerateCode(env, reversed));
                p.AppendLeft(target.GenerateCodeSingle(env, reversed));

                p.AppendLeft(BCHelper.ReflectSet);

                p.NormalizeX();
            }
            else
            {
                p.AppendRight(source.GenerateCode(env, reversed));
                p.AppendRight(target.GenerateCodeSingle(env, reversed));

                p.AppendRight(BCHelper.ReflectSet);

                p.NormalizeX();
            }

            return(p);
        }
示例#2
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);
        }
示例#3
0
 public abstract CodePiece GenerateCodeAssignment(CodeGenEnvironment env, SourceCodePosition pos, Expression source, ExpressionValuePointer target, bool reversed);
示例#4
0
 public override CodePiece GenerateCodeAssignment(CodeGenEnvironment env, SourceCodePosition pos, Expression source, ExpressionValuePointer target, bool reversed)
 {
     throw new InvalidAstStateException(pos);
 }