public void Append(CSTWriter w) { foreach (var customAttribute in CustomAttributes) { customAttribute.Append(w); w.EndLine(); } w.Append("assembly "); Name.Append(w); w.Append(" {"); w.EndLine(); w.Indented(w2 => { foreach (var sn in References) { w2.Append(".reference "); sn.Append(w2); w2.EndLine(); } if (EntryPoint != null) { w2.Append(".entry "); EntryPoint.Append(w2); w2.EndLine(); } foreach (var namedTypeDef in Types) { namedTypeDef.AppendDefinition(w2); w2.EndLine(); } }); w.Append('}'); }
public void Append(CSTWriter w) { w.Append('B'); w.Append(Id); w.Append(':'); w.EndLine(); w.Indented (w2 => { if (Sources.Count > 0) { w2.Append("(* from "); for (var i = 0; i < Sources.Count; i++) { if (i > 0) { w2.Append(", "); } w2.Append("B"); w2.Append(Sources[i].Id); } w2.Append(" *)"); w2.EndLine(); } for (var i = 0; i < Block.Body.Count; i++) { Block.Body[i].Append(w2); w2.EndLine(); } AppendLast(w); w2.EndLine(); }); }
public override void AppendDefinition(CSTWriter w) { base.AppendDefinition(w); if (TypeParameters.Count > 0) { w.Append('<'); for (var i = 0; i < TypeParameters.Count; i++) { if (i > 0) { w.Append(','); } w.Append("!!"); w.Append(TypeParameters[i].Index); } w.Append('>'); } w.Append('('); for (var i = 0; i < ValueParameters.Count; i++) { if (i > 0) { w.Append(','); } ValueParameters[i].Type.Append(w); } w.Append(')'); if (Result != null) { w.Append(':'); Result.Append(w); } var instructions = Instructions(w.Global); if (instructions != null) { w.Append(" {"); w.EndLine(); w.Indented (w2 => { for (var i = 0; i < Locals.Count; i++) { w2.Append(".local "); w2.Append(i); w2.Append(':'); Locals[i].Type.Append(w2); w2.EndLine(); } instructions.Append(w2); }); w.Append('}'); } }
public void Append(CSTWriter w) { w.Append("method "); w.Append(CompEnv.Method.Name); w.Append('('); for (var i = 0; i < CompEnv.ValueParameterIds.Count; i++) { if (i > 0) { w.Append(", "); } CompEnv.ValueParameterIds[i].Append(w); w.Append(':'); CompEnv.Method.ValueParameters[i].Type.Append(w); } w.Append("){"); w.EndLine(); w.Indented (w2 => { foreach (var kv in CompEnv.Variables) { if (kv.Value.ArgLocal == ArgLocal.Local) { w2.Append("var "); kv.Value.Id.Append(w2); w2.Append(':'); kv.Value.Type.Append(w2); if (kv.Value.IsInit) { w2.Append("=default"); } w2.Append(';'); w2.EndLine(); } } Body.Append(w2); }); w.Append('}'); w.EndLine(); }
// // Pretty printing // public virtual void AppendDefinition(CSTWriter w) { foreach (var annotation in CustomAttributes) { annotation.Append(w); w.EndLine(); } AppendFlavor(w); w.Append(IsStatic ? "static " : "instance "); AppendModifiers(w); w.AppendName(Name); }