Ejemplo n.º 1
0
        /// <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);
                }
            }
        }
Ejemplo n.º 2
0
 /// <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;
 }
Ejemplo n.º 3
0
        /// <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);
        }
Ejemplo n.º 4
0
        /// <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);
                }
            }
        }
Ejemplo n.º 5
0
        /// <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);
                }
            }
        }
Ejemplo n.º 6
0
        /// <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);
                }
            }
        }