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.
Borrar 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

<expresión> del registro ::= <Agregar clave>

Especifica que registry expression es equivalente a Add Key.

Ejemplo de sintaxis 2

<expresión> del registro ::= <Agregar clave> | <Eliminar clave>

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

Ejemplo de sintaxis 3

<Nombre> de clave ::= '<AlphaNumérico>+'

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

Ejemplo de sintaxis 4

<Agregar clave> ::= [ForceRemove | | val]<Nombre de clave>

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

<AlfaNumérico> ::= cualquier carácter que no sea NULL, es decir, 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