diff --git a/book.md b/book.md index 0c05d6a..921de9c 100644 --- a/book.md +++ b/book.md @@ -14,6 +14,7 @@ May the Force be with you. - [`Посетить`](#посетитьмодуль-параметры) - [`Токенизировать`](#токенизироватьисходник-таблицазначений) - [`ВыполнитьЗамены`](#выполнитьзамены-строка) + - [`Очистить`](#очистить) - [Дополнительные методы](#дополнительные-методы) - [`Узлы`](#узлы-структура) - [`КлючевыеСлова`](#ключевыеслова-структура) @@ -30,9 +31,6 @@ May the Force be with you. - [`ТаблицаЗамен`](#таблицазамен-таблицазначений) - [Продвинутые методы](#продвинутые-методы) - [`Окружение`](#окружениевнешнееокружение-структура) - - [`ЭлементОкружения`](#элементокруженияимя-объявление-структура) - - [`ОбъявлениеГлобальногоОбъекта`](#объявлениеглобальногообъектаимя-доступность-структура) - - [`ОбъявлениеГлобальногоМетода`](#объявлениеглобальногометодаимя-возвращаетзначение-параметры-доступность-структура) - [`Доступность`](#доступностьклиент-внешнеесоединение-мобильноеприложение-мобильныйклиент-мобильныйсервер-сервер-толстыйклиент-тонкийклиент-вебклиент-интеграция-структура) - [Служебные методы](#служебные-методы) - [`УстановитьИсходник`](#установитьисходникисходник) @@ -121,7 +119,7 @@ May the Force be with you. Данные методы составляют основной программный интерфейс для внешней по отношению к парсеру системы. Позволяют выполнить разбор исходного кода, обход AST с плагинами и выполнить модификацию исходного кода по сгенерированным плагинами заменам. -Чаще всего используется метод `Пуск()`, который заключает в себе типовую последовательность вызовов `Разобрать()`, `Подключить()` и `Посетить()`. +Чаще всего используется метод `Пуск()`, который заключает в себе типовую последовательность вызовов `Разобрать()`, `Подключить()`, `Посетить()` и `Очистить()`. Рабочие примеры использования данных методов смотрите в скриптах в папке /oscript ##### `Пуск(Исходник, Плагины, Параметры, Окружение): Массив` @@ -346,6 +344,19 @@ May the Force be with you. Сообщить(ИсправленныйИсходник) ``` +##### `Очистить()` + +*Очищает в парсере таблицы токенов и узлов. Так освобождается память и парсер подготавливается к следующему разбору. Перед разбором таблицы улов не очищаются, т.к. могут быть наполнены извне при формировании внешнего окружения. Метод `Пуск()` уже включает этот вызов.* + +Пример: + +```bsl +ПарсерВстроенногоЯзыка = Новый ПарсерВстроенногоЯзыка; +АСД = ПарсерВстроенногоЯзыка.Разобрать(Исходник); +Сайт = ГенераторДокументации.Посетить(ПарсерВстроенногоЯзыка, АСД); +ПарсерВстроенногоЯзыка.Очистить(); +``` + #### Дополнительные методы Данные методы в основном используются в плагинах и вызываются один раз в процедуре Открыть(). Методы предоставляют различную вспомогательную информацию и таблицы, в которых плагины могут регистрировать ошибки и замены. @@ -734,35 +745,6 @@ May the Force be with you. - `ВнешнееОкружение: Структура` -- внешнее окружение по отношению к создаваемому. -##### `ЭлементОкружения(Имя, Объявление): Структура` - -*Конструктор. Возвращает новый элемент окружения.* - -Параметры: - -- `Имя: Строка` -- имя элемента (переменной или метода). -- `Объявление: Структура` -- объявление элемента (переменной или метода). - -##### `ОбъявлениеГлобальногоОбъекта(Имя, Доступность): Структура` - -*Конструктор. Возвращает новое объявление глобального объекта.* - -Параметры: - -- `Имя: Строка` -- имя глобального объекта (свойства глобального контекста). -- `Доступность: Структура` -- набор флагов, определяющих контекст в котором доступен элемент. Смотрите метод `Доступность()`. - -##### `ОбъявлениеГлобальногоМетода(Имя, ВозвращаетЗначение, Параметры, Доступность): Структура` - -*Конструктор; возвращает новое объявление глобального метода.* - -Параметры: - -- `Имя: Строка` -- имя глобального метода. -- `ВозвращаетЗначение: Булево` -- признак, определяющий является ли метод функцией. -- `Параметры: Структура` -- структура, в которой ключ - это имя параметра, а значение - это признак обязательности. -- `Доступность: Структура` -- набор флагов, определяющих контекст в котором доступен элемент. Смотрите метод `Доступность()`. - ##### `Доступность(Клиент, ВнешнееСоединение, МобильноеПриложение, МобильныйКлиент, МобильныйСервер, Сервер, ТолстыйКлиент, ТонкийКлиент, ВебКлиент, Интеграция): Структура` *Конструктор. Возвращает новую структуру доступности.*