Diff for /parser3/operators.ru.txt between versions 1.167 and 1.177

version 1.167, 2004/03/09 14:49:46 version 1.177, 2004/12/23 15:36:12
Line 88  Xне сделано, видимо, не будет сделано Line 88  Xне сделано, видимо, не будет сделано
         выдавая нестандартный результат          выдавая нестандартный результат
     X^break[] + - обрывает цикл      X^break[] + - обрывает цикл
     X^continue[] + - обрывает итерацию цикла      X^continue[] + - обрывает итерацию цикла
     !^untaint[[as-is|file-spec|http-header|mail-header|uri|table|sql|js|xml|html|optimized-html]]{код}      !^untaint[[as-is|file-spec|http-header|mail-header|uri|sql|js|xml|html|optimized-html]]{код}
         default as-is          default as-is
     !^taint[[lang]][код]      !^taint[[lang]][код]
         default "just tainted, language unknown"          default "just tainted, language unknown"
Line 252  odbc    c:\drives\y\parser3project\odbc\ Line 252  odbc    c:\drives\y\parser3project\odbc\
         0 или default          0 или default
     !^имя.double[] (default)      !^имя.double[] (default)
         0 или default          0 или default
     !^void:sql{запрос без результата}      !^void:sql{запрос без результата}{$.bind[см. table::sql]}
   
   
 !int,double  !int,double
Line 264  odbc    c:\drives\y\parser3project\odbc\ Line 264  odbc    c:\drives\y\parser3project\odbc\
     !^имя.div(на сколько /)      !^имя.div(на сколько /)
     !^имя.mod(на сколько %)      !^имя.mod(на сколько %)
     !^имя.format[формат]      !^имя.format[формат]
     !^int/double:sql{query}[[$.limit(2) $.offset(4) $.default{0}]]      !^int/double:sql{query}[[$.limit(2) $.offset(4) $.default{0} $.bind[см. table::sql]]]
         запрос, результат которого должен быть один столбец/одна строка          запрос, результат которого должен быть один столбец/одна строка
   
 !string  !string
Line 276  odbc    c:\drives\y\parser3project\odbc\ Line 276  odbc    c:\drives\y\parser3project\odbc\
         пример:          пример:
         ^if(def $form:name) не пуста?          ^if(def $form:name) не пуста?
         ^if($user.isAlive) истина? [автопреобразование к числу, не ноль?]          ^if($user.isAlive) истина? [автопреобразование к числу, не ноль?]
     !^string::sql{query}[[$.limit(1) $.offset(4) $.default{n/a}]]      !^string::sql{query}[[$.limit(1) $.offset(4) $.default{n/a} $.bind[см. table::sql]]]
         результат запроса должен быть один столбец/одна строка          результат запроса должен быть один столбец/одна строка
     !^имя.int[] .int(default) целочисленное значение строки.       !^имя.int[] .int(default) целочисленное значение строки. 
         если ломается преобразование, берётся default          если ломается преобразование, берётся default
Line 317  odbc    c:\drives\y\parser3project\odbc\ Line 317  odbc    c:\drives\y\parser3project\odbc\
         состоит из большого числа фрагментов          состоит из большого числа фрагментов
     !^string.trim[start|both|end[;chars]] выкидывает charset из начала/конца/и начала и конца      !^string.trim[start|both|end[;chars]] выкидывает charset из начала/конца/и начала и конца
         default 'chars' -- whitespace chars          default 'chars' -- whitespace chars
       !^string.append[string]
   
 !table  !table
     в выражении       в выражении 
Line 331  odbc    c:\drives\y\parser3project\odbc\ Line 332  odbc    c:\drives\y\parser3project\odbc\
         !пустые строки, и строки в первой колонке содержащие '#', игнорируются                  !пустые строки, и строки в первой колонке содержащие '#', игнорируются        
         !$.separator[^#09]          !$.separator[^#09]
         !$.encloser["] по-умолчанию, нет.          !$.encloser["] по-умолчанию, нет.
     !^table::sql{query}[[$.limit(2) $.offset(4) todo:$.default{ ^table::create[...] }]]      !^table::sql{query}[[$.limit(2) $.offset(4) $.bind[hash] todo:$.default{ ^table::create[...] }]]
           bind привязывает переменные в запросе к их значениям
           пока реализован только для oracle
           в запросе надо написать ":имя"
           в параметре bind передать hash, из которого возьмётся(или куда запишется) значение
     !^таблица.save[[nameless|append;]путь[;опции, см. load]]      !^таблица.save[[nameless|append;]путь[;опции, см. load]]
     !$таблица.поле      !$таблица.поле
     !$таблица.fields  из named таблицы выдаёт текущую запись как Hash      !$таблица.fields  из named таблицы выдаёт текущую запись как Hash
Line 408  odbc    c:\drives\y\parser3project\odbc\ Line 413  odbc    c:\drives\y\parser3project\odbc\
     !^foreach[key|value]{тело}[[разделитель]|{разделитель который выполняется перед непустым очередным не первым телом}]      !^foreach[key|value]{тело}[[разделитель]|{разделитель который выполняется перед непустым очередным не первым телом}]
   
     пример:      пример:
     $uids[^hashfile::open[/db/uids]]      $sessions[^hashfile::open[/db/sessions]]
          
     $random[23847387taduigh345XGHWElxjgdjg]      $sid[^math:uuid[]]
     $uids.$random[$.value[$uid] $.expires(1)]      $sessions.$sid[$.value[$uid] $.expires(1)]
     $uid[$persistent.logins.$random]      $uid[$sessions.$sid]
   
 !form  !form
     [берётся первый элемент из одноимённых из GET, потом первый из POST]      [берётся первый элемент из одноимённых из GET, потом первый из POST]
Line 680  odbc    c:\drives\y\parser3project\odbc\ Line 685  odbc    c:\drives\y\parser3project\odbc\
     !^file:justext[/a/some.tar.gz]=gz      !^file:justext[/a/some.tar.gz]=gz
     !/some/page.html: ^file:fullpath[a.gif] => /some/a.gif      !/some/page.html: ^file:fullpath[a.gif] => /some/a.gif
     !^file.sql-string[] внутри ^connect даст правильно escaped строку, которую можно в запрос отдать      !^file.sql-string[] внутри ^connect даст правильно escaped строку, которую можно в запрос отдать
     !^file::sql[[имя_файла_для_download]]{}      X^file::sql[[имя_файла_для_download]]{}
       !^file::sql{}[[
           $.name[имя_файла_для_download]
           $.content-type[пользовательский content-type]
       ]]
         результат запроса должен быть "одна строка".          результат запроса должен быть "одна строка".
         колонки:          колонки:
         первая колонка - данные          первая колонка - данные
Line 746  odbc    c:\drives\y\parser3project\odbc\ Line 755  odbc    c:\drives\y\parser3project\odbc\
         столбцы: year, month, day, weekday          столбцы: year, month, day, weekday
           
 xdoc(xnode)  xdoc(xnode)
       !$xdoc.search-namespaces hash, where keys=prefixes, values=urls
       
     DOM1 attributes:      DOM1 attributes:
     !readonly attribute DocumentType doctype      !readonly attribute DocumentType doctype
     Xreadonly attribute DOMImplementation implementation      Xreadonly attribute DOMImplementation implementation
Line 987  console Line 998  console
     !$console:line      !$console:line
         read/write строку          read/write строку
   
 !DATA::=string | file  DATA::=string | file | hash
   
   !hash вида
   [
           $.file[имя файла на диске]
           $.name[имя файла для пользователя]
           $.mdate[date]
   ]
   
 !MAIN  !MAIN
     это класс, загружаемый на автомате из parser3.conf,       это класс, загружаемый на автомате из parser3.conf, 
Line 1076  console Line 1094  console
           
 !нужно выключить русский apache: CharsetDisable on  !нужно выключить русский apache: CharsetDisable on
   
 !если в MAIN будет определён флаг $ORIGINS(1) то вместо обычного вывода страницы будет  Xесли в MAIN будет определён флаг $ORIGINS(1) то вместо обычного вывода страницы будет
     выдан список фрагментов результата с указанием их происхождения      выдан список фрагментов результата с указанием их происхождения
   
   !если описание метода содержит локальную переменную result в явном виде
       (есть и неявная переменная)
       то код вывода строковых литералов не попадает в конечный байт-код,
       а непробельные символы считаются синтаксической ошибкой
       для вывода чего бы то ни было надо пользоваться этой переменной
   

Removed from v.1.167  
changed lines
  Added in v.1.177


E-mail: