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;
}