예제 #1
0
        public override void Emit(TokenTextWriter stream, int contextBindingStrength, bool fragileContext)
        {
            //Contract.Requires(stream != null);
            stream.push();
            stream.Write(this, "(var ");

            string sep = "";

            stream.push();
            foreach (var v in Dummies)
            {
                stream.Write("{0}", sep);
                v.EmitVitals(stream, 0, true, false);
                sep = ", ";
                stream.sep();
            }
            stream.pop();

            stream.Write(" := ");
            this.Rhss.Emit(stream);
            stream.Write("; ");
            stream.sep();
            for (QKeyValue kv = this.Attributes; kv != null; kv = kv.Next)
            {
                kv.Emit(stream);
                stream.Write(" ");
            }
            stream.sep();

            this.Body.Emit(stream);
            stream.Write(")");
            stream.pop();
        }
예제 #2
0
 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();
 }
예제 #3
0
        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();
        }