- Recommended reading: https://craftinginterpreters.com/
Many "languages" can get away without one, however, if your language has one of:
- strings
- comments
- code blocks (markdown, but bbcode can get away without one because there's an explicit closing
[/code]
tag)
Your design will naturally lead to a simple tokenizer. Those blocks need to be excluded from the rest of the conversion in some way.
In the simplest implementations this may look like just an alias, or an actual list of tokens as a sidecar to the code.