Синтаксический анализатор

21.09.12

Разработка - Инструментарий разработчика

Преобразует выражение на встроенном языке 1С:Предприятие в дерево значений, выделяя и интерпретируя отдельные лексемы, располагая их в обратном порядке выполнения операций (первыми выполняются операции, находящиеся на нижних уровнях дерева)

Скачать файлы

Наименование Файл Версия Размер
СинтаксическийРазбор.epf
.epf 14,62Kb
49
.epf 14,62Kb 49 Скачать

Описание

Преобразует выражение на встроенном языке 1С:Предприятие в дерево значений, выделяя и интерпретируя отдельные лексемы, располагая их в обратном порядке выполнения операций (первыми выполняются операции, находящиеся на нижних уровнях дерева).

В колонке Выражение в корне дерева находится исходное выражение, на следующем уровне – его подвыражения и т.д.

Примечания

Хотя в процессе разбора диагностируются некоторые синтаксические ошибки, однако предполагается, что на входе мы имеем синтаксически верное выражение.  

Предполагается (но не проверялось), что чтобы переделать обработку для разбора выражений на других языках, достаточно переписать макет ПравилаРазбора, в коде же потребуются незначительные изменения.  

 

При разработке использовались материалы: В.А.Серебряков, М.П.Галочкин, «Основы конструирования компиляторов» http://citforum.ru/programming/theory/serebryakov/

См. также

SALE! 20%

Infostart Toolkit: Инструменты разработчика 1С 8.3 на управляемых формах

Инструментарий разработчика Роли и права Запросы СКД Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

13000 10400 руб.

02.09.2020    122137    670    389    

714

SALE! 25%

Infostart PrintWizard

Пакетная печать Печатные формы Инструментарий разработчика Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:Конвертация данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

Инструмент, позволяющий абсолютно по-новому взглянуть на процесс разработки печатных форм. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и "прозрачность" разработки, а также навести порядок в многообразии корпоративных печатных форм.

18000 15300 руб.

06.10.2023    7288    21    6    

39

SALE! 20%

Infostart УДиФ: Управление данными и формами

Инструменты администратора БД Инструментарий разработчика Роли и права Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

10000 8000 руб.

10.11.2023    3531    11    1    

34

SALE! 30%

PowerTools

Инструментарий разработчика Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

3600 2520 руб.

14.01.2013    177744    1073    0    

849

Многопоточность. Универсальный «Менеджер потоков» 2.1

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    99345    239    97    

296

[ЕХТ] Фреймворк для Расширений 1С

Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Платные (руб)

"Фреймворк для Расширений 1С" это универсальное и многофункциональное решение, упрощающее разработку и поддержку создаваемых Расширений. Поставляется в виде комплекта из нескольких Расширений с открытым исходным кодом. Работает в любых Конфигурациях в режиме Управляемого приложения с режимом совместимости 8.3.12 и выше без необходимости внесения изменений в Конфигурацию.

3000 руб.

27.08.2019    18109    6    8    

39

1С HTML Шаблоны / HTML Templates

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Быстрая и удобная обработка для работы с шаблонами HTML. Позволяет легко и быстро формировать код HTML.

2040 руб.

27.12.2017    28108    3    10    

15

Выполнение произвольного кода или запроса с параметрами через Web-сервис (замена COM-подключений)

Инструментарий разработчика Обмен между базами 1C Платформа 1С v8.3 Платные (руб)

В процессе работы в 1С часто возникает потребность получить данные из другой базы.  Обычно это делается через COM-соединение, и время выполнения запроса при этом оставляет желать лучшего. В данной публикации представлено универсальное решение, позволяющее практически моментально выполнить произвольный код или запрос с параметрами в другой информационной базе через Web-сервис.

2400 руб.

24.09.2019    23601    15    15    

32
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Angeros 21.09.12 12:32 Сейчас в теме
А какие выражения доступны для разбора? для чего разрабатывался данный механизим?
5. fillin 244 21.09.12 13:38 Сейчас в теме
(1) Обработка делалась в рамках решения другой задачи.
Требовалось определить фактически использованные переменные в выражении вида: ?(А=1, Б+В, ?(А=Г, Д, Е)) + Ж.
Выражения могут быть произвольными, т.е. могут включать в себя переменные, функции, свойства и методы объектов, вложенные выражения...
8. Angeros 23.09.12 09:38 Сейчас в теме
(5)то что требовалось понятно. Имеется введу каков проект где все это может пригодится?! что за пользователь в состоянии писать подобные выражения для разбора.
10. RustIG 1351 26.09.12 22:07 Сейчас в теме
(5) а зачем нужно было "определить фактически использованные переменные в выражении вида..."?
2. Yashazz 4709 21.09.12 12:52 Сейчас в теме
Отличная штука! Уже знаю, где буду применять - для текстов алгоритмов, динамически выполняемых в режиме "Предприятие" командой "Выполнить".
3. tormozit 7136 21.09.12 12:58 Сейчас в теме
Осталось подключить к снегопату и рефакторинг встроенного языка будет развиваться хорошим темпом.
Первое что нужно сделать:
1. Вынести метод (сложно)
2. Переименовать локальную переменную (просто)
3. Преобразование условия в И-ИЛИ дерево (http://infostart.ru/public/152801/) (просто)
4. tormozit 7136 21.09.12 13:10 Сейчас в теме
Оказалось не все так радужно. Здесь чисто синтаксический разбор именно выражения (а не текста программы) без учета особенностей интерпретации (приоритета вычисления операций интерпретатором). Но все равно ступенька на пути к дереву интерпретации.
6. fillin 244 21.09.12 13:44 Сейчас в теме
(4) tormozit, см. (5)
Да, в планах было построить дерево еще и с приоритетом операций. Теоретически для этого достаточно доработать макет ПравилаРазбора.
Однако это уже за рамками основной задачи. Поэтому решили не усложнять.
7. WKBAPKA 214 21.09.12 17:04 Сейчас в теме
насколько я разбирался с данной темой, данная разработка больше подходит на группировку лексем в токены...
9. Модератор раздела 26.09.12 10:59 Сейчас в теме
Да, для снегопата не хватает подобных разработок.
Саша пока также не делает :(
11. AlexanderKai 02.10.12 17:52 Сейчас в теме
Помнится в школе делал "вычислятель" арифметических выражений. Прикольно было.
Оставьте свое сообщение