Diff for /parser3/operators.ru.txt between versions 1.74 and 1.85

version 1.74, 2002/08/19 12:55:57 version 1.85, 2002/10/08 12:54:55
Line 5  Xне сделано, видимо, не будет сделано Line 5  Xне сделано, видимо, не будет сделано
   
 операторы  операторы
     !^eval(выражение)[формат] выражение, кроме обычных функций::      !^eval(выражение)[формат] выражение, кроме обычных функций::
           !допустимы #комментарии
                   работают до конца строки или закрывающейся круглой скобки
                   внутри комментария допустимы вложенные круглые скобки
         !из неочевидных операторов:          !из неочевидных операторов:
             # побитный xor              !| побитный xor
             ## логический xor              !|| логический xor
             ~ побитное отрицание              ~ побитное отрицание
             \ целочисленное деление 10\3=3              \ целочисленное деление 10\3=3
         !def для проверки defined,          !def для проверки defined,
             пустая строка не defined              пустая строка не defined
             пустая таблица не defined              пустая таблица не defined
             пустой hash не defined              пустой hash не defined
           ^if(method $hash.delete){yes}
         !eq ne lt gt le ge для сравнения строк,           !eq ne lt gt le ge для сравнения строк, 
         !in "/dir/" для проверки          !in "/dir/" для проверки
             ["внутри не допустимы, если надо сравнить со сложным,               ["внутри не допустимы, если надо сравнить со сложным, 
Line 27  Xне сделано, видимо, не будет сделано Line 31  Xне сделано, видимо, не будет сделано
         !числовой литерал бывает 0xABC          !числовой литерал бывает 0xABC
         !приоритеты:          !приоритеты:
            /* logical */             /* logical */
            %left "##"             %left "!||"
            %left "||"             %left "||"
            %left "&&"             %left "&&"
            %left '<' '>' "<=" ">="   "lt" "gt" "le" "ge"             %left '<' '>' "<=" ">="   "lt" "gt" "le" "ge"
            %left "==" "!="  "eq" "ne"             %left "==" "!="  "eq" "ne"
            %left "is" "def" "in" "-f" "-d"             %left "is" "def" "in" "-f" "-d"
            %left '!'             %left '!'
              условие ? когдаДа: когдаНет
   
            /* bitwise */             /* bitwise */
            %left '#'             %left '!|'
            %left '|'             %left '|'
            %left '&'              %left '&' 
            %left '~'             %left '~'
Line 45  Xне сделано, видимо, не будет сделано Line 50  Xне сделано, видимо, не будет сделано
            %left '-' '+'             %left '-' '+'
            %left '*' '/' '%' '\\'             %left '*' '/' '%' '\\'
            %left NEG     /* negation: unary - */             %left NEG     /* negation: unary - */
   
              
     !^if(условие){когда да}{когда нет}      !^if(условие){когда да}{когда нет}
     !^switch[значение]{^case[вариант1[;вариант2...]]{действие}^case[DEFAULT]{действие по умолчанию}}      !^switch[значение]{^case[вариант1[;вариант2...]]{действие}^case[DEFAULT]{действие по умолчанию}}
     !^while(условие){тело}      !^while(условие){тело}
Line 216  odbc    c:\drives\y\parser3project\odbc\ Line 223  odbc    c:\drives\y\parser3project\odbc\
   
   
 !void  !void
           !^имя.length[]
                   0
           !^имя.pos[...]
                   -1
     !^имя.int[]  (default)       !^имя.int[]  (default) 
         0 или default          0 или default
     !^имя.double[] (default)      !^имя.double[] (default)
Line 260  odbc    c:\drives\y\parser3project\odbc\ Line 271  odbc    c:\drives\y\parser3project\odbc\
     !^строка.match[шаблон][опции поиска]{замена}      !^строка.match[шаблон][опции поиска]{замена}
         опции поиска+=          опции поиска+=
         g заменить все вхождения, а не одно          g заменить все вхождения, а не одно
       !^строка.split[разделитель][[lrhv]]
           l слева направо [default]
           r справа налево
           h nameless таблица
           v таблица из столбца piece [default]
     !^строка.{l|r}split[разделитель] таблица из столбца $piece      !^строка.{l|r}split[разделитель] таблица из столбца $piece
           оставлен для совместимости
     !^строка.upper|lower[]       !^строка.upper|lower[] 
     X^строка.truncate(предел терпенья) стиль :(      X^строка.truncate(предел терпенья) стиль :(
     !^строка.length[]      !^строка.length[]
Line 308  odbc    c:\drives\y\parser3project\odbc\ Line 325  odbc    c:\drives\y\parser3project\odbc\
     !^таблица.flip[] выдаёт транспонированную, надо куда-то сложить, потом пользовать      !^таблица.flip[] выдаёт транспонированную, надо куда-то сложить, потом пользовать
     !^таблица.locate[поле;значение] передвигает текущую строку, если найдёт. выдаёт bool      !^таблица.locate[поле;значение] передвигает текущую строку, если найдёт. выдаёт bool
     !^таблица.locate(логическое выражение) передвигает текущую строку, если найдёт. выдаёт bool      !^таблица.locate(логическое выражение) передвигает текущую строку, если найдёт. выдаёт bool
     !^таблица.hash[поле, что будет ключом][[поле значений|table поля значений]]+      !^таблица.hash[поле, что будет ключом][[поле значений|table поля значений]][[$.distinct(1)]]
         значением $hash.ключ будет hash в котором поля значений будут ключами          значением $hash.ключ будет hash в котором поля значений будут ключами
         поля значений могут быть не указаны, тогда ими будут все столбцы, включая ключевой          поля значений могут быть не указаны, тогда ими будут все столбцы, включая ключевой
     !^таблица.columns[]+ таблица из одного столбца $column      !^таблица.columns[]+ таблица из одного столбца $column
Line 334  odbc    c:\drives\y\parser3project\odbc\ Line 351  odbc    c:\drives\y\parser3project\odbc\
     !^a.intersection[b] = пересечение      !^a.intersection[b] = пересечение
         значения a          значения a
     !^a.intersects[b] = bool      !^a.intersects[b] = bool
     !^hash::sql{запрос}[[$.limit(2) $.offset(4) todo:$.default{$.field[]...}]]      !^hash::sql{запрос}[[$.distinct(1) $.limit(2) $.offset(4) todo:$.default{$.field[]...}]]
         получается hash(ключи=значения первая колонка ответа)          получается hash(ключи=значения первая колонка ответа)
         of hash(ключи=названия остальных колонкок ответа)          of hash(ключи=названия остальных колонкок ответа)
     !^hash._keys[]+ таблица из одного столбца $key      !^hash._keys[]+ таблица из одного столбца $key
Line 924  xdoc(xnode) Line 941  xdoc(xnode)
   
 !если в MAIN будет определён флаг $ORIGINS(1) то вместо обычного вывода страницы будет  !если в MAIN будет определён флаг $ORIGINS(1) то вместо обычного вывода страницы будет
     выдан список фрагментов результата с указанием их происхождения      выдан список фрагментов результата с указанием их происхождения
 test change  

Removed from v.1.74  
changed lines
  Added in v.1.85


E-mail: