public override void WriteForwardDecls() { var refs = new GetReferencedClasses(); TranslationUnit.Visit(refs); var classes = refs.Classes.ToList(); classes.RemoveAll((c) => c == GenerateArrayTypes.MonoEmbedArray); classes.RemoveAll((c) => c == GenerateObjectTypesPass.MonoEmbedObject); PushBlock(); foreach (var @class in classes.Distinct()) { WriteLine($"@class {@class.QualifiedName};"); } PopBlock(NewLineKind.BeforeNextBlock); }
public void GenerateObjectDeclarations() { var referencedClasses = new GetReferencedClasses(); Unit.Visit(referencedClasses); var classNames = referencedClasses.Classes .Where(c => c != GenerateObjectTypesPass.MonoEmbedObject) .Select(c => c.QualifiedName) .Distinct(); foreach (var @class in classNames) { PushBlock(); WriteLine($"static MonoClass* class_{@class} = 0;"); PopBlock(NewLineKind.Never); } NewLine(); }
public void GenerateObjectDeclarations() { var referencedClasses = new GetReferencedClasses(); Unit.Visit(referencedClasses); foreach (var @class in referencedClasses.Classes) { if (@class == GenerateObjectTypesPass.MonoEmbedObject) { continue; } PushBlock(); WriteLine("static MonoClass* {0}_class = 0;", @class.QualifiedName); PopBlock(NewLineKind.Never); } NewLine(); }