--- parser3/operators.ru.txt 2003/12/10 14:17:43 1.146 +++ parser3/operators.ru.txt 2004/03/05 10:02:08 1.162 @@ -92,11 +92,16 @@ Xне сделано, видимо, не будет сделано default as-is !^taint[[lang]][код] default "just tainted, language unknown" - !^process[[$caller.CLASS|$object|$КЛАСС:CLASS]]{строка, которая будет process-ed, как код}[во что переименовать @main] + !^process[[$caller.CLASS|$object|$КЛАСС:CLASS]]{строка, которая будет process-ed, как код}[ + $.main[во что переименовать @main] + $.file[имя файла из которого, якобы, данный текст] + $.lineno(номер строки в файле, откуда данный текст. можно отрицательный) + ] !^process..[путь][во что переименовать @main] по умолчанию, методы компилируются в $self [в случае оператора, $self=$MAIN:CLASS] !^connect[protocol://строка соединения]]{код с ^sql[...]-ями} !mysql://user:pass@{host[:port]|[/unix/socket]}/database? + ClientCharset=parser-charset << charset in which parser thinks client works charset=cp1251_koi8& timeout=3& compress=1& @@ -119,8 +124,10 @@ Xне сделано, видимо, не будет сделано NLS_ISO_CURRENCY ISO currency symbol NLS_SORT sort sequence ORA_ENCRYPT_LOGIN=TRUE + ClientCharset=parser-charset << charset in which parser thinks client works - !odbc://DSN=dsn^;UID=user^;PWD=password + !odbc://DSN=dsn^;UID=user^;PWD=password^;ClientCharset=parser-charset + ClientCharset << charset in which parser thinks client works для работы connect нужно, чтобы заранее(рекомендуется в системном parser3) была определена таблица @@ -234,12 +241,19 @@ odbc c:\drives\y\parser3project\odbc\ 0 !^имя.pos[...] -1 + !^void.left(n) + ничего не выдаёт + !^void.right(n) + ничего не выдаёт + !^void.mid(p[;n]) + ничего не выдаёт !^имя.int[] (default) 0 или default !^имя.double[] (default) 0 или default !^void:sql{запрос без результата} + !int,double !^имя.int[] целочисленное значение !^имя.double[]+ double значение @@ -300,6 +314,8 @@ odbc c:\drives\y\parser3project\odbc\ !^строка.normalize[] выдает другую строку, в которой фрагменты на одном языке объединены полезно делать перед сложными match операциями, если вы знаете, что входная строка состоит из большого числа фрагментов + !^string.trim[start|both|end[;chars]] выкидывает charset из начала/конца/и начала и конца + default 'chars' -- whitespace chars !table в выражении @@ -370,7 +386,7 @@ odbc c:\drives\y\parser3project\odbc\ !^hash::sql{запрос}[[$.distinct(1) $.limit(2) $.offset(4) todo:$.default{$.field[]...}]] получается hash(ключи=значения первая колонка ответа) of hash(ключи=названия остальных колонкок ответа) - !^hash._keys[]+ таблица из одного столбца $key + !^hash._keys[[название колонки с ключами]]+ таблица из одного столбца $key или как передадут !^hash._count[] !^foreach[key;value]{тело}[[разделитель]|{разделитель который выполняется перед непустым очередным не первым телом}] !^delete[ключ] удалить ключ @@ -624,6 +640,8 @@ odbc c:\drives\y\parser3project\odbc\ определяющее прожорливость выделялки цветов из палитры [default=150] меньше - точнее приближает цвета, но они быстро кончаются больше - неточно приближает цвет, но бОльшей части хватит + !^картинка.pixel(x;y)[(color)] + узнать или задать цвет пиксела !file !$файл_из_post.name @@ -660,6 +678,13 @@ odbc c:\drives\y\parser3project\odbc\ !^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 + !^file.sql-string[] внутри ^connect даст правильно escaped строку, которую можно в запрос отдать + !^file::sql[[имя_файла_для_download]]{} + результат запроса должен быть "одна строка". + колонки: + первая колонка - данные + если есть вторая - это имя файла + если есть третья - это content-type !math @@ -715,7 +740,7 @@ odbc c:\drives\y\parser3project\odbc\ !^date.sql-string[] %Y-%m-%d %H:%M:%S where published='$дата.sql-string[]' !^date:calendar[rus|eng;год;месяц] выдаёт неименованную таблицу - столбцы: 0..6, week, weekyear + столбцы: 0..6, week, year !^date:calendar[rus|eng;год;месяц;день] выдаёт именнованную таблицу столбцы: year, month, day, weekday @@ -922,16 +947,11 @@ xdoc(xnode) url time url time url time - $status:stylesheet + !$status:stylesheet !cache table file time file time file time - $status:charset hash - !cache table - file - file - file !$status:rusage hash !utime user time used @@ -958,6 +978,9 @@ xdoc(xnode) Return the total number of bytes [EVER(c)PAF] allocated in this process. Never decreases. + !$status:pid process id + !$status:tid thread id + console $console:timeout !$console:line