1
0
mirror of https://github.com/bia-technologies/bsl-parser.git synced 2025-02-16 19:47:28 +02:00
This commit is contained in:
Maxmov Valery 2016-10-07 14:38:43 +03:00
commit 6ad7eabba2
8 changed files with 2144 additions and 0 deletions

64
.vscode/tasks.json vendored Normal file
View File

@ -0,0 +1,64 @@
{
"version": "0.1.0",
"command": "oscript",
"isShellCommand": true,
"showOutput": "silent",
"args": [
"-encoding=utf-8"
],
"tasks": [
{
"taskName": "OneScript: compile",
"args": [
"-compile",
"${file}"
],
"echoCommand": true,
"showOutput": "always",
"suppressTaskName": true,
"isBuildCommand": false
},
{
"taskName": "OneScript: check",
"args": [
"-check",
"${file}"
],
"echoCommand": true,
"showOutput": "always",
"suppressTaskName": true,
"isBuildCommand": false
},
{
"taskName": "OneScript: make",
"args": [
"-make",
"${file}",
"${fileBasename}.exe"
],
"echoCommand": true,
"showOutput": "always",
"suppressTaskName": true,
"isBuildCommand": false
},
{
"taskName": "OneScript: run",
"args": [
"${file}"
],
"echoCommand": true,
"showOutput": "always",
"suppressTaskName": true,
"isBuildCommand": true,
"problemMatcher": {
"fileLocation": "absolute",
"pattern": {
"regexp": "^{Модуль\\s+(.*)\\s\\/\\s.*:\\s+(\\d+)\\s+\\/\\s+(.*)}$",
"file": 1,
"location": 2,
"message": 3
}
}
}
]
}

6
lib.config Normal file
View File

@ -0,0 +1,6 @@
<package-def>
<class name="РазборСтруктурыКонфигурации" file="src/РазборСтруктурыКонфигурации.os"/>
<module name="ТипБлоковМодуля" file="src/Core/Модули/ТипБлоковМодуля.os"/>
<module name="ТипМодуля" file="src/Core/Модули/ТипМодуля.os"/>
<module name="ТипОбласти" file="src/Core/Модули/ТипОбласти.os"/>
</package-def>

5
packagedef Normal file
View File

@ -0,0 +1,5 @@

Описание.Имя("parserbia")
.Версия("1.0.2")
.ВключитьФайл("src")
.ВключитьФайл("lib.config");

10
readme.md Normal file
View File

@ -0,0 +1,10 @@
# Парсер конфигурации 1С
## Информация
Скрипты данной библиотеки используются для разбора конфигурации 1С выгруженной в исходные файлы.
## Установка
`#Использовать "parser-bia"`
`Парсер = Новый РазборСтруктурыКонфигурации();`

View File

@ -0,0 +1,37 @@
Перем ОписаниеПеременной Экспорт;
Перем ЗаголовокПроцедуры Экспорт;
Перем ОкончаниеПроцедуры Экспорт;
Перем ЗаголовокФункции Экспорт;
Перем ОкончаниеФункции Экспорт;
Перем НачалоОбласти Экспорт;
Перем КонецОбласти Экспорт;
Перем Операторы Экспорт;
Перем Комментарий Экспорт;
Перем СтрокаТекста Экспорт;
Перем ДирективаКомпиляции Экспорт;
Перем ПустаяСтрока Экспорт;
Перем Описание Экспорт;
///////////////////////////////////////////////////////////////////////////////////////////////
ОписаниеПеременной = "ОписаниеПеременной";
ЗаголовокПроцедуры = "ЗаголовокПроцедуры";
ОкончаниеПроцедуры = "ОкончаниеПроцедуры";
ЗаголовокФункции = "ЗаголовокФункции";
ОкончаниеФункции = "ОкончаниеФункции";
НачалоОбласти = "НачалоОбласти";
КонецОбласти = "КонецОбласти";
Операторы = "Операторы";
Комментарий = "Комментарий";
СтрокаТекста = "СтрокаТекста";
ДирективаКомпиляции = "ДирективаКомпиляции";
ПустаяСтрока = "ПустаяСтрока";
Описание = "Описание";

View File

@ -0,0 +1,125 @@
Перем ОбщийМодуль Экспорт;
Перем МодульОбъекта Экспорт;
Перем МодульМенеджера Экспорт;
Перем МодульОбычнойФормы Экспорт;
Перем МодульУправляемойФормы Экспорт;
Перем МодульКоманды Экспорт;
Перем МодульСеанса Экспорт;
Перем МодульОбычногоПриложения Экспорт;
Перем МодульУправляемогоПриложения Экспорт;
Перем МодульВнешнегоСоединения Экспорт;
///////////////////////////////////////////////////////////////////////////////////////////////
Функция ТипМодуляПоИмениФайла(ПолноеИмяФайла)Экспорт
Файл = Новый Файл(ПолноеИмяФайла);
ИмяБезРасширения = Файл.ИмяБезРасширения;
Расширение = Файл.Расширение;
ТипЭтогоМодуля = "";
Если ИмяБезРасширения = "CommandModule" Тогда
ТипЭтогоМодуля = МодульКоманды;
ИначеЕсли ИмяБезРасширения = "ManagedApplicationModule" Тогда
ТипЭтогоМодуля = МодульУправляемогоПриложения;
ИначеЕсли ИмяБезРасширения = "OrdinaryApplicationModule" Тогда
ТипЭтогоМодуля = МодульОбычногоПриложения;
ИначеЕсли ИмяБезРасширения = "SessionModule" Тогда
ТипЭтогоМодуля = МодульСеанса;
ИначеЕсли ИмяБезРасширения = "ExternalConnectionModule" Тогда
ТипЭтогоМодуля = МодульВнешнегоСоединения;
ИначеЕсли ИмяБезРасширения = "ManagerModule"
ИЛИ ИмяБезРасширения = "ValueManagerModule" Тогда
ТипЭтогоМодуля = МодульМенеджера;
ИначеЕсли ИмяБезРасширения = "ObjectModule"
ИЛИ ИмяБезРасширения = "RecordSetModule" Тогда
ТипЭтогоМодуля = МодульОбъекта;
ИначеЕсли ИмяБезРасширения = "module" И ПустаяСтрока(Расширение) Тогда
ТипЭтогоМодуля = МодульОбычнойФормы;
ИначеЕсли ИмяБезРасширения = "Module" Тогда
МассивЧастейИмени = СтрРазделить(ПолноеИмяФайла, "\");
Если МассивЧастейИмени.Количество() > 3 Тогда
Родитель = МассивЧастейИмени[МассивЧастейИмени.Количество() - 2];
Если Родитель = "Ext" Тогда
Родитель = МассивЧастейИмени[МассивЧастейИмени.Количество() - 4];
Если Родитель = "CommonModules" Тогда
ТипЭтогоМодуля = ОбщийМодуль;
ИначеЕсли Родитель = "WebServices" Тогда
ТипЭтогоМодуля = МодульОбъекта;
КонецЕсли;
ИначеЕсли Родитель = "Form" Тогда
ТипЭтогоМодуля = МодульУправляемойФормы;
Иначе
Родитель = МассивЧастейИмени[МассивЧастейИмени.Количество() - 3];
Если Родитель = "CommonModule" Тогда
ТипЭтогоМодуля = ОбщийМодуль;
ИначеЕсли Родитель = "WebService" Тогда
ТипЭтогоМодуля = МодульОбъекта;
КонецЕсли;
КонецЕсли;
Иначе
ВызватьИсключение "Ошибочная структура имени файла: " + ПолноеИмяФайла;
КонецЕсли;
КонецЕсли;
Возврат ТипЭтогоМодуля;
КонецФункции
///////////////////////////////////////////////////////////////////////////////////////////////
ОбщийМодуль = "ОбщийМодуль";
МодульОбъекта = "МодульОбъекта";
МодульМенеджера = "МодульМенеджера";
МодульОбычнойФормы = "МодульОбычнойФормы";
МодульУправляемойФормы = "МодульУправляемойФормы";
МодульКоманды = "МодульКоманды";
МодульСеанса = "МодульСеанса";
МодульОбычногоПриложения = "МодульОбычногоПриложения";
МодульУправляемогоПриложения = "МодульУправляемогоПриложения";
МодульВнешнегоСоединения = "МодульВнешнегоСоединения";

View File

@ -0,0 +1,22 @@
Перем РазделыОбщегоМодуля Экспорт;
Перем РазделыМодуляМенеджера Экспорт;
Перем РазделПрограммныйИнтерфейс Экспорт;
Перем РазделСлужебныйПрограммныйИнтерфейс Экспорт;
Перем РазделСлужебныеПроцедурыИФункции Экспорт;
///////////////////////////////////////////////////////////////////////////////////////////////
РазделПрограммныйИнтерфейс = "ПрограммныйИнтерфейс";
РазделСлужебныйПрограммныйИнтерфейс = "СлужебныйПрограммныйИнтерфейс";
РазделСлужебныеПроцедурыИФункции = "СлужебныеПроцедурыИФункции";
РазделыОбщегоМодуля = Новый Массив;
РазделыОбщегоМодуля.Добавить(РазделПрограммныйИнтерфейс);
РазделыОбщегоМодуля.Добавить(РазделСлужебныйПрограммныйИнтерфейс);
РазделыОбщегоМодуля.Добавить(РазделСлужебныеПроцедурыИФункции);
РазделыМодуляМенеджера = Новый Массив;
РазделыМодуляМенеджера.Добавить(РазделПрограммныйИнтерфейс);
РазделыМодуляМенеджера.Добавить(РазделСлужебныйПрограммныйИнтерфейс);
РазделыМодуляМенеджера.Добавить(РазделСлужебныеПроцедурыИФункции);

File diff suppressed because it is too large Load Diff