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