Есть ли только java-эквивалент для генераторов парсера scala? - PullRequest
3 голосов
/ 08 ноября 2011

Scala предлагает удивительно простой способ создания парсеров.Есть ли достаточно эквивалентный способ сделать то же самое в мире только для Java, который не занимает неделю обучения?

Ответы [ 3 ]

2 голосов
/ 08 ноября 2011

Я не уверен насчет кривой обучения, но в мире Java, ANTLR Parser Generator очень хорошо рассматривается и считается одним из лучших.

1 голос
/ 08 ноября 2011

Насколько надежным и настраиваемым должен быть парсер?Если грамматика довольно простая и стабильная, вы можете просто использовать анализатор рекурсивного спуска, который использует методы, представляющие каждое правило создания грамматики.Я думаю, что результат будет примерно таким же, как и в случае с JavaCC, так как они оба сверху вниз.

http://en.wikipedia.org/wiki/Recursive_descent_parser

Надеюсь, это может быть полезно.

0 голосов
/ 08 ноября 2011

В публикациях Мэннинга есть книга " DSL в действии ", которая вначале охватывает Java.

Но, возможно, вы захотите взглянуть на использование Groovy для написания вашего DSL, поскольку у динамического языка есть много возможностей, и у него будет более короткая кривая обучения, чем у Scala.

Для вступления вы можете начать с http://docs.codehaus.org/display/GROOVY/Writing+Domain-Specific+Languages.

Книга, которую я упомянул, также охватывает использование antlr, и когда имеет смысл использовать, а когда нет, поэтому, если вы хотите лучше понять, как писать и поддерживать DSL, это отличная книга.

...