ANALISAR. CPP

No componente de provedor de exemplo, um exemplo de código do analisador de caminho de serviço de diretório está em Parse.cpp. O analisador de caminho é um componente chave nos componentes do provedor de ADs. Ele verifica a validade sintática de um caminho de ADs passado para esse provedor. Se a sintaxe for válida, uma estrutura de OBJECTINFO será construída, que contém uma versão componentizada do ADspath para esse objeto.

Lembre-se de que isso é apenas uma verificação de sintaxe. Em vez de casos especiais a cada nova iteração de caminho, toda a verificação de caminho deve estar em conformidade com as regras gramaticais estabelecidas pelo analisador.

A tabela a seguir lista as funções e métodos implementados em Parse.cpp.

Número Descrição
ADsObject Analisa o ADspath passado para ele. Esta função segue as seguintes regras gramaticais: <ADsObject> -><ProviderName><SampleDSObject>
SampleDSObject Analisa as seguintes regras gramaticais: <SampleDSObject> -> identificador de <"\\"> "\" <Pathname>
ProviderName Adiciona o nome do provedor sintaticamente correto, se não estiver lá.
PathName Analisa as seguintes regras gramaticais: <Pathname> -><Component> "\\" <Pathname> OR
<Pathname> -> de componentes><
de componentes Analisa as seguintes regras gramaticais: <Identificador> OU
<Identificador> "=" <Identificador>
CLexer::CLexer Construtor padrão.
CLexer::~CLexer Destruidor padrão.
CLexer::GetNextToken Tokenizador.
CLexer::NextChar Recupera o próximo caractere único.
CLexer::P ushBackToken Faz backup até o início do último token.
CLexer::P ushbackChar Faz backup de um personagem.
CLexer::IsKeyword Verifica a lista de palavras-chave. Definido em Globals.h).
AddComponent Adiciona esse componente à matriz de componentes.
AddProviderName Adiciona um nome de provedor sintaticamente correto à estrutura OBJECTINFO.
AddRootRDN Adiciona o nome RDN (nome distinto relativo da raiz) sintaticamente correto à estrutura OBJECTINFO.
SetType Define o tipo do objeto.
Tipo Parses Type-> "usuário" | "grupo" e assim por diante.