|
|
| version 1.135, 2003/11/10 07:06:54 | version 1.153, 2004/02/27 15:07:46 |
|---|---|
| Line 86 Xне сделано, видимо, не будет сделано | Line 86 Xне сделано, видимо, не будет сделано |
| удобно сделать после выставления 401 ошибки | удобно сделать после выставления 401 ошибки |
| ^return[результат] + - отваливает из выполнения метода, | ^return[результат] + - отваливает из выполнения метода, |
| выдавая нестандартный результат | выдавая нестандартный результат |
| ^break[] + - обрывает цикл | X^break[] + - обрывает цикл |
| ^continue[] + - обрывает итерацию цикла | X^continue[] + - обрывает итерацию цикла |
| !^untaint[[as-is|file-spec|http-header|mail-header|uri|table|sql|js|xml|html|optimized-html]]{код} | !^untaint[[as-is|file-spec|http-header|mail-header|uri|table|sql|js|xml|html|optimized-html]]{код} |
| default as-is | default as-is |
| !^taint[[lang]][код] | !^taint[[lang]][код] |
| default "just tainted, language unknown" | default "just tainted, language unknown" |
| !^process[[$caller.CLASS|$object|$КЛАСС:CLASS]]{строка, которая будет process-ed, как код}[во что переименовать @main] | !^process[[$caller.CLASS|$object|$КЛАСС:CLASS]]{строка, которая будет process-ed, как код}[ |
| $.main[во что переименовать @main] | |
| $.file[имя файла из которого, якобы, данный текст] | |
| $.lineno(номер строки в файле, откуда данный текст. можно отрицательный) | |
| ] | |
| !^process..[путь][во что переименовать @main] | !^process..[путь][во что переименовать @main] |
| по умолчанию, методы компилируются в $self [в случае оператора, $self=$MAIN:CLASS] | по умолчанию, методы компилируются в $self [в случае оператора, $self=$MAIN:CLASS] |
| !^connect[protocol://строка соединения]]{код с ^sql[...]-ями} | !^connect[protocol://строка соединения]]{код с ^sql[...]-ями} |
| Line 100 Xне сделано, видимо, не будет сделано | Line 104 Xне сделано, видимо, не будет сделано |
| charset=cp1251_koi8& | charset=cp1251_koi8& |
| timeout=3& | timeout=3& |
| compress=1& | compress=1& |
| named_pipe=1 | named_pipe=1& |
| autocommit=1 | |
| autocommit если выставить в 0, будет делать commit/rollback | |
| !pgsql://user:pass@{host[:port]|[local]}/database? | !pgsql://user:pass@{host[:port]|[local]}/database? |
| client_encoding=win,[to-find-out]& | client_encoding=win,[to-find-out]& |
| Line 117 Xне сделано, видимо, не будет сделано | Line 123 Xне сделано, видимо, не будет сделано |
| NLS_ISO_CURRENCY ISO currency symbol | NLS_ISO_CURRENCY ISO currency symbol |
| NLS_SORT sort sequence | NLS_SORT sort sequence |
| ORA_ENCRYPT_LOGIN=TRUE | ORA_ENCRYPT_LOGIN=TRUE |
| ClientCharset=parser-charset << charset in which parser thinks client works | |
| !odbc://DSN=dsn^;UID=user^;PWD=password | !odbc://DSN=dsn^;UID=user^;PWD=password |
| Line 149 odbc c:\drives\y\parser3project\odbc\ | Line 156 odbc c:\drives\y\parser3project\odbc\ |
| ставить такой префикс перед открывающим апострофом, впритык, везде без проблелов | ставить такой префикс перед открывающим апострофом, впритык, везде без проблелов |
| /**имя_поля**/'literal' | /**имя_поля**/'literal' |
| !^rem{} | !^rem{} |
| !^cache[файл](секунд){код} | !^cache[файл](секунд){код}[{catch код}] |
| !относительное задание времени | !относительное задание времени |
| !скэшировать строку, которая получается при выполнении кода на 'секунд' секунд | !скэшировать строку, которая получается при выполнении кода на 'секунд' секунд |
| !если 0секунд, значит не кэшировать, а старый такой стереть | !если 0секунд, значит не кэшировать, а старый такой стереть |
| !в catch коде $exception.handled[cache] ^rem{флаг, что exception обработан} | |
| !^cache[файл][expires date]{код} | !^cache[файл][expires date]{код} |
| !абсолютное задание времени | !абсолютное задание времени |
| X^cache[файл] удалить файл [не ругает, если его нет] // такое было, больше не будет, делать ^cache(0) | X^cache[файл] удалить файл [не ругает, если его нет] // такое было, больше не будет, делать ^cache(0) |
| Line 297 odbc c:\drives\y\parser3project\odbc\ | Line 305 odbc c:\drives\y\parser3project\odbc\ |
| !^строка.normalize[] выдает другую строку, в которой фрагменты на одном языке объединены | !^строка.normalize[] выдает другую строку, в которой фрагменты на одном языке объединены |
| полезно делать перед сложными match операциями, если вы знаете, что входная строка | полезно делать перед сложными match операциями, если вы знаете, что входная строка |
| состоит из большого числа фрагментов | состоит из большого числа фрагментов |
| ^string.trim[start|both|end[;chars]] выкидывает charset из начала/конца/и начала и конца | |
| default 'chars' -- whitespace chars | |
| !table | !table |
| в выражении | в выражении |
| Line 378 odbc c:\drives\y\parser3project\odbc\ | Line 388 odbc c:\drives\y\parser3project\odbc\ |
| !.ключ[значение] положить значение | !.ключ[значение] положить значение |
| !.ключ[$.value[значение] $.expires ЗНАЧЕНИЕ} | !.ключ[$.value[значение] $.expires ЗНАЧЕНИЕ} |
| положить значение до expires | положить значение до expires |
| значение поля expires может быть date, или число дней(0дней=не вечно) | значение поля expires может быть date, или число дней(0дней=на вечно) |
| !.ключ достать | !.ключ достать |
| !^delete[ключ] удалить ключ | !^delete[ключ] удалить ключ |
| !^delete[] удалить файлы, содержащие данные | !^delete[] удалить файлы, содержащие данные |
| Line 388 odbc c:\drives\y\parser3project\odbc\ | Line 398 odbc c:\drives\y\parser3project\odbc\ |
| !^foreach[key|value]{тело}[[разделитель]|{разделитель который выполняется перед непустым очередным не первым телом}] | !^foreach[key|value]{тело}[[разделитель]|{разделитель который выполняется перед непустым очередным не первым телом}] |
| пример: | пример: |
| $uids[^hashfile::assign[/db/uids]] | $uids[^hashfile::open[/db/uids]] |
| $random[23847387taduigh345XGHWElxjgdjg] | $random[23847387taduigh345XGHWElxjgdjg] |
| $uids.$random[$.value[$uid] $.expires(60*30)] | $uids.$random[$.value[$uid] $.expires(1)] |
| $uid[$persistent.logins.$random] | $uid[$persistent.logins.$random] |
| !form | !form |
| Line 712 odbc c:\drives\y\parser3project\odbc\ | Line 722 odbc c:\drives\y\parser3project\odbc\ |
| !^date.sql-string[] %Y-%m-%d %H:%M:%S | !^date.sql-string[] %Y-%m-%d %H:%M:%S |
| where published='$дата.sql-string[]' | where published='$дата.sql-string[]' |
| !^date:calendar[rus|eng;год;месяц] выдаёт неименованную таблицу | !^date:calendar[rus|eng;год;месяц] выдаёт неименованную таблицу |
| столбцы: 0..6, week, weekyear | столбцы: 0..6, week, year |
| !^date:calendar[rus|eng;год;месяц;день] выдаёт именнованную таблицу | !^date:calendar[rus|eng;год;месяц;день] выдаёт именнованную таблицу |
| столбцы: year, month, day, weekday | столбцы: year, month, day, weekday |
| Line 775 xdoc(xnode) | Line 785 xdoc(xnode) |
| выдаёт media-type при подстановке $response:body[сюда] | выдаёт media-type при подстановке $response:body[сюда] |
| !если на документ ссылаются так: | |
| parser://method/param/to/that/method | |
| то в качестве документа используется ^MAIN:method[/param/to/that/method] | |
| [примечание: в параметр всегда приходит лидирующая /, даже, если параметров вообще не было] | |
| !xnode | !xnode |
| DOM1 attributes: | DOM1 attributes: |
| !$node.nodeName | !$node.nodeName |
| !$node.nodeValue | !$node.nodeValue |
| !read | |
| !write | |
| !$node.nodeType = int | !$node.nodeType = int |
| ELEMENT_NODE = 1 | ELEMENT_NODE = 1 |
| ATTRIBUTE_NODE = 2 | ATTRIBUTE_NODE = 2 |
| Line 917 xdoc(xnode) | Line 934 xdoc(xnode) |
| file time | file time |
| file time | file time |
| file time | file time |
| !$status:charset hash | |
| !cache table | |
| file | |
| file | |
| file | |
| !$status:rusage hash | !$status:rusage hash |
| !utime user time used | !utime user time used |
| Line 948 xdoc(xnode) | Line 960 xdoc(xnode) |
| Return the total number of bytes [EVER(c)PAF] allocated in this process. | Return the total number of bytes [EVER(c)PAF] allocated in this process. |
| Never decreases. | Never decreases. |
| !$status:pid process id | |
| !$status:tid thread id | |
| console | |
| $console:timeout | |
| !$console:line | |
| read/write строку | |
| !DATA::=string | file | !DATA::=string | file |