Пример #1
0
        public void ExitDocument(DOM.Antlr.Document node)
        {
            //Checking if the document's name is unique per format (json/xml)
            var sameNameDocuments = ModuleMembersNsInfo.FindAll(n => (n.ModuleMember is DOM.Document && ((DOM.Document)n.ModuleMember).Name == node.Name) &&
                                                                ((DOM.Antlr.Module)node.Module).TargetFormat == ((DOM.Antlr.Module)((DOM.Document)n.ModuleMember).Module).TargetFormat
                                                                );

            if (sameNameDocuments.Count > 1)
            {
                if (sameNameDocuments.Count == 2)
                {
                    //Reporting error for 2 documents (existing and new)
                    var prevDoc = (DOM.Document)sameNameDocuments[0].ModuleMember;
                    _context.AddError(CompilerErrorFactory.DuplicateDocumentName(prevDoc, prevDoc.Module.FileName));
                }
                _context.AddError(CompilerErrorFactory.DuplicateDocumentName(node, _currentModule.FileName));
            }
        }
Пример #2
0
 public void EnterDocument(DOM.Antlr.Document node)
 {
     _currentModuleMember       = node;
     _currentModuleMemberNsInfo = new NsInfo(_currentModuleMember);
     ModuleMembersNsInfo.Add(_currentModuleMemberNsInfo);
 }