|
version 1.259, 2024/12/20 17:17:47
|
version 1.265, 2025/01/10 20:02:21
|
|
Line 156 odbc parser3odbc.dll
|
Line 156 odbc parser3odbc.dll
|
| ^rem{} |
^rem{} |
| комментарий, удаляется при компиляции |
комментарий, удаляется при компиляции |
| |
|
| |
^syslog[ident;message[;info|warning|error|debug]] |
| |
пишет message в syslog |
| |
|
| ^cache[файл](секунд){код}[{catch код}] |
^cache[файл](секунд){код}[{catch код}] |
| относительное задание времени |
относительное задание времени |
| скешировать строку, которая получается при выполнении кода на 'секунд' секунд |
скешировать строку, которая получается при выполнении кода на 'секунд' секунд |
|
Line 427 hash
|
Line 430 hash
|
| ^хеш.foreach[key;value]{тело}[[разделитель]|{разделитель который выполняется перед непустым очередным не первым телом}] |
^хеш.foreach[key;value]{тело}[[разделитель]|{разделитель который выполняется перед непустым очередным не первым телом}] |
| ^хеш.delete[ключ] |
^хеш.delete[ключ] |
| удалить ключ |
удалить ключ |
| ^хеш.contain[ключ] |
^хеш.contains[ключ] |
| существует ли в хеше ключ (bool) |
существует ли в хеше ключ (bool) |
| ^хеш.at[first|last][[key|value|hash]] |
^хеш.at[first|last][[key|value|hash]] |
| ^хеш.at([-]N)[[key|value|hash]] |
^хеш.at([-]N)[[key|value|hash]] |
|
Line 471 hashfile
|
Line 474 hashfile
|
| $sessions.$sid[$.value[$uid] $.expires(1)] |
$sessions.$sid[$.value[$uid] $.expires(1)] |
| $uid[$sessions.$sid] |
$uid[$sessions.$sid] |
| |
|
| |
|
| array |
array |
| в выражении |
в выражении |
| логическое значение равно "не пуст?" |
логическое значение равно "не пуст?" |
|
Line 509 array
|
Line 511 array
|
| добавление элемента в конец массив |
добавление элемента в конец массив |
| ^массив.pop[] |
^массив.pop[] |
| возвращает последний элемент и удаляет его из массива |
возвращает последний элемент и удаляет его из массива |
| ^массив.contain(индекс) |
^массив.contains(индекс) |
| существует ли в массиве элемент по переданому индексу (bool) |
существует ли в массиве элемент по переданому индексу (bool) |
| ^array::sql{запрос}[[ $.sparse(false) $.distinct(false) $.limit(2) $.offset(4) $.type[hash|string|table]]] |
^array::sql{запрос}[[ $.sparse(false) $.distinct(false) $.limit(2) $.offset(4) $.type[hash|string|table]]] |
| создание массива на основе выборки из базы данных |
создание массива на основе выборки из базы данных |
|
Line 546 array
|
Line 548 array
|
| $отобранное[^массив.select[key;value](выражение)[ $.limit(N) $.reverse(bool) ]] |
$отобранное[^массив.select[key;value](выражение)[ $.limit(N) $.reverse(bool) ]] |
| отбор элементов массива, для которых условие истинно |
отбор элементов массива, для которых условие истинно |
| |
|
| |
date |
| |
время типа date можно использовать в выражениях, подставляет количество дней с epoch [1 января 1970 (UTC)], дробное |
| |
строковое значение в местном времени, численное в UTC, диапазон от 0000-00-00 00:00:00 до 9999-12-31 23:59:59 |
| |
по умолчанию используется установленная средствами OS временная зона |
| |
|
| |
^date::now[] |
| |
^date::now(смещение в днях) |
| |
выдаёт сейчас+смещение |
| |
^date::today[] |
| |
дата на 00:00:00 текущего дня |
| |
^date::today(целочисленное смещение в днях) |
| |
дата на 00:00:00 текущего дня+смещение |
| |
^date::create(дней с epoch) |
| |
^date::create(year;month[;day[;hour[;minute[;second[;TZ]]]]]) |
| |
^date::create[дата в формате %Y-%m-%d %H:%M:%S] |
| |
для удобного создания по значению из базы |
| |
формат1: %Y[-%m[-%d[ %H[:%M[:%S]]]]] |
| |
формат2: %H:%M[:%S] |
| |
^date::create[дата в формате %Y-%m-%dT%H:%M[:%S]TZ] |
| |
для создания по значению в формате ISO 8601 |
| |
формат TZ: Z(UTC) или +-hour[:minute] (смещение от UTC) |
| |
^date::unix-timestamp() |
| |
^дата.unix-timestamp[] |
| |
$дата.year month day hour minute second weekday yearday(0...) daylightsaving TZ weekyear |
| |
TZ="" << локальная зона |
| |
$дата.year month day hour minute second можно задать новое значение, остальные read only |
| |
^дата.double[] ^дата.int[] |
| |
количество дней с epoch [1 января 1970 (UTC)], дробное или целое |
| |
^дата.roll[year|month|day](+-смещение) |
| |
сдвигает дату |
| |
^дата.roll[TZ;Новая зона] |
| |
говорит, что дата в таком-то часовом поясе: влияет на .hour & Co |
| |
^date:roll[TZ;Новая зона] |
| |
говорит, что по умолчанию все даты в таком-то часовом поясе |
| |
^дата.sql-string[[datetime|date|time]] |
| |
datetime или без параметра - %Y-%m-%d %H:%M:%S |
| |
date - %Y-%m-%d |
| |
time - %H:%M:%S |
| |
where published='^дата.sql-string[]' |
| |
^date:calendar[rus|eng](год;месяц) |
| |
выдаёт неименованную таблицу, столбцы: 0..6, week, year |
| |
^date:calendar[rus|eng](год;месяц;день) |
| |
выдаёт именнованную таблицу, столбцы: year, month, day, weekday |
| |
^date:last-day(год;месяц) |
| |
вернёт последний день месяца |
| |
^дата.last-day[] |
| |
вернёт последний день месяца $дата |
| |
^дата.gmt-string[] |
| |
Fri, 23 Mar 2001 09:32:23 GMT |
| |
^дата.iso-string[] |
| |
2001-03-23T12:32:23+03 |
| |
|
| |
file |
| |
$файл_из_post.name |
| |
$файл_из_post.size |
| |
$файлt_из_post.text |
| |
^файл.save[text|binary;имя файла[;$.charset[в какой кодировке сохраняем]]] |
| |
^file:delete[имя файла] |
| |
^file:find[имя файла][{когда не нашли}] |
| |
^file:list[путь[;шаблон-строка|шаблон-regex]] |
| |
table с колонками name dir |
| |
^file:list[путь;$.filter[шаблон-строка|шаблон-regex] $.stat(true)] |
| |
table с колонками name dir size [mca]date |
| |
^file::load[text|binary;big.zip[;domain_press_release_2001_03_01.zip][;опции]] |
| |
^file::create[text|binary;имя;data] |
| |
^file::create[text|binary;имя;data[;$.charset[кодировка букв в создаваемом файле] $.content-type[...]]] |
| |
^file::create[string-or-file-content[;$.name[имя] $.mode[text|binary] $.content-type[...] $.charset[...]]] |
| |
$файл_который_был_loaded.size |
| |
$файл_который_был_loaded_или_created.mode = text/binary |
| |
^file::stat[имя файла] |
| |
$файл_который_был_stated_или_loaded.size .adate .mdate .cdate |
| |
^file::cgi[[text|binary;]имя файла[;env hash +options[;1cmd[;2line[;3ar[;4g[;5s]]]]]]] |
| |
любой аргумент может быть строкой или массивом строк |
| |
возвращённый заголовок рассыпается на $поля |
| |
$status |
| |
$stderr |
| |
^file::exec[[text|binary;]имя файла[;env hash[;1cmd[;2line[;3ar[;4g[;5s;...under unix max 50 args]]]]]]] |
| |
любой аргумент может быть строкой или массивом строк |
| |
options: |
| |
$.stdin[текст|файл] если пусто, отключается автоматическое пересовывание данных HTTP-POST |
| |
^file:move[старое имя файла;новое имя файла] |
| |
можно переименовывать и двигать каталоги[win32: но не через границу дисков] |
| |
каталоги для dest создаются с правами 775 |
| |
каталог старого файла стирается, если после move он остаётся пуст |
| |
^file:copy[имя файла;имя копии файла[; $.append(1) ]] |
| |
можно копировать только файлы |
| |
^file:lock[имя файла]{код} |
| |
файл при необходимости создаётся |
| |
блокируется |
| |
выполняется код |
| |
разблокируется |
| |
^file:dirname[/a/some.tar.gz|file]=/a (работает аналогично комманде *nix) |
| |
^file:dirname[/a/b/|file]=/a (работает аналогично комманде *nix) |
| |
^file:basename[/a/some.tar.gz|file]=some.tar.gz (работает аналогично комманде *nix) |
| |
^file:basename[/a/b/|file]=b (работает аналогично комманде *nix) |
| |
^file:justname[/a/some.tar.gz|file]=some.tar |
| |
^file:justext[/a/some.tar.gz|file]=gz |
| |
/some/page.html: ^file:fullpath[a.gif] => /some/a.gif |
| |
^файл.sql-string[] |
| |
внутри ^connect даст правильно escaped строку, которую можно в запрос отдать |
| |
^file::sql{query}[[ $.name[имя_файла_для_download] $.content-type[пользовательский content-type] ]] |
| |
результат запроса должен быть "одна строка". |
| |
колонки: |
| |
первая колонка - данные |
| |
если есть вторая - это имя файла |
| |
если есть третья - это content-type |
| |
^файл.base64[ $.pad(bool) $.wrap(bool) $.url-safe(bool) ] |
| |
encode |
| |
^file:base64[имя файла[; $.pad(bool) $.wrap(bool) $.url-safe(bool) ]] |
| |
encode |
| |
^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) ]] |
| |
decode |
| |
^file:crc32[имя файла] |
| |
вычисляет crc32 файла с указанным именем |
| |
^файл.crc32[] |
| |
вычисляет crc32 объекта |
| |
^файл.md5[], ^file:md5[имя файла] |
| |
выдает digest файла, длиной 16 байт в виде строки, |
| |
где байты digest выданы в hex виде, впритык, в нижнем регистре |
| |
|
| |
image |
| |
$картинка[^image::measure[DATA[; $.exif(bool) $.xmp(bool) $.xmp-charset[] $.video(bool) ]]] |
| |
смотрит на .ext case insensitive, |
| |
умеет мерить gif, jpg, tiff, bmp, webp и mp4 (mov) |
| |
$картинка.exif << hash после measure jpeg с exif информацией и $.exif(true) |
| |
$image.exif.DateTime & co |
| |
[полный список см. https://exiftool.org/TagNames/EXIF.html] |
| |
числа типа int/double, |
| |
даты типа dateб |
| |
перечисления в виде hash с ключами 0..count-1 |
| |
$картинка.src .width .height |
| |
$картинка.line-width число=ширина линий |
| |
$картинка.line-style строка=стиль линий '*** * '='*** * *** * *** * ' |
| |
^картинка.html[[hash]] |
| |
<img ...> |
| |
^image::load[фон.gif] |
| |
только gif пока |
| |
^image::create(размер X;размер Y[;цвет фона default белый]]) |
| |
^картинка.line(x0;y0;x1;y1;0xffFFff) |
| |
^картинка.fill(x;y;0xffFFff) |
| |
^картинка.rectangle(x0;y0;x1;y1;0xffFFff) |
| |
^картинка.bar(x0;y0;x1;y1;0xffFFff) |
| |
^картинка.replace(hex-цвет1;hex-цвет2)[table x:y вершины_многоугольника] |
| |
^картинка.polyline(цвет)[table x:y точки] |
| |
^картинка.polygon(цвет)[table x:y вершины_многоугольника] |
| |
^картинка.polybar(цвет)[table x;y вершины_многоугольника] |
| |
^картинка.font[набор_букв;имя_файла_шрифта.gif][(ширина_пробела[;ширина_символа])] |
| |
высота символа = высота картинки/количество букв в наборе |
| |
если указана ширина_символа, то monospaced, если 0, то ширина_символа = ширине gif |
| |
^картинка.font[набор_букв;имя_файла_шрифта.gif; |
| |
$.space(ширина_пробела) // по умолчанию = ширине gif |
| |
$.width(ширина_символа) // см. выше, по умолчанию proportional |
| |
$.spacing(расстояние между буквами) // по умолчанию = 1 |
| |
] |
| |
^картинка.text(x;y)[текст_надписи] AS_IS |
| |
^картинка.length[текст_надписи] AS_IS |
| |
^картинка.gif[возможно, имя файла] |
| |
кодирует в FILE с content-type=image/gif имя файла будет использовано при $response:download |
| |
^картинка.arc(center x;center y;width;height;start in degrees;end in degrees;color) |
| |
^картинка.sector(center x;center y;width;height;start in degrees;end in degrees;color) |
| |
^картинка.circle(center x;center y;r;color) |
| |
^картинка.copy[source](src x;src y;src w;src h;dst x;dst y[;dest w[;dest h[;tolerance]]]) |
| |
при заданных dest_w/dest_h делает изменение размера кусочка |
| |
при уменьшении делает resample |
| |
годится только для уменьшения простой[малоцветной] дребедени вроде графиков/pie, |
| |
для thumbnais не годится |
| |
при не указанном dest_h сохраняет aspect ratio |
| |
tolerance - некое число[квадрат расстояния в RGB пространстве до искомого цвета], |
| |
определяющее прожорливость выделялки цветов из палитры [default=150] |
| |
меньше - точнее приближает цвета, но они быстро кончаются |
| |
больше - неточно приближает цвет, но большей части хватит |
| |
^картинка.pixel(x;y)[(color)] |
| |
узнать или задать цвет пиксела |
| |
|
| |
regex |
| |
в выражении |
| |
логическое значение всегда равно true |
| |
числовое значение равно количеству байт скомпилированного шаблона |
| |
^regex::create[шаблон-строка|regex][[опции поиска]] |
| |
^шаблон.size[] |
| |
количество байт скомпилированного шаблона |
| |
если значение очень большое - стоит почитать документацию по pcre и, возможно, переписать шаблон |
| |
^шаблон.study_size[] |
| |
размер study-структуры. если==0 - шаблон не может быть "изучен" |
| |
$шаблон.pattern |
| |
текст шаблона |
| |
$шаблон.options |
| |
строка с исходным текстом опций |
| |
|
| |
console |
| |
$console:timeout |
| |
$console:line |
| |
read/write строку |
| |
|
| |
cookie |
| |
$cookie:имя считать старое или свежезаданное |
| |
$cookie:имя[значение] на 90 дней |
| |
$cookie:имя[$.value[значение] $.expires[ЗНАЧЕНИЕ] $.secure(true) $.domain[имя домена] $.httponly(true)] |
| |
значение поля expires может быть 'session', date, или число дней (0дней=session) |
| |
если дата, она будет преобразована к формату "Sun, 25-Aug-2002 12:03:45 GMT" |
| |
$cookie:fields |
| |
hash со всеми cookies |
| |
|
| |
curl |
| |
^curl:load[[ |
| |
$.url[http://URL] |
| |
$.timeout(N) |
| |
$.ssl_verifypeer(0) |
| |
$.mode[text|binary] тип создаваемого файла |
| |
]] |
| |
загружает файл с удалённого сервера, можно вызывать многократно в одной сессии, |
| |
можно указать любую опцию libcurl, имена опций строчными буквами без префикса CURLOPT_ |
| |
^curl:options[[ |
| |
$.library[libcurl.so.4] |
| |
$.charset[UTF-8] |
| |
... |
| |
]] |
| |
последующие вызовы ^curl:load наследуют заданные опции, путь к libcurl задаётся до начала использования curl |
| |
^curl:session{код} |
| |
создаёт cURL-сессию, можно задать общие опции, сделать несколько загрузок |
| |
^curl:info[название], ^curl:info[] |
| |
информация о последнем запросе (значение или хеш) |
| |
^curl:version[] |
| |
версия используемой библиотеки cURL |
| |
|
| |
env |
| |
$env:переменная |
| |
$env:fields хеш с переменными окружения |
| |
$env:PARSER_VERSION версия парсера |
| |
|
| form |
form |
| [берётся первый элемент из одноимённых из GET, потом первый из POST] |
[берётся первый элемент из одноимённых из GET, потом первый из POST] |
| $form:поле |
$form:поле |
|
Line 565 form
|
Line 799 form
|
| $form:imap |
$form:imap |
| хеш с ключами 'x' и 'y' со значением ?1,2 приписки при использовании server-site image map |
хеш с ключами 'x' и 'y' со значением ?1,2 приписки при использовании server-site image map |
| |
|
| env |
inet |
| $env:переменная |
^inet:ntoa(long) |
| $env:fields хеш с переменными окружения |
^inet:aton[IP] |
| $env:PARSER_VERSION версия парсера |
^inet:name2ip[name][[ $.ipv[4|6|any] $.table(true) ]] |
| |
прямое преобразование имени в IP адрес |
| cookie |
^inet:ip2name[ip][ $.ipv[4|6|any] ]] |
| $cookie:имя считать старое или свежезаданное |
обратное преобразование из IP адреса в имя |
| $cookie:имя[значение] на 90 дней |
^inet:hostname[] |
| $cookie:имя[$.value[значение] $.expires[ЗНАЧЕНИЕ] $.secure(true) $.domain[имя домена] $.httponly(true)] |
имя хоста |
| значение поля expires может быть 'session', date, или число дней (0дней=session) |
|
| если дата, она будет преобразована к формату "Sun, 25-Aug-2002 12:03:45 GMT" |
|
| $cookie:fields |
|
| hash со всеми cookies |
|
| |
|
| request |
|
| $request:query |
|
| $request:uri |
|
| $request:document-root |
|
| каталог, относительно которого считаются пути в parser, по-умолчанию = $env:DOCUMENT_ROOT |
|
| $request:argv |
|
| hash с параметрами коммандной строки. ключи 0, 1, ... [0 -- имя обрабатываемого файла] |
|
| $request:charset |
|
| кодировка исходного документа |
|
| используется при upper/lower и match[][i] |
|
| ПРЕДУПРЕЖДЕНИЕ: необходимо задать $request/response:charset до использования полей класса form |
|
| $request:method |
|
| метод запроса (GET|POST|PUT) |
|
| $request:body |
|
| тело POST-запроса в виде текста |
|
| $request:body-file |
|
| тело POST-запроса в виде файла |
|
| $request:body-charset |
|
| кодировка POST-запроса |
|
| $request:headers |
|
| хеш с заголовками запроса (без префикса HTTP_) |
|
| |
|
| response |
|
| $response:поле[значение] и можно считать старое - $response:поле |
|
| значение может быть string а может быть hash: |
|
| $value[abc] field: {abc}<<часть |
|
| $attribute[zzz] field: abc; {attribute=zzz}<<часть |
|
| значение поля или атрибута может быть string или date |
|
| если дата, она будет преобразована к формату "Sun, 25-Aug-2002 12:03:45 GMT" |
|
| $response:headers |
|
| накопленные поля |
|
| $response:body[DATA] |
|
| замещает стандартный ответ |
|
| $response:download[DATA] |
|
| замещает стандартный ответ, выставляет флаг, заставляющий browser предложить download |
|
| $response:status |
|
| ^response:clear[] забыть все заданные response поля |
|
| $response:charset |
|
| кодировка клиента т.е. та, |
|
| 1) из которой будут перекодированы $form:поля после забирания из browser'а |
|
| 2) в которую документ будет перекодирован перед отдаванием в browser |
|
| 3) в которую будет перекодирован текст языка uri |
|
| не добавляет к content-type ничего, если хочется, это надо сделать вручную |
|
| ПРЕДУПРЕЖДЕНИЕ: необходимо задать $request/response:charset до использования полей класса form |
|
| |
|
| regex |
json |
| в выражении |
^json:parse[-json-строка-[; |
| логическое значение всегда равно true |
$.depth(максимальная глубина, default == 19) |
| числовое значение равно количеству байт скомпилированного шаблона |
$.double(false) отключить встроенный парсинг чисел с плавающей точкой (по умолчанию включен) |
| ^regex::create[шаблон-строка|regex][[опции поиска]] |
в этом случае они попадут в результирующий объект как строки |
| ^шаблон.size[] |
$.int(false) отключить встроенный парсинг целых чисел (по умолчанию включен) |
| количество байт скомпилированного шаблона |
в этом случае они попадут в результирующий объект как строки |
| если значение очень большое - стоит почитать документацию по pcre и, возможно, переписать шаблон |
$.distinct[first|last|all] как будет происходить разбор дублирующихся ключей у объектов |
| ^шаблон.study_size[] |
first - будет оставлен первый встретившийся элемент |
| размер study-структуры. если==0 - шаблон не может быть "изучен" |
last - будет оставлен последний встретившийся элемент |
| $шаблон.pattern |
all - будут оставлены все элементы. при этом элементы, начиная со 2 |
| текст шаблона |
получат числовые суффиксы (key_2 итд) |
| $шаблон.options |
по умолчанию дублирующиеся ключи приведут к exception |
| строка с исходным текстом опций |
$.object[method-junction] пользовательский метод[ключ;объект], которому будут передаваться все разобранные |
| |
объекты и ключи объекта, метод возвращает новый объект |
| |
$.array[method-junction] пользовательский метод, которому будут передаваться массивы |
| |
$.taint[язык преобразования] задаёт язык преобразования для всех строк результата |
| |
]] |
| |
парсит json-строку в хеш |
| |
|
| reflection |
^json:string[system or user object[; |
| ^reflection:create[класс;конструктор[;пара[;мет[;ры]]]] |
$.skip-unknown(false) отключить exception и выдавать 'null' при сериализации объектов с типами |
| вызывает указанный конструктор класса (не более 100 параметров) |
отличных от void, bool, string, int, double, date, table, hash и file |
| ^reflection:create[ $.class[name] $.constructor[name] $.arguments[ $.1[па] $.2[рам] $.3[етры] ] ] |
$.indent(true) форматировать результирующую строку табуляциями по глубине вложенности |
| вызывает указанный конструктор класса |
$.date[sql-string|gmt-string|iso-string|unix-timestamp] |
| ^reflection:classes[] |
формат вывода даты, по умолчанию -- sql-string |
| хеш со всеми классами. ключ = имя класса, значение бывает methoded (класс с методами) или void |
$.table[object|array|compact] |
| ^reflection:class[объект] |
формат вывода таблицы, по умолчанию -- object |
| класс переданного объекта |
object: [{"c1":"v11","c2":"v12",...},{"c1":"v21","c2":"v22",...},...] |
| ^reflection:class_name[объект] |
array: [["c1","c2",...] || null (for nameless),["v11","v12",...],...] |
| имя класса переданного объекта |
compact: ["v11" || ["v11","v12",...],...] |
| ^reflection:base[объект] |
$.file[text|base64|stat] вывести тело файла в указанном виде (по умолчание тело файла |
| родительский класс переданного объекта |
не попадает в output) |
| ^reflection:base_name[объект] |
$.xdoc[hash] параметры преобразования xdoc в строку (как в ^xdoc.string[]) |
| имя родительского класса переданного объекта |
$.тип[method-junction] любой тип можно вывести с помощью пользовательского метода, который |
| ^reflection:class_by_name[имя класса] |
должен принимать 3 параметра: ключ, объект данного типа и опции |
| получение класса по имени |
вызова ^json:string[] |
| ^reflection:class_alias[имя класса;новое имя класса] |
$._default[метод] пользовательский метод, будет вызываться для вывода всех объектов пользовательских |
| задает псевдоним для указанного класса |
классов. Метод должен принимать 3 параметра: ключ, объект и опции вызова. |
| ^reflection:def[class;имя класса] |
$._default[имя метода] имя пользователького метода, при его наличии он будет вызван для сериализации |
| проверка класса на существование |
$.void[null|string] неопределенное значение будет выдано в виде null (по умолчанию) |
| ^reflection:methods[класс] |
или пустой строки |
| хеш со списком методов указанного класса, значения - строки 'native' или 'parser' |
]] |
| ^reflection:method[класс или объект;имя метода] |
сериализует системный или пользовательский объект в json-строку |
| возвращает junction-method класса или объекта |
|
| ^reflection:filename[объект или класс или метод] |
|
| возвращает имя файла, где определен объект, класс или метод |
|
| ^reflection:fields[класс или объект] |
|
| хеш со списком статических полей указанного класса или динамических полей указанного объекта |
|
| ^reflection:fields_reference[объект] |
|
| редактируемый хеш динамических полей указанного объекта |
|
| ^reflection:field[класс или объект;имя поля] |
|
| возвращает значение указанного поля класса или объекта. getter-ы игнорируются. |
|
| ^reflection:copy[источник;назначение] |
|
| копирует поля из одного объекта или класса в другой |
|
| ^reflection:uid[класс или объект] |
|
| возвращает идентификатор объекта или класса |
|
| ^reflection:method_info[класс;метод] |
|
| хеш с параметрами указанного метода класса |
|
| $.inherited[класс] имя класса, где метод был определён (возвращается только если метод был определён в предке) |
|
| $.overridden[класс] имя класса, где метод был определён (возвращается только если метод был определён в предке) |
|
| для native классов возвращается хеш: |
|
| .min_params(минимально необходимое число параметров) |
|
| .max_params(максимально возможное число параметров) |
|
| .call_type[dynamic|static|any] |
|
| для parser классов возвращается хеш: |
|
| ключ - номер параметра (0, 1, ...), значение - имя параметра |
|
| ^reflection:dynamical[[object or class, caller if absent]] |
|
| возвращает true, если метод был вызван из динамического контекста при передаче |
|
| параметра возвращает true, если передан динамический объект, false если класс |
|
| ^reflection:delete[класс или объект;имя переменной] |
|
| удаляет переменную с указанным именем в указанном классе или объекте |
|
| ^reflection:is[имя элемента;имя класса][[контекст]] |
|
| аналог оператора '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) ] |
|
| копирует в класс методы и поля другого класса |
|
| |
|
| mail |
mail |
| $mail.received=MESSAGE: |
$mail.received=MESSAGE: |
|
Line 750 mail
|
Line 904 mail
|
| $value[FILE] |
$value[FILE] |
| ] |
] |
| ] |
] |
| если charset указан, письмо перекодируется в этот charset |
если charset указан, письмо перекодируется в этот charset |
| content-type.charset не влияет на перекодирование |
content-type.charset не влияет на перекодирование |
| после имени части может идти # число |
после имени части может идти # число |
| |
|
| ^mail:send[ |
^mail:send[ |
| # по-умолчанию, совпадает с source encoding. |
# по-умолчанию, совпадает с source encoding. |
|
Line 826 mail
|
Line 980 mail
|
| под Windows используется SMTP протокол, сервер задаётся |
под Windows используется SMTP протокол, сервер задаётся |
| $MAIL.SMTP[smtp.domain.ru] |
$MAIL.SMTP[smtp.domain.ru] |
| |
|
| image |
|
| $картинка[^image::measure[DATA[; $.exif(bool) $.xmp(bool) $.xmp-charset[] $.video(bool) ]]] |
|
| смотрит на .ext case insensitive, |
|
| умеет мерить gif, jpg, tiff, bmp, webp и mp4 (mov) |
|
| $картинка.exif << hash после measure jpeg с exif информацией и $.exif(true) |
|
| $image.exif.DateTime & co |
|
| [полный список см. https://exiftool.org/TagNames/EXIF.html] |
|
| числа типа int/double, |
|
| даты типа dateб |
|
| перечисления в виде hash с ключами 0..count-1 |
|
| $картинка.src .width .height |
|
| $картинка.line-width число=ширина линий |
|
| $картинка.line-style строка=стиль линий '*** * '='*** * *** * *** * ' |
|
| ^картинка.html[[hash]] |
|
| <img ...> |
|
| ^image::load[фон.gif] |
|
| только gif пока |
|
| ^image::create(размер X;размер Y[;цвет фона default белый]]) |
|
| ^картинка.line(x0;y0;x1;y1;0xffFFff) |
|
| ^картинка.fill(x;y;0xffFFff) |
|
| ^картинка.rectangle(x0;y0;x1;y1;0xffFFff) |
|
| ^картинка.bar(x0;y0;x1;y1;0xffFFff) |
|
| ^картинка.replace(hex-цвет1;hex-цвет2)[table x:y вершины_многоугольника] |
|
| ^картинка.polyline(цвет)[table x:y точки] |
|
| ^картинка.polygon(цвет)[table x:y вершины_многоугольника] |
|
| ^картинка.polybar(цвет)[table x;y вершины_многоугольника] |
|
| ^картинка.font[набор_букв;имя_файла_шрифта.gif][(ширина_пробела[;ширина_символа])] |
|
| высота символа = высота картинки/количество букв в наборе |
|
| если указана ширина_символа, то monospaced, если 0, то ширина_символа = ширине gif |
|
| ^картинка.font[набор_букв;имя_файла_шрифта.gif; |
|
| $.space(ширина_пробела) // по умолчанию = ширине gif |
|
| $.width(ширина_символа) // см. выше, по умолчанию proportional |
|
| $.spacing(расстояние между буквами) // по умолчанию = 1 |
|
| ] |
|
| ^картинка.text(x;y)[текст_надписи] AS_IS |
|
| ^картинка.length[текст_надписи] AS_IS |
|
| ^картинка.gif[возможно, имя файла] |
|
| кодирует в FILE с content-type=image/gif имя файла будет использовано при $response:download |
|
| ^картинка.arc(center x;center y;width;height;start in degrees;end in degrees;color) |
|
| ^картинка.sector(center x;center y;width;height;start in degrees;end in degrees;color) |
|
| ^картинка.circle(center x;center y;r;color) |
|
| ^картинка.copy[source](src x;src y;src w;src h;dst x;dst y[;dest w[;dest h[;tolerance]]]) |
|
| при заданных dest_w/dest_h делает изменение размера кусочка |
|
| при уменьшении делает resample |
|
| годится только для уменьшения простой[малоцветной] дребедени вроде графиков/pie, |
|
| для thumbnais не годится |
|
| при не указанном dest_h сохраняет aspect ratio |
|
| tolerance - некое число[квадрат расстояния в RGB пространстве до искомого цвета], |
|
| определяющее прожорливость выделялки цветов из палитры [default=150] |
|
| меньше - точнее приближает цвета, но они быстро кончаются |
|
| больше - неточно приближает цвет, но большей части хватит |
|
| ^картинка.pixel(x;y)[(color)] |
|
| узнать или задать цвет пиксела |
|
| |
|
| file |
|
| $файл_из_post.name |
|
| $файл_из_post.size |
|
| $файлt_из_post.text |
|
| ^файл.save[text|binary;имя файла[;$.charset[в какой кодировке сохраняем]]] |
|
| ^file:delete[имя файла] |
|
| ^file:find[имя файла][{когда не нашли}] |
|
| ^file:list[путь[;шаблон-строка|шаблон-regex]] |
|
| table с колонками name dir |
|
| ^file:list[путь;$.filter[шаблон-строка|шаблон-regex] $.stat(true)] |
|
| table с колонками name dir size [mca]date |
|
| ^file::load[text|binary;big.zip[;domain_press_release_2001_03_01.zip][;опции]] |
|
| ^file::create[text|binary;имя;data] |
|
| ^file::create[text|binary;имя;data[;$.charset[кодировка букв в создаваемом файле] $.content-type[...]]] |
|
| ^file::create[string-or-file-content[;$.name[имя] $.mode[text|binary] $.content-type[...] $.charset[...]]] |
|
| $файл_который_был_loaded.size |
|
| $файл_который_был_loaded_или_created.mode = text/binary |
|
| ^file::stat[имя файла] |
|
| $файл_который_был_stated_или_loaded.size .adate .mdate .cdate |
|
| ^file::cgi[[text|binary;]имя файла[;env hash +options[;1cmd[;2line[;3ar[;4g[;5s]]]]]]] |
|
| любой аргумент может быть строкой или массивом строк |
|
| возвращённый заголовок рассыпается на $поля |
|
| $status |
|
| $stderr |
|
| ^file::exec[[text|binary;]имя файла[;env hash[;1cmd[;2line[;3ar[;4g[;5s;...under unix max 50 args]]]]]]] |
|
| любой аргумент может быть строкой или массивом строк |
|
| options: |
|
| $.stdin[текст|файл] если пусто, отключается автоматическое пересовывание данных HTTP-POST |
|
| ^file:move[старое имя файла;новое имя файла] |
|
| можно переименовывать и двигать каталоги[win32: но не через границу дисков] |
|
| каталоги для dest создаются с правами 775 |
|
| каталог старого файла стирается, если после move он остаётся пуст |
|
| ^file:copy[имя файла;имя копии файла[; $.append(1) ]] |
|
| можно копировать только файлы |
|
| ^file:lock[имя файла]{код} |
|
| файл при необходимости создаётся |
|
| блокируется |
|
| выполняется код |
|
| разблокируется |
|
| ^file:dirname[/a/some.tar.gz|file]=/a (работает аналогично комманде *nix) |
|
| ^file:dirname[/a/b/|file]=/a (работает аналогично комманде *nix) |
|
| ^file:basename[/a/some.tar.gz|file]=some.tar.gz (работает аналогично комманде *nix) |
|
| ^file:basename[/a/b/|file]=b (работает аналогично комманде *nix) |
|
| ^file:justname[/a/some.tar.gz|file]=some.tar |
|
| ^file:justext[/a/some.tar.gz|file]=gz |
|
| /some/page.html: ^file:fullpath[a.gif] => /some/a.gif |
|
| ^файл.sql-string[] |
|
| внутри ^connect даст правильно escaped строку, которую можно в запрос отдать |
|
| ^file::sql{query}[[ $.name[имя_файла_для_download] $.content-type[пользовательский content-type] ]] |
|
| результат запроса должен быть "одна строка". |
|
| колонки: |
|
| первая колонка - данные |
|
| если есть вторая - это имя файла |
|
| если есть третья - это content-type |
|
| ^файл.base64[ $.pad(bool) $.wrap(bool) $.url-safe(bool) ] |
|
| encode |
|
| ^file:base64[имя файла[; $.pad(bool) $.wrap(bool) $.url-safe(bool) ]] |
|
| encode |
|
| ^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) ]] |
|
| decode |
|
| ^file:crc32[имя файла] |
|
| вычисляет crc32 файла с указанным именем |
|
| ^файл.crc32[] |
|
| вычисляет crc32 объекта |
|
| ^файл.md5[], ^file:md5[имя файла] |
|
| выдает digest файла, длиной 16 байт в виде строки, |
|
| где байты digest выданы в hex виде, впритык, в нижнем регистре |
|
| |
|
| math |
math |
| $math:PI |
$math:PI |
| ^math:round floor ceiling |
^math:round floor ceiling |
|
Line 991 math
|
Line 1021 math
|
| объединяет в себе возможность работы с разными алгоритмами криптографического хеширования. |
объединяет в себе возможность работы с разными алгоритмами криптографического хеширования. |
| $.hmac[ключ] для проверки целостности переданных данных |
$.hmac[ключ] для проверки целостности переданных данных |
| |
|
| inet |
memory |
| ^inet:ntoa(long) |
^memory:compact[] |
| ^inet:aton[IP] |
собрать мусор, освободив место под новые данные (предупреждение: память процесса никогда не освобождается) |
| ^inet:name2ip[name][[ $.ipv[4|6|any] $.table(true) ]] |
полезно делать перед XSL transform |
| прямое преобразование имени в IP адрес |
^memory:auto-compact(частота сборки) |
| ^inet:ip2name[ip][ $.ipv[4|6|any] ]] |
задает режим автоматической сборки мусора, от 0 (выключена) до 5 (максимальная) |
| обратное преобразование из IP адреса в имя |
|
| ^inet:hostname[] |
|
| имя хоста |
|
| |
|
| json |
reflection |
| ^json:parse[-json-строка-[; |
^reflection:create[класс;конструктор[;пара[;мет[;ры]]]] |
| $.depth(максимальная глубина, default == 19) |
вызывает указанный конструктор класса (не более 100 параметров) |
| $.double(false) отключить встроенный парсинг чисел с плавающей точкой (по умолчанию включен) |
^reflection:create[ $.class[name] $.constructor[name] $.arguments[ $.1[па] $.2[рам] $.3[етры] ] ] |
| в этом случае они попадут в результирующий объект как строки |
вызывает указанный конструктор класса |
| $.int(false) отключить встроенный парсинг целых чисел (по умолчанию включен) |
^reflection:classes[] |
| в этом случае они попадут в результирующий объект как строки |
хеш со всеми классами. ключ = имя класса, значение бывает methoded (класс с методами) или void |
| $.distinct[first|last|all] как будет происходить разбор дублирующихся ключей у объектов |
^reflection:class[объект] |
| first - будет оставлен первый встретившийся элемент |
класс переданного объекта |
| last - будет оставлен последний встретившийся элемент |
^reflection:class_name[объект] |
| all - будут оставлены все элементы. при этом элементы, начиная со 2 |
имя класса переданного объекта |
| получат числовые суффиксы (key_2 итд) |
^reflection:base[объект] |
| по умолчанию дублирующиеся ключи приведут к exception |
родительский класс переданного объекта |
| $.object[method-junction] пользовательский метод[ключ;объект], которому будут передаваться все разобранные |
^reflection:base_name[объект] |
| объекты и ключи объекта, метод возвращает новый объект |
имя родительского класса переданного объекта |
| $.array[method-junction] пользовательский метод, которому будут передаваться массивы |
^reflection:class_by_name[имя класса] |
| $.taint[язык преобразования] задаёт язык преобразования для всех строк результата |
получение класса по имени |
| ]] |
^reflection:class_alias[имя класса;новое имя класса] |
| парсит json-строку в хеш |
задает псевдоним для указанного класса |
| |
^reflection:def[class;имя класса] |
| |
проверка класса на существование |
| |
^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 классов возвращается хеш: |
| |
.min_params(минимально необходимое число параметров) |
| |
.max_params(максимально возможное число параметров) |
| |
.call_type[dynamic|static|any] |
| |
для parser классов возвращается хеш: |
| |
ключ - номер параметра (0, 1, ...), значение - имя параметра |
| |
^reflection:dynamical[[object or class, caller if absent]] |
| |
возвращает true, если метод был вызван из динамического контекста при передаче |
| |
параметра возвращает true, если передан динамический объект, false если класс |
| |
^reflection:delete[класс или объект;имя переменной] |
| |
удаляет переменную с указанным именем в указанном классе или объекте |
| |
^reflection:is[имя элемента;имя класса][[контекст]] |
| |
аналог оператора '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) ] |
| |
копирует в класс методы и поля другого класса |
| |
|
| ^json:string[system or user object[; |
request |
| $.skip-unknown(false) отключить exception и выдавать 'null' при сериализации объектов с типами |
https://site.name/a%20b/?name=some%20value |
| отличных от void, bool, string, int, double, date, table, hash и file |
$request:query |
| $.indent(true) форматировать результирующую строку табуляциями по глубине вложенности |
name=some%20value |
| $.date[sql-string|gmt-string|iso-string|unix-timestamp] |
$request:uri |
| формат вывода даты, по умолчанию -- sql-string |
/a%20b/?name=value |
| $.table[object|array|compact] |
$request:path |
| формат вывода таблицы, по умолчанию -- object |
/a b/ |
| object: [{"c1":"v11","c2":"v12",...},{"c1":"v21","c2":"v22",...},...] |
$request:document-root |
| array: [["c1","c2",...] || null (for nameless),["v11","v12",...],...] |
каталог, относительно которого считаются пути в parser, по-умолчанию = $env:DOCUMENT_ROOT |
| compact: ["v11" || ["v11","v12",...],...] |
$request:argv |
| $.file[text|base64|stat] вывести тело файла в указанном виде (по умолчание тело файла |
hash с параметрами коммандной строки. ключи 0, 1, ... [0 -- имя обрабатываемого файла] |
| не попадает в output) |
$request:charset |
| $.xdoc[hash] параметры преобразования xdoc в строку (как в ^xdoc.string[]) |
кодировка исходного документа |
| $.тип[method-junction] любой тип можно вывести с помощью пользовательского метода, который |
используется при upper/lower и match[][i] |
| должен принимать 3 параметра: ключ, объект данного типа и опции |
ПРЕДУПРЕЖДЕНИЕ: необходимо задать $request/response:charset до использования полей класса form |
| вызова ^json:string[] |
$request:method |
| $._default[метод] пользовательский метод, будет вызываться для вывода всех объектов пользовательских |
метод запроса (GET|POST|PUT) |
| классов. Метод должен принимать 3 параметра: ключ, объект и опции вызова. |
$request:body |
| $._default[имя метода] имя пользователького метода, при его наличии он будет вызван для сериализации |
тело POST-запроса в виде текста |
| $.void[null|string] неопределенное значение будет выдано в виде null (по умолчанию) |
$request:body-file |
| или пустой строки |
тело POST-запроса в виде файла |
| ]] |
$request:body-charset |
| сериализует системный или пользовательский объект в json-строку |
кодировка POST-запроса |
| |
$request:headers |
| |
хеш с заголовками запроса (без префикса HTTP_) |
| |
|
| date |
response |
| время типа date можно использовать в выражениях, подставляет количество дней с epoch [1 января 1970 (UTC)], дробное |
$response:поле[значение] и можно считать старое - $response:поле |
| строковое значение в местном времени, численное в UTC, диапазон от 0000-00-00 00:00:00 до 9999-12-31 23:59:59 |
значение может быть string а может быть hash: |
| по умолчанию используется установленная средствами OS временная зона |
$value[abc] field: {abc}<<часть |
| |
$attribute[zzz] field: abc; {attribute=zzz}<<часть |
| |
значение поля или атрибута может быть string или date |
| |
если дата, она будет преобразована к формату "Sun, 25-Aug-2002 12:03:45 GMT" |
| |
$response:headers |
| |
накопленные поля |
| |
$response:body[DATA] |
| |
замещает стандартный ответ |
| |
$response:download[DATA] |
| |
замещает стандартный ответ, выставляет флаг, заставляющий browser предложить download |
| |
$response:status |
| |
^response:clear[] забыть все заданные response поля |
| |
$response:charset |
| |
кодировка клиента т.е. та, |
| |
1) из которой будут перекодированы $form:поля после забирания из browser'а |
| |
2) в которую документ будет перекодирован перед отдаванием в browser |
| |
3) в которую будет перекодирован текст языка uri |
| |
не добавляет к content-type ничего, если хочется, это надо сделать вручную |
| |
ПРЕДУПРЕЖДЕНИЕ: необходимо задать $request/response:charset до использования полей класса form |
| |
|
| ^date::now[] |
status |
| ^date::now(смещение в днях) |
$status:sql |
| выдаёт сейчас+смещение |
cache table |
| ^date::today[] |
url time |
| дата на 00:00:00 текущего дня |
url time |
| ^date::today(целочисленное смещение в днях) |
url time |
| дата на 00:00:00 текущего дня+смещение |
$status:stylesheet |
| ^date::create(дней с epoch) |
cache table |
| ^date::create(year;month[;day[;hour[;minute[;second[;TZ]]]]]) |
file time |
| ^date::create[дата в формате %Y-%m-%d %H:%M:%S] |
file time |
| для удобного создания по значению из базы |
file time |
| формат1: %Y[-%m[-%d[ %H[:%M[:%S]]]]] |
$status:rusage hash |
| формат2: %H:%M[:%S] |
utime user time used |
| ^date::create[дата в формате %Y-%m-%dT%H:%M[:%S]TZ] |
stime system time used |
| для создания по значению в формате ISO 8601 |
maxrss max resident set size |
| формат TZ: Z(UTC) или +-hour[:minute] (смещение от UTC) |
ixrss integral shared text memory size |
| ^date::unix-timestamp() |
idrss integral unshared data size |
| ^дата.unix-timestamp[] |
isrss integral unshared stack size |
| $дата.year month day hour minute second weekday yearday(0...) daylightsaving TZ weekyear |
tv_sec |
| TZ="" << локальная зона |
tv_usec |
| $дата.year month day hour minute second можно задать новое значение, остальные read only |
$s[$status:rusage] |
| ^дата.double[] ^дата.int[] |
^s.tv_sec.format[%.0f].^s.tv_usec.format[%06.0f] |
| количество дней с epoch [1 января 1970 (UTC)], дробное или целое |
$status:memory hash |
| ^дата.roll[year|month|day](+-смещение) |
used |
| сдвигает дату |
includes some pages that were allocated but never written |
| ^дата.roll[TZ;Новая зона] |
free |
| говорит, что дата в таком-то часовом поясе: влияет на .hour & Co |
ever_allocated_since_compact |
| ^date:roll[TZ;Новая зона] |
return the number of bytes allocated since the last collection |
| говорит, что по умолчанию все даты в таком-то часовом поясе |
ever_allocated_since_start |
| ^дата.sql-string[[datetime|date|time]] |
return the total number of bytes [EVER(c)PAF] allocated in this process, |
| datetime или без параметра - %Y-%m-%d %H:%M:%S |
never decreases |
| date - %Y-%m-%d |
$status:pid |
| time - %H:%M:%S |
process id |
| where published='^дата.sql-string[]' |
$status:tid |
| ^date:calendar[rus|eng](год;месяц) |
thread id |
| выдаёт неименованную таблицу, столбцы: 0..6, week, year |
$status:mode |
| ^date:calendar[rus|eng](год;месяц;день) |
режим работы, cgi|console|mail|httpd|apache|isapi |
| выдаёт именнованную таблицу, столбцы: year, month, day, weekday |
$status:log-filename |
| ^date:last-day(год;месяц) |
путь к журналу ошибок parser3.log |
| вернёт последний день месяца |
|
| ^дата.last-day[] |
|
| вернёт последний день месяца $дата |
|
| ^дата.gmt-string[] |
|
| Fri, 23 Mar 2001 09:32:23 GMT |
|
| ^дата.iso-string[] |
|
| 2001-03-23T12:32:23+03 |
|
| |
|
| xdoc(xnode) |
xdoc(xnode) |
| $xdoc.search-namespaces hash, where keys=prefixes, values=urls |
$xdoc.search-namespaces hash, where keys=prefixes, values=urls |
|
Line 1247 xnode
|
Line 1328 xnode
|
| ^node.selectNumber[xpath/query/expression] = double if any or die |
^node.selectNumber[xpath/query/expression] = double if any or die |
| ^node.selectString[xpath/query/expression] = string if any or die |
^node.selectString[xpath/query/expression] = string if any or die |
| |
|
| memory |
|
| ^memory:compact[] |
|
| собрать мусор, освободив место под новые данные (предупреждение: память процесса никогда не освобождается) |
|
| полезно делать перед XSL transform |
|
| ^memory:auto-compact(частота сборки) |
|
| задает режим автоматической сборки мусора, от 0 (выключена) до 5 (максимальная) |
|
| |
|
| status |
|
| $status:sql |
|
| cache table |
|
| url time |
|
| url time |
|
| url time |
|
| $status:stylesheet |
|
| cache table |
|
| file time |
|
| file time |
|
| file time |
|
| $status:rusage hash |
|
| utime user time used |
|
| stime system time used |
|
| maxrss max resident set size |
|
| ixrss integral shared text memory size |
|
| idrss integral unshared data size |
|
| isrss integral unshared stack size |
|
| tv_sec |
|
| tv_usec |
|
| $s[$status:rusage] |
|
| ^s.tv_sec.format[%.0f].^s.tv_usec.format[%06.0f] |
|
| $status:memory hash |
|
| used |
|
| includes some pages that were allocated but never written |
|
| free |
|
| ever_allocated_since_compact |
|
| return the number of bytes allocated since the last collection |
|
| ever_allocated_since_start |
|
| return the total number of bytes [EVER(c)PAF] allocated in this process, |
|
| never decreases |
|
| $status:pid |
|
| process id |
|
| $status:tid |
|
| thread id |
|
| $status:mode |
|
| режим работы, cgi|console|mail|httpd|apache|isapi |
|
| $status:log-filename |
|
| путь к журналу ошибок parser3.log |
|
| |
|
| console |
|
| $console:timeout |
|
| $console:line |
|
| read/write строку |
|
| |
|
| DATA::=string | file | hash |
DATA::=string | file | hash |
| hash вида |
hash вида |
| [ |
[ |
|
Line 1396 MAIN
|
Line 1425 MAIN
|
| |
|
| если описание метода содержит локальную переменную result в явном виде (есть и неявная переменная) |
если описание метода содержит локальную переменную result в явном виде (есть и неявная переменная) |
| то код вывода пробельных литералов не попадает в конечный байт-код |
то код вывода пробельных литералов не попадает в конечный байт-код |
| |
|
| |
$Id$ |