Либо они определяют [домен-специфический] язык, либо реализуют какой-то уже существующий язык.
Язык обычно пишется в определенной форме, называемой BNF
Один методЧтобы создать компилятор (или, по крайней мере, лексер и парсер), нужно использовать инструмент, есть несколько инструментов, таких как yacc / lex, ANTLR и т. д., которые можно использовать для генерации необработанного кода для компилятора, токенизации файла и анализа токенов.Посмотрите antlr.org , где приведены примеры довольно простого в использовании инструмента, который генерирует синтаксический анализатор / лексеры кода C #, Java или C.