Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В примере компонента поставщика пример кода средства синтаксического анализа пути службы каталогов находится в Parse.cpp. Средство синтаксического анализа путей является ключевым компонентом в компонентах поставщика ADs. Он проверяет синтаксическую допустимость пути ADs, переданного этому поставщику. Если синтаксис действителен, создается структура OBJECTINFO, которая содержит компонентную версию ADspath для этого объекта.
Помните, что это только синтаксическая проверка. Вместо особых случаев каждой новой итерации пути все проверки пути должны соответствовать правилам грамматики, установленным средством синтаксического анализа.
В следующей таблице перечислены функции и методы, реализованные в Parse.cpp.
| Пункт | Описание |
|---|---|
| ADsObject | Анализирует ADspath, переданный в него. Эта функция следует следующим правилам грамматики: <ADsObject> —><Имя поставщика><SampleDSObject> |
| SampleDSObject | Анализирует следующие правила грамматики: <SampleDSObject> —> "\\" <идентификатор> "\" <имя пути> |
| ProviderName | Добавляет в синтаксически правильное имя поставщика, если нет. |
| PathName | Анализирует следующие правила грамматики: <имя пути> —><компонент> "\\" <имя пути> OR <имя пути> —><компонент> |
| компонента | Анализирует следующие правила грамматики: <идентификатор> 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" | "группа" и т. д. |