1. 1 Embarcadero Delphi / Introducción
Ing. Américo Torres Gonzales
Elementos Sintácticos Fundamentales
Los elementos sintácticos fundamentales, llamados tokens, se combinan para formar
expresiones, declaraciones y sentencias. Una sentencia describe un acción algorítmica que
puede ser ejecutada por un programa. Una expresión es una unidad sintáctica que ocurre
dentro de una sentencia y denota un valor. Una declaración define un identificador (como el
nombre de una variable o función) que puede ser usada en expresiones y sentencias.
Esta clase introduce un conjunto de caracteres del lenguaje Delphi, y describe la sintaxis para
declararlas:
Identificadores.
Números.
Cadenas de Caracteres.
Labels.
Comentarios para el Codigo Fuente.
El Conjunto de Caracteres Delphi
Delphi usa Unicode para su conjunto de caracteres, incluyendo caracteres alfabéticos y
alfanuméricos así como el guion bajo. Delphi no es case-sensitive. El carácter espacio y
caracteres de control (U+0000 hasta U+001F incluyendo U+000D, el retorno o fin de línea) son
blancos.
A. Tokens
En el nivel mas simple, un programa es una secuencia de tokens delimitados por separadores.
Un token es la mas pequeña unidad semántica de texto en un programa. Un separador puede
ser un blanco o un comentario. Estrictamente hablando, no es siempre necesario colocar un
separador entre dos tokens; por ejemplo, el siguiente fragmento de código:
Tamanio:=20;Precio:=10;
Es perfectamente legal. Pero por convención y legibilidad, sin embargo, se acostumbra a
escribirlas en dos líneas, como:
Tamanio := 20;
Precio := 10;
Los tokens están categorizados como símbolos especiales, identificadores, palabras
reservadas, directivas, numerales, labels y cadenas de caracteres. Un separador puede ser
parte de un token solo si el token es una cadena de caracteres. Los identificadores, palabras
reservadas, numerales, y labels deben tener uno o mas separadores entre ellos.
Símbolos Especiales
Estos símbolos son caracteres no alfanuméricos, o pares de caracteres que tienen un
significado específico. Los siguientes caracteres son especiales:
2. 2 Embarcadero Delphi / Introducción
Ing. Américo Torres Gonzales
# $ & ‘ ( ) * + , - . / : ; < = > @ [ ] ^ { }
Los siguientes pares de caracteres son también símbolos especiales usados para comentar:
(* (. *) .) .. // := <= >= <>
Nota: Los símbolos %, ?, , !, “ (comillas dobles), _ (guion bajo), | (tubería), y ~ no son símbolos
especiales.
B. Identificadores
Los identificadores denotan constantes, variables, campos, tipos, propiedades,
procedimientos, funciones, programas, unidades y paquetes. Un identificador puede ser de
cualquier tamaño, pero son reconocidos solo los primeros 255 caracteres. Un identificador
debe comenzar con un carácter alfabético, un carácter Unicode, o un Guion bajo y NO
contener espacios en blanco. Los caracteres alfanuméricos, caracteres Unicode, dígitos, y
guiones bajos son seguidos luego del primer carácter. Las palabras reservadas no pueden ser
usadas como identificadores. Debido a que Delphi es un lenguaje case-insensitive, un
identificador como CalculaValor podría ser escrito de cualquiera de las siguientes formas:
CalculaValor
Calculavalor
calculaValor
CALCULAVALOR
Dado que los nombres de las unidades corresponden a nombres de archivos, las
inconsistencias entre mayúsculas y minúsculas pueden algunas veces afectar el proceso de
compilación.
Identificadores Cualificados
Cuando usas un identificador que ha sido declarado en más de un lugar, se hace necesario
cualificar el identificador. La sintaxis para un identificador cualificado es:
Identificador1.identificador2
Donde identificador1 cualifica a identificador2.
Identificadores Extendidos
Podrías encontrar identificadores teniendo el mismo nombre como una palabra reservada. Por
ejemplo, una clase podría tener un método llamado begin. Como bien sabemos, las palabras
reservadas de Delphi no pueden ser usadas como nombres de identificadores.
Para resolver este problema, necesitas cualificar el identificador. Por ejemplo, si deseas usar la
palabra type como nombre de un identificador, debes usar su nombre cualificado:
var MiClaseX.type
3. 3 Embarcadero Delphi / Introducción
Ing. Américo Torres Gonzales
Como alternativa mas corta, el operador ampersand (&) puede ser usado para resolver
ambigüedades entre identificadores y palabras reservadas. El & previene de que Delphi trate el
token como una palabra reservada. Si encuentras un método o tipo que tiene el mismo
nombre de una palabra reservada, puedes omitir la especificación del espacio de nombre si
prefijas el nombre con &. Observa la siguiente declaración:
type
&Type = Integer;
Palabras Reservadas
He aquí la lista de palabras reservadas de Delphi:
Nota: Adicionalmente a la lista anterior, las palabras: private, protected, public, published y
automated actúan como palabras reservadas dentro de las declaraciones de tipos en una
clase. Las palabras at y on tienen también un significado especial, y deberían ser tratadas como
palabras reservadas.
4. 4 Embarcadero Delphi / Introducción
Ing. Américo Torres Gonzales
C. Directivas
Delphi tiene más de un tipo de directiva. El significado de directiva es una palabra que es
sensitiva a ubicaciones específicas dentro del código fuente. Este tipo de directiva tiene un
significado especial en el lenguaje Delphi, pero, a diferencia de una palabra reservada, aparece
solo en contextos donde los identificadores definidos por el usuario no pueden ocurrir. He
aquí la lista de directivas:
Notas:
1 – far, near y resident son obsoletas.
2 – inline es usada estilo directiva al final de la declaración de un procedimiento o función para
marcar que se trata de un proc / func en línea.
3 – library es también una palabra clave usada como el primer token en el código fuente de un
proyecto; indica que el producto final será una librería dinámica (DLL).
4 – local fue una directiva Kylix y es ignorada por Delphi sobre win32.
5 – sealed es una directiva de clase.
6 – winapi tiene un uso similar a stdcall para win32.
7 – package al igual que program y library es el primer token en un proyecto para indicar que
el producto final es un paquete.
8 – requieres y contains son directivas solo en sintaxis de paquete.
5. 5 Embarcadero Delphi / Introducción
Ing. Américo Torres Gonzales
9 – helper indica “ayudante para la clase”.
10 – reference, indica una referencia a una funcion o procedimiento.
Otros tipos de Directivas
Una directiva puede ser un identificador que ubicas al final de una declaración para modificar
el significado de la declaración. Por ejemplo:
procedure P; forward;
o
procedure M; virtual; override;
o
property Foo: Integer read FFoo write FFoo default 42;
El último tipo de directiva es la oficial Directiva de Compilador, el cual afecta el
comportamiento del compilador. Una directiva de compilador esa encerrado entre llaves ({}) y
comienza con un signo dólar ($), como esto:
{$POINTERMATH ON}
{$D+}
Puede obtenerse una lista completa de las directivas en la siguiente dirección:
ms-help://embarcadero.rs2010/rad/Delphi_Compiler_Directives_(List)_Index.html
D. Numerales
Los numerous enteros y constants reales pueden ser representados en notacion decimal como
una secuencia de numerous son comas o espacios, y prefijados con el signo + o -. Los valores
por defecto para números positivos (asi por ejemplo, 67258 es equivalente a +67258) y deben
estar en el rango del numero mas grande predefinido real o entero.
Los numerales con puntos decimales o exponenciales denotan números reales. Con el carácter
E o e que significa “diez veces elevado”. Por ejemplo, 7E2 significa 7*10^2, y 12.25E+6 con
12.25e6 ambos significan 12.25*10^6.
El signo de dólar como prefijo significa un numero hexadecimal, por ejemplo, $8F. Los
números hexadecimales sin el signo – son tokens positivos. Durante una asignación, si un valor
hexadecimal cae fuera del rango del tipo que deberá contenerlo, se lanza un error, excepto en
el caso de los Integer (enteros de 32 bits) donde se lanza un aviso.
Cadenas de Caracteres
Una cadena de caracteres, también llamada una cadena literal o cadena constante. Una
cadena es una secuencia de caracteres ANSI o multibyte, escrito en una línea encerrada por
apostrofes. Una cadena sin nada entre los apostrofes es una cadena nula.
6. 6 Embarcadero Delphi / Introducción
Ing. Américo Torres Gonzales
Esta cadena es representada internamente como una cadena Unicode codificada como UTF-
16. Por ejemplo,
Una cadena de control es una secuencia de uno o mas caracteres de control, cada uno de los
cuales consiste de un símbolo numeral (#) seguido de un numero entero constante positivo
cuyos valores van desde 0 a 65535 o desde $0 hasta $FFFF (hexadecimal) en codificación UTF-
16, y denota el carácter corresponde al código del valor especificado. Cada entero es
representado internamente por 2 bytes en la cadena. Por ejemplo la cadena de control:
#89#111#117
es equivalente a la cadena:
‘You’
Puedes combinar cadenas con cadenas de control para formar cadenas de caracteres mas
largas. Por ejemplo:
‘Linea 1’#13#10’Linea 2’
Es una cadena Linea 1 y Linea 2 con un retorno de carro entre ellas.
Comentarios y Directivas de Compilador
Los comentarios son ignoradas por el compilador, excepto cuando funcionan como
separadores o directivas de compilador.
Hay varias formas para construir comentarios:
{ Todo texto encerrado entre llaves es considerado un comentario }
(* Tambien todo texto encerrado entre estos caracteres
es un comentario *)
// Dos slashes hacen que el texto que esta a su derecha sea comentario hasta el final de la
línea.