등록자 스크립트에서 하나 이상의 구문 분석 트리를 정의할 수 있으며, 이러한 경우 각 구문 분석 트리의 형식은 다음과 같습니다.
<루트-키>{<레지스트리 표현식>}+
여기서
<root-key> ::=
HKEY_CLASSES_ROOT|HKEY_CURRENT_USER|
HKEY_LOCAL_MACHINE|HKEY_USERS|
HKEY_PERFORMANCE_DATA|HKEY_DYN_DATA|
HKEY_CURRENT_CONFIG|HKCR|HKCU|
HKLM|HKU|HKPD|HKDD|HKCC<registry-expression> ::=
<추가 키> | <삭제 키><추가 키> ::=
[ForceRemove|NoRemove|val] <키 이름> [<키-값>] [{<추가 키>}]<삭제 키> ::=
Delete<키 이름><키 이름> ::=
'<영숫자>+'<AlphaNumeric> ::=
null이 아닌 모든 문자.<키-값> ::=
<키 형식><키 이름><키 형식> ::=
s|d
참고 항목
HKEY_CLASSES_ROOT는 HKCR과 동일하고, HKEY_CURRENT_USER는 HKCU와 동일하며, 나머지도 마찬가지입니다.
구문 분석 트리는 <root-key>에 여러 개의 키와 하위 키를 추가할 수 있습니다. 등록자는 파서가 모든 하위 키에 대한 구문 분석을 완료할 때까지 각 하위 키 핸들을 열어 둡니다. 이는 한 번에 하나의 키로 작업하는 것보다 더 효율적입니다. 예를 들면 다음과 같습니다.
HKEY_CLASSES_ROOT
{
'MyVeryOwnKey'
{
'HasASubKey'
{
'PrettyCool'
}
}
}
여기서 등록자는 처음에 HKEY_CLASSES_ROOT\MyVeryOwnKey를 엽니다(생성합니다). 그런 다음 MyVeryOwnKey에 하위 키가 있는지 확인합니다. 등록자는 MyVeryOwnKey에 대한 키를 닫는 대신 핸들을 유지하고 이 부모 핸들을 사용하여 HasASubKey를 엽니다(생성합니다). (어떤 부모 핸들도 열려 있지 않으면 시스템 레지스트리가 느려질 수 있습니다.) 따라서 HKEY_CLASSES_ROOT\MyVeryOwnKey를 연 다음 HasASubKey를 부모로 하여 MyVeryOwnKey를 여는 것이 MyVeryOwnKey를 열고 MyVeryOwnKey를 닫은 다음 MyVeryOwnKey\HasASubKey를 여는 것보다 빠릅니다.