NArrange.VisualBasic.VBParser.ParseImport C# (CSharp) Method

ParseImport() private method

Parses an import directive.
private ParseImport ( ) : UsingElement
return NArrange.Core.CodeElements.UsingElement
        private UsingElement ParseImport()
        {
            UsingElement usingElement = new UsingElement();
            string alias = CaptureWord();
            if (string.IsNullOrEmpty(alias))
            {
                this.OnParseError("Expected a namepace name");
            }

            EatWhiteSpace(WhiteSpaceTypes.SpaceAndTab);

            bool endOfStatement =
                TryReadChar(Environment.NewLine[0]) ||
                TryReadChar('\n') ||
                TryReadChar(VBSymbol.LineDelimiter);
            if (endOfStatement || NextChar == EmptyChar)
            {
                usingElement.Name = alias;
            }
            else
            {
                EatLineContinuation();
                bool assign = TryReadChar(VBSymbol.Assignment);
                if (!assign)
                {
                    this.OnParseError(
                        string.Format(
                            Thread.CurrentThread.CurrentCulture,
                            "Expected {0} or end of statement.",
                            VBSymbol.Assignment));
                }
                else
                {
                    string name = CaptureWord();
                    if (string.IsNullOrEmpty(name))
                    {
                        this.OnParseError("Expected a type or namepace name");
                    }
                    else
                    {
                        usingElement.Name = alias;
                        usingElement.Redefine = name;
                        TryReadChar(Environment.NewLine[0]);
                    }
                }
            }

            return usingElement;
        }