There are certain compiler limits inherent to the compiler:
Procedure or Function definitions can be nested to a level of 32. This can be changed by changing the maxnesting constant.
Maximally 1024 units can be used in a program when using the compiler. You can change this by redefining the maxunits constant in the compiler source file.
The maximum nesting level of pre-processor macros is 16. This can be changed by changing the value of max_macro_nesting.
Arrays are limited to 2 GBytes in size in the default (32-bit) processor mode.
For processor specific compiler limitations refer to the Processor Limitations section in this guide (6.8).