구문 분석. Cpp

예제 공급자 구성 요소에서 디렉터리 서비스 경로 파서의 코드 예제는 Parse.cpp에 있습니다. 경로 파서는 AD 공급자 구성 요소의 핵심 구성 요소입니다. 이 공급자에게 전달된 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 토크 나이저.
CLexer::NextChar 다음 단일 문자를 검색합니다.
CLexer::P ushBackToken 마지막 토큰의 시작 부분에 백업합니다.
CLexer::P ushbackChar 한 문자를 백업합니다.
CLexer::IsKeyword 키워드(keyword) 목록을 확인합니다. Globals.h)에 정의됩니다.
AddComponent 구성 요소 배열에 이 구성 요소를 추가합니다.
AddProviderName OBJECTINFO 구조체에 구문적으로 올바른 공급자 이름을 추가합니다.
AddRootRDN 구문적으로 올바른 루트 RDN(고유 이름) 이름을 OBJECTINFO 구조체에 추가합니다.
SetType 개체의 형식을 설정합니다.
형식 형식 구문 분석 -> "user" | "group" 등