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