--- parser3/operators.ru.txt 2009/08/14 10:40:33 1.224 +++ parser3/operators.ru.txt 2009/11/10 03:16:23 1.229 @@ -296,7 +296,7 @@ odbc c:\drives\y\parser3project\odbc\deb пример: ^if(def $form:name) не пуста? ^if($user.isAlive) истина? [автопреобразование к числу, не ноль?] - !^string::sql{query}[[$.limit(1) $.offset(4) $.default{n/a} $.bind[см. table::sql]]] + !^string:sql{query}[[$.limit(1) $.offset(4) $.default{n/a} $.bind[см. table::sql]]] результат запроса должен быть один столбец/одна строка !^строка.int[] .int(default) целочисленное значение строки. если ломается преобразование, берётся default @@ -336,6 +336,7 @@ odbc c:\drives\y\parser3project\odbc\deb <0 = не найдено !^строка.replace[$таблица_подстановок_строка_на_строку] !^строка.save[[append;]путь] + !^строка.save[путь[;$.charset[в какой кодировке сохраняем] $.append(true)]] !^строка.normalize[] выдает другую строку, в которой фрагменты на одном языке объединены полезно делать перед сложными match операциями, если вы знаете, что входная строка состоит из большого числа фрагментов @@ -538,9 +539,10 @@ odbc c:\drives\y\parser3project\odbc\deb !^reflection:classes[] хеш со всеми классами. ключ -- имя класса, значение бывает methoded (класс с методами) или void !^reflection:class[объект] класс переданного объекта !^reflection:class_name[объект] имя класса переданного объекта - !^reflection:base[объект] класс переданного объекта - !^reflection:base_name[объект] имя класса переданного объекта + !^reflection:base[объект] родительский класс переданного объекта + !^reflection:base_name[объект] имя родительского класса переданного объекта !^reflection:methods[класс] хеш со списком методов указанного класса, значения -- строки 'native' или 'parser' + !^reflection:fields[класс или объект] хеш со списком статических полей указанного класса или динамических полей указанного объекта !^reflection:method_info[класс;метод] хеш с параметрами указанного метода класса $.inherited[класс] имя класса, где метод был определён (возвращается только если метод был определён в предке) для native классов возвращается хеш: @@ -549,7 +551,9 @@ odbc c:\drives\y\parser3project\odbc\deb .call_type[dynamic|static|any] для parser классов возвращается хеш: ключ -- номер параметра (0, 1, ...), значение - имя параметра - !^reflection:dynamical[[object or class, caller if absent]] возвращает true, если метод был вызван динамически + !^reflection:dynamical[[object or class, caller if absent]] возвращает true, если метод был вызван из динамического контекста + при передаче параметра возвращает true, если передан динамический объект, + false если класс !mail @@ -735,12 +739,13 @@ odbc c:\drives\y\parser3project\odbc\deb !$файл_из_post.name !$файл_из_post.size !$файлtиз_post.text - !^файл.save[text|binary;имя файла] + !^файл.save[text|binary;имя файла[;$.charset[в какой кодировке сохраняем]]] !^file:delete[имя файла] !^file:find[имя файла][{когда не нашли}] !^file:list[путь[;шаблон-строка|шаблон-regex]] = table с колонкой name !^file::load[text|binary;!big.zip[;!domain_press_release_2001_03_01.zip][;опции]] - !^file::create[text;имя;^untaint[xml]{data}] + !^file::create[text;имя;data] + !^file::create[text;имя;data[;$.charset[кодировка букв в создаваемом файле]]] !$файл_который_был_loaded.size !$файл_который_был_loaded_или_created.mode = text/binary !^file::stat[имя файла]