|
|
| version 1.94, 2002/10/23 09:32:16 | version 1.102, 2002/11/28 15:05:26 |
|---|---|
| Line 6 Xне сделано, видимо, не будет сделано | Line 6 Xне сделано, видимо, не будет сделано |
| операторы | операторы |
| !^eval(выражение)[формат] выражение, кроме обычных функций:: | !^eval(выражение)[формат] выражение, кроме обычных функций:: |
| !допустимы #комментарии | !допустимы #комментарии |
| работают до конца строки или закрывающейся круглой скобки | работают до конца строки или закрывающейся круглой скобки |
| внутри комментария допустимы вложенные круглые скобки | внутри комментария допустимы вложенные круглые скобки |
| !из неочевидных операторов: | !из неочевидных операторов: |
| !| побитный xor | !| побитный xor |
| !|| логический xor | !|| логический xor |
| Line 227 odbc c:\drives\y\parser3project\odbc\ | Line 227 odbc c:\drives\y\parser3project\odbc\ |
| !void | !void |
| !^имя.length[] | !^имя.length[] |
| 0 | 0 |
| !^имя.pos[...] | !^имя.pos[...] |
| -1 | -1 |
| !^имя.int[] (default) | !^имя.int[] (default) |
| Line 275 odbc c:\drives\y\parser3project\odbc\ | Line 275 odbc c:\drives\y\parser3project\odbc\ |
| опции поиска+= | опции поиска+= |
| g заменить все вхождения, а не одно | g заменить все вхождения, а не одно |
| !^строка.split[разделитель][[lrhv]] | !^строка.split[разделитель][[lrhv]] |
| l слева направо [default] | l слева направо [default] |
| r справа налево | r справа налево |
| h nameless таблица | h nameless таблица |
| v таблица из столбца piece [default] | v таблица из столбца piece [default] |
| !^строка.{l|r}split[разделитель] таблица из столбца $piece | !^строка.{l|r}split[разделитель] таблица из столбца $piece |
| оставлен для совместимости | оставлен для совместимости |
| !^строка.upper|lower[] | !^строка.upper|lower[] |
| X^строка.truncate(предел терпенья) стиль :( | X^строка.truncate(предел терпенья) стиль :( |
| !^строка.length[] | !^строка.length[] |
| Line 303 odbc c:\drives\y\parser3project\odbc\ | Line 303 odbc c:\drives\y\parser3project\odbc\ |
| !^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]]] |
| клонирует таблицу | клонирует таблицу |
| !^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[...] }]] |
| Line 567 Xhashfile | Line 567 Xhashfile |
| !$картинка[^image::measure[DATA]] | !$картинка[^image::measure[DATA]] |
| смотрит на .ext case insensitive, | смотрит на .ext case insensitive, |
| умеет мерить пока только .gif и .jpg .jpeg | умеет мерить пока только .gif и .jpg .jpeg |
| !$image.exif << hash после measure jpeg с exif информацией | |
| !$image.exif.DateTime & co | |
| [полный список см. http://www.ba.wakwak.com/~tsuruzoh/Computer/Digicams/exif-e.html] | |
| !числа типа int/double, | |
| !перечисления в виде hash с ключами 0..count-1 | |
| !$картинка.src .width .height | !$картинка.src .width .height |
| !$картинка.line-width число=ширина линий | !$картинка.line-width число=ширина линий |
| !$картинка.line-style строка=стиль линий '*** * '='*** * *** * *** * ' | !$картинка.line-style строка=стиль линий '*** * '='*** * *** * *** * ' |
| Line 610 Xhashfile | Line 615 Xhashfile |
| !^file:delete[имя файла] | !^file:delete[имя файла] |
| !^file:find[имя файла][{когда не нашли}] | !^file:find[имя файла][{когда не нашли}] |
| !^file:list[путь[;шаблон]] = table с колонкой name | !^file:list[путь[;шаблон]] = table с колонкой name |
| !^file::load[text|binary;!big.zip[;!domain_press_release_2001_03_01.zip]] | !^file::load[text|binary;!big.zip[;!domain_press_release_2001_03_01.zip][;опции]] |
| !$файл_который_был_loaded.size | !$файл_который_был_loaded.size |
| !^file::stat[имя файла] | !^file::stat[имя файла] |
| !$файл_который_был_stated.size !.adate !.mdate !.cdate | !$файл_который_был_stated.size !.adate !.mdate !.cdate |
| !^file::cgi[имя файла[;env hash[;1cmd[;2line[;3ar[;4g[;5s]]]]]]] | !^file::cgi[имя файла[;env hash +options[;1cmd[;2line[;3ar[;4g[;5s]]]]]]] |
| возвращённый заголовок рассыпается на $поля | возвращённый заголовок рассыпается на $поля |
| $status | $status |
| $stderr | $stderr |
| !^file::exec[имя файла[;env hash $.stdin[текст][;1cmd[;2line[;3ar[;4g[;5s;...under win32 max 10 args]]]]]]] | !^file::exec[имя файла[;env hash[;1cmd[;2line[;3ar[;4g[;5s;...under win32 max 10 args]]]]]]] |
| options: | |
| $.stdin[текст] если текст пуст, отключается автоматическое пересовывание данных HTTP-POST | |
| !^file:move[старое имя файла;новое имя файла] | !^file:move[старое имя файла;новое имя файла] |
| можно переименовывать и двигать каталоги[win32: но не через границу дисков] | можно переименовывать и двигать каталоги[win32: но не через границу дисков] |
| каталоги для dest создаются с правами 775 | каталоги для dest создаются с правами 775 |
| Line 711 xdoc(xnode) | Line 718 xdoc(xnode) |
| !::create[[URI]][qualifiedName] | !::create[[URI]][qualifiedName] |
| URI default = disk path to requested document | URI default = disk path to requested document |
| для каталогов конечный / обязателен | для каталогов конечный / обязателен |
| !::load[file.xml] | !::load[file.xml[;опции]] |
| !.transform[rules.xsl|xdoc][[params hash]] выдаёт dom | !.transform[rules.xsl|xdoc][[params hash]] выдаёт dom |
| шаблон кэшируется, кэш обновляется при изменении даты файла шаблона, | шаблон кэшируется, кэш обновляется при изменении даты файла шаблона, |
| или изменении даты файла "имя шаблона.stamp"[проверка даты stamp приоритетнее] | или изменении даты файла "имя шаблона.stamp"[проверка даты stamp приоритетнее] |
| Line 930 xdoc(xnode) | Line 937 xdoc(xnode) |
| там лежат в обратном порядке имена[name] и места вызовов[file line] | там лежат в обратном порядке имена[name] и места вызовов[file line] |
| операторов/методов, приведших к ошибке. | операторов/методов, приведших к ошибке. |
| !при загрузке файла (file::load, table::load, xdoc::load) можно указать такое имя файла: | |
| !http://domain/document?params | |
| !а также, возможно, указать опции: | |
| !$.method[GET|HEAD] | |
| !$.timeout(3) << в секундах, по-умолчанию =2 | |
| !$.headers[ | |
| ! $поле[значение] << по-умолчанию, user-agent=parser3 | |
| !] | |
| !file::load в дополнительные поля записывает ПОЛЕ:значение (имена полей ответа заглавными буквами) | |
| !системные типы ошибок: | !системные типы ошибок: |
| !parser.compile ^test[} компиляция (непарная скобка, ...) | !parser.compile ^test[} компиляция (непарная скобка, ...) |
| !parser.runtime ^if(0). параметры (больше/меньше, чем нужно, не тех типов, ...) | !parser.runtime ^if(0). параметры (больше/меньше, чем нужно, не тех типов, ...) |
| Line 938 xdoc(xnode) | Line 955 xdoc(xnode) |
| !file.lock shared/exclusive lock error | !file.lock shared/exclusive lock error |
| !file.missing ^file:delete[delme] not found | !file.missing ^file:delete[delme] not found |
| !file.access ^table::load[.] no rights | !file.access ^table::load[.] no rights |
| !file.seek seek failed | |
| !image.format ^image::measure[index.html] not gif/jpg | !image.format ^image::measure[index.html] not gif/jpg |
| !sql.connect ^connect[mysql://baduser:pass@host/db]{} not found/timeout | !sql.connect ^connect[mysql://baduser:pass@host/db]{} not found/timeout |
| !sql.execute ^void:sql{select bad} syntax error | !sql.execute ^void:sql{select bad} syntax error |
| Line 950 xdoc(xnode) | Line 968 xdoc(xnode) |
| !smtp.execute communication error | !smtp.execute communication error |
| !email.format hren tam@null.ru wrong email format(bad chars/empty) | !email.format hren tam@null.ru wrong email format(bad chars/empty) |
| !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.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.status ^file::load[http://ok/there] host found, connection accepted, status!=200 | |
| !нужно выключить русский apache: CharsetDisable on | !нужно выключить русский apache: CharsetDisable on |