|
|
| version 1.20, 2002/03/18 15:29:45 | version 1.22, 2002/03/25 10:27:20 |
|---|---|
| Line 51 Xне сделано, видимо, не будет сделано | Line 51 Xне сделано, видимо, не будет сделано |
| !^for[i](0;4){тело}[[разделитель]|{разделитель который выполняется перед непустым очередным не первым телом}] | !^for[i](0;4){тело}[[разделитель]|{разделитель который выполняется перед непустым очередным не первым телом}] |
| !^use[модуль] | !^use[модуль] |
| !^try{ | !^try{ |
| ... | ... |
| !^throw[sql.connect;вася;болван] // был ^error[текст] | !^throw[sql.connect;вася;болван] // был ^error[текст] |
| ... | ... |
| }{ | }{ |
| ^if($exception.type eq sql){ | ^if($exception.type eq sql){ |
| $exception.handled(1) ^rem{флаг, что exception обработан} | $exception.handled(1) ^rem{флаг, что exception обработан} |
| .... | .... |
| } | } |
| ^switch($exception.type){ | ^switch($exception.type){ |
| ^case[sql;mail]{ | ^case[sql;mail]{ |
| $exception.handled(1) | $exception.handled(1) |
| код, обрабатывающий sql ошибку | код, обрабатывающий sql ошибку |
| $exception.type = sql.connect | $exception.type = sql.connect |
| $exception.file $exception.lineno [если не запрещены при компиляции] | $exception.file $exception.lineno [если не запрещены при компиляции] |
| $exception.source = вася | $exception.source = вася |
| $exception.comment = болван | $exception.comment = болван |
| ^if($exception.type eq connect){^cache[read]} | ^if($exception.type eq connect){^cache[read]} |
| } | } |
| ^case[_default]{ | ^case[_default]{ |
| код, обрабатывающий другую ошибку | код, обрабатывающий другую ошибку |
| ^throw[$exception] << re-throw | ^throw[$exception] << re-throw |
| } | } |
| } | } |
| } | } |
| ^exit[] + - прекращяет обработку запроса. | ^exit[] + - прекращяет обработку запроса. |
| удобно сделать после выставления 401 ошибки | удобно сделать после выставления 401 ошибки |
| Line 94 Xне сделано, видимо, не будет сделано | Line 94 Xне сделано, видимо, не будет сделано |
| compress=1& | compress=1& |
| named_pipe=1 | named_pipe=1 |
| !pgsql://user:pass@{host[:port]|[local]}/database | !pgsql://user:pass@{host[:port]|[local]}/database? |
| client_encoding=win,[to-find-out]& | |
| datestyle=ISO,SQL,Postgres,European,NonEuropean=US,German,DEFAULT=ISO | |
| oracle://user:pass@service? | !oracle://user:pass@service? |
| NLS_LANG=RUSSIAN_AMERICA.CL8MSWIN1251& | NLS_LANG=RUSSIAN_AMERICA.CL8MSWIN1251& |
| NLS_LANGUAGE language-dependent conventions | NLS_LANGUAGE language-dependent conventions |
| NLS_TERRITORY territory-dependent conventions | NLS_TERRITORY territory-dependent conventions |
| Line 142 odbc c:\drives\y\parser3project\odbc\ | Line 144 odbc c:\drives\y\parser3project\odbc\ |
| !^cache[файл](секунд){код} | !^cache[файл](секунд){код} |
| !скэшировать строку, которая получается при выполнении кода на 'секунд' секунд | !скэшировать строку, которая получается при выполнении кода на 'секунд' секунд |
| !если 0секунд, значит не кэшировать, а старый такой стереть | !если 0секунд, значит не кэшировать, а старый такой стереть |
| ^cache[delete] << не кэшировать, старое забыть | ^cache[delete] |
| ^cache[read] << взять скэшированное насильно, игнорируя expires | сигнализирует вышестоящему ^cache "не кэшировать, старое забыть" |
| ^cache[read] | |
| сигнализирует вышестоящему ^cache "взять скэшированное насильно, игнорируя expires", <br> | |
| выдаёт bool "получилось/нет" | |
| Xесть глобальный флажок в свойствах/командной строке "не оптимизировать" | Xесть глобальный флажок в свойствах/командной строке "не оптимизировать" |
| Line 240 odbc c:\drives\y\parser3project\odbc\ | Line 245 odbc c:\drives\y\parser3project\odbc\ |
| если ломается преобразование, берётся default | если ломается преобразование, берётся default |
| !^имя.format[формат] %d %.2f %02d... | !^имя.format[формат] %d %.2f %02d... |
| !^строка.match[шаблон][[опции поиска]] $prematch $match $postmatch $1 $2... | !^строка.match[шаблон][[опции поиска]] $prematch $match $postmatch $1 $2... |
| опции поиска= | опции поиска= |
| i CASELESS | i CASELESS |
| x whitespace in regex ignored | x whitespace in regex ignored |
| s singleline = $ считается концом всего текста | s singleline = $ считается концом всего текста |
| m multiline = $ считается концом строки[\n], не концом всего текста | m multiline = $ считается концом строки[\n], не концом всего текста |
| g найти все вхождения, а не одно | g найти все вхождения, а не одно |
| !^строка.match[шаблон][опции поиска]{замена} | !^строка.match[шаблон][опции поиска]{замена} |
| опции поиска+= | опции поиска+= |
| g заменить все вхождения, а не одно | g заменить все вхождения, а не одно |
| !^строка.{l|r}split[разделитель] таблица из столбца $piece | !^строка.{l|r}split[разделитель] таблица из столбца $piece |
| !^строка.upper|lower[] | !^строка.upper|lower[] |
| X^строка.truncate(предел терпенья) стиль :( | X^строка.truncate(предел терпенья) стиль :( |
| Line 268 odbc c:\drives\y\parser3project\odbc\ | Line 273 odbc c:\drives\y\parser3project\odbc\ |
| числовое значение равно count[] | числовое значение равно count[] |
| !^table::create[[nameless]]{данные} старое имя "set" | !^table::create[[nameless]]{данные} старое имя "set" |
| !^table::create[table] | !^table::create[table] |
| клонирует таблицу | клонирует таблицу |
| !^table::load[[nameless;]путь] | !^table::load[[nameless;]путь] |
| !если не nameless, названия колонок берутся из первой строки | !если не nameless, названия колонок берутся из первой строки |
| !пустые строки, и строки в первой колонке содержащие '#', игнорируются | !пустые строки, и строки в первой колонке содержащие '#', игнорируются |
| Line 312 odbc c:\drives\y\parser3project\odbc\ | Line 317 odbc c:\drives\y\parser3project\odbc\ |
| перезаписывает одноимённые | перезаписывает одноимённые |
| !^hash.sub[вычитаемое] | !^hash.sub[вычитаемое] |
| !^a.union[b] = объединение | !^a.union[b] = объединение |
| одноимённые остаются | |
| !^a.intersection[b] = пересечение | !^a.intersection[b] = пересечение |
| значения a | |
| !^a.intersects[b] = bool | !^a.intersects[b] = bool |
| !^hash::sql{запрос}[[$.limit(2) $.offset(4)]] | !^hash::sql{запрос}[[$.limit(2) $.offset(4)]] |
| получается hash(ключи=значения первая колонка ответа) | получается hash(ключи=значения первая колонка ответа) |
| Line 446 Xhashfile | Line 453 Xhashfile |
| ] | ] |
| !для отправки | !для отправки |
| под unix используется программа с параметрами, задаваемая | под unix используется программа с параметрами, задаваемая |
| $MAIL.sendmail[команда] | $MAIL.sendmail[команда] |
| если не будет задана, проверяется, доступна ли | если не будет задана, проверяется, доступна ли |
| /usr/sbin/sendmail или | /usr/sbin/sendmail или |
| /usr/lib/sendmail | /usr/lib/sendmail |
| и, если доступна, то запускается с параметром "-t". | и, если доступна, то запускается с параметром "-t". |
| под win32 используется SMTP протокол, сервер задаётся | под win32 используется SMTP протокол, сервер задаётся |
| $MAIL.SMTP[smtp.domain.ru] | $MAIL.SMTP[smtp.domain.ru] |
| !image | !image |
| !$картинка[^image::measure[DATA]] | !$картинка[^image::measure[DATA]] |
| Line 515 Xhashfile | Line 522 Xhashfile |
| каталоги для dest создаются с правами 775 | каталоги для dest создаются с правами 775 |
| каталог старого файла стирается, если после move он остаётся пуст | каталог старого файла стирается, если после move он остаётся пуст |
| !^file:lock[имя файла]{код} | !^file:lock[имя файла]{код} |
| файл при необходимости создаётся | файл при необходимости создаётся |
| блокируется | блокируется |
| выполняется код | выполняется код |
| разблокируется | разблокируется |
| !math | !math |
| !$math:PI | !$math:PI |
| Line 533 Xhashfile | Line 540 Xhashfile |
| !date | !date |
| !время типа time можно использовать в выражениях, подставляет | !время типа time можно использовать в выражениях, подставляет |
| количество дней с epoch [1 января 1970 (UTC)], дробное | количество дней с epoch [1 января 1970 (UTC)], дробное |
| !всё происходит в localtime, | !всё происходит в localtime, |
| !временная зона задаётся вне parser средствами OS | !временная зона задаётся вне parser средствами OS |
| !^date::now[] | !^date::now[] |
| Line 544 Xhashfile | Line 551 Xhashfile |
| !^date.sql-string[] %Y-%m-%d %H:%M:%S | !^date.sql-string[] %Y-%m-%d %H:%M:%S |
| where published='$дата.sql-string[]' | where published='$дата.sql-string[]' |
| !^date:calendar[rus|eng;год;месяц] выдаёт неименованную таблицу | !^date:calendar[rus|eng;год;месяц] выдаёт неименованную таблицу |
| столбцы: 0..6 | столбцы: 0..6 |
| !^date:calendar[rus|eng;год;месяц;день] выдаёт именнованную таблицу | !^date:calendar[rus|eng;год;месяц;день] выдаёт именнованную таблицу |
| столбцы: year, month, day, weekday | столбцы: year, month, day, weekday |
| xdoc(xnode) | xdoc(xnode) |
| DOM1 attributes: | DOM1 attributes: |
| Line 600 xdoc(xnode) | Line 607 xdoc(xnode) |
| !.save[file.xml;output options] с шапкой | !.save[file.xml;output options] с шапкой |
| !.file[output options] = file | !.file[output options] = file |
| output options идентичны атрибутам xsl:output | output options идентичны атрибутам xsl:output |
| [исключение: игнорируется cdata-section-elements, нужно будет, сделаю] | [исключение: игнорируется cdata-section-elements, нужно будет, сделаю] |
| выдаёт media-type при подстановке $response:body[сюда] | выдаёт media-type при подстановке $response:body[сюда] |
| Line 676 xdoc(xnode) | Line 683 xdoc(xnode) |
| !XPath: | !XPath: |
| !^node.select[xpath/query/expression] = array of nodes, | !^node.select[xpath/query/expression] = array of nodes, |
| empty array if nothing found | empty array if nothing found |
| !^node.selectSingle[xpath/query/expression] = first node if any | !^node.selectSingle[xpath/query/expression] = first node if any |
| !^node.selectBool[xpath/query/expression] = bool if any | !^node.selectBool[xpath/query/expression] = bool if any |
| !^node.selectNumber[xpath/query/expression] = double if any | !^node.selectNumber[xpath/query/expression] = double if any |
| Line 748 xdoc(xnode) | Line 755 xdoc(xnode) |
| file | file |
| !$status:rusage hash | !$status:rusage hash |
| !utime user time used | !utime user time used |
| !stime system time used | !stime system time used |
| !maxrss max resident set size | !maxrss max resident set size |
| !ixrss integral shared text memory size | !ixrss integral shared text memory size |
| !idrss integral unshared data size | !idrss integral unshared data size |
| !isrss integral unshared stack size | !isrss integral unshared stack size |
| !MAIN | !MAIN |
| это класс, загружаемый на автомате из parser3.conf, | это класс, загружаемый на автомате из parser3.conf, |