Author: tene Date: Tue Feb 26 13:35:26 2008 New Revision: 26078 Added: trunk/languages/lolcode/src/builtins/math.pir Modified: trunk/MANIFEST
Log: Oops. Forgot to add builtins/math.pir for lolcode. kj++ Modified: trunk/MANIFEST ============================================================================== --- trunk/MANIFEST (original) +++ trunk/MANIFEST Tue Feb 26 13:35:26 2008 @@ -1,7 +1,7 @@ # ex: set ro: # $Id$ # -# generated by tools/dev/mk_manifest_and_skip.pl Mon Feb 25 19:58:30 2008 UT +# generated by tools/dev/mk_manifest_and_skip.pl Tue Feb 26 21:33:49 2008 UT # # See tools/dev/install_files.pl for documentation on the # format of this file. @@ -1512,6 +1512,7 @@ languages/lolcode/config/makefiles/root.in [lolcode] languages/lolcode/lolcode.pir [lolcode] languages/lolcode/src/builtins/expr_parse.pir [lolcode] +languages/lolcode/src/builtins/math.pir [lolcode] languages/lolcode/src/builtins/say.pir [lolcode] languages/lolcode/src/builtins/var_or_function.pir [lolcode] languages/lolcode/src/parser/actions.pm [lolcode] Added: trunk/languages/lolcode/src/builtins/math.pir ============================================================================== --- (empty file) +++ trunk/languages/lolcode/src/builtins/math.pir Tue Feb 26 13:35:26 2008 @@ -0,0 +1,81 @@ +.sub 'SUM OF' + .param pmc x + .param pmc y + $P0 = n_add x, y + .return ($P0) +.end + +.sub 'DIFF OF' + .param pmc x + .param pmc y + $P0 = n_sub x, y + .return ($P0) +.end + +.sub 'PRODUKT OF' + .param pmc x + .param pmc y + $P0 = n_mul x, y + .return ($P0) +.end + +.sub 'QUOSHUNT OF' + .param pmc x + .param pmc y + $P0 = n_div x, y + .return ($P0) +.end + +.sub 'MOD OF' + .param num x + .param num y + $N0 = mod x, y + .return ($N0) +.end + +.sub 'BIGGR OF' + .param pmc x + .param pmc y + $I0 = islt x, y + if $I0 goto y_biggr + .return (x) + y_biggr: + .return (y) +.end + +.sub 'SMALLR OF' + .param pmc x + .param pmc y + $I0 = isgt x, y + if $I0 goto y_smallr + .return (x) + y_smallr: + .return (y) +.end + +.sub 'FAKTORIAL OF' + # Get input parameter. + .param int n + + # return (n > 1 ? n * factorial(n - 1) : 1) + .local int result + + if n > 1 goto recurse + result = 1 + goto return + +recurse: + $I0 = n - 1 + result = 'FAKTORIAL OF'($I0) + result *= n + +return: + .return (result) +.end + +# Local Variables: +# mode: pir +# fill-column: 100 +# End: +# vim: expandtab shiftwidth=4: +
