--- parser3/operators.ru.txt 2002/08/08 12:02:21 1.68 +++ parser3/operators.ru.txt 2002/09/13 14:11:43 1.82 @@ -5,9 +5,12 @@ Xне сделано, видимо, не будет сделано операторы !^eval(выражение)[формат] выражение, кроме обычных функций:: + !допустимы #комментарии + работают до конца строки или закрывающейся круглой скобки + внутри комментария допустимы вложенные круглые скобки !из неочевидных операторов: - # побитный xor - ## логический xor + !| побитный xor + !|| логический xor ~ побитное отрицание \ целочисленное деление 10\3=3 !def для проверки defined, @@ -27,16 +30,17 @@ Xне сделано, видимо, не будет сделано !числовой литерал бывает 0xABC !приоритеты: /* logical */ - %left "##" + %left "!||" %left "||" %left "&&" %left '<' '>' "<=" ">=" "lt" "gt" "le" "ge" %left "==" "!=" "eq" "ne" %left "is" "def" "in" "-f" "-d" %left '!' + условие ? когдаДа: когдаНет /* bitwise */ - %left '#' + %left '!|' %left '|' %left '&' %left '~' @@ -45,6 +49,8 @@ Xне сделано, видимо, не будет сделано %left '-' '+' %left '*' '/' '%' '\\' %left NEG /* negation: unary - */ + + !^if(условие){когда да}{когда нет} !^switch[значение]{^case[вариант1[;вариант2...]]{действие}^case[DEFAULT]{действие по умолчанию}} !^while(условие){тело} @@ -216,6 +222,10 @@ odbc c:\drives\y\parser3project\odbc\ !void + !^имя.length[] + 0 + !^имя.pos[...] + -1 !^имя.int[] (default) 0 или default !^имя.double[] (default) @@ -260,7 +270,13 @@ odbc c:\drives\y\parser3project\odbc\ !^строка.match[шаблон][опции поиска]{замена} опции поиска+= g заменить все вхождения, а не одно + !^строка.split[разделитель][[lrhv]] + l слева направо [default] + r справа налево + h nameless таблица + v таблица из столбца piece [default] !^строка.{l|r}split[разделитель] таблица из столбца $piece + оставлен для совместимости !^строка.upper|lower[] X^строка.truncate(предел терпенья) стиль :( !^строка.length[] @@ -358,6 +374,7 @@ odbc c:\drives\y\parser3project\odbc\ !request !$request:query + !$request:body unprocessed POST request body !$request:uri X!$request:browser это hash, поля: !$type = ie/nn и !$version = номер, скажем 5.5 @@ -374,6 +391,8 @@ odbc c:\drives\y\parser3project\odbc\ !значение может быть string а может быть hash: ! $value[abc] field: {abc}<<часть ! $attribute[zzz] field: abc; {attribute=zzz}<<часть + !значение поля или атрибута может быть string или date + ! если дата, она будет преобразована к формату "Sun, 25-Aug-2002 12:03:45 GMT" !$response:body[DATA] замещает стандартный ответ !$response:status !^response:clear[] забыть все заданные response поля @@ -632,7 +651,6 @@ math !временная зона задаётся вне parser средствами OS $date:UTC-offset сколько дней надо прибавить,чтобы попасть в local время $date:TZ наш часовой пояс, дробное, в часах (где-то есть с точностью до получаса) - $date:isdst 1/0 действует ли сейчас летнее время !^date::now[] !^date::now(смещение в днях) выдаёт сейчас+смещение !^date::create(дней с epoch) // старое имя set @@ -647,7 +665,7 @@ math !^date.sql-string[] %Y-%m-%d %H:%M:%S where published='$дата.sql-string[]' !^date:calendar[rus|eng;год;месяц] выдаёт неименованную таблицу - столбцы: 0..6, week + столбцы: 0..6, week, weekyear !^date:calendar[rus|eng;год;месяц;день] выдаёт именнованную таблицу столбцы: year, month, day, weekday