public override void Emit(Emitter e) { var kind = (HasWin) ? ExpressionKinds.HasWin : (Accums > 0) ? ExpressionKinds.HasFold : (Lookup == null) ? ExpressionKinds.Closed : ExpressionKinds.Open; e.OutSeg(ExpressionBlock.Create(Name, kind, Value.Compile(), Value.DataType, Lookup, Accums)); }
public override void Emit(Emitter e) { Logger.Assert(DataType.IsVariable || DataType == DataTypes.Void, DataType); e.Out(Opcodes.LDACCBLK); e.OutLoad(NumberValue.Create(AccumIndex)); e.OutLoad(DataType.DefaultValue()); var seed = FoldedOp.GetSeed(DataType); var code = (FoldedOp.IsDefFunc) ? FoldedExpr.Compile(InvokeOp, CallInfo.Name, seed) : FoldedExpr.Compile(FoldedOp, seed, CallInfo); var eb = ExpressionBlock.Create("&i", ExpressionKinds.IsFolded, code, FoldedExpr.DataType, null, AccumIndex); e.OutSeg(eb); e.OutCall(Func); }
public override void Emit(Emitter e) { var kind = (HasWin) ? ExpressionKinds.HasWin : (Accums > 0) ? ExpressionKinds.HasFold : (Lookup == null) ? ExpressionKinds.Closed : ExpressionKinds.Open; var eb = ExpressionBlock.Create(Name, kind, Value.Compile(), DataType, Lookup, Accums); //var eb = ExpressionBlock.Create(Name, kind, Value.Compile(), Value.DataType, Lookup, Accums); if (AsCode) { e.OutLoad(CodeValue.Create(eb)); } else { e.OutSeg(eb); } }
public override void Emit(Emitter e) { e.OutSeg(ExpressionBlock.Create(Name, OldName, DataType)); }
public override void Emit(Emitter e) { e.OutSeg(ExpressionBlock.Create("&d", ExpressionKinds.Closed, Value.Compile(), Value.DataType)); e.Out(Opcodes.LDACCBLK); e.OutCall(Func); }
public override void Emit(Emitter e) { e.OutSeg(ExpressionBlock.Create(Name, DataType, Grouped, Descending)); }