โดยใช้ไวยากรณ์ BNF คุณกำหนดอย่าง น้อยหนึ่งในการแยกวิเคราะห์ต้นไม้ในสคริปต์ของคุณ?
แต่ละแผนภูมิในการแยกวิเคราะห์มีฟอร์ม:
lt คีย์หลัก >{<นิพจน์ในรีจิสทรี >}+
ที่:
lt คีย์หลัก >:: = 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<นิพจน์ในรีจิสทรี >:: = <เพิ่มคีย์ > | <ลบคีย์ > <เพิ่มคีย์ >:: = [ForceRemove | NoRemove | val]<ชื่อคีย์ > [<ค่าคีย์ >][{≪เพิ่มคีย์ >}] <ลบคีย์ >:: =ลบ<ชื่อคีย์ > <ชื่อคีย์ >:: '= <AlphaNumeric> +'<AlphaNumeric>:: =ไม่มีอักขระ NULL, ASCII เช่น 0<ค่าคีย์ >:: == <คีย์ชนิด >< คีย์ชื่อ > <คีย์ชนิด >:: = s | d<ค่าคีย์ >:: = '<AlphaNumeric>'
หมายเหตุnbspHKEY_CLASSES_ROOTและ HKCR มีค่าเท่า HKEY_CURRENT_USER และ HKCU จะ เทียบ และอื่น ๆ(&N)?
ต้นไม้ในการแยกวิเคราะห์สามารถเพิ่มหลายแป้นและคีย์ย่อย lt รากคีย์ > ในการทำเช่นนั้น มันเก็บหมายเลขอ้างอิงของคีย์ย่อยเปิดจนกว่าตัวแยกวิเคราะห์เสร็จสมบูรณ์แยกวิเคราะห์คีย์ย่อยทั้งหมดของ วิธีการนี้จะมีประสิทธิภาพมากกว่าการทำงานบนคีย์เดียวครั้ง ตามที่เห็นในตัวอย่างดังต่อไปนี้ในการแยกวิเคราะห์แผนภูมิ:
HKEY_CLASSES_ROOT
{
nbsp 'MyVeryOwnKey'
{
'HasASubKey'
{
'PrettyCool'
}
}
}(&N)
ที่นี่ นายทะเบียนเริ่มเปิด (สร้าง) HKEY_CLASSES_ROOT\MyVeryOwnKey มันเห็นแล้วที่ MyVeryOwnKey มีคีย์ย่อย แทนที่ปิดปุ่มเพื่อ MyVeryOwnKey นายทะเบียนหมายเลขอ้างอิงรักษาการ และเปิด (สร้าง) HasASubKey โดยใช้หมายเลขอ้างอิงหลักนี้ (รีจิสทรีของระบบอาจช้าลงเมื่อหมายเลขอ้างอิงไม่มีแม่เปิด) ปาน เปิด HKEY_CLASSES_ROOT\MyVeryOwnKey และเปิดแล้ว HasASubKey กับ MyVeryOwnKey เป็นหลักเร็วกว่าการเปิด MyVeryOwnKey ปิด MyVeryOwnKey และเปิดแล้วMyVeryOwnKey\HasASubKey?