private unsafe void ParseDirectiveLocation()
        {
            ISyntaxToken token = _reader.Token;

            if (token.Kind == TokenKind.Name)
            {
                fixed(char *c = _reader.Value)
                {
                    string name = new string(c, 0, _reader.Value.Length);

                    if (DirectiveLocation.IsValidName(name))
                    {
                        _classifications.AddClassification(
                            SyntaxClassificationKind.DirectiveLocation,
                            _reader.Token);
                        MoveNext();
                        return;
                    }
                }
            }

            _classifications.AddClassification(
                SyntaxClassificationKind.Error,
                _reader.Token);
            MoveNext();
        }
        private NameNode ParseDirectiveLocation()
        {
            TokenKind kind = _reader.Kind;
            NameNode  name = ParseName();

            if (DirectiveLocation.IsValidName(name.Value))
            {
                return(name);
            }

            throw Unexpected(kind);
        }