BNF(Backus-Naur 양식) 구문 이해
ATL 등록자가 사용하는 스크립트는 다음 표에 나와 있는 표기법을 사용하는 BNF 구문을 사용하여 이 항목에 설명되어 있습니다.
규칙/기호 | 의미 |
---|---|
::= | 해당 |
| | 또는 |
+X | 하나 이상의 Xs. |
[X] | X는 선택 사항입니다. 선택적 구분 기호는 []로 표시됩니다. |
모든 굵은 텍스트 | 문자열 리터럴. |
모든 기울임꼴 텍스트 | 리터럴 문자열을 생성하는 방법입니다. |
앞의 표에 표시된 것과 같이 등록자 스크립트는 문자열 리터럴을 사용합니다. 이러한 값은 스크립트에 표시되어야 하는 실제 텍스트입니다. 다음 표에서는 ATL 등록자 스크립트에 사용되는 문자열 리터럴을 설명합니다.
문자열 리터럴 | 작업 |
---|---|
ForceRemove | 다음 키(있는 경우)를 완전히 제거한 다음, 다시 만듭니다. |
NoRemove | 등록 취소 중에는 다음 키를 제거하지 마세요. |
val | <Key Name> 이 실제로 명명된 값임을 지정합니다. |
Delete | 등록 중에 다음 키를 삭제합니다. |
s | 다음 값이 문자열(REG_SZ)임을 지정합니다. |
d | 다음 값이 DWORD(REG_DWORD)임을 지정합니다. |
m | 다음 값이 다중 문자열(REG_MULTI_SZ) 임을 지정합니다. |
b | 다음 값이 이진값(REG_BINARY)임을 지정합니다. |
BNF 구문 예제
ATL 등록자 스크립트에서 표기법과 문자열 리터럴이 작동하는 방법을 이해하는 데 도움이 되는 몇 가지 구문 예제가 있습니다.
구문 예제 1
<레지스트리 식> ::= <키 추가>
registry expression
이 Add Key
와 같음을 지정합니다.
구문 예제 2
<레지스트리 식> ::= <키> 추가 | <키 삭제>
registry expression
이 Add Key
또는 Delete Key
와 같음을 지정합니다.
구문 예제 3
<키 이름> ::= '<AlphaNumeric>+'
Key Name
은 하나 이상의 AlphaNumeric
값과 동일한 값을 지정합니다.
구문 예제 4
<키> 추가 ::= [ForceRemove | NoRemove | val]<키 이름>
Add Key
는 Key Name
과 같고, 문자열 리터럴 ForceRemove
, NoRemove
및 val
은 선택 사항임을 지정합니다.
구문 예제 5
<AlphaNumeric> ::= NULL이 아닌 문자, 즉 ASCII 0
AlphaNumeric
이 모든 비 NULL 문자와 같음을 나타냅니다.
구문 예제 6
val 'testmulti' = m 'String 1\0String 2\0'
키 이름 testmulti
가 String 1
및 String 2
로 구성된 다중 문자열 값임을 지정합니다.
구문 예제 7
val 'testhex' = d '&H55'
키 이름 testhex
가 16진수 55(10진수 85)로 설정된 DWORD임을 지정합니다. 이 형식은 Visual Basic 사양에 나와 있는 &H 표기법을 준수합니다.