Как написать парсер для haml-подобных языков? - PullRequest
0 голосов
/ 27 сентября 2010

Я хочу написать анализатор и конвертер haml-подобных языков, проанализировать их и преобразовать в HTML-контент.

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

И есть ли статьи о том, как написать такой парсер?Заранее спасибо!

Ответы [ 3 ]

1 голос
/ 29 сентября 2010

После некоторых исследований и испытаний, я должен сказать, пропаренный - лучший инструмент для этой работы.

Я потратил один день на PEG и предоставил хорошие примеры, которые можно пропарить, и еще один день на написание простого анализатора sass Это было так легко и естественно. Гораздо проще и понятнее, чем Regex. И самое лучшее, что я могу использовать только Java для написания программы, никакой внешний DSL не требует изучения.

Я хочу сказать большое спасибо автору parboiled, это отличный инструмент, который я ищу.

1 голос
/ 27 сентября 2010

Регулярные выражения обычно плохо разбираются. Регулярное выражение не является реальным анализатором.

Парсеры обычно генерируются генератором парсера. Вы указываете язык в файле спецификации, и генератор анализатора преобразует его в исходный код вашего анализатора.

0 голосов
/ 27 сентября 2010

Вы можете использовать JavaCC . Это YACC-генератор парсера. Вывод - исходный код Java для синтаксического анализатора.

...