

Así la expresión
F(X_2(INT,CHAR),INT) describe el tipo de las funciones
de 2 parámetros que devuelven enteros. El primer parámetro debe
ser entero y el segundo un carácter.
Otro ejemplo es la expresión de tipo A_10(A_20(INT)) que describe
un vector 10x20 de enteros.
Observe que en tanto en cuanto las expresiones de tipo son frases de un lenguaje - cuya semántica es describir los tipos del lenguaje fuente - tiene un árbol sintáctico asociado. En las secciones anteriores sobre el análisis de ámbito presentamos una versión inicial de las expresiones de tipo y las utilizamos mediante una representación dual: como cadena y como árbol. Para ello usábamos el método Parse::Eyapp::Node->new el cual nos permite obtener una representación árbol de la expresión de tipo. En un contexto escalar este método devuelve la referencia al árbol sintáctico construido:
nereida:~/src/perl/testing> perl -MParse::Eyapp::Node -de 0
Loading DB routines from perl5db.pl version 1.28
Editor support available.
main::(-e:1): 0
DB<1> x scalar(Parse::Eyapp::Node->new('F(X_2(INT,CHAR),INT)'))
0 F=HASH(0x859fb58)
'children' => ARRAY(0x85d52ec)
0 X_2=HASH(0x859fb70)
'children' => ARRAY(0x859fb28)
0 INT=HASH(0x85a569c)
'children' => ARRAY(0x852cc84)
empty array
1 CHAR=HASH(0x859fb34)
'children' => ARRAY(0x850a7cc)
empty array
1 INT=HASH(0x859fabc)
'children' => ARRAY(0x852c9d8)
empty array

