示例#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();
        }
示例#2
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();
        }