Annotation of parser3/www/htdocs/index.html, revision 1.1
1.1 ! paf 1: @auto[]
! 2: $request:charset[windows-1251]
! 3: $response:charset[windows-1251]
! 4: $response:content-type[$.value[text/html]$.charset[$response:charset]]
! 5:
! 6: @main[]
! 7: ^xoutputrusattr[]
! 8: #^xdocset1[]
! 9: #^regexp3[]
! 10: #^exec2[]
! 11: #^tlock[]
! 12: #^xmloutattrwithoutvalue[]
! 13: #^precisionProblem[]
! 14: #^xpath[]
! 15: #^ttablesetlang[]
! 16: #^mail3[]
! 17: #^ttime[]
! 18: #^tupper[]
! 19: #^treplace[]
! 20: #^xslt2[]
! 21: #^tcache2[]
! 22: #$ORIGINS(1)
! 23: #$t[^table::set{a b} ^table::set{c d}]
! 24: #^ttaintuntaint[]
! 25: #^tappend2[]
! 26: #^badvsnprintf[]
! 27: #^badoracequoting[]
! 28: #^badconstructors[]
! 29: #^xloadwrongtable[]
! 30: #^xsetwrongtable[]
! 31: #^if($form:test){y}{n}
! 32: #^tablecolumnerror[]
! 33: #^roll[]
! 34: #^cookie2[]
! 35: #^tableset[]
! 36: #^math:PI.format{%.30f}
! 37: #^xchildren[]
! 38: #^thashforeach3[]
! 39: #^thashforeach2[]
! 40: #^thashforeach[]
! 41: #^thashdelete[]
! 42: #^connect[mysql://user:pass@cd.rinet.ru/db]{^void:sql{z} }
! 43: #^tappend[]
! 44: #^sappend[]
! 45: #^eval(10\3)<br>
! 46: #^tform[]
! 47: #^formattest[]
! 48: #^filelist[]
! 49: #^connect[mysql://user:pass@host]{ }
! 50: #^безнадёжна_попытка_поправить_непоправимое[]
! 51: #^tcache[]
! 52: #^thashfileexp[]
! 53: #^tcounter[]
! 54: #^tablehash[]
! 55: #j^hashfile[]
! 56: #^formclass[]
! 57: #^hren[]
! 58: #^domedit[]
! 59: #^domxslt[]
! 60: #^lsplit2[]
! 61: #^faceesize[]
! 62: #^imageresize[]
! 63: #^ifassignhash[]
! 64: #^tintdefault[]
! 65: #$response:status[404]
! 66: #^ifpasshash[]
! 67: #^movedir[]
! 68: #^replace[]
! 69: #^set[]
! 70: #^hash[]<hr>
! 71: #$t[^methresult[]] ->$t
! 72: #^terror[]
! 73: #^ssave[]
! 74: #^calendar[]
! 75: #^thash[]
! 76: #^tdef[]
! 77: #^ford[]
! 78: #^tif[]
! 79: #^image[]
! 80: #^mail2[]
! 81: #^cookie[]
! 82: #^response[]
! 83: #^regexp2[]
! 84: #^ttablerem[]
! 85: #^pcre[]
! 86: #^regexp[]<hr>
! 87: #^mail[]
! 88: #^exec[]
! 89: #^fori[]
! 90: #^tconnect[]
! 91: #^xslt[]
! 92: #^xml[]
! 93: #^header[]
! 94: <hr>
! 95: OK
! 96:
! 97: @xoutputrusattr[]
! 98: $d[^xdoc::set{<?xml version="1.0" encoding="windows-1251"?><d attr="привет"/>}]
! 99: ^show_xdoc2[$d]
! 100:
! 101: @xdocset1[]
! 102: $d[^xdoc::set{<?xml version="1.0"?><d>=^taint[&]=</d>}]
! 103: ^show_xdoc2[$d]
! 104:
! 105: @regexp3[]
! 106: $s[abcАБВ]
! 107: ^if(^s.match[][i]){y}{n}
! 108:
! 109:
! 110: @exec2[]
! 111: $a[^file::exec[bin/t.cmd]]
! 112: <pre>^taint[$a.text]</pre>|$a.status|$a.stderr<hr>
! 113:
! 114:
! 115: @tlock[]
! 116: ^file:lock[lockfile]{
! 117: code
! 118: }
! 119:
! 120: @xmloutattrwithoutvalue[]
! 121: #$ORIGINS(1)
! 122: $doc[^xdoc::set{<?xml version="1.0"?><doc background="">zz</doc>}]
! 123: $doc[^doc.transform[global.xsl]]
! 124: =^taint[html][^doc.string[$.method[html]]]=
! 125:
! 126:
! 127:
! 128: @precisionProblem[]
! 129: $a[123456789012345678901234567890]
! 130: $b(^a.double[])
! 131: ^b.format{%.20E}
! 132: <hr>
! 133: ^eval(2*2)
! 134:
! 135: @xpath[]
! 136: $xdoc[^xdoc::set{<?xml version="1.0" encoding="windows-1251" ?>
! 137: <document><block><p>привет</p></block></document>
! 138: }]
! 139: #^show_xdoc2[$xdoc]
! 140: $node[^xdoc.selectSingle[/document/block/p]]
! 141: ^if(def $node){
! 142: ^if($node is string){
! 143: $node
! 144: }{
! 145: ^if($node is hash){
! 146: ^node._count[]
! 147: }{
! 148: $node.nodeType
! 149: }
! 150: }
! 151: #$node.firstChild.nodeValue
! 152: }{
! 153: node not found
! 154: }
! 155:
! 156:
! 157: @ttablesetlang[]
! 158: $a-tab-b[a b
! 159: 1 2]
! 160:
! 161: $t[^table::set{$a-tab-b}]
! 162: =$t.a=
! 163: <hr>
! 164:
! 165: $t[^table::set[nameless]{^taint[$a-tab-b]}]
! 166: =$t.0=
! 167: <hr>
! 168:
! 169: $t[^table::set{^untaint{^taint[$a-tab-b]}}]
! 170: =$t.a=
! 171:
! 172: #^t.append{1 2}
! 173:
! 174: @mail3[]
! 175: ^mail:send[
! 176: $.from[Александр Петросян <paf@design.ru>]
! 177: $.to[Александр Петросян <paf@design.ru>]
! 178: $.subject[проверка4]
! 179: $.body[
! 180: $.text[
! 181: $.content-type[$.value[text/plain] $.charset[windows-1251]]
! 182: $.body[проверка]
! 183: ]
! 184: $.attachment[
! 185: $.value[^file::load[text;index.html]]
! 186: $.file-name[привет всем.html]
! 187: ]
! 188: ]
! 189: ]
! 190:
! 191:
! 192: @ttime[]
! 193: $now[^date::now[]]
! 194: $now.hour:$now.minute
! 195:
! 196: @tupper[]
! 197: $t[abcABCабвАБВ]
! 198: $t<br>
! 199: ^t.upper[]
! 200:
! 201: @treplace[]
! 202: $copy-paste-clean[^table::set{a b
! 203: . _
! 204: , _
! 205: + _
! 206: & _
! 207: ? _
! 208: = _}]
! 209:
! 210: $cache_key[^taint[в.а,с+я]&был?тут=недавно.cache]
! 211: # почему-то этот replace роняет апач в 500 ошибку :(
! 212: #^cache_key.replace[$copy-paste-clean]
! 213: $test[abc]
! 214: ^test.save[$cache_key]saved<br>
! 215: $cache[^file:list[.;\.cache^$]]
! 216: ^file:delete[$cache_key]deleted($cache.name)<br>
! 217:
! 218:
! 219:
! 220: @xslt2[]
! 221: $xdoc[^xdoc::set{<?xml version="1.0" encoding="windows-1251" ?>
! 222: <document><block><p>привет</p></block></document>
! 223: }]
! 224: ^show_xdoc2[$xdoc]
! 225: ^show_xdoc2[^xdoc.transform[templates/_document.xslt]]
! 226: <hr>
! 227:
! 228:
! 229: @tcache2[]
! 230: ^cache[$DB_HOME/keyключ](2){
! 231: ^math:random(100)
! 232: }
! 233:
! 234: @ttaintuntaint[]
! 235: <!-- некий панковский заголовок с буковкой C в круглых скобках -->^taint[html][
! 236:
! 237: ]zz
! 238: <hr>
! 239: ^untaint[html]{1^taint[ ]2 3}
! 240:
! 241:
! 242: @tappend2[]
! 243: $t[^table::set{a b}]^t.append{1 2}$t.a
! 244:
! 245: @badvsnprintf[]
! 246: ^connect[zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz]{
! 247: }
! 248:
! 249:
! 250: @badoracequoting[]
! 251: $SQL.connect-string[oracle://webspb:webpwd@mts?NLS_LANG=RUSSIAN_AMERICA.CL8MSWIN1251&NLS_DATE_FORMAT=YYYY-MM-DD HH24:MI:SS]
! 252: ^connect[$SQL.connect-string]{
! 253: ^void:sql{delete from paf}
! 254: ^void:sql{insert into paf values (1, '$form:text')}
! 255: $paf[^table::sql{select * from paf}]
! 256: ^paf.menu{
! 257: $paf.id: ^untaint{$paf.block}<hr>
! 258:
! 259: }
! 260: <hr>
! 261:
! 262:
! 263: ^rem{
! 264: $news[^table::sql{select description from news}[$.limit(3)]]
! 265: ^news.menu{
! 266: ^untaint{$news.description}<hr>
! 267:
! 268: }
! 269: <hr>
! 270: }
! 271:
! 272: $tables[^table::sql{select table_name from user_tables}]
! 273: ^tables.menu{
! 274: $tables.table_name<br>
! 275: }
! 276:
! 277: }
! 278: <hr>
! 279: $env:PATH
! 280:
! 281: @badconstructors[]
! 282: $bred[^string::length[]]
! 283: $bred[^response::clear[]]
! 284: $bred[^int::int[]]
! 285:
! 286:
! 287: @xloadwrongtable[]
! 288: $constr[^xdoc::load[wrongtable.xml]]
! 289: ^show_xdoc2[$constr]
! 290:
! 291: @xsetwrongtable[]
! 292: $constr[^xdoc::set{<?xml version="1.0" encoding="windows-1251z" ?>
! 293: <block-list>^untaint[as-is]{$constructor}</block-list>}]
! 294:
! 295:
! 296: @tablecolumnerror[]
! 297: $t[^table::set{a}]
! 298: $t.$a
! 299:
! 300: @roll[]
! 301: #$date[^date::set(1970;1;2)]
! 302: #^date.roll[month](-1)
! 303: $date[^date::set(2038;1;1)]
! 304: ^date.roll[month](+1)
! 305: $date.year $date.month $date.day
! 306:
! 307: @cookie2[]
! 308: #=$cookie:clientType[$.value[test]]=<br>
! 309: =$cookie:clientType=<br>
! 310:
! 311:
! 312: @tableset[]
! 313: $a[^table::set{a
! 314: 1
! 315: 2}]
! 316: ^eval(100\$a)
! 317:
! 318:
! 319:
! 320: @zzz[]
! 321:
! 322:
! 323: $constructor[
! 324: <block1 name="main_srvr" type="0" label="Основное тело" />
! 325: <block2 name="main_srvr2" type="0" label="Основное тело" />
! 326: ]
! 327:
! 328: $constr[^xdoc::set{<?xml version="1.0" encoding="windows-1251" ?>
! 329: <block-list>^untaint[as-is]{$constructor}</block-list>}]
! 330:
! 331: $children[$constr.documentElement.childNodes]
! 332: ^if($children){
! 333: ^for[i](1;^children._count[]){
! 334: $node[$children.$i]
! 335: $node.nodeName<br>
! 336: }
! 337: }
! 338:
! 339:
! 340: @thashforeach3[]
! 341: $h[
! 342: $.a[1]
! 343: $.b[2]
! 344: ]
! 345: $c[^table::set{a
! 346: ^h.foreach[key;value]{$value
! 347: }}]
! 348: $c.a
! 349:
! 350: @thashforeach2[]
! 351: $h[
! 352: $.a[1]
! 353: $.b[2]
! 354: ]
! 355: $c[
! 356: ^h.foreach[key;value]{
! 357: $.$key[$value]
! 358: }
! 359: ]
! 360: $c.b
! 361:
! 362: @thashforeach[]
! 363: $h[
! 364: $.a[1]
! 365: $.b[2]
! 366: ]
! 367: ^h.foreach[key;value]{
! 368: $key=$value<br>
! 369: }
! 370:
! 371: @thashdelete[]
! 372: $h[$.a[1] $.b[2]]
! 373: was:<br>
! 374: count=^h._count[] <br>
! 375: b='$h.b' <br>
! 376:
! 377: ^h.delete[b]
! 378:
! 379: now:<br>
! 380: count=^h._count[] <br>
! 381: b='$h.b'
! 382:
! 383: @sappend[]
! 384: $test[123]
! 385: ^test.save[test]
! 386: ^test.save[append;test]
! 387:
! 388: @tappend[]
! 389: $test[^table::set{a b
! 390: a1 b1}]
! 391: ^test.save[test]
! 392: $test[^table::set{a b
! 393: a2 b2}]
! 394: ^test.save[append;test]
! 395:
! 396:
! 397: @tform[]
! 398: ^if(def $form:new_file){y}{n}
! 399: <form method="post" enctype="multipart/form-data">
! 400: <input type="file" name="new_file" />
! 401: <input type=submit>
! 402: </input>
! 403:
! 404: @formattest[]
! 405: $size(15.124)
! 406:
! 407: ^size.format{%.2f}
! 408:
! 409: @filelist[]
! 410: $html[^file:list[.;\.html^$]]
! 411: ^html.menu{
! 412: $html.name<br>
! 413: }
! 414: <hr>
! 415:
! 416: @безнадёжна_попытка_поправить_непоправимое[]
! 417: $dom_from_disk[^xdoc::load[input.xml]]
! 418: $dom_created_in_air[^xdoc::create[doc]]
! 419: ^dom_created_in_air.documentElement.appendChild[^dom_from_disk.documentElement.cloneNode(1)]
! 420: ^show_xdoc2[$dom_created_in_air]
! 421:
! 422:
! 423: @tcache[]
! 424: #^hashfile:clear[cache]
! 425: $code[^hashfile::open[$DB_HOME;cache]]
! 426: ^code.cache[key](2){
! 427: ^math:random(100)
! 428: # ^code.delete[]
! 429: }
! 430:
! 431: @thashfileexp[]
! 432: $hf[^hashfile::open[$DB_HOME;hashfile]]
! 433: $hf.paf[$.value[крут] $.expires(3)]
! 434: paf=$hf.paf
! 435: <hr>
! 436: ^hf.foreach[key;value]{
! 437: $key=$value<br>
! 438: }
! 439: <hr>
! 440: $hash[^hf.hash[]]
! 441: =$hash.paf=
! 442: <hr>
! 443:
! 444: @tcounter[]
! 445: ^tcounterone[$DB_HOME]
! 446: other root:
! 447: ^tcounterone[${DB_HOME}2]
! 448: again, first:
! 449: ^tcounterone[$DB_HOME]
! 450:
! 451: @tcounterone[DB_HOME]
! 452: $counter[^hashfile::open[$DB_HOME;counter]]
! 453: #^counter.clear[]
! 454: ^counter.transaction{
! 455: # $counter.value(10)
! 456: $counter.value($counter.value+1)
! 457: # ^counter.delete[value]
! 458: $counter.value
! 459: }
! 460: <hr>
! 461: ^rem{
! 462: $hash[^counter.hash[]]
! 463: =$hash.value=
! 464: <hr>
! 465: }
! 466:
! 467: @tablehash[]
! 468: $productList[^table::set{id name
! 469: 1 носки
! 470: 2 валенки
! 471: 3 ушанка
! 472: }]
! 473:
! 474: #скажем, у первого дилера
! 475: $firstPriceList[^table::set{id price
! 476: 1 0.3
! 477: 3 1000
! 478: }]
! 479:
! 480: $firstPriceHash[^firstPriceList.hash[id]]
! 481:
! 482: ^productList.menu{
! 483: продукт "$productList.name" | цена у first: $firstPriceHash.[$productList.id].price<br>
! 484: }
! 485:
! 486:
! 487: @hashfile[]
! 488: $hf[^hashfile::assign[hashfile]]
! 489: #$hf.paf[крут5]
! 490: paf=$hf.paf
! 491:
! 492: @formclass[]
! 493: ^$form:CLASS.a=$form:CLASS.a
! 494:
! 495: @domdata[]
! 496: ^if(1){
! 497: # $a{^hren[]}
! 498: }
! 499: $a
! 500: $xdoc[^xdoc::create[doc]]
! 501: $doc[$xdoc.documentElement]
! 502: $name[^doc.appendChild[^xdoc.createElement[name]]]
! 503: $text[^name.appendChild[^xdoc.createTextNode[петросян&coz]]]
! 504: ^untaint[as-is]{=$text.nodeValue=}
! 505:
! 506: @domedit[]
! 507: ^domdata[]
! 508: #$paf.nodeName<br>
! 509: #$doc.documentElement.nodeName<br>
! 510:
! 511: ^show_xnode1[$xdoc.documentElement;0;1]
! 512: <hr>
! 513: ^show_xdoc2[$xdoc]
! 514: <hr>
! 515:
! 516: @domxslt[]
! 517: ^domdata[]
! 518: ^show_xdoc2[^xdoc.transform[global.xsl;$.param1[123/]]]
! 519: <hr>
! 520:
! 521: @lsplit2[]
! 522: $path[/optics/]
! 523: $pathTable[^path.lsplit[/]]
! 524: ^pathTable.menu{
! 525: ^if(def $pathTable.piece){
! 526: =$pathTable.piece=
! 527: }
! 528: }
! 529:
! 530:
! 531: @faceesize[]
! 532: $k(2)
! 533: $pict[^image::load[paf.gif]]
! 534: $small[^image::create($pict.width/$k;$pict.height/$k)]
! 535: ^small.copy[$pict](0;0;$pict.width;$pict.height;0;0;$small.width;$small.height;250)
! 536: $response:body[^small.gif[]]
! 537:
! 538: @imageresize[]
! 539: $k(2)
! 540: $pict[^image::create(400*$k;200*$k)]
! 541: $pict.line-width(2)
! 542: ^pict.arc($pict.width/2;$pict.height/2;$pict.width-1;$pict.height-1;0;360;0x000000)
! 543: ^pict.arc($pict.width/2;$pict.height/2;$pict.width-20;$pict.height-20;0+20;360-20;0xff0000)
! 544: #^pict.arc($pict.width/2;$pict.height/2;$pict.width;$pict.height;0;360;0xff0000)
! 545: ^pict.circle($pict.width/2;$pict.height/2;$pict.height/2-20;0x0000ff)
! 546: ^pict.arc($pict.width/2;$pict.height/2;$pict.height-26;$pict.height-26;0+20;360-20;0xff0000)
! 547: $response:body[^pict.gif[]]
! 548:
! 549: #$small[^image::create($pict.width/$k;$pict.height/$k)]
! 550: #^small.copy[$pict](0;0;$pict.width;$pict.height;0;0)
! 551: #^small.copy[$pict](0;0;$pict.width;$pict.height;0;0;$small.width;$small.height;0)
! 552:
! 553: #$response:body[^small.gif[]]
! 554:
! 555:
! 556: @tintdefault[]
! 557: #$abc[abc]
! 558: $abc[33]
! 559: ^abc.int[z]
! 560: #^abc.int(123)
! 561:
! 562: @ifassignhash[]
! 563: $h[^if(1){$.a(1);$.a(2)}]
! 564: $h.a
! 565:
! 566: @ifpasshash[]
! 567: $a[$.e[a]]
! 568: $b[$.e[b]]
! 569: ^ifpasshashdest[^if(1){$a;$b}]
! 570: #$x[^if(1){$a}{$b}]
! 571: #^ifpasshashdest[$x]
! 572:
! 573: @ifpasshashdest[p]
! 574: $p.e
! 575:
! 576: @movedir[]
! 577: ^file:move[a;deeper/a]
! 578:
! 579: @replace[]
! 580: $a[12^;3]
! 581: ^a.replace[^table::set{from to
! 582: 2^; !
! 583: }]
! 584:
! 585:
! 586: @set[]
! 587: ^setdata[]
! 588: ^a.add[$b]
! 589: add:$a.3<br>
! 590:
! 591: ^setdata[]
! 592: ^a.sub[$b]
! 593: sub2:$a.2<br>
! 594: sub1:$a.1<br>
! 595:
! 596: ^setdata[]
! 597: $c[^a.union[$b]]
! 598: union3:$c.3<br>
! 599: union2:$c.2<br>
! 600:
! 601: ^setdata[]
! 602: $c[^a.intersection[$b]]
! 603: intersection3:$c.3<br>
! 604: intersection2:$c.2<br>
! 605:
! 606: ^setdata[]
! 607: intersects:^if(^a.intersects[$b]){y;n}<br>
! 608: intersects2:^if(^a.intersects[ ]){y;n}<br>
! 609:
! 610:
! 611: <hr>
! 612:
! 613: @setdata[]
! 614: $a[$.1[a1] $.2[a2]]
! 615: $b[ $.2[b2] $.3[b3]]
! 616:
! 617:
! 618: @hash[]
! 619: $h[^hash::create[$._default[123]]]
! 620: $h.paf[not kretin]
! 621: $h.paf<br>
! 622: =$h.that=<br>
! 623:
! 624: @methresult[]
! 625: $result[^table::set{1}]
! 626:
! 627: @terror[]
! 628: ^error[method z must be called with z]
! 629:
! 630: @syntax1[]
! 631: #^a[^b]
! 632:
! 633: @syntax2[]
! 634: #^a[
! 635:
! 636: @ssave[]
! 637: $abc[abc]
! 638: ^abc.save[abc]
! 639:
! 640: @calendar[]
! 641: 2001;11:<br>
! 642: $week_days[^date:calendar[rus](2001;11)]
! 643: <pre>
! 644: ^week_days.menu{^for[wday](0;7){^if($week_days.$wday){$week_days.$wday; ^; ^;} }<br>}
! 645: </pre>
! 646:
! 647: @thash[]
! 648: $table[^table::set{id name age
! 649: 1 paf 278
! 650: 2 пиф 234
! 651: }]
! 652: $hash[^table.hash[id;^table::set[nameless]{id
! 653: name}]]
! 654: $hash.2.id $hash.2.name $hash.2.age
! 655:
! 656: @tdef[]
! 657: $s[0]
! 658: if 0=^if($s){}{n}<br>
! 659: if def 0=^if(def $s){y}{}<br>
! 660: <hr>
! 661:
! 662: @ford[]
! 663: ^for[i](0;5){$i}{($i)}
! 664:
! 665: @tif[]
! 666: ^if[def]{y;n}
! 667:
! 668: @image[]
! 669: $pict[^image::create(400;200)]
! 670: ^pict.arc($pict.width/2;$pict.height/2;$pict.width-1;$pict.height-1;0;360;0x000000)
! 671: ^pict.arc($pict.width/2;$pict.height/2;$pict.width-10;$pict.height-10;0+10;360-10;0xff0000)
! 672: #^pict.arc($pict.width/2;$pict.height/2;$pict.width;$pict.height;0;360;0xff0000)
! 673: ^pict.circle($pict.width/2;$pict.height/2;$pict.height/2-10;0x0000ff)
! 674: ^pict.arc($pict.width/2;$pict.height/2;$pict.height-26;$pict.height-26;0+10;360-10;0xff0000)
! 675: $response:body[^pict.gif[]]
! 676:
! 677:
! 678:
! 679: @mail2[]
! 680: ^mail:send[
! 681: $.content-type[$.value[text/plain] $.charset[windows-1251]]
! 682: $.from[Александр Петросян <paf@design.ru>]
! 683: $.to[Александр Петросян <paf@design.ru>]
! 684: $.subject[проверка]
! 685: $.body[проверка]
! 686: ]
! 687:
! 688: @cookie[]
! 689: $env:HTTP_COOKIE<br>
! 690:
! 691: #$cookie:переменная[test тест ТЕСТ2]
! 692: =$cookie:переменная=<br>
! 693: #$cookie:переменная2[test тест ТЕСТ3]
! 694: =$cookie:переменная2=<br>
! 695: =$cookie:CLASS.переменная2=<br>
! 696:
! 697: @response[]
! 698: #^if($form:reload){
! 699: $response:refresh[$.value[0] $.url[./t.html?uri=$env:SERVER_NAME]]
! 700: #}
! 701:
! 702: @xslt[]
! 703: ^xdata[]
! 704: $transformed[^xdoc.transform[global.xsl;$.param1[123/]]]
! 705: ^show_xdoc2[$transformed]
! 706:
! 707: @regexp2[]
! 708: $s[ select]
! 709: $s[^s.match[^^\s*][]{!}]
! 710: $s
! 711:
! 712: @header[]
! 713: $response:refresh[
! 714: $.value[0]
! 715: $.url[http://design.ru?a=^taint[123]]
! 716: ]
! 717:
! 718: @ttablerem[]
! 719: $table[^table::load[a.cfg]]
! 720: ^table.menu{$table.a}
! 721:
! 722: @tconnect[]
! 723: ^connect[mysql://test:test@paf/test?charset=cp1251_koi8&compress=1&timeout=1&named_pipe=1]{
! 724: $tables[^table::sql{show tables}]
! 725: #$cols[^tables.columns[]]
! 726: #$cols.column
! 727: ^tables.menu{
! 728: $tables.[Tables_in_test]<br>
! 729: }
! 730: }
! 731:
! 732: @pcre[]
! 733: $s[1 2]
! 734: ^s.match[\s;ig]{!}
! 735: #^s.match[\d;ig]{!}
! 736:
! 737:
! 738: @regexp[]
! 739: $s[abcАБВ]
! 740: ^if(^s.match[б][i]){y}{n}
! 741:
! 742: @mail[]
! 743: #$ORIGINS(1)
! 744: ^mail:send[
! 745: $.from[paf@design.ru]
! 746: $.to[paf@design.ru]
! 747: $.body[1
! 748:
! 749: 2
! 750:
! 751:
! 752: 3]
! 753: ]
! 754:
! 755: @exec[]
! 756: $a[^file::exec[fc.exe;;a;b]]
! 757: $a.status|$a.stderr<hr>
! 758:
! 759: @fori[][i]
! 760: ^for[i](1;3){... =$i= ...}
! 761:
! 762: @xdata0[]
! 763: #$response:content-type[$.value[text/html] $.charset[windows-1251]]
! 764: $xdoc[^xdoc::set{<?xml version="1.0" encoding="windows-1251"?>
! 765: <!--DOCTYPE people SYSTEM "D:\Y\parser3project\parser3\src\www\htdocs\people.dtd"-->
! 766: <people>
! 767: <man id="1" имя="word слово">
! 768: <name>P«^;AF B</name>
! 769: </man>
! 770: <man id="2">
! 771: <name>ПИФ^taint[&]</name>
! 772: </man>
! 773: </people>
! 774: }]
! 775:
! 776: @xdata[]
! 777: #$response:content-type[$.value[text/html] $.charset[windows-1251]]
! 778: $xdoc[^xdoc::set{^process{<?xml version="1.0" encoding="windows-1251"?>
! 779: <!--DOCTYPE people SYSTEM "D:\Y\parser3project\parser3\src\www\htdocs\people.dtd"-->
! 780: <people>
! 781: <man id="1" имя="word слово">
! 782: <name>P«^;AF B</name>
! 783: </man>
! 784: <man id="2">
! 785: <name>ПИФ^taint[&]</name>
! 786: </man>
! 787: </people>
! 788: }}]
! 789:
! 790: @xml[]
! 791: ^xdata[]
! 792:
! 793: ^show_xdoc2[$xdoc]<hr>
! 794: #^show_xnode1[$xdoc]<hr>
! 795: $people[^xdoc.select[*/man]]
! 796: #^show1[]
! 797: ^show_xnodes1[$people]<hr>
! 798: #^people.0.owner.hren[]
! 799:
! 800: ^show_xnode1[^xdoc.selectSingle[*/man[2]/name];0;1]<hr>
! 801:
! 802: by id:
! 803: ^show_xnode1[^xdoc.getElementById[1];0;1]
! 804: <hr>
! 805:
! 806: @show1[array]
! 807: ^for[i](0;^array._count[]-1){
! 808: $x[$array.$i]
! 809: $x.firstChild.nodeValue:
! 810: $pattributes[$x.parentNode.attributes]
! 811: ^if(^pattributes._count[]){
! 812: $pattributes.id.name=$pattributes.id.nodeValue
! 813: }
! 814: <br>
! 815: }
! 816:
! 817: @show_xnodes1[array][i]
! 818: ^for[i](0;^array._count[]-1){
! 819: ^show_xnode1[$array.$i;0;1]
! 820: }
! 821:
! 822: @show_xnode1[x;level;single][l]
! 823: ^if(def $x){
! 824: ^for[l](0;$level-1){ ^; ^; ^; ^;}
! 825: ^if($x.nodeType == $xnode:ELEMENT_NODE){
! 826: <^;$x.nodeName
! 827: $pairs[$x.attributes]
! 828: ^if(def $pairs){
! 829: $names[^pairs._keys[]]
! 830: ^names.menu{ $names.key="$pairs.[$names.key].nodeValue"}
! 831: }
! 832: >^;
! 833: }{
! 834: [$x.nodeType]
! 835: }
! 836:
! 837: ^if(def $x.nodeValue){$x.nodeValue}<br>
! 838: ^show_xnode1[$x.firstChild]($level+1)
! 839: ^if(!$single){
! 840: ^show_xnode1[$x.nextSibling]($level)
! 841: }
! 842:
! 843: ^if($x.nodeType == $xnode:ELEMENT_NODE){
! 844: ^for[l](0;$level-1){ ^; ^; ^; ^;}<^;/$x.nodeName>^;<br>
! 845: }
! 846: }
! 847:
! 848: @show_xdoc2[xdoc]
! 849: ^xdoc.save[out/save.xml;
! 850: # $.encoding[utf-8]
! 851: $.method[xml]
! 852: ]
! 853: $file[^xdoc.file[
! 854: $.encoding[utf-8]
! 855: $.method[html]
! 856: ]]
! 857: ^file.save[text;out/save_file.html]
! 858: #$response:body[^xdoc.file[ $.media-type[text/paf] ]]
! 859: <pre>^taint[html][^xdoc.string[
! 860: $.method[html]
! 861: # $.encoding[utF-8]
! 862: # $.omit-xml-declaration[yes]
! 863: # $.standalone[no]
! 864: # -$.doctype-public[-//W3C//DTD XHTML]
! 865: # -$.doctype-system[/a/b/c/]
! 866: # $.indent[yes]
! 867: # $.media-type[text/paf]
! 868: ]]
! 869: </pre>
E-mail: