Opis składni notacji Backusa-Naura (BNF)
Skrypty używane przez rejestratora ATL są opisane w tym temacie przy użyciu składni systemu plików BNF, która używa notacji pokazanej w poniższej tabeli.
Konwencja/symbol | Znaczenie |
---|---|
::= | Odpowiednik |
| | LUB |
X+ | Co najmniej jeden Xs. |
[X] | X jest opcjonalne. Opcjonalne ograniczniki są oznaczane przez []. |
Dowolny tekst pogrubiony | Literał ciągu. |
Dowolny tekst kursywą | Jak skonstruować literał ciągu. |
Jak wskazano w poprzedniej tabeli, skrypty rejestratora używają literałów ciągu. Te wartości są rzeczywistym tekstem, który musi pojawić się w skrycie. W poniższej tabeli opisano literały ciągów używane w skryscie rejestratora ATL.
Literał ciągu | Akcja |
---|---|
ForceRemove | Całkowicie usuwa następny klucz (jeśli istnieje), a następnie ponownie go tworzy. |
NoRemove | Nie usuwa następnego klucza podczas wyrejestrowania. |
Val | Określa, że <Key Name> jest faktycznie nazwaną wartością. |
Usuń | Usuwa następny klucz podczas rejestrowania. |
s | Określa, że następną wartością jest ciąg (REG_SZ). |
d | Określa, że następną wartością jest DWORD (REG_DWORD). |
m | Określa, że następna wartość jest wielociągową (REG_MULTI_SZ). |
b | Określa, że następna wartość jest wartością binarną (REG_BINARY). |
Przykłady składni systemu plików BNF
Poniżej przedstawiono kilka przykładów składni, które ułatwiają zrozumienie sposobu działania notacji i literałów ciągów w skryscie rejestratora ATL.
Przykład składni 1
<wyrażenie> rejestru ::= <Dodaj klucz>
określa, że registry expression
jest odpowiednikiem Add Key
.
Przykład składni 2
<wyrażenie> rejestru ::= <Dodaj klucz> | <Usuń klucz>
określa, że registry expression
jest odpowiednikiem wartości Add Key
lub Delete Key
.
Przykład składni 3
<Nazwa> klucza ::= "<AlphaNumeric>+"
określa, że Key Name
jest to odpowiednik co najmniej jednej AlphaNumeric
wartości.
Przykład składni 4
<Dodaj klucz> ::= [ForceRemove NoRemove | | val]<Nazwa klucza>
Określa, że Add Key
jest odpowiednikiem Key Name
, i że literały ciągów, ForceRemove
, NoRemove
i val
, są opcjonalne.
Przykład składni 5
<AlfaNumeryczne> ::= dowolny znak nie null, czyli ASCII 0
określa, że AlphaNumeric
jest odpowiednikiem dowolnego znaku innego niż NULL.
Przykład składni 6
val 'testmulti' = m 'String 1\0String 2\0'
określa, że nazwa testmulti
klucza jest wartością wielociągową składającą się z String 1
i String 2
.
Przykład składni 7
val 'testhex' = d '&H55'
określa, że nazwa testhex
klucza jest wartością DWORD ustawioną na szesnastkowe 55 (dziesiętne 85). Należy pamiętać, że ten format jest zgodny z notacją &H , jak znaleziono w specyfikacji języka Visual Basic.