コード例 #1
0
        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);
        }
コード例 #2
0
ファイル: CSources.cs プロジェクト: matthid/Embeddinator-4000
        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();
        }
コード例 #3
0
        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();
        }