Для джаваскрипта советую посмотреть на
PEG.js. Он осиливается за час-два, плюс PEG-грамматики крайне мощные, способные описывать даже контекстно-зависимые грамматики местами (обычно используются только контекстно-свободные).
Плюс есть
онлайн-версия, которую можно потыкать (хотя аккуратно с ней, если введёте чего-нибудь, что делает вечный цикл в парсинге, то страница зависнет намертво и скорее всего потеряете всю свою грамматику).