Parrot - филиалах


Advertisements

Код получает мало скучно без управления потоком; для закусок, Parrot знает о ветвление и этикеток. Филиал оо эквивалентен Perl перейти:

         branch TERRY
JOHN:    print "fjords\n"
         branch END
MICHAEL: print " pining"
         branch GRAHAM
TERRY:   print "It's"
         branch MICHAEL
GRAHAM:  print " for the "
         branch JOHN
END:     end

Кроме того, он может выполнять простые проверяет реестр содержит значения true:

         set I1, 12
         set I2, 5
         mod I3, I2, I2
         if I3, REMAIND, DIVISOR
         
REMAIND: print "5 divides 12 with remainder "
         print I3
         branch DONE
         
DIVISOR: print "5 is an integer divisor of 12"

DONE:    print "\n"
         end

Вот, что это будет выглядеть как в Perl, для сравнения:

$i1 = 12;
$i2 = 5;
$i3 = $i1 % $i2;

if ($i3) {
   print "5 divides 12 with remainder ";
   print $i3;
} else {
   print "5 is an integer divisor of 12";
}

print "\n";
exit;

Parrot механика-водителя

Мы имеем полный диапазон числовых компараторы: эквалайзер, ne, lt, gt, le и ge. Обратите внимание, что вы не можете использовать эти операторы на аргументы различных типов; возможно, Вы можете даже не нужно, чтобы добавить суффикс-i или _n к ФП, сказать ей, какой тип аргумента вы используете, несмотря на то, что ассемблер должен божественной это для вас, пока вы читали это.

Advertisements