19.08.2016, 15:37:31
Войти Зарегистрироваться
Авторизация на сайте

Ваш логин:

Ваш пароль:

Забыли пароль?

Навигация
Новости
Архив новостей
Реклама
Календарь событий
Right Left

Мова регулярних виразів в JetBrains MPS - Мій журнал - ЖЖ

5:37 pm - Мова регулярних виразів в JetBrains MPS

Деякий час назад, в ході розробки JetBrains MPS, мені потрібно було писати досить багато коду багатого regexp-ами. (Що таке regexp-и більш детально дивіться сюди ). Regexp-и це фактично мова вбудований в Java через рядки. При цьому він вбудований далеко не кращим чином: власних конструкцій для роботи з регулярними виразами в Java немає. Все доводиться робити через виклики API. Звичайно, природно було б написати на JetBrains MPS мову для роботи з ними, що я і зробив.

Розглянемо простий приклад.
Розглянемо простий приклад
У цьому коді береться email і видирається з нього ім'я користувача та домен. При цьому частина регулярного виразу іменується (user і domain), і використовується в нижче. Код при цьому абсолютно збірний, і є можливість дати шматках коду хороші імена. Ніяких $ 1, $ 2, $ 3, як в деяких мовах. Крім перевірки match-а є ще пошук, ітерація по всім входженням, заміна і split.

Комплішін в мові працює практично скрізь. Вводячи regexp-и можна подивитися на те, які операції можна з ними робити, при введенні символьних класів видно все зумовлені символьні класи з їх описами. Завдяки новим можливостям MPS-а (мова для action-ів) все це вийшло досить просто, на розробку цієї мови пішло всього кілька днів.

Більш докладно про мову можна прочитати в новому введенні в MPS тут (Англійською), там також описані фичи, про які я не говорив в цьому пості. На саму мову і на приклади до нього можна подивитися в дистрибутиві останньої версії EAP-а MPS, до якого включено це мова.