Господа, помню я, что кто то заморачивался разбором кода и его обработкой. Подскажите, если не жалко, какой библиотекой вы пользовались? А то надоел мне стандартный рефакторинг в ABAP. неправильно они его готовят...
Господа, помню я, что кто то заморачивался разбором кода и его обработкой. Подскажите, если не жалко, какой библиотекой вы пользовались? А то надоел мне стандартный рефакторинг в ABAP. неправильно они его готовят...
Самому написать свой парсер своего кода и что то с результатом сделать?
Курильщик подсказал использовать метод конечных автоматов, а я нашел готовую библиотеку jflex для этих автоматов. После чего успешно все внедрилось.
http://jflex.de
Кратко мой опыт тут
Трабла с подписанием SSL сертификата #74
вот вот я же помню, что вы чем то таким занимались
я неправильно понимаю, что jflex только для java кода? или .flex можно написать и для другого языка тоже?
(3) неправильно понимаете.
jflex разберет абсолютно любой код X, семантику которого вы зададите в .flex. Но сам jflex сделан на java и поэтому разборщик-парсер этого кода X должен быть сделан на Java
Ну или разборщик парсер (с использованием jflex) должен быть сделан на чем нибудь, что легко может подгрузить и использовать классы java
(5) оке оке. Поскольку я всё это хочу в эклипс плагин запихать, то парсер сделать в виде java проекта не будет сложно. Есть конечно искушение просто написать интерфейс между ABAP сервером и jflex и запустить JAVA поток прям в нетвивере - но я наверное это искушение переборю...
кто же спорит. IDEA бы мне очень подошла. Плагин для абапа в идее был бы для меня как для программиста просто идеален
Две проблемы. Проблема номер раз (гигантская) - никто пока не написал плагина для ABAP в IDEA. В 2014м году было предложение - но воз и ныне там. Был бы я сапом, я бы просто купил JetBrains. Но я не сап. Лицензионно это сделать наверное можно, но [...]
Проблема номер два(маленькая) - IDEA платная для коммерческого использования. зачем мне ограничивать коммюнити?
Upd. убираю вторую проблему. про community editionя не знал
Если у тебя уже есть готовый плагин абап для эклипса, то тогда там скорее всего уже есть свой лексикосинтаксический анализатор наподобии jflex. И тебе нужно просто модернизировать этот плагин, улучшив рефакторинговую логику, а не начинать с нуля
(14) ну. У меня есть абап код в эклипсе в плагине от сапа. Я напишу свой плагин, который по нажатии кнопочки этот код прочитает, распарсит и внесёт необходимые мне изменения. Вроде бы добрый сап это разрешает
А вот в IDEA у меня абап код никаким образом не появится (ну то есть если я уйду в себя на год, то может и появится. На накой надо - мне за это не заплатят)
Будешь автором первого абап плагина для идеи. Слава, почет, красивая строчка в резюме, донаты
sda553 Будешь автором первого абап плагина для идеи. Слава, почет, красивая строчка в резюме, донаты
в абапе около 1000 ключевых слов. Я с ума сойду такой плагин писать
Ну и лучше начать с малого - научиться парсить OO часть абапа c тем синтаксисом, которым я пользуюсь (я не люблю когда ключевых слов много ). я так понимаю, эта часть будет релевантна в любом случае, буде мне захочется потом её в IDEA перетащить
(19) разумеется, я же не чирикаю )
да меня в общем и целом устраивает саповский плагин. можно конечно же было бы и лучше его написать - но уж что есть (эх.... IDEA... ням ням ням)
раздражает вот что он все переменные в начале метода объявляет. и ислючения вручную приходится объявлять. думаю обойтись малой кровью.
Ну и строчка в резюме, куда уж без этого
А вот это случайно не абаповский flex готовый?
https://github.com/ba0f3/nim-idea/blob/master/src/main/flex/nim.flex
sda553 А вот это случайно не абаповский flex готовый?
https://github.com/ba0f3/nim-idea/blob/master/src/main/flex/nim.flex
не. это для некоего языка nim
https://nim-lang.org/
нашёл вот типа парсер для Sublime
https://github.com/PavelJaros/ABAP-Sublime-Plugin