Я много осмотрелся, и все, что я мог найти, это Ragel (www.complang.org/ragel), который также может создавать Java-код.
Это выглядело слишком сложным для меня, поэтому я начал работу по переносу Construct на Java.
Я подозреваю, что было бы легче сделать что-то подобное в Scala, Groovy или JavaScript.
Построить на GitHub: https://github.com/MostAwesomeDude/construct
Java-конструкция: https://github.com/ZiglioNZ/construct
Я потратил пару дней на это, в основном на поиски эквивалентов выразительных классов Python.
Наиболее полезные классы Java, которые я нашел: java.util.Scanner, java.util.Formatter и java.nio.ByteBuffer.
Это большая задача, поэтому я хочу сосредоточиться на чем-то маленьком, например на создании простых синтаксических анализаторов и средств форматирования для ByteBuffers.
[Обновление]
Я перенес достаточно кода для анализа и построения некоторых протоколов, которые поставляются с Python Construct, таких как ethernet, arp и ipv4. Проверьте это в https://github.com/ZiglioNZ/construct
[Обновление: новый выпуск]
Java Construct 1.1.2 теперь доступна, см. примечания к выпуску .