You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

main.c 977B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #include "vm/vm.h"
  2. #include "bitset.h"
  3. #include <stdio.h>
  4. #include <assert.h>
  5. int main() {
  6. struct l2_bitset bs;
  7. l2_bitset_init(&bs);
  8. for (size_t i = 0; i < 8191; ++i) {
  9. size_t id = l2_bitset_set_next(&bs);
  10. assert(id == i);
  11. assert(l2_bitset_get(&bs, i));
  12. }
  13. for (size_t i = 0; i < 10000; ++i) {
  14. if (i < 8191) {
  15. assert(l2_bitset_get(&bs, i));
  16. } else {
  17. assert(!l2_bitset_get(&bs, i));
  18. }
  19. }
  20. l2_bitset_unset(&bs, 100);
  21. assert(l2_bitset_set_next(&bs) == 8191);
  22. assert(l2_bitset_set_next(&bs) == 100);
  23. l2_bitset_free(&bs);
  24. }
  25. /*
  26. int main() {
  27. struct l2_op ops[] = {
  28. { L2_OP_PUSH, 100 },
  29. { L2_OP_PUSH, 100 },
  30. { L2_OP_ADD },
  31. { L2_OP_HALT },
  32. };
  33. struct l2_vm vm;
  34. l2_vm_init(&vm, ops, sizeof(ops) / sizeof(*ops));
  35. while (vm.ops[vm.iptr].code != L2_OP_HALT) {
  36. printf("Exec %i\n", vm.ops[vm.iptr].code);
  37. l2_vm_step(&vm);
  38. }
  39. printf("Done. Stack:\n");
  40. for (l2_word i = 0; i < vm.sptr; ++i) {
  41. printf(" %i: %i\n", i, vm.stack[i]);
  42. }
  43. }
  44. */