public override void Visit(ModulePatternNode node) { // Only try to load the module if the entire path is syntactically correct. var path = CreateCorrectPath(node.Path); if (path != null) { if (path.Components.Length == 1 && _aliases.TryGetValue(path.Components[0], out var actual)) { path = actual; } if (path == _path || LoadModule(node, node.Path.ComponentTokens.Tokens[0].Location, path) != null) { node.SetAnnotation("Path", path); } } base.Visit(node); var alias = node.Alias; if (alias != null && !alias.NameToken.IsMissing) { _scope.Define(alias.MutKeywordToken != null ? SyntaxSymbolKind.Mutable : SyntaxSymbolKind.Immutable, null, alias, alias.NameToken.Text); } }
public override TreePattern Visit(ModulePatternNode node, TreePattern state) { return(new TreeModulePattern(CreateAlias(node), _parent._loader.GetModule( node.GetAnnotation <ModulePath>("Path")) !)); }