Diff for /parser3/operators.ru.txt between versions 1.100 and 1.115

version 1.100, 2002/11/25 15:07:29 version 1.115, 2003/06/20 09:56:01
Line 301  odbc    c:\drives\y\parser3project\odbc\ Line 301  odbc    c:\drives\y\parser3project\odbc\
         логическое значение равно "не пуста?"          логическое значение равно "не пуста?"
         числовое значение равно count[]          числовое значение равно count[]
     !^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] $.reverse(1)]]
         клонирует таблицу              клонирует таблицу    
           reverse << сзаду на перёд (работает пока только в locate, в table::create НЕ работает)
     !^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[...] }]]
     !^таблица.save[[nameless|append;]путь]      !^таблица.save[[nameless|append;]путь]
     !$таблица.поле      !$таблица.поле
     !$таблица.fields+  из named таблицы выдаёт текущую запись как Hash      !$таблица.fields  из named таблицы выдаёт текущую запись как Hash
     !^таблица.menu{тело}[разделитель]      !^таблица.menu{тело}[разделитель]
     !^таблица.offset[[whence]](5) сдвигает; без параметра - печатает offset      !^таблица.offset[[whence]](5) сдвигает; без параметра - печатает offset
         !whence=cur|set          !whence=cur|set
Line 326  odbc    c:\drives\y\parser3project\odbc\ Line 327  odbc    c:\drives\y\parser3project\odbc\
     !^таблица.join[таблица][$.limit(1) $.offset(5) $.offset[cur]]     - добавляет записи из таблицы.       !^таблица.join[таблица][$.limit(1) $.offset(5) $.offset[cur]]     - добавляет записи из таблицы. 
         таблицы должны иметь одинаковую структуру.          таблицы должны иметь одинаковую структуру.
     !^таблица.flip[] выдаёт транспонированную, надо куда-то сложить, потом пользовать      !^таблица.flip[] выдаёт транспонированную, надо куда-то сложить, потом пользовать
     !^таблица.locate[поле;значение] передвигает текущую строку, если найдёт. выдаёт bool      !^таблица.locate[поле;значение][[$.limit(1) $.offset(5) $.offset[cur] $.reverse(1)]] 
     !^таблица.locate(логическое выражение) передвигает текущую строку, если найдёт. выдаёт bool          передвигает текущую строку, если найдёт. выдаёт bool
     !^таблица.hash{[поле]|{код}|(выражение)}[[поле значений|table поля значений]][[$.distinct(1)]]      !^таблица.locate(логическое выражение)[[$.limit(1) $.offset(5) $.offset[cur] $.reverse(1)]]
           передвигает текущую строку, если найдёт. выдаёт bool
       !^таблица.hash{[поле]|{код}|(выражение)}[[поле значений|table поля значений]][[$.distinct(1) $.distinct[tables]]]
         значением $hash.ключ будет hash в котором поля значений будут ключами          значением $hash.ключ будет hash в котором поля значений будут ключами
         поля значений могут быть не указаны, тогда ими будут все столбцы, включая ключевой          поля значений могут быть не указаны, тогда ими будут все столбцы, включая ключевой
           если distinct содержит true, то не будет ошибки при повторяющихся ключах
           если distinct содержит tables, то будет создан hash из таблиц, содержащих строки с ключом
     !^таблица.columns[]+ таблица из одного столбца $column      !^таблица.columns[]+ таблица из одного столбца $column
     !$отобранное[^таблица.select(выражение)] = таблица из тех же столбцов и строк, у которых условие совпало      !$отобранное[^таблица.select(выражение)] = таблица из тех же столбцов и строк, у которых условие совпало
         $adults[^man.select($man.age>=18)]          $adults[^man.select($man.age>=18)]
Line 344  odbc    c:\drives\y\parser3project\odbc\ Line 349  odbc    c:\drives\y\parser3project\odbc\
     !$hash.ключ      !$hash.ключ
         !_default - специальный ключ, если задан,           !_default - специальный ключ, если задан, 
         то при обращении по ключу, которому нет соответствия, выдаётся _default значение           то при обращении по ключу, которому нет соответствия, выдаётся _default значение 
       !$hash.fields выдает $hash. чтобы класс hash был чуть больше похож на класс table
     !^hash::create[[!copy_from_hash|Xcopy_from_hashfile]]      !^hash::create[[!copy_from_hash|Xcopy_from_hashfile]]
         создаёт новый hash, копию старого          создаёт новый hash, копию старого
     !^hash.add[слагаемое]      !^hash.add[слагаемое]
Line 402  odbc    c:\drives\y\parser3project\odbc\ Line 408  odbc    c:\drives\y\parser3project\odbc\
         !значение поля или атрибута может быть string или date          !значение поля или атрибута может быть string или date
         ! если дата, она будет преобразована к формату "Sun, 25-Aug-2002 12:03:45 GMT"          ! если дата, она будет преобразована к формату "Sun, 25-Aug-2002 12:03:45 GMT"
     !$response:body[DATA]  замещает стандартный ответ      !$response:body[DATA]  замещает стандартный ответ
       !$response:download[DATA]  замещает стандартный ответ, 
           выставляет флаг, заставляющий browser предложить download
     !$response:status      !$response:status
     !^response:clear[] забыть все заданные response поля      !^response:clear[] забыть все заданные response поля
     !$response:charset      !$response:charset
Line 571  Xhashfile Line 579  Xhashfile
         !$image.exif.DateTime & co           !$image.exif.DateTime & co 
             [полный список см. http://www.ba.wakwak.com/~tsuruzoh/Computer/Digicams/exif-e.html]              [полный список см. http://www.ba.wakwak.com/~tsuruzoh/Computer/Digicams/exif-e.html]
         !числа типа int/double,          !числа типа int/double,
           !даты типа date
         !перечисления в виде hash с ключами 0..count-1          !перечисления в виде hash с ключами 0..count-1
     !$картинка.src .width .height      !$картинка.src .width .height
     !$картинка.line-width  число=ширина линий      !$картинка.line-width  число=ширина линий
Line 644  Xhashfile Line 653  Xhashfile
     !/some/page.html: ^file:fullpath[a.gif] => /some/a.gif      !/some/page.html: ^file:fullpath[a.gif] => /some/a.gif
   
   
 math  !math
     !$math:PI      !$math:PI
     !^math:round floor ceiling       !^math:round floor ceiling 
     !^math:trunc frac      !^math:trunc frac
Line 654  math Line 663  math
     !^math:degrees radians      !^math:degrees radians
     !^math:pow sqrt      !^math:pow sqrt
     !^math:random(ширина диапазона)      !^math:random(ширина диапазона)
     ^math:GUID {C2C0983C-E26E-4169-BD07-77ECE9405BA5}      !^math:uuid 
           22C0983C-E26E-4169-BD07-77ECE9405BA5
           win32: пользуется cryptapi
           unix: пользуется /dev/urandom, 
               если нет, /dev/random, 
               если нет, rand 
               [на solaris /dev/random можно добавить]
       !^math:uid64[]
          BA39BAB6340BE370
       !^math:md5[string]
           выдает digest строки, длиной 16 байт в виде строки, 
           где байты digest выданы в hex виде, впритык, в нижнем регистре
     !^math:crypt[password;salt]      !^math:crypt[password;salt]
        salt prefix $apr1$ вызывает встроенный MD5 алгоритм,          salt prefix $apr1$ вызывает встроенный MD5 алгоритм, 
          если нет тела salt, оно создаётся случайным           если нет тела salt, оно создаётся случайным
Line 877  xdoc(xnode) Line 897  xdoc(xnode)
             url    time                  url    time    
             url    time                  url    time    
             url    time                  url    time    
     !$status:db hash  
         !cache hash db_home=>tables table  
             name    time    users  
             name    time    users  
             name    time    users  
     !$status:stylesheet      !$status:stylesheet
         !cache table          !cache table
             file    time              file    time
Line 943  xdoc(xnode) Line 958  xdoc(xnode)
         !$.method[GET|HEAD]          !$.method[GET|HEAD]
         !$.timeout(3)  << в секундах, по-умолчанию =2          !$.timeout(3)  << в секундах, по-умолчанию =2
         !$.headers[          !$.headers[
         !    $поле[значение] << по-умолчанию, user-agent=parser3          !    $поле[значение] << значение имеет формат, как $response:ЗАГОЛОВОК
         !]          !]
     !file::load в дополнительные поля записывает ПОЛЕ:значение (имена полей ответа заглавными буквами)          !по-умолчанию, user-agent=parser3
           !по-умолчанию, получение http status != 200 >> создает http.status ошибку,
           !это можно отключить, передав
           !$.any-status(1)
       !file::load в дополнительные поля записывает 
           !ПОЛЕ:значение (имена полей ответа заглавными буквами)
           !tables << хеш их ПОЛЕ->table с единственным столбцом "value". 
               в таких таблицах можно брать повторяющиеся заголовки. например, несколько set-cookies
               todo:сделать отдельный cookies
   
 !системные типы ошибок:  !системные типы ошибок:
     !parser.compile       ^test[}                компиляция (непарная скобка, ...)      !parser.compile       ^test[}                компиляция (непарная скобка, ...)
Line 970  xdoc(xnode) Line 993  xdoc(xnode)
     !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.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.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.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.100  
changed lines
  Added in v.1.115


E-mail: