解析。Cpp

在範例提供者元件中,目錄服務路徑剖析器的程式代碼範例Parse.cpp。 路徑剖析器是 ADs 提供者元件中的重要元件。 它會驗證傳遞至此提供者之 AD 路徑的語法有效性。 如果語法有效, 則會建構 OBJECTINFO 結構,其中包含這個物件的 ADspath 元件化版本。

請注意,這隻是語法驗證。 除了每個路徑的新反覆專案之外,所有路徑驗證都必須符合剖析器所建立的文法規則。

下表列出在 Parse.cpp 中實作的函式和方法。

項目 說明
ADsObject 剖析傳遞給它的 ADspath。 此函式遵循下列文法規則: <ADsObject> -><ProviderName><SampleDSObject>
SampleDSObject 剖析下列文法規則:SampleDSObject> -> “\\” <標識符> “\” <<Pathname>
ProviderName 如果沒有,請新增語法正確的提供者名稱。
PathName 剖析下列文法規則:<Pathname> -<>Component> “\\” <Pathname> OR
<Pathname> -><Component>
元件 剖析下列文法規則: <標識碼> OR
<標識碼> “=” <識別碼>
CLexer::CLexer 標準建構函式。
CLexer::~CLexer 標準解構函式。
CLexer::GetNextToken Tokenizer。
CLexer::NextChar 擷取下一個字元。
CLexer::P ushBackToken 備份到最後一個令牌的開頭。
CLexer::P ushbackChar 備份一個字元。
CLexer::IsKeyword 驗證關鍵詞清單。 定義於 Globals.h 中。
AddComponent 將此元件新增至元件數位。
AddProviderName 將語法正確的提供者名稱新增至 OBJECTINFO 結構。
AddRootRDN 將語法正確的根相對辨別名稱 (RDN) 名稱新增至 OBJECTINFO 結構。
SetType 設定物件的類型。
類型 剖析類型 -> “user” |“group” 等。