private void ConvertDeclGroup(Grammar.ASTNodeDeclGroup declGroup, Core.Name curNamespace, List <Core.UseDirective> useDirectives) { var useDirectiveCountBefore = useDirectives.Count; foreach (var useNode in declGroup.useDirectives) { useDirectives.Add(UseDirectiveResolver.Resolve(useNode)); } foreach (var structNode in declGroup.structDecls) { this.ConvertStructDecl(structNode, curNamespace, useDirectives); } foreach (var functNode in declGroup.functDecls) { this.ConvertFunctDecl(functNode, curNamespace, useDirectives); } foreach (var namespaceNode in declGroup.namespaceDecls) { this.ConvertNamespaceDecl(namespaceNode, curNamespace, useDirectives); } while (useDirectives.Count > useDirectiveCountBefore) { useDirectives.RemoveAt(useDirectives.Count - 1); } }
public void ResolveTopLevelDeclGroup(Grammar.ASTNodeDeclGroup topLevelGroupNode) { this.ConvertDeclGroup(topLevelGroupNode, Core.Name.FromPath(), new List <Core.UseDirective>()); }