Compartir a través de


Conceptos sobre la sintaxis de forma de Backus-Naur (BNF)

En este tema, los scripts que usa el registrador de ATL se describen mediante la sintaxis de BNF, en la que se usa la notación que se muestra en la tabla siguiente.

Convención/símbolo Significado
::= Tipo de datos de XPath
| O BIEN
X+ Una o varias X.
[X] X es opcional. Los delimitadores opcionales se indican mediante [].
Cualquier texto en negrita Un literal de cadena.
Cualquier texto en cursiva Cómo construir el literal de cadena.

Como se indica en la tabla anterior, en los scripts de registrador se usan literales de cadena. Estos valores son texto real que debe aparecer en el script. En la tabla siguiente se describen los literales de cadena que se usan en un script de registrador de ATL.

Literal de cadena Acción
ForceRemove Quita completamente la clave siguiente (si existe) y, después, la vuelve a crear.
NoRemove No quita la clave siguiente durante Anular registro.
val Especifica que <Key Name> es realmente un valor con nombre.
Eliminar Quita la clave siguiente durante Registrar.
s Especifica que el valor siguiente es una cadena (REG_SZ).
d Especifica que el valor siguiente es una instancia de DWORD (REG_DWORD).
m Especifica que el valor siguiente es una instancia de MultiString (REG_MULTI_SZ).
b Especifica que el valor siguiente es un valor binario (REG_BINARY).

Ejemplos de sintaxis BNF

Estos son algunos ejemplos de sintaxis que le ayudarán a comprender cómo funcionan los literales de cadena y la notación en un script de registrador de ATL.

Ejemplo de sintaxis 1

<registry expression> ::= <Add Key>

Especifica que registry expression es equivalente a Add Key.

Ejemplo de sintaxis 2

<registry expression> ::= <Add Key> | <Delete Key>

Especifica que registry expression es equivalente a Add Key o a Delete Key.

Ejemplo de sintaxis 3

<Key Name> ::= '<AlphaNumeric>+'

Especifica que Key Name es equivalente a uno varios valores AlphaNumeric.

Ejemplo de sintaxis 4

<Add Key> ::= [ForceRemove | NoRemove | val]<Key Name>

Especifica que Add Key es equivalente a Key Name y que los literales de cadena, ForceRemove, NoRemove y val, son opcionales.

Ejemplo de sintaxis 5

<AlphaNumeric> ::= any character not NULL, that is, ASCII 0

Especifica que AlphaNumeric es equivalente a cualquier carácter distinto de NULL.

Ejemplo de sintaxis 6

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

Especifica que el nombre de clave testmulti es un valor MultiString formado por String 1 y String 2.

Ejemplo de sintaxis 7

val 'testhex' = d '&H55'

Especifica que el nombre de clave testhex es un valor DWORD que se establece en 55 hexadecimal (85 decimal). Tenga en cuenta que este formato se ajusta a la notación &H como aparece en la especificación de Visual Basic.

Consulte también

Crear scripts del registrador