Clase3 - Identificadores y directivas en Delphi

6
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:

Transcript of Clase3 - Identificadores y directivas en Delphi

Page 1: Clase3 - Identificadores y directivas en Delphi

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:

Page 2: Clase3 - Identificadores y directivas en Delphi

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

Page 3: Clase3 - Identificadores y directivas en Delphi

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.

Page 4: Clase3 - Identificadores y directivas en Delphi

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.

Page 5: Clase3 - Identificadores y directivas en Delphi

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.

Page 6: Clase3 - Identificadores y directivas en Delphi

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.