Diff for /parser3/operators.ru.txt between versions 1.181 and 1.190

version 1.181, 2006/06/09 18:59:42 version 1.190, 2007/02/28 19:09:40
Line 132  Xне сделано, видимо, не будет сделано Line 132  Xне сделано, видимо, не будет сделано
   
         !odbc://DSN=dsn^;UID=user^;PWD=password^;ClientCharset=parser-charset          !odbc://DSN=dsn^;UID=user^;PWD=password^;ClientCharset=parser-charset
             ClientCharset << charset in which parser thinks client works              ClientCharset << charset in which parser thinks client works
               
           !sqlite://database
   
         для работы connect нужно, чтобы заранее(рекомендуется в системном parser3)          для работы connect нужно, чтобы заранее(рекомендуется в системном parser3)
         была определена таблица          была определена таблица
 #sql drivers  #sql drivers
 $SQL[  $SQL[
     $.drivers[^table::set{protocol    driver    client      $.drivers[^table::create{protocol    driver    client
 mysql    /www/parser3/libparser3mysql.so    /usr/local/lib/mysql/libmysqlclient.so  mysql    /www/parser3/libparser3mysql.so    /usr/local/lib/mysql/libmysqlclient.so
 pgsql    /www/parser3/libparser3pgsql.so    /usr/local/pgsql/lib/libpq.so  pgsql    /www/parser3/libparser3pgsql.so    /usr/local/pgsql/lib/libpq.so
 oracle    /www/parser3/libparser3oracle.so    /u01/app/oracle/product/8.1.5/lib/libclntsh.so?ORACLE_HOME=/u01/app/oracle/product/8.1.5&ORA_NLS33=/u01/app/oracle/product/8.1.5/ocommon/nls/admin/data  oracle    /www/parser3/libparser3oracle.so    /u01/app/oracle/product/8.1.5/lib/libclntsh.so?ORACLE_HOME=/u01/app/oracle/product/8.1.5&ORA_NLS33=/u01/app/oracle/product/8.1.5/ocommon/nls/admin/data
   sqlite    /www/parser3/libparser3sqlite.so    /usr/local/sqlite/lib/sqlite3.so
 odbc    c:\drives\y\parser3project\odbc\debug\parser3odbc.dll  odbc    c:\drives\y\parser3project\odbc\debug\parser3odbc.dll
 }]  }]
 ]  ]
Line 195  odbc    c:\drives\y\parser3project\odbc\ Line 198  odbc    c:\drives\y\parser3project\odbc\
     !есть глобальная строка/таблица $MAIN:CLASS_PATH с путём/путями к каталогу с классами.      !есть глобальная строка/таблица $MAIN:CLASS_PATH с путём/путями к каталогу с классами.
         !корень путя/путей считается от корня веб пространства.          !корень путя/путей считается от корня веб пространства.
     !2. ...относительно строчки из table $MAIN:CLASS_PATH, снизу вверх      !2. ...относительно строчки из table $MAIN:CLASS_PATH, снизу вверх
        задавайте её в parser3.conf вашего сайта         задавайте её в конфигурационном auto.p вашего сайта
   
     !глобальная табличка $CHARSETS[$.название[имя файла]]      !глобальная табличка $CHARSETS[$.название[имя файла]]
     !задаёт какие буквы считаются какими(whitespace, letter, etc), а также их unicode      !задаёт какие буквы считаются какими(whitespace, letter, etc), а также их unicode
Line 216  odbc    c:\drives\y\parser3project\odbc\ Line 219  odbc    c:\drives\y\parser3project\odbc\
     !$имя whitespace или ${имя}неважно  подстановка значения      !$имя whitespace или ${имя}неважно  подстановка значения
     !^имя параметры  вызов      !^имя параметры  вызов
     !$имя.CLASS класс значения      !$имя.CLASS класс значения
       !$имя.CLASS_NAME имя класса
     !$имя[$.key[] () {}]  конструктор элемента переменной-хэша $имя.key      !$имя[$.key[] () {}]  конструктор элемента переменной-хэша $имя.key
     !^method[$.key[] () {}] конструктор элемента параметра-хеша $parameter.key      !^method[$.key[] () {}] конструктор элемента параметра-хеша $parameter.key
     $CLASS.имя  обращение к переменной класса      $CLASS.имя  обращение к переменной класса
Line 257  odbc    c:\drives\y\parser3project\odbc\ Line 261  odbc    c:\drives\y\parser3project\odbc\
         0 или default          0 или default
     !^имя.double[] (default)      !^имя.double[] (default)
         0 или default          0 или default
       !^имя.bool[] + .bool(true|false)  bool значение
     !^void:sql{запрос без результата}{$.bind[см. table::sql]}      !^void:sql{запрос без результата}{$.bind[см. table::sql]}
   
   
 !int,double  !int,double
     !^имя.int[]  целочисленное значение       !^имя.int[]  целочисленное значение 
     !^имя.double[]+  double значение       !^имя.double[]+  double значение 
       !^имя.bool[] + .bool(true|false)  bool значение
     !^имя.inc(на сколько +)      !^имя.inc(на сколько +)
     !^имя.dec(на сколько -)      !^имя.dec(на сколько -)
     !^имя.mul(на сколько *)      !^имя.mul(на сколько *)
Line 286  odbc    c:\drives\y\parser3project\odbc\ Line 292  odbc    c:\drives\y\parser3project\odbc\
     !^имя.int[] .int(default) целочисленное значение строки.       !^имя.int[] .int(default) целочисленное значение строки. 
         если ломается преобразование, берётся default          если ломается преобразование, берётся default
     !^имя.double[]+ .double(default)  double значение строки      !^имя.double[]+ .double(default)  double значение строки
       !^имя.bool[] + .bool(default)  bool значение строки
         если ломается преобразование, берётся default          если ломается преобразование, берётся default
     !^имя.format[формат] %d  %.2f %02d...      !^имя.format[формат] %d  %.2f %02d...
     !^строка.match[шаблон][[опции поиска]]  $prematch $match $postmatch $1 $2...      !^строка.match[шаблон][[опции поиска]]  $prematch $match $postmatch $1 $2...
Line 443  odbc    c:\drives\y\parser3project\odbc\ Line 450  odbc    c:\drives\y\parser3project\odbc\
 !cookie  !cookie
     !$cookie:имя считать старое или свежезаданное      !$cookie:имя считать старое или свежезаданное
     !$cookie:имя[значение] на 90 дней      !$cookie:имя[значение] на 90 дней
     !$cookie:имя[$.value[значение]  $.expires ЗНАЧЕНИЕ ]      !$cookie:имя[$.value[значение]  $.expires[ЗНАЧЕНИЕ] $.secure(true)]
     !значение поля expires может быть 'session', date, или число дней(0дней=session)      !значение поля expires может быть 'session', date, или число дней(0дней=session)
     ! если дата, она будет преобразована к формату "Sun, 25-Aug-2002 12:03:45 GMT"      ! если дата, она будет преобразована к формату "Sun, 25-Aug-2002 12:03:45 GMT"
       ! можно устанавливать bool свойства, например $.secure(true), $.httponly(true)
   
   
 !request  !request
     !$request:query          !$request:query    
Line 561  odbc    c:\drives\y\parser3project\odbc\ Line 570  odbc    c:\drives\y\parser3project\odbc\
     !если body указан hash, то это части, будут собраны текстовые блоки, затем вложения      !если body указан hash, то это части, будут собраны текстовые блоки, затем вложения
     !это старый формат, поддерживается для обратной совместимости      !это старый формат, поддерживается для обратной совместимости
     !если имя части начинается со слова text, то это текстовый блок.      !если имя части начинается со слова text, то это текстовый блок.
     !если имя части начинается со слова attach, то это вложение, формат задания::      !если имя части начинается со слова file, то это вложение, формат задания::
         !$attach[$.format[!uue|!base64] $.value[DATA] $.file-name[user-file-name]]          !$file[$.format[!uue|!base64] $.value[DATA] $.name[user-file-name]]
     !важно: при multipart не указывать content-type      !важно: при multipart не указывать content-type
         ^mail:send[          ^mail:send[
 #           по-умолчанию, совпадает с source encoding.  #           по-умолчанию, совпадает с source encoding.
Line 590  odbc    c:\drives\y\parser3project\odbc\ Line 599  odbc    c:\drives\y\parser3project\odbc\
                     $.body[слова]                      $.body[слова]
                 ]                  ]
 #для удобства скриптования можно указать только одну часть, при этом не будет multipart  #для удобства скриптования можно указать только одну часть, при этом не будет multipart
                 $.attach[                  $.file[
                    $.value[^file::load[my beloved.doc]]                     $.value[^file::load[my beloved.doc]]
                    $.file-name[мой любимый.doc]                     $.name[мой любимый.doc]
                      $.format[base64]
                 ]                  ]
                 $.attach2[                  $.file2[
                    $.value[^file::load[my beloved.doc]]                     $.value[^file::load[my beloved.doc]]
                    $.file-name[мой любимый.doc]                     $.name[мой любимый.doc]
                ]                 ]
             ]              ]
         ]          ]
Line 682  odbc    c:\drives\y\parser3project\odbc\ Line 692  odbc    c:\drives\y\parser3project\odbc\
         можно переименовывать и двигать каталоги[win32: но не через границу дисков]          можно переименовывать и двигать каталоги[win32: но не через границу дисков]
         каталоги для dest создаются с правами 775          каталоги для dest создаются с правами 775
         каталог старого файла стирается, если после move он остаётся пуст          каталог старого файла стирается, если после move он остаётся пуст
       !^file:copy[имя файла;имя копии файла] 
           можно копировать только файлы
     !^file:lock[имя файла]{код}      !^file:lock[имя файла]{код}
         файл при необходимости создаётся          файл при необходимости создаётся
         блокируется          блокируется
Line 706  odbc    c:\drives\y\parser3project\odbc\ Line 718  odbc    c:\drives\y\parser3project\odbc\
         если есть вторая - это имя файла          если есть вторая - это имя файла
         если есть третья - это content-type          если есть третья - это content-type
     !^file.base64[] encode      !^file.base64[] encode
       !^file:base64[имя файла] encode
     !^file::base64[encoded string] decode      !^file::base64[encoded string] decode
       !^file:crc32[имя файла]
          вычисляет crc32 файла с указанным именем
       !^file.crc32[]
                   вычисляет crc32 объекта
           !^file.md5[]
           !^file:md5[имя файла]
           выдает digest файла, длиной 16 байт в виде строки, 
           где байты digest выданы в hex виде, впритык, в нижнем регистре
   
 !math  !math
     !$math:PI      !$math:PI
Line 735  odbc    c:\drives\y\parser3project\odbc\ Line 756  odbc    c:\drives\y\parser3project\odbc\
          если нет тела salt, оно создаётся случайным           если нет тела salt, оно создаётся случайным
        $1$ вызывает MD5 алгоритм функции OS 'crypt', если поддерживается [заведомо нет на solaris].         $1$ вызывает MD5 алгоритм функции OS 'crypt', если поддерживается [заведомо нет на solaris].
        другие salt читайте документацию по функции OS 'crypt'.         другие salt читайте документацию по функции OS 'crypt'.
       !^math:crc32[string]
          вычисляет crc32 строки
   
 !date  !date
     !время типа time можно использовать в выражениях, подставляет       !время типа time можно использовать в выражениях, подставляет 
Line 797  xdoc(xnode) Line 820  xdoc(xnode)
     ::sql{...}      ::sql{...}
     !::create[[URI]]{<?xml?><string/>} старое имя 'set'      !::create[[URI]]{<?xml?><string/>} старое имя 'set'
     !::create[[URI]][qualifiedName]      !::create[[URI]][qualifiedName]
       !::create[file] can be usable: $f[^file::load[binary;http://;some http options here...]]$x[^xdoc::create[$f]]
       URI default = disk path to requested document        URI default = disk path to requested document
       для каталогов конечный / обязателен        для каталогов конечный / обязателен
     !::load[file.xml[;опции]]      !::load[file.xml[;опции]]
Line 1019  DATA::=string | file | hash Line 1043  DATA::=string | file | hash
 ]  ]
   
 !MAIN  !MAIN
     это класс, загружаемый на автомате из parser3.conf,       это класс, загружаемый на автомате из конфигурационного auto.p, 
     кучи auto.p и запрашиваемого документа:      кучи auto.p и запрашиваемого документа:
         !parser3.conf           !конфигурационный auto.p 
             cgi:               cgi: 
                 1. или полный путь из переменной окружения CGI_PARSER_SITE_CONFIG                  1. или полный путь из переменной окружения CGI_PARSER_SITE_CONFIG
                    или рядом с бинарником parser'а                      или рядом с бинарником parser'а 
Line 1033  DATA::=string | file | hash Line 1057  DATA::=string | file | hash
     имя последнего загруженного MAIN, имён у предыдущих нет      имя последнего загруженного MAIN, имён у предыдущих нет
           
     !после загрузки MAIN класса вызывается его @main[]      !после загрузки MAIN класса вызывается его @main[]
     !результат которого передаётся в его @post-process[data] if($data is string) ...      !результат которого передаётся в его @postprocess[data] if($data is string) ...
     !результат которого отдаётся пользователю      !результат которого отдаётся пользователю
   
 !если встречается ошибка и try не задан, её можно красиво сообщить пользователю,   !если встречается ошибка и try не задан, её можно красиво сообщить пользователю, 

Removed from v.1.181  
changed lines
  Added in v.1.190


E-mail: