public void ExitAliasDef(DOM.Antlr.AliasDefinition node) { //Checking if the alias definition name is unique var sameNameAliasDef = ModuleMembersNsInfo.FindAll(n => (n.ModuleMember is DOM.AliasDefinition && ((DOM.AliasDefinition)n.ModuleMember).Name == node.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(prevAliasDef, prevAliasDef.Module.FileName)); } _context.AddError(CompilerErrorFactory.DuplicateAliasDefName(node, _currentModule.FileName)); } }
public void EnterAliasDef(DOM.Antlr.AliasDefinition node) { _currentModuleMember = node; _currentModuleMemberNsInfo = new NsInfo(_currentModuleMember); ModuleMembersNsInfo.Add(_currentModuleMemberNsInfo); }
private void CheckAliasArguments(DOM.Alias alias, DOM.Antlr.AliasDefinition aliasDef, NsInfo documentNsInfo) { CheckCompatibilityWithParameters(alias, aliasDef, documentNsInfo); CheckForUnexpectedArguments(alias, aliasDef, documentNsInfo); }