public override void Visit(DOM.AliasDefinition aliasDefinition) { _namespaceResolver.EnterAliasDef((AliasDefinition)aliasDefinition); ProcessInterpolation((IPairWithInterpolation)aliasDefinition); base.Visit(aliasDefinition); Visit(aliasDefinition.PairValue); }
private NsInfo ResolveAliasesInAliasDefinition(DOM.AliasDefinition aliasDef) { _currentModuleMember = aliasDef; var aliasDefNsInfo = CurrentModuleMemberNsInfo; if (aliasDefNsInfo.AliasesResolved) { return(aliasDefNsInfo); } return(ResolveAliasesInAliasDefinition(aliasDefNsInfo)); }
public override void Visit(DOM.AliasDefinition aliasDefinition) { CheckPairValue(aliasDefinition); _blockStateUnknown = true; CheckAliasDefNameUniqueness(aliasDefinition); var choiceInfo = new ChoiceInfo(null, null); _choiceStack.Push(choiceInfo); Visit(aliasDefinition.NamespaceDefinitions); Visit(aliasDefinition.Entities); _choiceStack.Pop(); if (choiceInfo.Children == null && choiceInfo.Errors != null) { foreach (var error in choiceInfo.Errors) { Context.AddError(error); } } }
private void CheckAliasDefNameUniqueness(DOM.AliasDefinition aliasDefinition) { var sameNameAliasDef = _namespaceResolver.ModuleMembersNsInfo.FindAll( n => (n.ModuleMember is DOM.AliasDefinition && ((DOM.AliasDefinition)n.ModuleMember).Name == aliasDefinition.Name)); if (sameNameAliasDef.Count > 1) { if (sameNameAliasDef.Count == 2) { //Reporting error for 2 documents (existing and new) var prevAliasDef = (DOM.AliasDefinition)sameNameAliasDef[0].ModuleMember; Context.AddError(CompilerErrorFactory.DuplicateAliasDefName((AliasDefinition)prevAliasDef, prevAliasDef.Module.FileName)); } Context.AddError(CompilerErrorFactory.DuplicateAliasDefName((AliasDefinition)aliasDefinition, _currentModule.FileName)); } }