Diff for /parser3/operators.ru.txt between versions 1.94 and 1.102

version 1.94, 2002/10/23 09:32:16 version 1.102, 2002/11/28 15:05:26
Line 6  Xне сделано, видимо, не будет сделано Line 6  Xне сделано, видимо, не будет сделано
 операторы  операторы
     !^eval(выражение)[формат] выражение, кроме обычных функций::      !^eval(выражение)[формат] выражение, кроме обычных функций::
         !допустимы #комментарии          !допустимы #комментарии
                 работают до конца строки или закрывающейся круглой скобки              работают до конца строки или закрывающейся круглой скобки
                 внутри комментария допустимы вложенные круглые скобки              внутри комментария допустимы вложенные круглые скобки
         !из неочевидных операторов:          !из неочевидных операторов:
             !| побитный xor              !| побитный xor
             !|| логический xor              !|| логический xor
Line 227  odbc    c:\drives\y\parser3project\odbc\ Line 227  odbc    c:\drives\y\parser3project\odbc\
   
 !void  !void
     !^имя.length[]      !^имя.length[]
         0          0
     !^имя.pos[...]      !^имя.pos[...]
         -1          -1
     !^имя.int[]  (default)       !^имя.int[]  (default) 
Line 275  odbc    c:\drives\y\parser3project\odbc\ Line 275  odbc    c:\drives\y\parser3project\odbc\
         опции поиска+=          опции поиска+=
         g заменить все вхождения, а не одно          g заменить все вхождения, а не одно
     !^строка.split[разделитель][[lrhv]]      !^строка.split[разделитель][[lrhv]]
         l слева направо [default]          l слева направо [default]
         r справа налево          r справа налево
         h nameless таблица          h nameless таблица
         v таблица из столбца piece [default]          v таблица из столбца piece [default]
     !^строка.{l|r}split[разделитель] таблица из столбца $piece      !^строка.{l|r}split[разделитель] таблица из столбца $piece
         оставлен для совместимости          оставлен для совместимости
     !^строка.upper|lower[]       !^строка.upper|lower[] 
     X^строка.truncate(предел терпенья) стиль :(      X^строка.truncate(предел терпенья) стиль :(
     !^строка.length[]      !^строка.length[]
Line 303  odbc    c:\drives\y\parser3project\odbc\ Line 303  odbc    c:\drives\y\parser3project\odbc\
     !^table::create[[nameless]]{данные} старое имя "set"      !^table::create[[nameless]]{данные} старое имя "set"
     !^table::create[table][[$.limit(1) $.offset(5) $.offset[cur]]]      !^table::create[table][[$.limit(1) $.offset(5) $.offset[cur]]]
         клонирует таблицу              клонирует таблицу    
     !^table::load[[nameless;]путь]      !^table::load[[nameless;]путь[;опции]]
         !если не nameless, названия колонок берутся из первой строки          !если не nameless, названия колонок берутся из первой строки
         !пустые строки, и строки в первой колонке содержащие '#', игнорируются                  !пустые строки, и строки в первой колонке содержащие '#', игнорируются        
     !^table::sql{query}[[$.limit(2) $.offset(4) todo:$.default{ ^table::create[...] }]]      !^table::sql{query}[[$.limit(2) $.offset(4) todo:$.default{ ^table::create[...] }]]
Line 567  Xhashfile Line 567  Xhashfile
     !$картинка[^image::measure[DATA]]      !$картинка[^image::measure[DATA]]
         смотрит на .ext case insensitive,           смотрит на .ext case insensitive, 
         умеет мерить пока только .gif и .jpg .jpeg          умеет мерить пока только .gif и .jpg .jpeg
       !$image.exif << hash после measure jpeg с exif информацией 
           !$image.exif.DateTime & co 
               [полный список см. http://www.ba.wakwak.com/~tsuruzoh/Computer/Digicams/exif-e.html]
           !числа типа int/double,
           !перечисления в виде hash с ключами 0..count-1
     !$картинка.src .width .height      !$картинка.src .width .height
     !$картинка.line-width  число=ширина линий      !$картинка.line-width  число=ширина линий
        !$картинка.line-style строка=стиль линий '*** * '='*** * *** * *** * '         !$картинка.line-style строка=стиль линий '*** * '='*** * *** * *** * '
Line 610  Xhashfile Line 615  Xhashfile
     !^file:delete[имя файла]      !^file:delete[имя файла]
     !^file:find[имя файла][{когда не нашли}]      !^file:find[имя файла][{когда не нашли}]
     !^file:list[путь[;шаблон]] = table с колонкой name      !^file:list[путь[;шаблон]] = table с колонкой name
     !^file::load[text|binary;!big.zip[;!domain_press_release_2001_03_01.zip]]      !^file::load[text|binary;!big.zip[;!domain_press_release_2001_03_01.zip][;опции]]
     !$файл_который_был_loaded.size      !$файл_который_был_loaded.size
     !^file::stat[имя файла]      !^file::stat[имя файла]
     !$файл_который_был_stated.size !.adate !.mdate !.cdate      !$файл_который_был_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          $status
         $stderr          $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[старое имя файла;новое имя файла]       !^file:move[старое имя файла;новое имя файла] 
         можно переименовывать и двигать каталоги[win32: но не через границу дисков]          можно переименовывать и двигать каталоги[win32: но не через границу дисков]
         каталоги для dest создаются с правами 775          каталоги для dest создаются с правами 775
Line 711  xdoc(xnode) Line 718  xdoc(xnode)
     !::create[[URI]][qualifiedName]      !::create[[URI]][qualifiedName]
       URI default = disk path to requested document        URI default = disk path to requested document
       для каталогов конечный / обязателен        для каталогов конечный / обязателен
     !::load[file.xml]      !::load[file.xml[;опции]]
     !.transform[rules.xsl|xdoc][[params hash]] выдаёт dom      !.transform[rules.xsl|xdoc][[params hash]] выдаёт dom
         шаблон кэшируется, кэш обновляется при изменении даты файла шаблона,          шаблон кэшируется, кэш обновляется при изменении даты файла шаблона,
         или изменении даты файла "имя шаблона.stamp"[проверка даты stamp приоритетнее]          или изменении даты файла "имя шаблона.stamp"[проверка даты stamp приоритетнее]
Line 930  xdoc(xnode) Line 937  xdoc(xnode)
         там лежат в обратном порядке имена[name] и места вызовов[file line]           там лежат в обратном порядке имена[name] и места вызовов[file line] 
         операторов/методов, приведших к ошибке.          операторов/методов, приведших к ошибке.
   
   !при загрузке файла (file::load, table::load, xdoc::load) можно указать такое имя файла:
       !http://domain/document?params
       !а также, возможно, указать опции:
           !$.method[GET|HEAD]
           !$.timeout(3)  << в секундах, по-умолчанию =2
           !$.headers[
           !    $поле[значение] << по-умолчанию, user-agent=parser3
           !]
       !file::load в дополнительные поля записывает ПОЛЕ:значение (имена полей ответа заглавными буквами)
   
 !системные типы ошибок:  !системные типы ошибок:
     !parser.compile       ^test[}                компиляция (непарная скобка, ...)      !parser.compile       ^test[}                компиляция (непарная скобка, ...)
     !parser.runtime       ^if(0).                параметры (больше/меньше, чем нужно, не тех типов, ...)      !parser.runtime       ^if(0).                параметры (больше/меньше, чем нужно, не тех типов, ...)
Line 938  xdoc(xnode) Line 955  xdoc(xnode)
     !file.lock                                                        shared/exclusive lock error      !file.lock                                                        shared/exclusive lock error
     !file.missing         ^file:delete[delme]                         not found      !file.missing         ^file:delete[delme]                         not found
     !file.access          ^table::load[.]                             no rights      !file.access          ^table::load[.]                             no rights
       !file.seek                                                        seek failed
     !image.format         ^image::measure[index.html]                 not gif/jpg      !image.format         ^image::measure[index.html]                 not gif/jpg
     !sql.connect          ^connect[mysql://baduser:pass@host/db]{}    not found/timeout      !sql.connect          ^connect[mysql://baduser:pass@host/db]{}    not found/timeout
     !sql.execute          ^void:sql{select bad}                       syntax error      !sql.execute          ^void:sql{select bad}                       syntax error
Line 950  xdoc(xnode) Line 968  xdoc(xnode)
     !smtp.execute                                                     communication error      !smtp.execute                                                     communication error
     !email.format         hren tam@null.ru                            wrong email format(bad chars/empty)      !email.format         hren tam@null.ru                            wrong email format(bad chars/empty)
     !email.send           $MAIL.sendmail[/shit]                       sendmail not executable      !email.send           $MAIL.sendmail[/shit]                       sendmail not executable
       !http.host            ^file::load[http://notfound/there]          host not found
       !http.connect         ^file::load[http://not_accepting/there]     host found, but do not accept connections
       !http.timeout         ^file::load[http://host/doc]                whole load operation failed to complete in # seconds
       !http.response        ^file::load[http://ok/there]                host found, connection accepted, bad answer
       !http.status          ^file::load[http://ok/there]                host found, connection accepted, status!=200
           
 !нужно выключить русский apache: CharsetDisable on  !нужно выключить русский apache: CharsetDisable on
   

Removed from v.1.94  
changed lines
  Added in v.1.102


E-mail: