Red de conocimiento informático - Problemas con los teléfonos móviles - Reglas gramaticales de la programación TCL

Reglas gramaticales de la programación TCL

Reglas de sintaxis de TCL:

1. Intérprete

El núcleo de la estructura de datos de Tcl es Tcl_Interp. Un intérprete contiene un conjunto de comandos, un conjunto de variables y. algo para describir el estado. Cada comando Tcl se ejecuta en un Tcl_Interp específico y las aplicaciones basadas en Tcl pueden tener varios Tcl_Interp al mismo tiempo. Tcl_Interp es una estructura liviana que se puede crear y eliminar rápidamente.

2. Tipo de datos

Tcl solo admite una estructura de datos: cadena. Todos los comandos, todos los parámetros de los comandos, los resultados de los comandos y todas las variables son cadenas. Ten esto en cuenta, todo es una cuerda. Este es su aspecto más distintivo. Las cadenas tienen tres formas: comando, expresión y lista.

3. Sintaxis básica del comando

Tcl tiene una sintaxis similar a Shell y Lisp, pero por supuesto hay muchas diferencias. Una cadena de comando Tcl contiene uno o más comandos separados por nuevas líneas o punto y coma, y ​​cada comando contiene un conjunto de campos. Los campos están separados por espacios en blanco. El primer campo es un comando y el resto se le pasan como parámetros.

Por ejemplo:

set a 22 //Equivalente a a=22 en C. a es una variable Este comando se divide en tres campos: 1: set 2: a 3. : 22 set es un comando que se utiliza para establecer el valor de una variable y se le pasan 20 como parámetros, a lo convierte en el nombre de la variable a operar y 22 es el valor de a a pagar.

El nombre del comando de Tcl puede ser un comando incorporado o un comando nuevo creado por el usuario. Si es un comando nuevo creado por el usuario, se crea usando la función Tcl_CreateCommand en la aplicación. Todos los parámetros se pasan como cadenas y el propio comando interpreta los parámetros según sea necesario. El nombre del comando debe escribirse completo, pero si el intérprete Tcl no puede encontrar un comando con el mismo nombre, utilizará el comando desconocido en su lugar.

En muchos casos, desconocido buscará en el directorio de la biblioteca y, si encuentra una, generará automáticamente un comando Tcl y lo llamará. desconocido a menudo realiza la ejecución de nombres de comandos abreviados. Pero es mejor no usarlo.

4. Comentarios

Es muy similar al shell. La cadena Tcl cuya primera letra es "#" es un comentario.

Otras reglas detalladas

Agrupación de argumentos con comillas dobles Utilice comillas dobles para agrupar argumentos para poder utilizar argumentos con espacios en blanco.

Por ejemplo:

establezca "esta cadena contiene espacios en blanco"

Si un parámetro comienza con comillas dobles, el parámetro no terminará hasta el siguiente comillas dobles. Puede haber nuevas líneas y punto y coma.

Sustitución de variable con $ Usar el signo de dólar para sustitución de variable simplemente significa hacer referencia a la variable.

Por ejemplo:

set a hello

set b $a // b = "hello" Los parámetros realmente pasados ​​al comando set

//Es b, "hola"

set c a // b = "a"

Sustitución de comando con corchetes Sustitución de comando (con corchetes)

Por ejemplo:

set a [set b "hello"]

Implementa la ejecución de set b "hello" y usa el resultado para reemplazar los corchetes en el código fuente. comando para generar un nuevo comando

set a "hello" //"hello" es el valor de retorno de set b "hello"

El resultado final es b="hello" a ="hola"

Cuando un subcampo de un comando comienza y termina con corchetes, indica que un subcampo de comando debe ser reemplazado. Y ejecute el subcomando, reemplazando los corchetes en el comando original con su resultado. Todo lo que está entre corchetes se trata como un comando Tcl.

El siguiente es un ejemplo más complicado:

establecer un xyz[set b "abc"].[set c "def"]

//return xyzabcdef

Sustitución de barra invertida

El carácter de transferencia es un carácter no imprimible o un carácter con otros significados insertados en él. Este concepto es el mismo que en el lenguaje C.

Retroceso (0x8).

f Avance de página (0xc).

Nueva línea (0xa).

Retorno de carro (0xd). ).

Tab (0x9).

v Tabulador vertical (0xb).

{ Llave izquierda (`{").

} Llave derecha (`}").

[ Abrir llave (`[").

] Cerrar llave (`]").

$ Signo de dólar ("$").

sp Espacio (` "): no termina el argumento.

Punto y coma: no termina el comando.

" Comillas dobles.

Agrupar argumentos con llaves Usar llaves para agrupar parámetros

La diferencia entre usar llaves para agrupar parámetros y usar comillas dobles para agrupar parámetros es: Los tres subcomillas mencionados anteriormente -Los reemplazos de paréntesis no se realizan y se pueden anidar. Por ejemplo:

establecer a {xyz a {b c d}}//establecer la colección en dos parámetros a "xyz a {b c d}"

eval {

establecer un 22

establecer b 33

}/ /eval recibió un parámetro "establecer un 22

set b 33"

5. Descripción general de comandos

1. Un comando es una cadena (cadena).

2. Los comandos están separados por nuevas líneas o punto y coma

3. El primero es el nombre del comando y los demás campos son los parámetros a pasar.

4. Los campos suelen estar separados por espacios (Tab y Espacio).

5. Las comillas dobles pueden hacer que un parámetro incluya nuevas líneas o punto y coma. Todavía se producen tres sustituciones de semillas.

6. Las llaves son similares a las comillas dobles, excepto que no se realiza un reemplazo triple.

7. El sistema solo realiza un nivel de subremplazo y no se realizarán más subremplazos como resultado del reemplazo del mecanismo. Y el subreemplazo se puede realizar en cualquier dominio.

8. Si el primer carácter que no es de control es `#", todo lo que hay en esta línea es un comentario.

6. Expresión

Una interpretación de una cadena es una expresión. Varios comandos procesan sus parámetros como expresiones, como expr, for y if, y llamar a los procesadores de expresiones Tcl (Tcl_ExprLong, Tcl_ExprBoolean, etc.) para procesarlos

!

NO lógico

.

* / -

lt; gt; gt;

El desplazamiento hacia la izquierda y hacia la derecha solo puede ser para números enteros

gt;

Comparación lógica

amp; ^ |

Operaciones bit a bit y XOR o

&''

Lógico "y" "o"

x y: z

If-then-else Igual que C

La verdad lógica en Tcl es 1, la falsa lógica es 0

Algunos ejemplos:

5.

5. / ([longitud de cadena "abcd"] 0.0 )

Calcular la longitud. de la cadena y convertirlo a un número de punto flotante

"0x03" gt; "2"

"0y" lt; 1

establece un 1

expr $a 2

expr 1 2

Ambos devuelven 3