public override void GenerateCode(CodeGenerationContext ctx, TextWriter writer) { writer.Write ("Util.CreateLiteralHash (new object [] {"); foreach (var pair in Values) { var tail = Values.Last () == pair ? "" : ", "; if (pair.Key is Literal) ((Literal) pair.Key).GenerateCode (ctx, writer); else writer.Write (ctx.SafeName ((Identifier) pair.Key)); writer.Write (", "); pair.Value.GenerateCode (ctx, writer); writer.Write (tail); } writer.Write ("})"); }
public void GenerateCode(CodeGenerationContext ctx, TextWriter writer) { if (LocalVariableType != null) { writer.Write (LocalVariableType.ToCSharp ()); writer.Write (' '); } writer.Write (ctx.SafeName (Name)); }
internal void OnGenerateCode(CodeGenerationContext ctx, TextWriter writer, bool returnVoid, string namePrefix) { bool isConstructor = ctx.CurrentType != null && ctx.CurrentType.Name == Name; if (returnVoid) writer.Write ("void"); else if (!isConstructor && ReturnTypeName != null) writer.Write (ReturnTypeName.ToCSharp ()); else if (!isConstructor) writer.Write ("/* no type? */"); writer.Write (' '); writer.Write (namePrefix); if (Name == "getTimer") writer.Write ("GlobalContext.getTimer"); else if (Name == "toString") writer.Write ("ToString"); else writer.Write (ctx.SafeName (Name)); writer.Write (" ("); foreach (var arg in Arguments) { var tail = Arguments.Last () == arg ? "" : ", "; if (arg.IsVarArg) writer.Write ("params object [] {0}", arg.Name); else { writer.Write (arg.Type.ToCSharp ()); writer.Write (' '); writer.Write (ctx.SafeName (arg.Name)); if (arg.DefaultValue != null) { writer.Write (" = "); arg.DefaultValue.GenerateCode (ctx, writer); } } writer.Write (tail); } writer.Write (')'); if (Body == null) // interface writer.WriteLine (';'); else { writer.WriteLine (); Body.GenerateCode (ctx, writer); } }
public override void GenerateCode(CodeGenerationContext ctx, TextWriter writer) { ctx.WriteHeaders (Headers, writer, false, this is ConstantDeclaration); var bak = ctx.KnownLValueType; foreach (var ntv in NameTypeValues) { // because AS3 variable types could differ within a line (unlike C#), they have to be declared in split form (or I have to do something more complicated.) if (this is ConstantDeclaration) writer.Write ("const "); if (ntv.Type != null) writer.Write (ntv.Type.ToCSharp ()); else if (ntv.Value != null) writer.Write ("var"); else writer.Write ("dynamic"); ctx.KnownLValueType = ntv.Type; writer.Write (' '); writer.Write (ctx.SafeName (ntv.Name)); if (ntv.Value != null) { writer.Write (" = "); ntv.Value.GenerateCode (ctx, writer); } writer.WriteLine (';'); ctx.KnownLValueType = null; } ctx.KnownLValueType = bak; }
public void GenerateCode(CodeGenerationContext ctx, TextWriter writer) { writer.Write ("["); writer.Write (Name.ToCSharp ()); writer.Write ("("); foreach (var member in Members) { var tail = Members.Last () == member ? "" : ", "; writer.Write (ctx.SafeName (member.Name)); writer.Write (" = "); member.Value.GenerateCode (ctx, writer); writer.Write (tail); } writer.WriteLine (")]"); }
public void GenerateCode(CodeGenerationContext ctx, TextWriter writer) { writer.Write ("catch ("); writer.Write (NameAndType.Type.ToCSharp ()); writer.Write (' '); writer.Write (ctx.SafeName (NameAndType.Name)); writer.Write (')'); Block.GenerateCode (ctx, writer); }
public void GenerateCode(CodeGenerationContext ctx, TextWriter writer) { switch (Member != null ? Member.ToString () : null) { case "MIN_VALUE": ctx.DoNotEscape = true; Target.GenerateCode (ctx, writer); ctx.DoNotEscape = false; writer.Write ('.'); writer.Write ("MinValue"); break; case "MAX_VALUE": ctx.DoNotEscape = true; Target.GenerateCode (ctx, writer); ctx.DoNotEscape = false; writer.Write ('.'); writer.Write ("MaxValue"); break; default: bool gen = AccessType == MemberAccessType.GenericSubtype; if (Target != null) { if (gen) writer.Write ("new "); Target.GenerateCode (ctx, writer); if (gen) writer.Write ("<" + GenericSubtype + ">"); else writer.Write ("." + ctx.SafeName (Member)); } else if (!gen) writer.Write (ctx.GetActualName (Member)); break; } }
public override void GenerateCode(CodeGenerationContext ctx, TextWriter writer) { if (Pairs.Any (p => p.Value != null)) writer.Write ("var "); else writer.Write ("dynamic "); foreach (var pair in Pairs) { var tail = Pairs.Last () == pair ? "" : ", "; writer.Write (ctx.SafeName (pair.Name)); if (pair.Value != null) { writer.Write (" = "); pair.Value.GenerateCode (ctx, writer); } writer.Write (tail); } if (!ctx.InForHeadings) writer.WriteLine (';'); }