public override void CodeGen(CodeBuilder builder) { if (BaseExpression != null) { BaseExpression.CodeGen(builder); builder.AppendToken("."); builder.ForceNoWhitespace(); } builder.AppendToken(Function); builder.ForceNoWhitespace(); builder.AppendToken("("); builder.ForceNoWhitespace(); builder.BeginSeparatedList(","); foreach (var argument in Arguments) { argument.CodeGen(builder); builder.EndOfSeparatedListItem(); } builder.EndOfSeparatedList(); builder.AppendToken(")"); builder.EndOfStatement(); }
private void CodeGenConstructor(CodeBuilder builder, IReadOnlyList <PropertyBuilder> constructorProperties) { builder.AppendToken("public"); builder.AppendToken(Name); builder.ForceNoWhitespace(); builder.AppendToken("("); builder.ForceNoWhitespace(); builder.BeginSeparatedList(","); foreach (var property in constructorProperties) { property.Type.CodeGen(builder); builder.AppendToken(property.GenerateParameterName()); builder.EndOfSeparatedListItem(); } builder.EndOfSeparatedList(); builder.AppendToken(")"); builder.BeginBlock(); foreach (var property in constructorProperties) { builder.AppendToken(property.Name); builder.AppendToken("="); builder.AppendToken(property.GenerateParameterName()); builder.EndOfStatement(); } builder.EndBlock(); }
public override void CodeGen(CodeBuilder builder) { builder.AppendToken("return"); Expression.CodeGen(builder); builder.EndOfStatement(); }
public override void CodeGen(CodeBuilder builder) { base.CodeGen(builder); Visibility.CodeGen(builder); Type.CodeGen(builder); builder.AppendToken(Name); builder.AppendToken("=>"); Expression.CodeGen(builder); builder.EndOfStatement(); builder.EndOfLineBlock(); }
public override void CodeGen(CodeBuilder builder) { base.CodeGen(builder); if (!Getter && !Setter) { throw new InvalidOperationException("Property muss einen Getter oder Setter haben"); } Visibility.CodeGen(builder); Type.CodeGen(builder); builder.AppendToken(Name); builder.AppendToken("{"); if (Getter) { builder.AppendToken("get;"); } if (Setter) { builder.AppendToken("set;"); } builder.AppendToken("}"); if (DefaultExpression != null) { builder.AppendToken("="); DefaultExpression.CodeGen(builder); builder.EndOfStatement(); builder.EndOfLineBlock(); } else { builder.EndOfLineBlock(); } }
public void CodeGen(CodeBuilder builder) { if (string.IsNullOrEmpty(Namespace)) { throw new InvalidOperationException("Kein Namespace angegeben"); } // Header if (!string.IsNullOrEmpty(Header)) { builder.AppendMultiLineComment(Header); } // Using-Direktiven foreach (string u in Usings) { builder.AppendToken("using"); builder.AppendToken(u); builder.EndOfStatement(); } builder.EndOfLineBlock(); // Namespace builder.AppendToken("namespace"); builder.AppendToken(Namespace); builder.BeginBlock(); // Inhalt foreach (var module in Modules) { module.CodeGen(builder); } builder.EndBlock(); }