Most BASIC interpreters of the era converted the input text into a tokenized version in which each of the commands was replaced by a single number (typically one byte long). This made the program run faster because it didn't have to continually decode the commands from the strings every time. Zgrass's use of string-based macros made this difficult, so they didn't bother with tokenization. Instead, they included a compiler which could be used on any particular macro, speeding it up many times. Programs would often consist of a mix of compiled and uncompiled macros.
Most BASIC interpreters of the era converted the input text into a tokenized version in which each of the commands was replaced by a single number (typically one byte long). This made the program run faster because it didn't have to continually decode the commands from the strings every time Zgrass's use of string-based macros made this difficult so they didn't bother with tokenization. Instead, they included a compiler which could be used on any particular macro, speeding it up many times. Programs would often consist of a mix of compiled and uncompiled macros.