Имя: Пароль:
LIFE
 
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)
Отправь свои наработки на [email protected].
38 Астероид
 
25.03.12
20:11
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ый подсказчик и рядом с клюшечным не валялся.
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.