示例#1
0
 protected override void VisitExportSpecifier(ExportSpecifier exportSpecifier)
 {
     using (StartNodeObject(exportSpecifier))
     {
         Member("exported", exportSpecifier.Exported);
         Member("local", exportSpecifier.Local);
     }
 }
示例#2
0
 private void ExtractExports(ModuleData module, NodeList <ExportSpecifier> exportSpecifiers)
 {
     for (int i = 0, n = exportSpecifiers.Count; i < n; i++)
     {
         ExportSpecifier exportSpecifier = exportSpecifiers[i];
         module.ExportsRaw.Add(new NamedExportData(exportSpecifier.Exported.Name, exportSpecifier.Local.Name));
     }
 }
示例#3
0
        private Ust VisitExportSpecifier(ExportSpecifier exportSpecifier)
        {
            var exported = VisitIdentifier(exportSpecifier.Exported);
            var local    = VisitIdentifier(exportSpecifier.Local);

            Logger.LogDebug($"{nameof(ExportSpecifier)} processing is not implemented"); // TODO
            return(null);
        }
示例#4
0
        private void AnalyzeDeclarations(ModuleData module)
        {
            UrlUtils.GetFileNameSegment(module.FilePath, out StringSegment basePathSegment);
            var basePath = basePathSegment.Value;

            string     modulePath;
            ModuleFile moduleRefFile;
            var        index = 0;

            for (int i = 0, n = module.Ast.Body.Count; i < n; i++)
            {
                switch (module.Ast.Body[i])
                {
                case ExportAllDeclaration exportAllDeclaration:
                    modulePath    = NormalizeModulePath(basePath, exportAllDeclaration.Source.StringValue);
                    moduleRefFile = new ModuleFile(module.File, modulePath);

                    module.ExportsRaw.Add(new ReexportData(moduleRefFile));

                    if (!module.ModuleRefs.ContainsKey(moduleRefFile))
                    {
                        module.ModuleRefs[moduleRefFile] = GetModuleName(index++);
                    }
                    break;

                case ExportDefaultDeclaration exportDefaultDeclaration:
                    ExtractExports(module, exportDefaultDeclaration);
                    break;

                case ExportNamedDeclaration exportNamedDeclaration:
                    if (exportNamedDeclaration.Source != null)
                    {
                        for (int j = 0, m = exportNamedDeclaration.Specifiers.Count; j < m; j++)
                        {
                            ExportSpecifier exportSpecifier = exportNamedDeclaration.Specifiers[j];

                            modulePath    = NormalizeModulePath(basePath, exportNamedDeclaration.Source.StringValue);
                            moduleRefFile = new ModuleFile(module.File, modulePath);

                            module.ExportsRaw.Add(new ReexportData(moduleRefFile, exportSpecifier.Exported.Name, exportSpecifier.Local.Name));
                        }

                        modulePath    = NormalizeModulePath(basePath, exportNamedDeclaration.Source.StringValue);
                        moduleRefFile = new ModuleFile(module.File, modulePath);

                        if (!module.ModuleRefs.ContainsKey(moduleRefFile))
                        {
                            module.ModuleRefs[moduleRefFile] = GetModuleName(index++);
                        }
                    }
                    else
                    {
                        ExtractExports(module, exportNamedDeclaration);
                    }
                    break;

                case ImportDeclaration importDeclaration:
                    modulePath    = NormalizeModulePath(basePath, importDeclaration.Source.StringValue);
                    moduleRefFile = new ModuleFile(module.File, modulePath);

                    ExtractImports(module, importDeclaration, moduleRefFile);

                    if (!module.ModuleRefs.ContainsKey(moduleRefFile))
                    {
                        module.ModuleRefs[moduleRefFile] = GetModuleName(index++);
                    }
                    break;
                }
            }
        }
示例#5
0
 public virtual void VisitExportSpecifier(ExportSpecifier exportSpecifier)
 {
 }
示例#6
0
 protected virtual void VisitExportSpecifier(ExportSpecifier exportSpecifier)
 {
 }
示例#7
0
 protected internal override void VisitExportSpecifier(ExportSpecifier exportSpecifier)
 {
     VisitingExportSpecifier?.Invoke(this, exportSpecifier);
     base.VisitExportSpecifier(exportSpecifier);
     VisitedExportSpecifier?.Invoke(this, exportSpecifier);
 }
 protected override void VisitExportSpecifier(ExportSpecifier exportSpecifier)
 {
 }