LINUX.ORG.RU

JetBrains MPS и расширение явы

 


0

2

Где-то с месяц назад я спрашивал, как бы мне чуток покорёжить синтаксис явы под свои нужды. Делюсь радостью, я нашёл решение. Последние несколько дней мучаю JetBrains MPS для написания расширений синтаксиса Java. Уже придумалось (и реализовалось) вот что:

String a = "AAA"; 
String b = " AAA "; 

System.out.println(a == b); // false 
System.out.println(a eq b.trim()); // true (юзаем метод equals объекта, если оба null, выдаём NPE)

silent throw new RuntimeException("Исключения не будет!");

Всё это интегрится с Intellij Idea и транслируется в самый обычный java-код.

Наконец-то можно писать, например, silent Thread.Sleep(1000); вместо try { Thread.Sleep(1000) } catch (InterruptedException ex) {}

Теперь, когда техническая сторона вопроса успешно решена, обращаюсь к разуму лора: чего ещё интересного можно запилить в синтаксис?

★★★

Ну мне например в яве крайне не хватает арифметических операций для BigInteger и BigDecimal.

Nagwal ★★★★
()
Ответ на: комментарий от Nagwal

Это придётся уже не синтаксис править, а стандартные библиотеки. С этой частью функциональности я пока не разобрался. Вообще можно попробовать добавить перегрузку операторов для пользовательских классов.

Sadler ★★★
() автор топика
Последнее исправление: Sadler (всего исправлений: 2)

в MPS можно смешивать языки, т.ч. кучу полезного синтаксиса уже запилили

ну и да, baseLanguage - это не совсем ява

stevejobs ★★★★☆
()

В MPS нельзя менять синтаксис. MPS работает непосредственно с AST, и не умеет парсить текст.

anonymous
()
Ответ на: комментарий от stevejobs

ну и да, baseLanguage - это не совсем ява

А baseLanguage.jdk7 ? :)

Sadler ★★★
() автор топика
Ответ на: комментарий от anonymous

можно распарсить текст самостоятельно и заюзать custom persistance

stevejobs ★★★★☆
()
Ответ на: комментарий от metadeu5

За silent надо сразу руки отрывать.

Максимализм такой максимализм. Как будто если написать try..catch с кучей пустых обработчиков, оно будет лучше. Только выглядеть будет убого,не более.

Sadler ★★★
() автор топика
Последнее исправление: Sadler (всего исправлений: 1)
Ответ на: комментарий от Sadler

Почему бы просто не кидать исключение? Синтаксис вообще менять не надо, просто убрать концепцию checked exceptions и сделать все исключения unchecked.

Legioner ★★★★★
()
Ответ на: комментарий от Legioner

просто убрать концепцию checked exceptions и сделать все исключения unchecked.

Во-первых, не сильно-то это просто (в отличие от добавления ключевого слова). Во-вторых, я уже работал с языком, где сделано так: delphi. Больше не хочу. Конструкция создана не для того, чтобы оборачивать в неё всё подряд, лишь для отдельных случаев.

Sadler ★★★
() автор топика
Ответ на: комментарий от metadeu5

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

Я использую java как инструмент прототипирования, экспериментальную платформу, на которой можно быстро реализовать придуманный метод/алгоритм, а не как энтерпрайзное нечто. Поэтому я ставлю своё удобство выше всяких там «фи».

Sadler ★★★
() автор топика
Последнее исправление: Sadler (всего исправлений: 2)
Ответ на: комментарий от Sadler

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

Попросите доктора увеличить дозу транквилизатора.

metadeu5
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.