A basic compiler based off of thejameskyle's super-tiny-compiler

fizzbuzz.mc.js 747B

1234567891011121314151617181920
  1. var _ = require("./lib/stdlib.js")(this)
  2. var _str = require("./lib/str.js")(this);
  3. _.def(_.ref('fizzbuzz'), function() {
  4. _.assign(_.ref('i'), {value: 1});
  5. _.repeat(arguments[0], function() {
  6. _.assign(_.ref('result'), { value: '' });
  7. _.if(_.eq(_.modulo(_.ref('i'), {value: 3}), {value: 0}), function() {
  8. _.assign(_.ref('result'), _str.concat(_.ref('result'), { value: 'Fizz' }));
  9. });
  10. _.if(_.eq(_.modulo(_.ref('i'), {value: 5}), {value: 0}), function() {
  11. _.assign(_.ref('result'), _str.concat(_.ref('result'), { value: 'Buzz' }));
  12. });
  13. _.if(_.eq(_.ref('result'), { value: '' }), function() {
  14. _.assign(_.ref('result'), _.ref('i'));
  15. });
  16. _.log(_.ref('result'));
  17. _.assign(_.ref('i'), _.add(_.ref('i'), {value: 1}));
  18. });
  19. });
  20. _.fizzbuzz({value: 100});