/// <summary> /// Parses a Java package directive /// </summary> /// <param name="namespaceElement">A file unit</param> /// <param name="context">The parser context</param> public override void ParseNamespaceElement(XElement namespaceElement, ParserContext context) { var javaPackage = context.FileUnit.Elements(SRC.Package).FirstOrDefault(); // Add a global namespace definition var globalNamespace = new NamespaceDefinition(); context.Push(globalNamespace); if (null != javaPackage) { var namespaceElements = from name in javaPackage.Elements(SRC.Name) select name; foreach (var name in namespaceElements) { var namespaceForName = new NamespaceDefinition() { Name = name.Value, ProgrammingLanguage = ParserLanguage, }; namespaceForName.AddSourceLocation(context.CreateLocation(name)); context.Push(namespaceForName, globalNamespace); } } }
/// <summary> /// Creates a <see cref="NamespaceDefinition"/> object from this use (along with all of its descendants based on <see cref="NamedScopeUse.ChildScopeUse"/>). /// </summary> /// <returns>A new namespace definition based on this use</returns> public override NamedScope CreateScope() { var ns = new NamespaceDefinition { Name = this.Name, ProgrammingLanguage = this.ProgrammingLanguage }; ns.AddSourceLocation(this.Location); if(ChildScopeUse != null) { ns.AddChildScope(ChildScopeUse.CreateScope()); } return ns; }
/// <summary> /// Creates a <see cref="NamespaceDefinition"/> object from this use (along with all of its /// descendants based on <see cref="INamedScopeUse.ChildScopeUse"/>). /// </summary> /// <returns>A new namespace definition based on this use</returns> public override INamedScope CreateScope() { var ns = new NamespaceDefinition { Name = this.Name, ProgrammingLanguage = this.ProgrammingLanguage }; ns.AddSourceLocation(this.Location); if (ChildScopeUse != null) { ns.AddChildScope(ChildScopeUse.CreateScope()); } return(ns); }
/// <summary> /// Parses a Java package directive /// </summary> /// <param name="namespaceElement">A file unit</param> /// <param name="context">The parser context</param> public override void ParseNamespaceElement(XElement namespaceElement, ParserContext context) { var javaPackage = context.FileUnit.Elements(SRC.Package).FirstOrDefault(); // Add a global namespace definition var globalNamespace = new NamespaceDefinition(); context.Push(globalNamespace); if(null != javaPackage) { var namespaceElements = from name in javaPackage.Elements(SRC.Name) select name; foreach(var name in namespaceElements) { var namespaceForName = new NamespaceDefinition() { Name = name.Value, ProgrammingLanguage = ParserLanguage, }; namespaceForName.AddSourceLocation(context.CreateLocation(name)); context.Push(namespaceForName, globalNamespace); } } }
/// <summary> /// Parses a C# namespace block /// </summary> /// <param name="namespaceElement">the namespace element to parse</param> /// <param name="context">the parser context</param> public override void ParseNamespaceElement(XElement namespaceElement, ParserContext context) { if (namespaceElement == null) { throw new ArgumentNullException("namespaceElement"); } if (!NamespaceElementNames.Contains(namespaceElement.Name)) { throw new ArgumentException(string.Format("Not a valid namespace element: {0}", namespaceElement.Name), "namespaceElement"); } var nameElement = namespaceElement.Element(SRC.Name); string namespaceName; if (nameElement == null) { namespaceName = string.Empty; } else { NamespaceDefinition root = null; foreach (var name in NameHelper.GetNameElementsFromName(nameElement)) { var namespaceForName = new NamespaceDefinition() { Name = name.Value, ProgrammingLanguage = ParserLanguage, }; if (root == null) { root = namespaceForName; } else { namespaceForName.AddSourceLocation(context.CreateLocation(name)); } context.Push(namespaceForName, root); } } }
/// <summary> /// Parses a C# namespace block /// </summary> /// <param name="namespaceElement">the namespace element to parse</param> /// <param name="context">the parser context</param> public override void ParseNamespaceElement(XElement namespaceElement, ParserContext context) { if(namespaceElement == null) throw new ArgumentNullException("namespaceElement"); if(!NamespaceElementNames.Contains(namespaceElement.Name)) throw new ArgumentException(string.Format("Not a valid namespace element: {0}", namespaceElement.Name), "namespaceElement"); var nameElement = namespaceElement.Element(SRC.Name); string namespaceName; if(nameElement == null) { namespaceName = string.Empty; } else { NamespaceDefinition root = null; foreach(var name in NameHelper.GetNameElementsFromName(nameElement)) { var namespaceForName = new NamespaceDefinition() { Name = name.Value, ProgrammingLanguage = ParserLanguage, }; if(root == null) { root = namespaceForName; } else { namespaceForName.AddSourceLocation(context.CreateLocation(name)); } context.Push(namespaceForName, root); } } }