다음을 통해 공유


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 expressionAdd Key와 같음을 지정합니다.

구문 예제 2

<레지스트리 식> ::= <키> 추가 | <키 삭제>

registry expressionAdd Key 또는 Delete Key와 같음을 지정합니다.

구문 예제 3

<키 이름> ::= '<AlphaNumeric>+'

Key Name 은 하나 이상의 AlphaNumeric 값과 동일한 값을 지정합니다.

구문 예제 4

<키> 추가 ::= [ForceRemove | NoRemove | val]<키 이름>

Add KeyKey Name과 같고, 문자열 리터럴 ForceRemove, NoRemoveval은 선택 사항임을 지정합니다.

구문 예제 5

<AlphaNumeric> ::= NULL이 아닌 문자, 즉 ASCII 0

AlphaNumeric이 모든 비 NULL 문자와 같음을 나타냅니다.

구문 예제 6

val 'testmulti' = m 'String 1\0String 2\0'

키 이름 testmultiString 1String 2로 구성된 다중 문자열 값임을 지정합니다.

구문 예제 7

val 'testhex' = d '&H55'

키 이름 testhex가 16진수 55(10진수 85)로 설정된 DWORD임을 지정합니다. 이 형식은 Visual Basic 사양에 나와 있는 &H 표기법을 준수합니다.

참고 항목

등록자 스크립트 만들기