3.2 Tokens
§1 Sinopsis
El tratar de la estructura lógica de un programa ( 1.3.1) se señaló que tokens son los elementos en que el preprocesado desmenuza el código fuente. En un lenguaje de programación, los tokens son el equivalente a las palabras y signos de puntuación en el lenguaje natural escrito. Los tokens están separados por elementos de separación que reciben el nombre genérico de separadores ( 1.4).
Comprenden los siguientes tipos de elementos (podríamos considerar que el lenguaje computacional C++ tiene las siguientes clases de "palabras"):
-
Palabras clave ("keywords"). C++ dispone de un conjunto relativamente extenso de palabras clave, señaladas en ( 3.2.1).
-
Identificadores. Su número puede ser virtualmente infinito; dentro de ciertas normas el programador es libre de elegir los que mejor se ajusten a sus necesidades.( 3.2.2).
-
Constantes. Existen varias clases, cuyos detalles se exponen en las páginas siguientes ( 3.2.3)
-
operadores ( 4.9)
-
signos de puntuación, también llamados puntuadores ( 3.2.6).
En ocasiones, los operadores y signos de puntuación comparten la misma representación escrita. En
estos casos, el sentido debe deducirse del contexto y por la forma en que están agrupados los diversos signos.
El conjunto de símbolos; grupos de símbolos, y palabras utilizados en C++ como operadores y/o puntuadores, es el siguiente (los operadores se han señalado en azul):
{ | } | [ | ] | # | ## | ( | ) | \ |
<: | :> | <% | %> | %: | %:%: | ; | : | ... |
" | ' | ? | :: | . | .* | |||
+ | - | * | / | % | ^ | & | | | ~ |
! | = | < | > | += | -= | *= | /= | %= |
^= | &= | |= | << | >> | >>= | <<= | == | != |
<= | >= | && | || | ++ | -- | , | ->* | -> |
and | and_eq | bitand | bitor | compl | not | not_eq | or | or_eq |
xor | xor_eq | ( ) | [ ] | new | delete | new[ ] | delete[ ] |
Una vez entregado el fuente al compilador, es precisamente el analizador
sintáctico ("parser") el encargado de es identificar los tokens.
Por ejemplo, la sentencia
int i; float f;
es descompuesta por el "parser" en los siguientes tokens:
int | palabra clave |
i | identificador |
; | puntuador |
float | palabra clave |
f | identificador |
; | puntuador |