Пришло время затронуть тему создания парсеров на java. Для этого воспользуемся утилитой javacc.
Update. Плагин Вордпресса для подсвечивания кода стал безнадежно портить исходники — добавлять закрывающие теги там, где они не нужны, дефолтные значения у того, что он считает атрибутами тегов. Неискаженные исходники, адаптированные к javaCC версии 7.0.9 доступны тут: исходники
За основу взята эта статья с примерами: источник моего вдохновения. В коде примеров исправлены ошибки и теперь они даже собираются 😉
Код доработан и теперь, к примеру, правильно обрабатывает запятую в перечислении: она допустима тогда и только тогда, когда за текущим элементом перечисления есть еще один или несколько элементов. Если для типа данных в скобках указана длина (опциональный параметр), то она тоже будет сохранена в результирующей структуре для описания типа.
Read more »