![]() |
|
Модераторы: powerfox, ZeeLax |
![]()
|
|
| GrayCardinal |
|
|||
|
Фигасе ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3039 Регистрация: 9.11.2003 Репутация: 18 Всего: 58 |
Трудящимся посвящается...
на http://www.sourceforge.net/projects/silentbob вы можете слить новую версию SilentBob. (dlib/gclib не ищите, их больше нет). По сравнению с SilentBob-1.3 : + Все лайбы собраны в один пакет. + Все собирается ./configure, Scons'ом, AAP'ом, или Bash'ем, кому как больше нравится. + Все (кроме плагинов) ставится в любое место [по просьбе трудящихся]. + Устранены траблы с отсутствующими файлами и некоторыми другими проблемами сборки. + Стабильная система плагинов. Добавление плагина сводится к правке шаблона. + Новая опция "--lang cpp". С ней SilentBob должен лучше обрабатывать Си++. Тестовая фишка. + Хеп-сорт. Худший (по времени) случай сортировки тэгов теперь лучше чем старый лучший. В общем, задержки с сортировкой убрал. + Рабочее (!) распараллеливание --make-ctags [-j N]. + Опция -c, как синоним --make-ctags + Опция -f, как синоним --cfiles + Весь код перетрясен. Добавлено больше цинизма, убрано/переименовано лишнее. + Русский текст про то как надо юзать Боба. Плюс текст как его ЗАюзать. + ЧаВо'шка. Претензии с Yacc больше не принимаю. + Английский man. Спасибо Sardar'у. + deb пакет. Бинарный вариант моей сборки доступен на означенном выше сайте. Хотя... Это скорее Бобик в deb-формате... Так же вы можете собрать свой с сырцов (они имеют каталог "debian"). + Убита поддержка файла ctags от exuberant-ctags. Достал. + Пяток "левых" плагинов для сборки Бобика Бобиком, но они, кажись, никому не мешают. Enjoy ! С любовью из Сибири, Oleg aka GrayCardinal. graycardinalster dog gmail dot com Это сообщение отредактировал(а) GrayCardinal - 25.6.2007, 12:24 |
|||
|
||||
| Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 4 Всего: 317 |
Такое пояснение настораживает Не нашёл. Почему полноценный LALR парсер типа bison'а тебе не подходит? Не шучу, реально любую инфу можно собрать, файлы с грамматиками тоже готовы. -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
| GrayCardinal |
|
|||
|
Фигасе ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3039 Регистрация: 9.11.2003 Репутация: 18 Всего: 58 |
Sardar,
А оно и должно... настораживать doc/* смотрел Sardar, Инфу можно собрать любую. Даже SilentBob'ом. Причем с SilentBob'ом все будет проще и циничней С Bison'ом (как я себе это представляю) : 1. Заводишь парсер. 2. Заводишь парсер. 3. Заводишь парсер. .... N. Пишешь итератор по операторам, в котором : N.1 Пара ифов (!) выборки того, что тебе надо. N.2 Вывод на экран.... C SilentBob : 1. Читаешь файло (весь). 2. Убираешь мусор (препроцессором) и получаешь привязку оператор > реальная строка. 3. Прокручиваешь операторы, с теми же (!) двумя if'ами. 4. Вывод на экран.... Знаешь как писался плагин для Perl ? Тупо copy/paste'им шаблон модуля, вставляем : if (EQ (... , "sub")) { <вывод тэга> } Усе. Вот объясни мне, плиз, по-русски, зачем платить больше |
|||
|
||||
| Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 4 Всего: 317 |
Я часа в 3 ночи бывает глючу... даже исходники перебрал, doc в упор не видел...
Не совсем, полноценный парсер позволяет точно сказать чем является прочитанная конструкция. Потребляется весь вход и по правилам свёртки (для LALR) определяем что есть что. Определяем, это значит на конкретных правилах вызывается твой код, который может делать что угодно. Парсер без твоего кода просто проверит синтаксис. Полноценный парсер не любит ошибок синтаксиса, но с не большими переделками (восстановление с последнего правильного контекста) может схавать что угодно, естественно за точность тогда ручаться не приходиться. Вывод: никаких if'ов, либо строишь AST дерево, либо (в твоём случае лучше) простой интерфейс с consume*(token) методами (consumeFunctionDef(name), consumeFunctionCall(name) etc). -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
| GrayCardinal |
|
|||
|
Фигасе ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3039 Регистрация: 9.11.2003 Репутация: 18 Всего: 58 |
Sardar,
Да понял я, понял
Оно мне надо ? Я если класс не нахожу (такое случалось в первых версиях Боба), я беру cgrep ......... Он мне хоть черта лысого найдет Кстати, почти все, что ты говорил про Java'у делается ... тем же cgrep'ом А надо будет мне в Perl'овском коде вызовы функций искать (контекст отслеживать, аналогично как сейчас для Си делается), думаешь не прикручу ? Единственно с чем будет... задержка... с вызовами без скобок... Но это такая мелочь... Особенно после того как научился конец регулярки находить |
|||
|
||||
| GrayCardinal |
|
|||
|
Фигасе ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3039 Регистрация: 9.11.2003 Репутация: 18 Всего: 58 |
Sardar, давай так (чтоб не пререкаться, а мыслить конструктивно) -
Какие мои проблемы может решить использование обсуждаемых монстров ? На сколько это будет медленно ? На сколько код, написанный для одного языка будет адекватен для другого (при юзании тех же Yacc/Bison, или что там у тебя) ? Где ты используешь означенных монстров ? (успешно ?) |
|||
|
||||
| Sardar |
|
||||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 4 Всего: 317 |
Я не знаю ограничений Боба Это не будет медлено, а на средних и больших грамматиках гораздо быстрей чем собственноручно налабанные if'ы (читаем про автоматы, графы).
Парсер и эмиттер сущностей для каждого языка будут свои, ведь в разных языках нужна разная инфа. Интерфейсы едины. Ядро боба должно будет только уметь эффективно (для поиска, SQLite3 хорошо подойдёт) сохранят сущности, выброшенные парсером. Базовая сущность не имеет функционального интерфейса, но они собираются в классы сущностей, например Callable для функций, методов, closure и т.д. Затем общие и специальные плагины достают и строят из сущностей инфу. Это очень гибко, но не совместимо с ctags, значит придётся отдельно экспортировать с потерей функционала. Прямо сейчас я пишу интерпретатор Forthy языка, это эзотерический язык программирования, с лабанный на Java что бы доказать доценту, что нет предела изврату Школьный проект совсем детский, консольная игрушка на Java, я её на своём Forthy пишу. Жутко не удобно, но пишется. Язык был придуман за 8 часов, стек-ориентированный (как Forth, отсюда название), поддерживает обьекты и closure (также как JS). Линкуется всё, кроме вызовов методов на этапее компиляции, т.е. в рантайме имён уже нет. Байткод всего из 15 инструкций (все вычисления на словах). На Java не завязан, но ради удобстава прототип на ней. Сейчас переписывается компилер, добавляются пара фичь, ибо время дали дополнительное до вторника Это мой первый реально писанный парсер/компилер, обычно я такой фигнёй не страдаю -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
||||
|
|||||
| GrayCardinal |
|
|||
|
Фигасе ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3039 Регистрация: 9.11.2003 Репутация: 18 Всего: 58 |
Sardar,
Оценил шутку Знаешь, ты меня почти убедил... "Почти" - в смысле _сейчас_ не буду с криками "банзай" на означенных монстров... Эх, жалко у нас в технаре про бизонов не рассказывают Пойти в луговку сходить, что-ли ? Ай, ладно, разберемся... ЗЫ Для тех кто в танке - все работает уже сейчас, только мне танк предлагают вместо кувалды, а я отнекиваюсь как могу |
|||
|
||||
| Vaulter |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1724 Регистрация: 30.12.2002 Где: бункер Репутация: нет Всего: 22 |
ребята, напишите вторую 1с...
капусту стричь а? |
|||
|
||||
| GrayCardinal |
|
|||
|
Фигасе ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3039 Регистрация: 9.11.2003 Репутация: 18 Всего: 58 |
Vaulter,
Пока занят, нафиг. В фазане парюсь А ваще мысля хорошая |
|||
|
||||
| GrayCardinal |
|
|||
|
Фигасе ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3039 Регистрация: 9.11.2003 Репутация: 18 Всего: 58 |
Вышел Бобик 1.5
Из вкусного : Поддержка -j N для всего (--cgrep, --grep, --make-ctags, --call-tags). А так же поддержка Си++ (опция --lang cpp). Из внутренностей : препроцессор обернут в простой (даже примитивный) класс. Да, так же деб пакет присутствует... Plug and Enjoy. http://sf.net/projects/silentbob |
|||
|
||||
| bilbobagginz |
|
|||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: 14 Всего: 317 |
Вещий ГрейКардинал, Респект вам, блин!
З.Ы. И чего это я должен прощать-то ? Этому сабжу место тут ну и пропиарить надо бы надо это дело по всему интернету. -------------------- Я ещё не демон. Я только учусь. |
|||
|
||||
| GrayCardinal |
|
|||
|
Фигасе ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3039 Регистрация: 9.11.2003 Репутация: 18 Всего: 58 |
bilbobagginz,
А по-конкретнее (за что респект) ? |
|||
|
||||
| bilbobagginz |
|
|||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: 14 Всего: 317 |
да посмотрел на код. очень даже хороший код!
-------------------- Я ещё не демон. Я только учусь. |
|||
|
||||
| GrayCardinal |
|
|||
|
Фигасе ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3039 Регистрация: 9.11.2003 Репутация: 18 Всего: 58 |
Хех.
Вопрос назасыпку. ГУЮ прикручивать ? А то меня сомнения терзают |
|||
|
||||
![]()
|
| Правила форума "Linux/UNIX: Клуб юнуксоидов" | |
|
|
Что такое клуб юнуксоидов? Это место более свободного общения специалистов и любителей *NIX систем. Новичкам: Этот раздел предназначен в основном именно для общения а не решения проблем. Правила всего раздела Linux/UNIX сюда не распространяются, но здесь имеются свои правила:
Короче, по репе получите по полной программе ;-) Happy hacking! Спасибо. И use UNIX or die; С уважением, nerezus, nickless, powerfox, pythonwin, Imple, ZeeLax. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Клуб юнуксоидов | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |