public static void Transpile(this Syntax.DeclarationSyntax declarationNode, ref StringBuilder sb) { _ = declarationNode ?? throw new ArgumentNullException(nameof(declarationNode)); declarationNode.GlobalsBlock?.Transpile(ref sb); declarationNode.TypeDefinition?.Transpile(ref sb); declarationNode.NativeFunctionDeclaration?.Transpile(ref sb); }
public static IEnumerable <MemberDeclarationSyntax> Transpile(this Syntax.DeclarationSyntax declarationNode) { _ = declarationNode ?? throw new ArgumentNullException(nameof(declarationNode)); if (declarationNode.GlobalsBlock != null) { foreach (var globalDeclaration in declarationNode.GlobalsBlock.Transpile()) { yield return(globalDeclaration); } } else if (declarationNode.TypeDefinition != null) { foreach (var globalDeclaration in declarationNode.TypeDefinition.Transpile()) { yield return(globalDeclaration); } } else { yield return(declarationNode.NativeFunctionDeclaration.Transpile()); } }