--- parser3/operators.ru.txt 2002/10/15 09:42:40 1.88 +++ parser3/operators.ru.txt 2002/11/21 09:18:18 1.96 @@ -6,8 +6,8 @@ Xне сделано, видимо, не будет сделано операторы !^eval(выражение)[формат] выражение, кроме обычных функций:: !допустимы #комментарии - работают до конца строки или закрывающейся круглой скобки - внутри комментария допустимы вложенные круглые скобки + работают до конца строки или закрывающейся круглой скобки + внутри комментария допустимы вложенные круглые скобки !из неочевидных операторов: !| побитный xor !|| логический xor @@ -227,7 +227,7 @@ odbc c:\drives\y\parser3project\odbc\ !void !^имя.length[] - 0 + 0 !^имя.pos[...] -1 !^имя.int[] (default) @@ -257,7 +257,7 @@ odbc c:\drives\y\parser3project\odbc\ пример: ^if(def $form:name) не пуста? ^if($user.isAlive) истина? [автопреобразование к числу, не ноль?] - !^string::sql{query}[[$.limit(2) $.offset(4) $.default{n/a}]] + !^string::sql{query}[[$.limit(1) $.offset(4) $.default{n/a}]] результат запроса должен быть один столбец/одна строка !^имя.int[] .int(default) целочисленное значение строки. если ломается преобразование, берётся default @@ -275,12 +275,12 @@ odbc c:\drives\y\parser3project\odbc\ опции поиска+= g заменить все вхождения, а не одно !^строка.split[разделитель][[lrhv]] - l слева направо [default] - r справа налево - h nameless таблица - v таблица из столбца piece [default] + l слева направо [default] + r справа налево + h nameless таблица + v таблица из столбца piece [default] !^строка.{l|r}split[разделитель] таблица из столбца $piece - оставлен для совместимости + оставлен для совместимости !^строка.upper|lower[] X^строка.truncate(предел терпенья) стиль :( !^строка.length[] @@ -328,7 +328,7 @@ odbc c:\drives\y\parser3project\odbc\ !^таблица.flip[] выдаёт транспонированную, надо куда-то сложить, потом пользовать !^таблица.locate[поле;значение] передвигает текущую строку, если найдёт. выдаёт bool !^таблица.locate(логическое выражение) передвигает текущую строку, если найдёт. выдаёт bool - !^таблица.hash[поле, что будет ключом][[поле значений|table поля значений]][[$.distinct(1)]] + !^таблица.hash{[поле]|{код}|(выражение)}[[поле значений|table поля значений]][[$.distinct(1)]] значением $hash.ключ будет hash в котором поля значений будут ключами поля значений могут быть не указаны, тогда ими будут все столбцы, включая ключевой !^таблица.columns[]+ таблица из одного столбца $column @@ -365,8 +365,12 @@ odbc c:\drives\y\parser3project\odbc\ !form [берётся первый элемент из одноимённых из GET, потом первый из POST] !$form:поле = string/file + !$form:nameless = поле со значением поля без имени "?value&...", "...&value&...", "...&value" + !$form:qtail = строка со значением текста после второго "?xxxxx", если там не было ',' [imap] !$form:fields = hash со всеми полями формы !$form:tables.поле = table с одним столбцом "field" со значениями "поля" + !$form:imap = хэш с ключами 'x' и 'y' + со значением ?1,2 приписки при использовании server-site image map !env !$env:переменная @@ -610,11 +614,13 @@ Xhashfile !$файл_который_был_loaded.size !^file::stat[имя файла] !$файл_который_был_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 $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[старое имя файла;новое имя файла] можно переименовывать и двигать каталоги[win32: но не через границу дисков] каталоги для dest создаются с правами 775 @@ -630,6 +636,8 @@ Xhashfile !^file:basename[/a/some.tar.gz]=some.tar.gz !^file:justname[/a/some.tar.gz]=some.tar !^file:justext[/a/some.tar.gz]=gz + !/some/page.html: ^file:fullpath[a.gif] => /some/a.gif + math !$math:PI @@ -932,6 +940,7 @@ xdoc(xnode) !file.lock shared/exclusive lock error !file.missing ^file:delete[delme] not found !file.access ^table::load[.] no rights + !file.seek seek failed !image.format ^image::measure[index.html] not gif/jpg !sql.connect ^connect[mysql://baduser:pass@host/db]{} not found/timeout !sql.execute ^void:sql{select bad} syntax error