public void Emit(IList <Expr> args, TokenTextWriter stream, int contextBindingStrength, bool fragileContext) { Debug.Assert(args.Count == ArgumentCount); // TODO: Don't ignore contextBindingStrength and fragileContext stream.SetToken(ref this.Token); var popRequired = stream.push(FunctionName); stream.Write(this.FunctionName); stream.Write("("); for (int index = 0; index < args.Count; ++index) { args[index].Emit(stream, contextBindingStrength, fragileContext); if (index < (args.Count - 1)) { stream.Write(", "); } } stream.Write(")"); stream.pop(popRequired); }
protected override void EmitTriggers(TokenTextWriter stream) { //Contract.Requires(stream != null); stream.push(); for (Trigger tr = this.Triggers; tr != null; tr = tr.Next) { tr.Emit(stream); stream.Write(" "); stream.sep(); } stream.pop(); }
public override void Emit(TokenTextWriter stream, int contextBindingStrength, bool fragileContext) { //Contract.Requires(stream != null); stream.push(); stream.Write(this, "({0}", Kind.ToString().ToLower()); this.EmitTypeHint(stream); Type.EmitOptionalTypeParams(stream, TypeParameters); stream.Write(this, " "); this.Dummies.Emit(stream, true); stream.Write(" :: "); stream.sep(); for (QKeyValue kv = this.Attributes; kv != null; kv = kv.Next) { kv.Emit(stream); stream.Write(" "); } this.EmitTriggers(stream); stream.sep(); this.Body.Emit(stream); stream.Write(")"); stream.pop(); }