next up previous contents index PLPL moodlepserratamodulosperlmonksperldocapuntes LHPgoogleetsiiullpcgull
Sig: Comprobación de Tipos: Sentencias Sup: Análisis de Tipos Ant: Comprobación de Tipos: Indexados Err: Si hallas una errata ...


Comprobación de Tipos: Sentencias de Control

Las sentencias de control como IF y WHILE requieren un tipo entero en la condición de control:
pl@nereida:~/doc/casiano/PLBOOK/PLBOOK/code/Simple-Types/lib/Simple$ \
                        sed -ne '/^control/,189p' Trans.trg | cat -n
     1  control: /IF|IFELSE|WHILE/:con($bool)
     2    => {
     3      $bool = char2int($con, 0);
     4
     5        type_error("Condition must have integer type!", $bool->line)
     6      unless $bool->{t} == $INT;
     7
     8      $con->{t} = $VOID;
     9
    10      return 1;
    11    }

Veamos un ejemplo de uso:

l@nereida:~/Lbook/code/Simple-Types/script$ usetypes.pl prueba19.c 2
1 int c[20][30], d;
2
3 int f(int a, int b) {
4   if (c[2])
5   return
6      (a+b)*d*c[1][1];
7 }
Type Error at line 4: Condition must have integer type!
pl@nereida:~/Lbook/code/Simple-Types/script$


next up previous contents index PLPL moodlepserratamodulosperlmonksperldocapuntes LHPgoogleetsiiullpcgull
Sig: Comprobación de Tipos: Sentencias Sup: Análisis de Tipos Ant: Comprobación de Tipos: Indexados Err: Si hallas una errata ...
Casiano Rodríguez León
2013-03-05