Exemplo n.º 1
0
        public static IEnumerable <MemberDeclarationSyntax> Transpile(this Syntax.FileSyntax fileNode, bool apiOnly = false)
        {
            _ = fileNode ?? throw new ArgumentNullException(nameof(fileNode));

            foreach (var declaration in fileNode.DeclarationList.Transpile())
            {
                yield return(declaration);
            }

            foreach (var function in fileNode.FunctionList)
            {
                if (apiOnly)
                {
                    // Transform function into native function to remove function body.
                    yield return(function.AsNativeFunction().Transpile());
                }
                else
                {
                    yield return(function.Transpile());
                }
            }

            foreach (var enumDeclaration in TranspileToEnumHandler.GetEnums())
            {
                yield return(enumDeclaration);
            }

            TranspileToEnumHandler.Reset();
        }
Exemplo n.º 2
0
        public static void Transpile(this Syntax.FileSyntax fileNode, ref StringBuilder sb, bool resetStringConcatenationHandler = true)
        {
            _ = fileNode ?? throw new ArgumentNullException(nameof(fileNode));

            foreach (var declaration in fileNode.DeclarationList)
            {
                declaration.Transpile(ref sb);
            }

            foreach (var function in fileNode.FunctionList)
            {
                function.Transpile(ref sb);
            }

            if (resetStringConcatenationHandler)
            {
                TranspileStringConcatenationHandler.Reset();
            }
        }
Exemplo n.º 3
0
        public static IEnumerable <MemberDeclarationSyntax> Transpile(this Syntax.FileSyntax fileNode)
        {
            _ = fileNode ?? throw new ArgumentNullException(nameof(fileNode));

            foreach (var declaration in fileNode.DeclarationList.Transpile())
            {
                yield return(declaration);
            }

            foreach (var function in fileNode.FunctionList)
            {
                yield return(function.Transpile());
            }

            foreach (var enumDeclaration in TranspileToEnumHandler.GetEnums())
            {
                yield return(enumDeclaration);
            }

            TranspileToEnumHandler.Reset();
        }