|
version 1.129, 2003/11/06 10:09:33
|
version 1.154, 2004/02/27 15:24:03
|
|
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 372 odbc c:\drives\y\parser3project\odbc\
|
Line 382 odbc c:\drives\y\parser3project\odbc\
|
| !^foreach[key;value]{тело}[[разделитель]|{разделитель который выполняется перед непустым очередным не первым телом}] |
!^foreach[key;value]{тело}[[разделитель]|{разделитель который выполняется перед непустым очередным не первым телом}] |
| !^delete[ключ] удалить ключ |
!^delete[ключ] удалить ключ |
| |
|
| |
!hashfile |
| |
!^hashfile::open[filename] |
| |
!^hashfile.clear[] забыть всё |
| |
!.ключ[значение] положить значение |
| |
!.ключ[$.value[значение] $.expires ЗНАЧЕНИЕ} |
| |
положить значение до expires |
| |
значение поля expires может быть date, или число дней(0дней=на вечно) |
| |
!.ключ достать |
| |
!^delete[ключ] удалить ключ |
| |
!^delete[] удалить файлы, содержащие данные |
| |
!^hash[] |
| |
преобразовать в обычный hash |
| |
попутно стирает устаревшие пары |
| |
!^foreach[key|value]{тело}[[разделитель]|{разделитель который выполняется перед непустым очередным не первым телом}] |
| |
|
| |
пример: |
| |
$uids[^hashfile::open[/db/uids]] |
| |
|
| |
$random[23847387taduigh345XGHWElxjgdjg] |
| |
$uids.$random[$.value[$uid] $.expires(1)] |
| |
$uid[$persistent.logins.$random] |
| |
|
| !form |
!form |
| [берётся первый элемент из одноимённых из GET, потом первый из POST] |
[берётся первый элемент из одноимённых из GET, потом первый из POST] |
| !$form:поле = string/file |
!$form:поле = string/file |
|
Line 430 odbc c:\drives\y\parser3project\odbc\
|
Line 462 odbc c:\drives\y\parser3project\odbc\
|
| ПРЕДУПРЕЖДЕНИЕ: класс form получает свои поля после обработки всех auto класса MAIN |
ПРЕДУПРЕЖДЕНИЕ: класс form получает свои поля после обработки всех auto класса MAIN |
| поэтому необходимо задать $request/response:charset в одном из них. не после. |
поэтому необходимо задать $request/response:charset в одном из них. не после. |
| |
|
| hashfile |
|
| !^hashfile::open[filename] |
|
| ^hashfile.clear[] забыть всё |
|
| !.ключ[значение] положить значение |
|
| .ключ[$.value[значение] $.expires(секунд)} положить значение на expires секунд |
|
| !.ключ достать |
|
| !^delete[ключ] удалить ключ |
|
| ^hash[] |
|
| преобразовать в обычный hash |
|
| ^foreach[key|value]{тело}[[разделитель]|{разделитель который выполняется перед непустым очередным не первым телом}] |
|
| |
|
| пример: |
|
| $uids[^hashfile::assign[/db/uids]] |
|
| |
|
| $random[23847387taduigh345XGHWElxjgdjg] |
|
| $uids.$random[$.value[$uid] $.expires(60*30)] |
|
| $uid[$persistent.logins.$random] |
|
| |
|
| !mail |
!mail |
| !$mail.received=MESSAGE: |
!$mail.received=MESSAGE: |
| .from |
.from |
|
Line 708 hashfile
|
Line 722 hashfile
|
| !^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 771 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 913 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 944 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 |
| |
|