|
|
| version 1.100, 2002/11/25 15:07:29 | version 1.115.2.1, 2003/09/02 07:43:32 |
|---|---|
| Line 301 odbc c:\drives\y\parser3project\odbc\ | Line 301 odbc c:\drives\y\parser3project\odbc\ |
| логическое значение равно "не пуста?" | логическое значение равно "не пуста?" |
| числовое значение равно count[] | числовое значение равно count[] |
| !^table::create[[nameless]]{данные} старое имя "set" | !^table::create[[nameless]]{данные} старое имя "set" |
| !^table::create[table][[$.limit(1) $.offset(5) $.offset[cur]]] | !^table::create[table][[$.limit(1) $.offset(5) $.offset[cur] $.reverse(1)]] |
| клонирует таблицу | клонирует таблицу |
| reverse << сзаду на перёд (работает пока только в locate, в table::create НЕ работает) | |
| !^table::load[[nameless;]путь[;опции]] | !^table::load[[nameless;]путь[;опции]] |
| !если не nameless, названия колонок берутся из первой строки | !если не nameless, названия колонок берутся из первой строки |
| !пустые строки, и строки в первой колонке содержащие '#', игнорируются | !пустые строки, и строки в первой колонке содержащие '#', игнорируются |
| !^table::sql{query}[[$.limit(2) $.offset(4) todo:$.default{ ^table::create[...] }]] | !^table::sql{query}[[$.limit(2) $.offset(4) todo:$.default{ ^table::create[...] }]] |
| !^таблица.save[[nameless|append;]путь] | !^таблица.save[[nameless|append;]путь] |
| !$таблица.поле | !$таблица.поле |
| !$таблица.fields+ из named таблицы выдаёт текущую запись как Hash | !$таблица.fields из named таблицы выдаёт текущую запись как Hash |
| !^таблица.menu{тело}[разделитель] | !^таблица.menu{тело}[разделитель] |
| !^таблица.offset[[whence]](5) сдвигает; без параметра - печатает offset | !^таблица.offset[[whence]](5) сдвигает; без параметра - печатает offset |
| !whence=cur|set | !whence=cur|set |
| Line 326 odbc c:\drives\y\parser3project\odbc\ | Line 327 odbc c:\drives\y\parser3project\odbc\ |
| !^таблица.join[таблица][$.limit(1) $.offset(5) $.offset[cur]] - добавляет записи из таблицы. | !^таблица.join[таблица][$.limit(1) $.offset(5) $.offset[cur]] - добавляет записи из таблицы. |
| таблицы должны иметь одинаковую структуру. | таблицы должны иметь одинаковую структуру. |
| !^таблица.flip[] выдаёт транспонированную, надо куда-то сложить, потом пользовать | !^таблица.flip[] выдаёт транспонированную, надо куда-то сложить, потом пользовать |
| !^таблица.locate[поле;значение] передвигает текущую строку, если найдёт. выдаёт bool | !^таблица.locate[поле;значение][[$.limit(1) $.offset(5) $.offset[cur] $.reverse(1)]] |
| !^таблица.locate(логическое выражение) передвигает текущую строку, если найдёт. выдаёт bool | передвигает текущую строку, если найдёт. выдаёт bool |
| !^таблица.hash{[поле]|{код}|(выражение)}[[поле значений|table поля значений]][[$.distinct(1)]] | !^таблица.locate(логическое выражение)[[$.limit(1) $.offset(5) $.offset[cur] $.reverse(1)]] |
| передвигает текущую строку, если найдёт. выдаёт bool | |
| !^таблица.hash{[поле]|{код}|(выражение)}[[поле значений|table поля значений]][[$.distinct(1) $.distinct[tables]]] | |
| значением $hash.ключ будет hash в котором поля значений будут ключами | значением $hash.ключ будет hash в котором поля значений будут ключами |
| поля значений могут быть не указаны, тогда ими будут все столбцы, включая ключевой | поля значений могут быть не указаны, тогда ими будут все столбцы, включая ключевой |
| если distinct содержит true, то не будет ошибки при повторяющихся ключах | |
| если distinct содержит tables, то будет создан hash из таблиц, содержащих строки с ключом | |
| !^таблица.columns[]+ таблица из одного столбца $column | !^таблица.columns[]+ таблица из одного столбца $column |
| !$отобранное[^таблица.select(выражение)] = таблица из тех же столбцов и строк, у которых условие совпало | !$отобранное[^таблица.select(выражение)] = таблица из тех же столбцов и строк, у которых условие совпало |
| $adults[^man.select($man.age>=18)] | $adults[^man.select($man.age>=18)] |
| Line 344 odbc c:\drives\y\parser3project\odbc\ | Line 349 odbc c:\drives\y\parser3project\odbc\ |
| !$hash.ключ | !$hash.ключ |
| !_default - специальный ключ, если задан, | !_default - специальный ключ, если задан, |
| то при обращении по ключу, которому нет соответствия, выдаётся _default значение | то при обращении по ключу, которому нет соответствия, выдаётся _default значение |
| !$hash.fields выдает $hash. чтобы класс hash был чуть больше похож на класс table | |
| !^hash::create[[!copy_from_hash|Xcopy_from_hashfile]] | !^hash::create[[!copy_from_hash|Xcopy_from_hashfile]] |
| создаёт новый hash, копию старого | создаёт новый hash, копию старого |
| !^hash.add[слагаемое] | !^hash.add[слагаемое] |
| Line 402 odbc c:\drives\y\parser3project\odbc\ | Line 408 odbc c:\drives\y\parser3project\odbc\ |
| !значение поля или атрибута может быть string или date | !значение поля или атрибута может быть string или date |
| ! если дата, она будет преобразована к формату "Sun, 25-Aug-2002 12:03:45 GMT" | ! если дата, она будет преобразована к формату "Sun, 25-Aug-2002 12:03:45 GMT" |
| !$response:body[DATA] замещает стандартный ответ | !$response:body[DATA] замещает стандартный ответ |
| !$response:download[DATA] замещает стандартный ответ, | |
| выставляет флаг, заставляющий browser предложить download | |
| !$response:status | !$response:status |
| !^response:clear[] забыть все заданные response поля | !^response:clear[] забыть все заданные response поля |
| !$response:charset | !$response:charset |
| Line 571 Xhashfile | Line 579 Xhashfile |
| !$image.exif.DateTime & co | !$image.exif.DateTime & co |
| [полный список см. http://www.ba.wakwak.com/~tsuruzoh/Computer/Digicams/exif-e.html] | [полный список см. http://www.ba.wakwak.com/~tsuruzoh/Computer/Digicams/exif-e.html] |
| !числа типа int/double, | !числа типа int/double, |
| !даты типа date | |
| !перечисления в виде hash с ключами 0..count-1 | !перечисления в виде hash с ключами 0..count-1 |
| !$картинка.src .width .height | !$картинка.src .width .height |
| !$картинка.line-width число=ширина линий | !$картинка.line-width число=ширина линий |
| Line 644 Xhashfile | Line 653 Xhashfile |
| !/some/page.html: ^file:fullpath[a.gif] => /some/a.gif | !/some/page.html: ^file:fullpath[a.gif] => /some/a.gif |
| math | !math |
| !$math:PI | !$math:PI |
| !^math:round floor ceiling | !^math:round floor ceiling |
| !^math:trunc frac | !^math:trunc frac |
| Line 654 math | Line 663 math |
| !^math:degrees radians | !^math:degrees radians |
| !^math:pow sqrt | !^math:pow sqrt |
| !^math:random(ширина диапазона) | !^math:random(ширина диапазона) |
| ^math:GUID {C2C0983C-E26E-4169-BD07-77ECE9405BA5} | !^math:uuid |
| 22C0983C-E26E-4169-BD07-77ECE9405BA5 | |
| win32: пользуется cryptapi | |
| unix: пользуется /dev/urandom, | |
| если нет, /dev/random, | |
| если нет, rand | |
| [на solaris /dev/random можно добавить] | |
| !^math:uid64[] | |
| BA39BAB6340BE370 | |
| !^math:md5[string] | |
| выдает digest строки, длиной 16 байт в виде строки, | |
| где байты digest выданы в hex виде, впритык, в нижнем регистре | |
| !^math:crypt[password;salt] | !^math:crypt[password;salt] |
| salt prefix $apr1$ вызывает встроенный MD5 алгоритм, | salt prefix $apr1$ вызывает встроенный MD5 алгоритм, |
| если нет тела salt, оно создаётся случайным | если нет тела salt, оно создаётся случайным |
| Line 676 math | Line 696 math |
| для удобного создания по значению из базы | для удобного создания по значению из базы |
| формат1: %Y[-%m[-%d[ %H[:%M[:%S]]]]] | формат1: %Y[-%m[-%d[ %H[:%M[:%S]]]]] |
| формат2: %H:%M[:%S] | формат2: %H:%M[:%S] |
| !$date.year month day hour minute second weekday yearday(0...) daylightsaving | !$date.year month day hour minute second weekday yearday(0...) daylightsaving TZ |
| read-only | read-only |
| TZ="" << локальная зона | |
| !^date.roll[year|month|day](+-смещение) сдвигает дату | !^date.roll[year|month|day](+-смещение) сдвигает дату |
| !^date.roll[TZ;Новая зона] говорит, что дата в таком-то часовом поясе: влияет на .hour&co | |
| !^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;год;месяц] выдаёт неименованную таблицу |
| Line 877 xdoc(xnode) | Line 899 xdoc(xnode) |
| url time | url time |
| url time | url time |
| url time | url time |
| !$status:db hash | |
| !cache hash db_home=>tables table | |
| name time users | |
| name time users | |
| name time users | |
| !$status:stylesheet | !$status:stylesheet |
| !cache table | !cache table |
| file time | file time |
| Line 943 xdoc(xnode) | Line 960 xdoc(xnode) |
| !$.method[GET|HEAD] | !$.method[GET|HEAD] |
| !$.timeout(3) << в секундах, по-умолчанию =2 | !$.timeout(3) << в секундах, по-умолчанию =2 |
| !$.headers[ | !$.headers[ |
| ! $поле[значение] << по-умолчанию, user-agent=parser3 | ! $поле[значение] << значение имеет формат, как $response:ЗАГОЛОВОК |
| !] | !] |
| !file::load в дополнительные поля записывает ПОЛЕ:значение (имена полей ответа заглавными буквами) | !по-умолчанию, user-agent=parser3 |
| !по-умолчанию, получение http status != 200 >> создает http.status ошибку, | |
| !это можно отключить, передав | |
| !$.any-status(1) | |
| !file::load в дополнительные поля записывает | |
| !ПОЛЕ:значение (имена полей ответа заглавными буквами) | |
| !tables << хеш их ПОЛЕ->table с единственным столбцом "value". | |
| в таких таблицах можно брать повторяющиеся заголовки. например, несколько set-cookies | |
| todo:сделать отдельный cookies | |
| !системные типы ошибок: | !системные типы ошибок: |
| !parser.compile ^test[} компиляция (непарная скобка, ...) | !parser.compile ^test[} компиляция (непарная скобка, ...) |
| Line 970 xdoc(xnode) | Line 995 xdoc(xnode) |
| !email.send $MAIL.sendmail[/shit] sendmail not executable | !email.send $MAIL.sendmail[/shit] sendmail not executable |
| !http.host ^file::load[http://notfound/there] host not found | !http.host ^file::load[http://notfound/there] host not found |
| !http.connect ^file::load[http://not_accepting/there] host found, but do not accept connections | !http.connect ^file::load[http://not_accepting/there] host found, but do not accept connections |
| !http.timeout ^file::load[http://host/doc] whole load operation failed to complete in # seconds | |
| !http.response ^file::load[http://ok/there] host found, connection accepted, bad answer | !http.response ^file::load[http://ok/there] host found, connection accepted, bad answer |
| !http.status ^file::load[http://ok/there] host found, connection accepted, status!=200 | |
| !нужно выключить русский apache: CharsetDisable on | !нужно выключить русский apache: CharsetDisable on |