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