解析。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” 等。 |