LINUX.ORG.RU

Antlr для разбора 1С


0

1

Привет.

Существуют ли готовые шаблоны разбора 1С кода для antlr? Есть ли другие готовые способы разобрать код 1с? Я видел в старых темах анонимуса, который писал правила для antlr, но это был 2010 год.

Ответ на: комментарий от baverman

AST.toStringTree() | indent for CL/scheme | macros для раскручивания в CL/scheme | конпеляция этого лиспа в нативный код (sbcl), или через Си (scheme)

anonymous
()
Ответ на: комментарий от yeah_wow

неспешно пилю грамматику just4fun. c юнит-тестами через gUnit, анализом семантики, все дела. сядь и напиши, забава занятная — заодно и ANTLR понятнее станет. из готового есть что-то на сайте Вакуленко http://vak.ru/doku.php/proj/lang/vasic , но тама парсер самописный, хотя и на православном Ди.
В идеале хочется из распарсенной грамматики печатать АСТ в виде S-выражений, лисп-макрами конпелировать в сишечку через scheme и написать оболочку на Qt/C++ (или самописную на D/Vala).
Поверх этого нужен нормальный фреймворк с тестированием производительности. Внешняя комонента с замером хронометража. Затем басик транслируется в свою недоплатформу, делается замер хронометража, и недоплатформа допиливается до аналогичной прототипу. Смотрим хронометраж, видим ускорение за счёт конпеляции (ну и недоплатформу поумнее можно сделать) — ПРОФИТ.

anonymous
()
Ответ на: комментарий от VladimirMalyk

хня это, а не объектная модель. в вижуалбасике и то круче было — можно было свои .ocx на том же басике писать. оберон вот тоже интересно сделан. а 1С++ воопче костыль. с метапрограммированием во все поля интереснее можно сделать, и любую другую объектную модель прикрутить. но это будет уже не совсем прототип, да. как пример нормальной реализации идеи можно посмотреть 2C — там сами базовые объекты на этом же языке написаны (т.е., объект ТаблицаЗначений, ТаблицаSQL и т.п.) — система расширяема. другое дело, что 2C к MFC гвоздями прикручен, хотя ниосиляторы пилят qt1L. И ананас, и qt1L функционально сосут — эти базовые объекты тупо не реализованы, в отличие от того же 2С.

anonymous
()
Ответ на: комментарий от anonymous

есть что-то на сайте Вакуленко http://vak.ru/doku.php/proj/lang/vasic , но тама парсер самописный, хотя и на православном Ди

парсер на lemon. не очень интересно — ковыряю ANTLR и паралелльно PEGи.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.