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