Udostępnij za pośrednictwem


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, NoRemovei 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.

Zobacz też

Tworzenie skryptów rejestratora