Example 1
| CODE |
| Procedure DoSomething Call DoSomething // <- this is a direct "recursive call" to DoSomething End |
Example 2
This example use MakeSpikes & SellSpikes as an example relevant to the current Spike money macros:
| CODE |
Procedure MakeSpikes // Some spike making code goes here Call SellSpikes End Procedure SellSpikes // Some spike selling code goes here Call MakeSpikes End Call MakeSpikes SendText 13, Done |
This is indirect recursion. MakesSpikes does not contain a line "Call MakeSpikes". However, it calls SellSpikes, which then calls MakeSpikes.
ACTool does not support recursion well, and has a hard cap of 5000 on how many recursive calls you can make before you get an error.
How to structure the code differently ? Using the spike example again ...
| CODE |
| While 1 = 1 // Loop 'forever' Call MakeSpikes Call SellSpikes End Procedure MakeSpikes // Some spike making code goes here End Procedure SellSpikes // Some spike selling code goes here End |