Hey, I found a case that doesn't work:
//var %j 2 | while (%j) { var -s %c 3 | while (%c) dec -s %c | dec -s %j }
This is an infinite loop:
* Set %c to 3
* Dec %c to 2
* Dec %c to 1
* Dec %c to 0
* Dec %j to 1
* Set %c to 3
* Dec %c to 2
* Set %c to 3
* Dec %c to 2
on the second iteration of %j (when it reaches 1), when the loop on (%c) runs, it executes the /var -s %c 3 as well instead of once before the loop runs, which it shouldn't.
I hope this bracket-less nested while loop won't be as difficult to fix as the previous ones.