Diff for /parser3/operators.ru.txt between versions 1.27 and 1.37

version 1.27, 2002/03/27 13:33:31 version 1.37, 2002/05/15 08:58:00
Line 68  Xне сделано, видимо, не будет сделано Line 68  Xне сделано, видимо, не будет сделано
                 $exception.file $exception.lineno [если не запрещены при компиляции]                  $exception.file $exception.lineno [если не запрещены при компиляции]
                 $exception.source = вася                  $exception.source = вася
                 $exception.comment = болван                  $exception.comment = болван
                 ^if($exception.type eq connect){^cache[read]}  
             }              }
             ^case[_default]{              ^case[_default]{
                 код, обрабатывающий другую ошибку                  код, обрабатывающий другую ошибку
Line 86  Xне сделано, видимо, не будет сделано Line 85  Xне сделано, видимо, не будет сделано
         default as-is          default as-is
     !^taint[[lang]][код]      !^taint[[lang]][код]
         default "just tainted, language unknown"          default "just tainted, language unknown"
     !^process[строка, которая будет process-ed, как код]      !^process{строка, которая будет process-ed, как код}
     !^connect[protocol://строка соединения]]{код с ^sql[...]-ями}      !^connect[protocol://строка соединения]]{код с ^sql[...]-ями}
         !mysql://user:pass@{host[:port]|[/unix/socket]}/database?          !mysql://user:pass@{host[:port]|[/unix/socket]}/database?
             charset=cp1251_koi8&              charset=cp1251_koi8&
Line 142  odbc    c:\drives\y\parser3project\odbc\ Line 141  odbc    c:\drives\y\parser3project\odbc\
         /**имя_поля**/'literal'          /**имя_поля**/'literal'
     !^rem{}      !^rem{}
     !^cache[файл](секунд){код}      !^cache[файл](секунд){код}
           !относительное задание времени
         !скэшировать строку, которая получается при выполнении кода на 'секунд' секунд          !скэшировать строку, которая получается при выполнении кода на 'секунд' секунд
         !если 0секунд, значит не кэшировать, а старый такой стереть          !если 0секунд, значит не кэшировать, а старый такой стереть
     ^cache[delete]       !^cache[файл][expires date]{код}
         сигнализирует вышестоящему ^cache "не кэшировать, старое забыть"          !абсолютное задание времени
     ^cache[read]       X^cache[файл] удалить файл [не ругает, если его нет] // такое было, больше не будет, делать ^cache(0)
         сигнализирует вышестоящему ^cache "взять скэшированное насильно, игнорируя expires", <br>      !^cache(секунд)
         выдаёт bool "получилось/нет"      !^cache[expires date]
           !сигнализирует вышестоящему ^cache "уменьши до стольких-то 'секунд'/'expires'"
           !в пределе: ^cache(0) отменить кэширование
       X^cache[read] 
           сигнализирует вышестоящему ^cache "взять скэшированное насильно, игнорируя expires", <br>
           выдаёт bool "получилось/нет"
   
   
     Xесть глобальный флажок в свойствах/командной строке "не оптимизировать"      Xесть глобальный флажок в свойствах/командной строке "не оптимизировать"
     !и есть исключение: ^untaint[html]{код} не оптимизируется безотностительно флажка      !и есть исключение: ^untaint[html]{код} не оптимизируется 
           Xбезотностительно флажка
   
     !у всех макросов есть локальная переменная $result, если в неё что положить,      !у всех макросов есть локальная переменная $result, если в неё что положить,
     !то _это_ будет результатом макроса, а не его тело      !то _это_ будет результатом макроса, а не его тело
Line 225  odbc    c:\drives\y\parser3project\odbc\ Line 231  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}]]
         запрос, результат которого должен быть один столбец/одна строка          запрос, результат которого должен быть один столбец/одна строка
   
 !string  !string
Line 237  odbc    c:\drives\y\parser3project\odbc\ Line 243  odbc    c:\drives\y\parser3project\odbc\
         пример:          пример:
         ^if(def $form:name) не пуста?          ^if(def $form:name) не пуста?
         ^if($user.isAlive) истина? [автопреобразование к числу, не ноль?]          ^if($user.isAlive) истина? [автопреобразование к числу, не ноль?]
     !^string::sql{query}[[$.limit(2) $.offset(4) $.default[n/a]]]      !^string::sql{query}[[$.limit(2) $.offset(4) $.default{n/a}]]
         результат запроса должен быть один столбец/одна строка          результат запроса должен быть один столбец/одна строка
     !^имя.int[] .int(default) целочисленное значение строки.       !^имя.int[] .int(default) целочисленное значение строки. 
         если ломается преобразование, берётся default          если ломается преобразование, берётся default
Line 303  odbc    c:\drives\y\parser3project\odbc\ Line 309  odbc    c:\drives\y\parser3project\odbc\
         значением $hash.ключ будет hash в котором поля значений будут ключами          значением $hash.ключ будет hash в котором поля значений будут ключами
         поля значений могут быть не указаны, тогда ими будут все столбцы, включая ключевой          поля значений могут быть не указаны, тогда ими будут все столбцы, включая ключевой
     !^таблица.columns[]+ таблица из одного столбца $column      !^таблица.columns[]+ таблица из одного столбца $column
       !$отобранное[^таблица.select(выражение)] = таблица из тех же столбцов и строк, у которых условие совпало
               $adults[^man.select($man.age>=18)]
   
   
   
 !hash  !hash
     !в выражении       !в выражении 
Line 526  Xhashfile Line 536  Xhashfile
         блокируется          блокируется
         выполняется код          выполняется код
         разблокируется          разблокируется
     chmod НЕТ И НЕ БУДЕТ, ЧТОБЫ НЕ МОГЛИ СДЕЛАТЬ executable и запустить, даже если ftp запрещает chmod.      Xchmod[...] НЕТ И НЕ БУДЕТ, ЧТОБЫ НЕ МОГЛИ СДЕЛАТЬ executable и запустить, даже если ftp запрещает chmod.
   
 !math  !math
     !$math:PI      !$math:PI
Line 545  Xhashfile Line 555  Xhashfile
     !всё происходит в localtime,       !всё происходит в localtime, 
     !временная зона задаётся вне parser средствами OS      !временная зона задаётся вне parser средствами OS
     !^date::now[]      !^date::now[]
       !^date::now(смещение в днях) выдаёт сейчас+смещение
     !^date::create(дней с epoch) // старое имя set      !^date::create(дней с epoch) // старое имя set
     !^date::create(year;month;day[;hour[;minute[;second]]]) // старое имя set      !^date::create(year;month[;day[;hour[;minute[;second]]]]) // старое имя set
       !^date::create[дата в формате %Y[-%m[-%d[ %H[:%M[:%S]]]]]]
           для удобного создания по значению из базы
     !$date.year month day  hour minute second  weekday read-only          !$date.year month day  hour minute second  weekday read-only    
     !^date.roll[year|month|day](+-смещение) сдвигает дату      !^date.roll[year|month|day](+-смещение) сдвигает дату
     !^date.sql-string[] %Y-%m-%d %H:%M:%S      !^date.sql-string[] %Y-%m-%d %H:%M:%S
Line 603  xdoc(xnode) Line 616  xdoc(xnode)
         !cdata-section-elements = qnames           !cdata-section-elements = qnames 
         !indent = "yes" | "no"          !indent = "yes" | "no"
         !media-type = string />           !media-type = string /> 
           !параметры передаются как есть, не xpath выражения
   
     !.string[output options]      !.string[output options]
     !.save[file.xml;output options] с шапкой      !.save[file.xml;output options] с шапкой
Line 797  xdoc(xnode) Line 811  xdoc(xnode)
         там лежат в обратном порядке имена[name] и места вызовов[file line]           там лежат в обратном порядке имена[name] и места вызовов[file line] 
         операторов/методов, приведших к ошибке.          операторов/методов, приведших к ошибке.
   
 системные типы ошибок:  !системные типы ошибок:
     parser.compile       ^test[}                компиляция (непарная скобка, ...)      !parser.compile       ^test[}                компиляция (непарная скобка, ...)
     parser.runtime       ^if(0).                параметры (больше/меньше, чем нужно, не тех типов, ...)      !parser.runtime       ^if(0).                параметры (больше/меньше, чем нужно, не тех типов, ...)
     number.zerodivision  ^eval(1/0) ^eval(1%0)      !number.zerodivision  ^eval(1/0) ^eval(1%0)
     number.format        ^eval(abc*5)      !number.format        ^eval(abc*5)
     file.lock      !date.format          ^date::create(2002-99-05)
     file.read                                   not found      !file.missing         ^file:delete[delme]                         not found
     file.write                                  no rights      !file.access          ^table::load[.]                             no rights
     file.format                                 not gif/jpg      !image.format         ^image::measure[index.html]                 not gif/jpg
     sql.connect                                 not found/timeout      !sql.connect          ^connect[mysql://baduser:pass@host/db]{}    not found/timeout
     sql.execute                                 syntax error      !sql.execute          ^void:sql{select bad}                       syntax error
     xml                                         any error in xml/xslt libs      !xml                  ^xdoc::create{<forgot?>}                    any error in xml/xslt libs
     smtp.connect                                not found/timeout      !smtp.connect                                                     not found/timeout
     smtp.execute                                communication error      !smtp.execute                                                     communication error
   
   
 !нужно выключить русский apache: CharsetDisable on  !нужно выключить русский apache: CharsetDisable on
   

Removed from v.1.27  
changed lines
  Added in v.1.37


E-mail: