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(); }
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(); }