а подскажите библиотеку для разбора исходного кода

  1. 5 г. назад
    04.09.2018 11:09:37 отредактировано ЗлобнийМальчик

    Господа, помню я, что кто то заморачивался разбором кода и его обработкой. Подскажите, если не жалко, какой библиотекой вы пользовались? А то надоел мне стандартный рефакторинг в ABAP. неправильно они его готовят...

  2. Самому написать свой парсер своего кода и что то с результатом сделать?
    Курильщик подсказал использовать метод конечных автоматов, а я нашел готовую библиотеку jflex для этих автоматов. После чего успешно все внедрилось.
    http://jflex.de

  3. Кратко мой опыт тут
    Трабла с подписанием SSL сертификата #74

  4. вот вот я же помню, что вы чем то таким занимались
    я неправильно понимаю, что jflex только для java кода? или .flex можно написать и для другого языка тоже?

    Ответы: (4)
  5. 04.09.2018 11:46:51 отредактировано Сид Вишес

    (3) неправильно понимаете.
    jflex разберет абсолютно любой код X, семантику которого вы зададите в .flex. Но сам jflex сделан на java и поэтому разборщик-парсер этого кода X должен быть сделан на Java

  6. 04.09.2018 11:48:28 отредактировано Сид Вишес

    Ну или разборщик парсер (с использованием jflex) должен быть сделан на чем нибудь, что легко может подгрузить и использовать классы java

    Ответы: (6)
  7. 04.09.2018 11:52:30 отредактировано ЗлобнийМальчик

    (5) оке оке. Поскольку я всё это хочу в эклипс плагин запихать, то парсер сделать в виде java проекта не будет сложно. Есть конечно искушение просто написать интерфейс между ABAP сервером и jflex и запустить JAVA поток прям в нетвивере - но я наверное это искушение переборю...

    Ответы: (8) (10)
  8. (6) Может лучше все таки IDEA? Eclipse - бяка

    Ответы: (10)
  9. https://habr.com/post/112749/

  10. 04.09.2018 12:14:06 отредактировано ЗлобнийМальчик

    sda553 (6) Может лучше все таки IDEA? Eclipse - бяка

    кто же спорит. IDEA бы мне очень подошла. Плагин для абапа в идее был бы для меня как для программиста просто идеален
    Две проблемы. Проблема номер раз (гигантская) - никто пока не написал плагина для ABAP в IDEA. В 2014м году было предложение - но воз и ныне там. Был бы я сапом, я бы просто купил JetBrains. Но я не сап. Лицензионно это сделать наверное можно, но [...]
    Проблема номер два(маленькая) - IDEA платная для коммерческого использования. зачем мне ограничивать коммюнити?

  11. Upd. убираю вторую проблему. про community editionя не знал

  12. 04.09.2018 12:48:03 отредактировано Сид Вишес

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

    Ответы: (13)
  13. 04.09.2018 12:50:16 отредактировано ЗлобнийМальчик

    (12) плагин есть, но он не Open source и вообще написан сапом. я не могу туда изменения вносить. это будет та ещё засада перехватывать обработку событий...

    Ответы: (14)
  14. 04.09.2018 13:16:53 отредактировано sda553

    (13) А если так то к чему вообще проблема номер 1? Если на эклипсе та же самая проблема: плагин есть, а толку никакого

    Ответы: (15)
  15. 04.09.2018 13:20:43 отредактировано ЗлобнийМальчик

    (14) ну. У меня есть абап код в эклипсе в плагине от сапа. Я напишу свой плагин, который по нажатии кнопочки этот код прочитает, распарсит и внесёт необходимые мне изменения. Вроде бы добрый сап это разрешает

    А вот в IDEA у меня абап код никаким образом не появится (ну то есть если я уйду в себя на год, то может и появится. На накой надо - мне за это не заплатят)

    Ответы: (17)
  16. Будешь автором первого абап плагина для идеи. Слава, почет, красивая строчка в резюме, донаты

    Ответы: (18)
  17. (15) вступил в говно - сиди и не чирикай )

    Ответы: (19)
  18. 04.09.2018 14:02:16 отредактировано ЗлобнийМальчик

    sda553 Будешь автором первого абап плагина для идеи. Слава, почет, красивая строчка в резюме, донаты

    в абапе около 1000 ключевых слов. Я с ума сойду такой плагин писать
    Ну и лучше начать с малого - научиться парсить OO часть абапа c тем синтаксисом, которым я пользуюсь (я не люблю когда ключевых слов много ). я так понимаю, эта часть будет релевантна в любом случае, буде мне захочется потом её в IDEA перетащить

  19. 04.09.2018 14:03:01 отредактировано ЗлобнийМальчик

    (17) это вы мне сейчас из конфигуратора 1С написали? ;)

    Ответы: (20)
  20. (19) разумеется, я же не чирикаю )

  21. да меня в общем и целом устраивает саповский плагин. можно конечно же было бы и лучше его написать - но уж что есть (эх.... IDEA... ням ням ням)
    раздражает вот что он все переменные в начале метода объявляет. и ислючения вручную приходится объявлять. думаю обойтись малой кровью.
    Ну и строчка в резюме, куда уж без этого

  22. А вот это случайно не абаповский flex готовый?
    https://github.com/ba0f3/nim-idea/blob/master/src/main/flex/nim.flex

    Ответы: (23)
  23. sda553 А вот это случайно не абаповский flex готовый?
    https://github.com/ba0f3/nim-idea/blob/master/src/main/flex/nim.flex

    не. это для некоего языка nim
    https://nim-lang.org/

  24. нашёл вот типа парсер для Sublime
    https://github.com/PavelJaros/ABAP-Sublime-Plugin

или зарегистрируйтесь чтобы ответить!