Пример #1
0
        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);
            }
        }
Пример #2
0
 public void ResolveTopLevelDeclGroup(Grammar.ASTNodeDeclGroup topLevelGroupNode)
 {
     this.ConvertDeclGroup(topLevelGroupNode, Core.Name.FromPath(), new List <Core.UseDirective>());
 }