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); }
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); }
public abstract CodePiece GenerateCodeAssignment(CodeGenEnvironment env, SourceCodePosition pos, Expression source, ExpressionValuePointer target, bool reversed);
public override CodePiece GenerateCodeAssignment(CodeGenEnvironment env, SourceCodePosition pos, Expression source, ExpressionValuePointer target, bool reversed) { throw new InvalidAstStateException(pos); }