[#] DSL для регулярных выражений на Kotlin
habrabot(difrex,1) — All
2016-10-17 13:30:04


![][1]


Всем привет!



Эта статья про реализацию одного конкретного DSL ([domain specific language][2], предметно-ориентированный язык) для регулярных выражений средствами Kotlin, но при этом она вполне может дать общее представление, о том, как написать свой DSL на Kotlin и что _обычно_ будет делать "под капотом" любой другой DSL, использующий те же возможности языка.



Многие уже используют Kotlin или хотя бы пробовали это делать, да и остальные вполне могли слышать о том, что Kotlin располагает к написанию изящных DSL, чему есть блестящие примеры — [Anko][3] и [kotlinx.html][4].



Конечно же, для регулярных выражений подобное [уже делали][5] (и ещё: [на Java][6], [на Scala][7], [на C#][8] — реализаций много, похоже, это распространённое развлечение). Но если хочется попрактиковаться или попробовать DSL-ориентированные языковые возможности Kotlin, то добро пожаловать под кат.

[Читать дальше →][9]

[1]: https://habrastorage.org/files/562/990/79a/56299079a06e4ea299079be1eaae8829.png
[2]: https://www.wikiwand.com/en/Domain-specific_language
[3]: https://github.com/Kotlin/anko
[4]: https://github.com/Kotlin/kotlinx.html
[5]: https://habrahabr.ru/post/308882/
[6]: https://github.com/chrba/regex
[7]: http://imaginatio.github.io/REL/
[8]: http://osherove.com/blog/2008/5/6/introducing-linq-to-regex.html
[9]: https://habrahabr.ru/post/312776/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut