АНАЛИЗА. CPP
В примере компонента поставщика пример кода средства синтаксического анализа пути службы каталогов находится в Parse.cpp. Средство синтаксического анализа путей является ключевым компонентом в компонентах поставщика ADs. Он проверяет синтаксическую допустимость пути ADs, переданного этому поставщику. Если синтаксис действителен, структура OBJECTINFO создается, которая содержит компонентную версию ADspath для этого объекта.
Помните, что это только синтаксическая проверка. Вместо особых случаев каждой новой итерации пути все проверки пути должны соответствовать правилам грамматики, установленным средством синтаксического анализа.
В следующей таблице перечислены функции и методы, реализованные в Parse.cpp.
Позиция | Description |
---|---|
ADsObject | Анализирует ADspath, переданный в него. Эта функция следует следующим правилам грамматики: <ADsObject -<>ProviderName><SampleDSObject>> |
SampleDSObject | Анализирует следующие правила грамматики: SampleDSObject> —> "\\" <идентификатор> "\" <<Pathname> |
ProviderName | Добавляет в синтаксически правильное имя поставщика, если нет. |
PathName | Анализирует следующие правила грамматики: <Pathname> -<>Component> "\\" <Pathname> OR <Pathname> -><Component> |
Компонент | Анализирует следующие правила грамматики: <идентификатор> OR <Идентификатор "=" <Идентификатор>> |
CLexer::CLexer | Стандартный конструктор. |
CLexer::~CLexer | Деструктор уровня "Стандартный". |
CLexer::GetNextToken | Создатель маркеров. |
CLexer::NextChar | Извлекает следующий один символ. |
CLexer::P ushBackToken | Резервное копирование до начала последнего маркера. |
CLexer::P ushbackChar | Резервное копирование одного символа. |
CLexer::IsKeyword | Проверяет список ключевое слово. Определяется в Globals.h). |
AddComponent | Добавляет этот компонент в массив компонентов. |
AddProviderName | Добавляет синтаксически правильное имя поставщика в структуру OBJECTINFO . |
AddRootRDN | Добавляет синтаксически правильное имя корня относительного различающегося имени (RDN) в структуру OBJECTINFO . |
SetType | Задает тип объекта. |
Тип | Синтаксический анализ type-> "user" | "группа" и т. д. |