ЗАМЕНА КОНТЕКСТОВ

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

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

 
Контекст поиска:   Контекст замены:   Комментарий:
 
POISK                                  поиск контекста POISK
                                       (тождественная замена); 
s                  "Строка замены"     замена символа на несколько
                                       слов, разделенных пробелами; 
@*+i|j             $                   перенос строки перед символами
                                       *i, *j, **i, **j, ...; 
[ab]+c             ABC                 замена символов abc, ababc,
                                       abababc, ...;
{p1}{p2}{p3}       #2#3#1              перестановка групп в строке
                                       p1,p2,p3 в p2,p3,p1 ;
{?*}               <b>#1</b>           обрамление тегами всей строки
                                       <b> ... </b> ;
{?*aa?*}|{?*bb?*}  <i>#*</i><br>       обрамление тегами строк,
                                       содержащих контексты aa или bb;   
{Stroca1}          #1\0d\0aStroca2     замена строки Stroca1 на две 
                                       Stroca1 и Stroca2 ;
{#0000FF}|{BLUE}   @#0000CC            замена цветового кода,
                                       заданного разными кодировками;  
{%a?b}|{b?a$}      ""                  исключение концевых контекстов с
                                       любым центральным символом; 
{%?}               <p>#1               добавление тега в начало строки; 
{?$}               #1</p>              добавление тега к концу строки; 
\0a                \0d\0a              замена концов строк (например,
                                       для разделения "слитых" строк);
" "\0d             \0d                 исключение конечного пробела
                                       (для двоичного представления).
  
Таким образом перед началом контекстной замены необходимо задать параметры ввода/вывода, таблицу контекстной замены и запустить процесс редактирования клавишей {Начать}. Редактирование происходит в диалоговом режиме, позволяющем осуществлять управление процессом редактирования.

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

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

Применение спецсредств иллюстрируется тремя приложеними:
1. Перевод документации Библиотеки численного анализа НИВЦ МГУ для языка Фортран в документацию для языка Си
2. Сжатие файлов, написанных на языке JavaScript
3. Перевод программ Библиотеки численного анализа НИВЦ МГУ с языка Фортран на язык Паскаль
Настройка и запуск конвертера FORPAS

 
Общий вид страницы "Замена контекстов"
 
Вид страницы редактора TeConv