Diff for /parser3/operators.ru.txt between versions 1.257 and 1.258

version 1.257, 2024/12/19 23:17:54 version 1.258, 2024/12/19 23:37:03
Line 107 Line 107
     ^process[[$caller.CLASS|$object|$КЛАСС:CLASS]]{строка, которая будет process-ed, как код}[      ^process[[$caller.CLASS|$object|$КЛАСС:CLASS]]{строка, которая будет process-ed, как код}[
         $.main[во что переименовать @main]          $.main[во что переименовать @main]
         $.file[имя файла из которого, якобы, данный текст]          $.file[имя файла из которого, якобы, данный текст]
         $.lineno(номер строки в файле, откуда данный текст. можно отрицательный)           $.lineno(номер строки в файле, откуда данный текст. можно отрицательный)
     ]      ]
     ^process..[путь][во что переименовать @main]      ^process..[путь][во что переименовать @main]
         по умолчанию, методы компилируются в $self [в случае оператора, $self=$MAIN:CLASS]          по умолчанию, методы компилируются в $self [в случае оператора, $self=$MAIN:CLASS]
Line 613  regex Line 613  regex
         логическое значение всегда равно true          логическое значение всегда равно true
         числовое значение равно количеству байт скомпилированного шаблона.          числовое значение равно количеству байт скомпилированного шаблона.
     ^regex::create[шаблон-строка|regex][[опции поиска]]      ^regex::create[шаблон-строка|regex][[опции поиска]]
     ^шаблон.size[] количество байт скомпилированного шаблона      ^шаблон.size[]
           количество байт скомпилированного шаблона
         если значение очень большое - стоит почитать документацию по pcre и, возможно, переписать шаблон.          если значение очень большое - стоит почитать документацию по pcre и, возможно, переписать шаблон.
     ^шаблон.study_size[] размер study-структуры. если==0 - шаблон не может быть "изучен"      ^шаблон.study_size[]
     $шаблон.pattern текст шаблона          размер study-структуры. если==0 - шаблон не может быть "изучен"
     $шаблон.options строка с исходным текстом опций      $шаблон.pattern
           текст шаблона
       $шаблон.options
           строка с исходным текстом опций
   
   
 reflection  reflection
     ^reflection:create[класс;конструктор[;пара;[мет[;ры]]]]  вызывает указанный конструктор класса (не более 100 параметров)      ^reflection:create[класс;конструктор[;пара;[мет[;ры]]]]
     ^reflection:create[ $.class[name] $.constructor[name] $.arguments[ $.1[па] $.2[рам] $.3[етры] ] ]  вызывает указанный конструктор класса          вызывает указанный конструктор класса (не более 100 параметров)
     ^reflection:classes[]                 хеш со всеми классами. ключ -- имя класса, значение бывает methoded (класс с методами) или void      ^reflection:create[ $.class[name] $.constructor[name] $.arguments[ $.1[па] $.2[рам] $.3[етры] ] ]
     ^reflection:class[объект]             класс переданного объекта          вызывает указанный конструктор класса
     ^reflection:class_name[объект]        имя класса переданного объекта      ^reflection:classes[]
     ^reflection:base[объект]              родительский класс переданного объекта          хеш со всеми классами. ключ -- имя класса, значение бывает methoded (класс с методами) или void
     ^reflection:base_name[объект]         имя родительского класса переданного объекта      ^reflection:class[объект]
     ^reflection:class_by_name[имя класса] получение класса по имени          класс переданного объекта
     ^reflection:class_alias[имя класса;новое имя класса]  задает псевдоним для указанного класса      ^reflection:class_name[объект]
     ^reflection:def[class;имя класса]     проверка класса на существование          имя класса переданного объекта
     ^reflection:methods[класс]            хеш со списком методов указанного класса, значения -- строки 'native' или 'parser'      ^reflection:base[объект]
     ^reflection:method[класс или объект;имя метода]  возвращает junction-method класса или объекта          родительский класс переданного объекта
     ^reflection:filename[объект или класс или метод] возвращает имя файла, где определен объект, класс или метод      ^reflection:base_name[объект]
     ^reflection:fields[класс или объект]  хеш со списком статических полей указанного класса или динамических полей указанного объекта          имя родительского класса переданного объекта
     ^reflection:fields_reference[объект]  редактируемый хеш динамических полей указанного объекта      ^reflection:class_by_name[имя класса]
     ^reflection:field[класс или объект;имя поля]  возвращает значение указанного поля класса или объекта. getter-ы игнорируются.          получение класса по имени
     ^reflection:copy[источник;назначение] копирует поля из одного объекта или класса в другой      ^reflection:class_alias[имя класса;новое имя класса]
     ^reflection:uid[класс или объект]     возвращает идентификатор объекта или класса          задает псевдоним для указанного класса
     ^reflection:method_info[класс;метод]  хеш с параметрами указанного метода класса      ^reflection:def[class;имя класса]
         $.inherited[класс]                имя класса, где метод был определён (возвращается только если метод был определён в предке)          проверка класса на существование
         $.overridden[класс]               имя класса, где метод был определён (возвращается только если метод был определён в предке)      ^reflection:methods[класс]
           хеш со списком методов указанного класса, значения -- строки 'native' или 'parser'
       ^reflection:method[класс или объект;имя метода]
           возвращает junction-method класса или объекта
       ^reflection:filename[объект или класс или метод]
           возвращает имя файла, где определен объект, класс или метод
       ^reflection:fields[класс или объект]
           хеш со списком статических полей указанного класса или динамических полей указанного объекта
       ^reflection:fields_reference[объект]
           редактируемый хеш динамических полей указанного объекта
       ^reflection:field[класс или объект;имя поля]
           возвращает значение указанного поля класса или объекта. getter-ы игнорируются.
       ^reflection:copy[источник;назначение]
           копирует поля из одного объекта или класса в другой
       ^reflection:uid[класс или объект]
           возвращает идентификатор объекта или класса
       ^reflection:method_info[класс;метод]
           хеш с параметрами указанного метода класса
           $.inherited[класс]  имя класса, где метод был определён (возвращается только если метод был определён в предке)
           $.overridden[класс] имя класса, где метод был определён (возвращается только если метод был определён в предке)
         для native классов возвращается хеш:          для native классов возвращается хеш:
             .min_params(минимально необходимое число параметров)              .min_params(минимально необходимое число параметров)
             .max_params(максимально возможное число параметров)              .max_params(максимально возможное число параметров)
             .call_type[dynamic|static|any]              .call_type[dynamic|static|any]
         для parser классов возвращается хеш:          для parser классов возвращается хеш:
             ключ -- номер параметра (0, 1, ...), значение - имя параметра              ключ -- номер параметра (0, 1, ...), значение - имя параметра
     ^reflection:dynamical[[object or class, caller if absent]]          ^reflection:dynamical[[object or class, caller if absent]]
         возвращает true, если метод был вызван из динамического контекста при передаче          возвращает true, если метод был вызван из динамического контекста при передаче
         параметра возвращает true, если передан динамический объект, false если класс          параметра возвращает true, если передан динамический объект, false если класс
     ^reflection:delete[класс или объект;имя переменной]      удаляет переменную с указанным именем в указанном классе или объекте      ^reflection:delete[класс или объект;имя переменной]
     ^reflection:is[имя элемента;имя класса][[контекст]]      аналог оператора is, позволяющий определить, является ли элемент кодом.          удаляет переменную с указанным именем в указанном классе или объекте
     ^reflection:tainting[[язык|tainted|optimized];строка]    строка, в которой каждому символу исходной строки соотвествует символ с кодом преобразования      ^reflection:is[имя элемента;имя класса][[контекст]]
     ^reflection:stack[ $.args(false/true) $.locals(false/true) $.limit(n) $.offset(o)] текущее состояние стека вызовов методов на парсере          аналог оператора is, позволяющий определить, является ли элемент кодом.
       ^reflection:tainting[[язык|tainted|optimized];строка]
           строка, в которой каждому символу исходной строки соотвествует символ с кодом преобразования
       ^reflection:stack[ $.args(false/true) $.locals(false/true) $.limit(n) $.offset(o)]
           текущее состояние стека вызовов методов на парсере
     ^reflection:mixin[источник; $.to[получатель] $.name[имя] $.methods(true/false) $.fields(true/false) $.overwrite(false/true) ]      ^reflection:mixin[источник; $.to[получатель] $.name[имя] $.methods(true/false) $.fields(true/false) $.overwrite(false/true) ]
         копирует в класс методы и поля другого класса          копирует в класс методы и поля другого класса
   
Line 885  file Line 912  file
     ^file:justname[/a/some.tar.gz|file]=some.tar      ^file:justname[/a/some.tar.gz|file]=some.tar
     ^file:justext[/a/some.tar.gz|file]=gz      ^file:justext[/a/some.tar.gz|file]=gz
     /some/page.html: ^file:fullpath[a.gif] => /some/a.gif      /some/page.html: ^file:fullpath[a.gif] => /some/a.gif
     ^файл.sql-string[] внутри ^connect даст правильно escaped строку, которую можно в запрос отдать      ^файл.sql-string[]
           внутри ^connect даст правильно escaped строку, которую можно в запрос отдать
     ^file::sql{query}[[ $.name[имя_файла_для_download] $.content-type[пользовательский content-type] ]]      ^file::sql{query}[[ $.name[имя_файла_для_download] $.content-type[пользовательский content-type] ]]
         результат запроса должен быть "одна строка".          результат запроса должен быть "одна строка".
         колонки:          колонки:
         первая колонка - данные          первая колонка - данные
         если есть вторая - это имя файла          если есть вторая - это имя файла
         если есть третья - это content-type          если есть третья - это content-type
     ^файл.base64[ $.pad(bool) $.wrap(bool) $.url-safe(bool) ] encode      ^файл.base64[ $.pad(bool) $.wrap(bool) $.url-safe(bool) ]
           encode
     ^file:base64[имя файла[; $.pad(bool) $.wrap(bool) $.url-safe(bool) ]]      ^file:base64[имя файла[; $.pad(bool) $.wrap(bool) $.url-safe(bool) ]]
         encode          encode
     ^file::base64[encoded string[; $.pad(bool) $.strict(bool) url-safe(bool) ]]      ^file::base64[encoded string[; $.pad(bool) $.strict(bool) url-safe(bool) ]]
           decode
     ^file::base64[mode;имя файла;encoded string[; $.content-type[...] $.pad(bool) $.strict(bool) url-safe(bool) ]]      ^file::base64[mode;имя файла;encoded string[; $.content-type[...] $.pad(bool) $.strict(bool) url-safe(bool) ]]
         decode          decode
     ^file:crc32[имя файла]      ^file:crc32[имя файла]
         вычисляет crc32 файла с указанным именем          вычисляет crc32 файла с указанным именем
     ^файл.crc32[]      ^файл.crc32[]
         вычисляет crc32 объекта          вычисляет crc32 объекта
     ^файл.md5[]      ^файл.md5[], ^file:md5[имя файла]
     ^file:md5[имя файла]  
         выдает digest файла, длиной 16 байт в виде строки,           выдает digest файла, длиной 16 байт в виде строки, 
         где байты digest выданы в hex виде, впритык, в нижнем регистре          где байты digest выданы в hex виде, впритык, в нижнем регистре
   
Line 1290  MAIN Line 1319  MAIN
         $exception.source строка, из-за которой случилась проблема          $exception.source строка, из-за которой случилась проблема
         $exception.comment комментарий english          $exception.comment комментарий english
         stack табличка из колонок file line name,          stack табличка из колонок file line name,
             там лежат в обратном порядке имена[name] и места вызовов[file line]               там лежат в обратном порядке имена[name] и места вызовов[file line]
             операторов/методов, приведших к ошибке.              операторов/методов, приведших к ошибке.
   
 при загрузке файла (file::load, table::load, xdoc::load) можно указать такое имя файла:  при загрузке файла (file::load, table::load, xdoc::load) можно указать такое имя файла:
Line 1356  MAIN Line 1385  MAIN
     об этом будет записано в parser3.log      об этом будет записано в parser3.log
   
 если описание метода содержит локальную переменную result в явном виде (есть и неявная переменная)  если описание метода содержит локальную переменную result в явном виде (есть и неявная переменная)
     то код вывода пробельных литералов не попадает в конечный байт-код.      то код вывода пробельных литералов не попадает в конечный байт-код

Removed from v.1.257  
changed lines
  Added in v.1.258


E-mail: