|   |   | 
| 
 | OFF: Antlr для разбора 1С | ☑ | ||
|---|---|---|---|---|
| 0
    
        TimonXPumbA 25.03.12✎ 19:06 | 
        Привет.
  Существуют ли готовые шаблоны разбора 1С кода для antlr? Есть ли другие готовые способы разобрать код 1с? | |||
| 1
    
        Aleksey 25.03.12✎ 19:11 | 
        Зачем? Точнее в какой код вы собрались преобразовывать?     | |||
| 2
    
        Aleksey 25.03.12✎ 19:12 | 
        Без отрыва от объектов, зачастую код на языке 1С не имеет смысла. Конечно если это что-то чуть сложнее чем hello world.     | |||
| 3
    
        H A D G E H O G s 25.03.12✎ 19:15 | ||||
| 4
    
        TimonXPumbA 25.03.12✎ 19:16 | 
        (1)
  мне нужно полноценное AST-дерево кода на 1С. Есть ли доступные правила и описание синтаксиса 1C в каком-либо формате? | |||
| 5
    
        Aleksey 25.03.12✎ 19:17 | 
        Диплом что ли?     | |||
| 6
    
        Новиков 25.03.12✎ 19:17 | 
        форумом ошибся     | |||
| 7
    
        Aleksey 25.03.12✎ 19:18 | 
        Т.е. ты книгу из 4 страниц мелким почерком хочешь построить в виде дерева? А не заблудишься в этом лесу?     | |||
| 8
    
        Aleksey 25.03.12✎ 19:18 | 
        (6) +1     | |||
| 9
    
        TimonXPumbA 25.03.12✎ 19:20 | ||||
| 10
    
        H A D G E H O G s 25.03.12✎ 19:21 | 
        (9) Это я там был.
  Ну а своим языком, чо это? | |||
| 11
    
        Aleksey 25.03.12✎ 19:21 | 
        (9) Повторяю вопрос. Для каких целей? Кроме Just for fun, трудно найти применение тех букв что вы тут пишите     | |||
| 12
    
        H A D G E H O G s 25.03.12✎ 19:23 | 
        (11) Еще труднее ПОНЯТь значение этих буков.     | |||
| 13
    
        TimonXPumbA 25.03.12✎ 19:24 | 
        Что за вопросы?
  Мне нужен человек, который работал с разбором кода на 1С. Ненужно устраивать дискусии зачем и почему на такой простой вопрос. | |||
| 14
    
        kryptonite 25.03.12✎ 19:24 | 
        надо же.. некто из http://habrahabr.ru/post/140179/ несколько месяцев в качестве хобби пишет парсер пхп.
  как скучно я живу.. | |||
| 15
    
        Aleksey 25.03.12✎ 19:25 | 
        (13) А что его разбирать, тут все с кодом 1С разбираются. Ты не умничай, ты пальцем покажи что хочешь     | |||
| 16
    
        H A D G E H O G s 25.03.12✎ 19:27 | 
        "Чукча, ты мне не гав, ты собак покорми и смотри - руками ничего не трогай"!     | |||
| 17
    
        Aleksey 25.03.12✎ 19:29 | 
        опять с Баша:
  "В своей деятельности я придерживаюсь инженерного подхода, а не научного. Но вот сомнения стали одолевать... Лет пять назад выпала мне халтурка — написать парсер не сильно прямого языка — объектно-ориентроанного расширения SQL. Порекомендовали меня одной конторе, поскольку их штатный программер просидел над этим делом год, нарисовал много схем и, доказав, что это контекстно-зависимая и не LR грамматика, заявил, что быстро написать парсер — дело неподъемное. Я не стал научно доказывать возможность или невозможность, выкинул ANTLR, взял старый добрый bison написал на коленке грамматику, добавил ручками переключение контекстов... Неделя работ. Остальные два месяца занимался стилем форматирования выходного файла. А потом задумался. Штатный программер получил никак не меньше 15000 баксов, и работа осталась "неиспорченной". Такую работу можно было еще работать и работать. А я, как урод, решил проблему за жалкие 2 штуки. Ну и кто после этого дурак?" (с) со старой пятничной ветки | |||
| 18
    
        Aleksey 25.03.12✎ 19:31 | 
        Автор, это я к тому что может у тебя подход неправильный?     | |||
| 19
    
        TimonXPumbA 25.03.12✎ 19:32 | 
        я ошибся, это низкоквалифицированный форум.
  /"А что его разбирать, тут все с кодом 1С разбираются/" ты явно не знаешь что такое AST-дерово и для чего оно нужно. Сайонара. | |||
| 20
    
        H A D G E H O G s 25.03.12✎ 19:32 | 
        Чмоки     | |||
| 21
    
        Aleksey 25.03.12✎ 19:33 | 
        (19) Потому что оно в 1С и даром не тарахтела. И перефразируя слова из рекламы, "Умным надо быть, а не казаться". От того что ты знаешь много умных слов - умнее не станешь     | |||
| 22
    
        TimonXPumbA 25.03.12✎ 19:34 | 
        Так у тебя есть тот самый файл с грамматикой на bison?     | |||
| 23
    
        TimonXPumbA 25.03.12✎ 19:34 | 
        Я поспешил с оскорблениями.     | |||
| 24
    
        TimonXPumbA 25.03.12✎ 19:36 | 
        Antlr удобнее потому что уже с ним работал.
  Сейчас я заинтересован в готовой грамматике для 1С кода. | |||
| 25
    
        Aleksey 25.03.12✎ 19:40 | 
        (22) Слово баш о чем то говорит?
  (23) Опять оттуда Из хабра: прочитал GoF, всего Фаулера, 3-томник Кнута, пересобрал FreeBSD дома, создал с друзьями Agile-группу разработки ММОРПГ, поездил по конференциям, пожал лично руку Торвальдсу пришел устраиваться на работу: — 1С знаете? — … 0_о — До свидания (с) баш | |||
| 26
    
        Aleksey 25.03.12✎ 19:41 | 
        (24) Вот только проблема, врядли здесь найдешь человека которому это нужно     | |||
| 27
    
        TimonXPumbA 25.03.12✎ 19:42 | 
        Я не работаю в области 1С. Разбор нужен для других иследовательских целей. Ты можешь поделиться своими bison наработками? С коммерцией ничего не связано. У тебя есть возможность поделиться своми наработками с открытым миром, разместив их на github.     | |||
| 28
    
        Aleksey 25.03.12✎ 19:43 | 
        (27) Чукча не читатель, чукча писатель?
  Нет у меня нет наработок на bison | |||
| 29
    
        TimonXPumbA 25.03.12✎ 19:46 | 
        Оскорбления были оправданы.     | |||
| 30
    
        Aleksey 25.03.12✎ 19:48 | 
        (29) Да ты угадал, здесь сидят ленивые, низкоквалифицированные быдла.
  А ты с какого района? Что такой борзый? Семки есть, голубей покормить? | |||
| 31
    
        Jolly Roger 25.03.12✎ 19:49 | ||||
| 32
    
        spock 25.03.12✎ 19:49 | 
        (19)Грубо, но в большинстве оправданно.
  Вот тут пробегало, но неполноценно и старо: http://yandex.ru/yandsearch?clid=9582&text=V8GPGrammar.rar&lr=65 | |||
| 33
    
        Эмбеддер 25.03.12✎ 19:50 | 
        (29) Тут в основном газелисты тусуются     | |||
| 34
    
        quest 25.03.12✎ 19:54 | 
        сделаешь - скажи. Могу скинуть свои наработки. правда мало их :) как обычно на хобби не хвататет времени     | |||
| 35
    
        Астероид 25.03.12✎ 19:56 | 
        когда конфу начнете компилировать в исполняемый файл, позовите.     | |||
| 36
    
        quest 25.03.12✎ 19:58 | 
        (35) а нафига?????     | |||
| 37
    
        TimonXPumbA 25.03.12✎ 20:06 | 
        Спасибо за ответы, господа.
  (34) Отправь свои наработки на yeah_wow@mail.ru. | |||
| 38
    
        Астероид 25.03.12✎ 20:11 | 
        ахаха https://www.google.ru/search?sourceid=chrome&ie=UTF-8&q=yeah_wow%40mail.ru гугл знает все :)     | |||
| 39
    
        Immortal 25.03.12✎ 20:15 | 
        предлагаю написать автоопределитель дятлов     | |||
| 40
    
        Immortal 25.03.12✎ 20:15 | 
        для проверки использовать автора топика     | |||
| 41
    
        Aleksey 25.03.12✎ 20:18 | 
        (40) Простите, в качестве эталона чего предлагаешь использовать автора ветки? 
  Нет, теоретически я догадываюсь в качестве чего, но хотелось бы уточнить" | |||
| 42
    
        kotletka 25.03.12✎ 20:23 | 
        (39)такой определитель уже есть, он сбивает их палками     | |||
| 43
    
        syktyk 25.03.12✎ 21:12 | 
        Мракобесы.     | |||
| 44
    
        Torquader 25.03.12✎ 21:14 | 
        На самом деле, в 1С несколько языковых конструкций, но очень много операторов, которые зависят от контекста переменной, а так как тип переменной нигде явно не определяется, то применять какой-то парсер практически бессмысленно, так как он не сможет вообще дать ответ применим ли тот или иной метод для этого объекта.
  Также не стоит забывать, что в 1С есть Goto и хотя это считается дурным тоном, но они частенько используются, чтобы не плодить сложных условий. Также нужно понимать, что большинство "системных" методов 1С работает через её родную библиотеку, и использование их в отрыве от неё будет практически бессмысленно, так как исходные коды закрыты. | |||
| 45
    
        andrewks 25.03.12✎ 21:57 | 
        (44) что ты имеешь в виду под "но очень много операторов, которые зависят от контекста переменной"?  сложение/конкатенацию?     | |||
| 46
    
        Кирпич 25.03.12✎ 23:02 | 
        (0) возьми lex и yacc. мне нравится lapg http://lapg.sourceforge.net/
  если можно заработать, то у меня готовое уже есть(в смысле разбор кода 1с) | |||
| 47
    
        Кирпич 25.03.12✎ 23:04 | 
        (44) какой наивный парень :)     | |||
| 48
    
        xReason 25.03.12✎ 23:08 | 
        Кирпич. привет, ты не Леха?     | |||
| 49
    
        Кирпич 25.03.12✎ 23:10 | 
        (48) не, я Санёк     | |||
| 50
    
        Deon 25.03.12✎ 23:12 | 
        (48)(49) О! первые 2 сообщения, которые я понял )     | |||
| 51
    
        Кирпич 25.03.12✎ 23:13 | 
        (50) тебе по году рождения понимать не положено )     | |||
| 52
    
        Deon 25.03.12✎ 23:14 | 
        (51) Я ж не 86! Не путай     | |||
| 53
    
        Кирпич 25.03.12✎ 23:16 | 
        (52) и правда. извини )     | |||
| 54
    
        xReason 25.03.12✎ 23:17 | 
        просто у меня друган, у него фамилия - Кирпичев     | |||
| 55
    
        Torquader 25.03.12✎ 23:21 | 
        (45) Просто, если, например, в переменной А у нас справочник, то к нему применимо свойство Code, а если там документ, то DocNum и т.д.
  То есть для того, чтобы разобрать код 1С, его нужно исполнять, чтобы знать тип переменной, который известен только во время исполнения. Плюс ещё вставки для работы с OLE-объектами, и для некоторых вообще описание получается из документации к объекту - а код при этом работает, так как IDispatch, в принципе, в описании не нуждается. | |||
| 56
    
        Кирпич 25.03.12✎ 23:28 | 
        (55) ну так вроде нужно только код разобрать, а не угадать какого типа переменные     | |||
| 57
    
        Кирпич 25.03.12✎ 23:29 | 
        да и угадать можно. телепат вон угадывает в семерке и ничо.     | |||
| 58
    
        Torquader 25.03.12✎ 23:52 | 
        (56) Просто "разобрать" код, если неизвестен тип переменной, можно, но результат будет странный, например, метод NewLine (НоваяСтрока), есть у документа и у таблицы значений - действия немного различаются. Когда в контексте вызова не ясно, к какому объекту применяется действие - сложно понять его результат.
  С другой стороны, число методов каждого объекта конечно, а сложных присваиваний, операций на стеке, и прочего в 1С нет, так что можно перевести слова в номера методов. | |||
| 59
    
        orefkov 26.03.12✎ 01:44 | 
        (0)
  Для семерки же полно валяется, возьми за основу и доточи до V8. Изменений то немного - директивы &НаКлиенте и т.п., Новый, Для Каждого, да обращение по индексу через []. | |||
| 60
    
        orefkov 26.03.12✎ 01:46 | 
        +(59)
  Хотя еще булевы выражения добавились. | |||
| 61
    
        Кирпич 26.03.12✎ 08:16 | 
        (58) что за научный бред? какая нафиг разница, что там за методы у таблицы значений и у документа? нужно разобрать код и построить дерево. остальное в процессе выполнения.     | |||
| 62
    
        NcSteel 26.03.12✎ 08:20 | 
        Присоединяюсь к тупым .
  Скажите а нах*я? | |||
| 63
    
        andrewks 26.03.12✎ 08:21 | 
        (55) ну дык вроде про компиляцию не озвучивалось (да и какая тут может быть компиляция?)     | |||
| 64
    
        andrewks 26.03.12✎ 08:21 | 
        (61) +1     | |||
| 65
    
        orefkov 26.03.12✎ 08:27 | 
        (62)
  Ну, например чтобы сделать нормальный интеллисенсе в Конфигураторе. Ты с семеркой не работал наверное, так что Телепат мимо тебя прошел. | |||
| 66
    
        andrewalexk 26.03.12✎ 08:30 | 
        :) черт...он нас раскрыл...мы низкоквалифицированные программисты...     | |||
| 67
    
        NcSteel 26.03.12✎ 08:30 | 
        (65) Спасибо.     | |||
| 68
    
        andrewalexk 26.03.12✎ 08:30 | 
        (65) :) кстати а в 8 нет телепата?     | |||
| 69
    
        Астероид 26.03.12✎ 08:31 | 
        (66) конфигурасты     | |||
| 70
    
        Новиков 26.03.12✎ 08:37 | 
        я так понъял - это фишку оценят те, кто работал в конфигураторе 7-ки! Там какой то интелисенс есть продвинутый!
  Хоть бы скрины хоть кто пропалил, порадовал дедушку! | |||
| 71
    
        orefkov 26.03.12✎ 08:42 | 
        (68)
  есть, но платный. | |||
| 72
    
        orefkov 26.03.12✎ 08:44 | 
        (70)
  Это сарказм? Штатный 8ый подсказчик и рядом с клюшечным не валялся. | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |