Annotation of parser3/www/htdocs/index.html, revision 1.143

1.104     paf         1: @USE
1.105     paf         2: /derived.p
1.15      paf         3: 
1.72      paf         4: @auto[filespec]
                      5: $selffilespec[$filespec]
1.63      paf         6: #$form:here
1.131     paf         7: #$request:charset[UTF-8]
                      8: $request:charset[windows-1251]
                      9: $response:charset[windows-1251]
1.112     paf        10: #$response:charset[UTF-8]
1.131     paf        11: #$response:charset[empty]
1.84      paf        12: #$response:content-type[$.value[text/html]$.charset[$response:charset]]
1.15      paf        13: 
1.60      paf        14: #@postprocess[body]
                     15: #<b>$body</b>
                     16: #$result[123]
1.37      paf        17: 
1.15      paf        18: @main[]
1.72      paf        19: #$a(123)
                     20: #^a.format[%.10u]
1.71      paf        21: #$result[111]
1.70      paf        22: #^f[a]
1.133     paf        23: #^connect[mysql://mdm:4b833ljq@db-mysql/mdm]{
1.88      paf        24: #      ^int:sql{select news_id from news where news_id=-1}[
1.143   ! paf        25: #      $.default{2}
1.88      paf        26: #      ]<br>
1.115     paf        27: #    ^hash::sql{bad}
1.88      paf        28: #    ^string:sql{select news_id from news where news_id=-1}[$.default{2}]
1.109     paf        29: #      ^file::load[text;^string:sql{select 'from sql server' }]
1.95      paf        30: #      ^string:sql{select '^^hello[]' }] $ORIGINS(1)
1.96      paf        31: #      ^process{       ^^h[]}
1.97      paf        32: #      ^process{^string:sql{select '1
                     33: #      ^^hello[]' }]   }
1.131     paf        34: #      ^double:sql{select '2*' ^; }
1.133     paf        35: #$card_sequence_expect_no(^double:sql{select 20020909131047 #card_sequence_expect_no from card_sequence})
                     36: #^card_sequence_expect_no.format[%15.f]
                     37: #}
1.49      paf        38: #^eval(2)
1.48      paf        39: #^tcrashlocaljunctionsv2[]
1.49      paf        40: #^tcrashlocaljunctions[]
1.50      paf        41: #^tjunctions[]
1.47      paf        42: #^replacetest[]
1.48      paf        43: #^matchoptionpp[]
1.46      paf        44: #^txdocxnodechild[]
1.44      paf        45: #^tclasses[]
1.43      paf        46: #$math:PI
                     47: #^b:method[]
1.42      paf        48: #^main[]
1.41      paf        49: #^errort[]
1.44      paf        50: #^tselectNumber[]
1.39      paf        51: #$result[hello]
1.36      paf        52: #^invaliddate2[]
                     53: #^process2[]
                     54: #^casehashtext[]
1.35      paf        55: #^subjvaltest[]
                     56: #^tableselect0[]
1.34      paf        57: #^memnotest1[]
1.32      paf        58: #^voidparams[]
1.31      paf        59: #^rolls2[]
1.30      paf        60: #^cacheexpireschanging[]
1.29      paf        61: #^cacheexpiresfixed[]
                     62: #^dateoffsets[]
                     63: #^exceptionTypes[]
1.28      paf        64: #^roll2[]
1.27      paf        65: #^rolls[]
1.25      paf        66: #^exceptions1[]
1.22      paf        67: #^locate_by_expr[]
1.18      paf        68: #^method_junction_params{...}
1.17      paf        69: #^verifyCookie[paf]
1.37      paf        70: #^execlangs[]
1.16      paf        71: #$t[^tobjeresult[]]$t.a
                     72: #^xmlprobs[]
1.15      paf        73: #^doubleprobs[]
                     74: #^math:random(-10)
                     75: #^divnamestop[]
                     76: #^arrayclone[]
                     77: #^operator_tricks[]
                     78: #^xoutputrusattr[]
                     79: #^xdocset1[]
                     80: #^regexp3[]
                     81: #^exec2[]
                     82: #^tlock[]
                     83: #^xmloutattrwithoutvalue[]
                     84: #^precisionProblem[]
                     85: #^xpath[]
                     86: #^ttablesetlang[]
                     87: #^ttime[]
                     88: #^tupper[]
                     89: #^treplace[]
                     90: #^xslt2[]
                     91: #^tcache2[]
                     92: #$ORIGINS(1)
                     93: #$t[^table::set{a b} ^table::set{c d}]
                     94: #^ttaintuntaint[]
                     95: #^tappend2[]
                     96: #^badvsnprintf[]
                     97: #^badoracequoting[]
                     98: #^badconstructors[]
                     99: #^xloadwrongtable[]
                    100: #^xsetwrongtable[]
                    101: #^if($form:test){y}{n}
                    102: #^tablecolumnerror[]
                    103: #^roll[]
                    104: #^cookie2[]
                    105: #^tableset[]
                    106: #^math:PI.format{%.30f}
                    107: #^xchildren[]
                    108: #^thashforeach3[]
                    109: #^thashforeach2[]
                    110: #^thashforeach[]
                    111: #^thashdelete[]
                    112: #^connect[mysql://user:pass@cd.rinet.ru/db]{^void:sql{z} }
                    113: #^tappend[]
                    114: #^sappend[]
                    115: #^eval(10\3)<br>
                    116: #^tform[]
                    117: #^formattest[]
                    118: #^filelist[]
                    119: #^connect[mysql://user:pass@host]{ }
                    120: #^безнадёжна_попытка_поправить_непоправимое[]
                    121: #^tcache[]
                    122: #^thashfileexp[]
                    123: #^tcounter[]
                    124: #^tablehash[]
                    125: #j^hashfile[]
                    126: #^formclass[]
                    127: #^hren[]
                    128: #^domedit[]
                    129: #^domxslt[]
                    130: #^lsplit2[]
                    131: #^faceesize[]
                    132: #^imageresize[]
                    133: #^ifassignhash[]
                    134: #^tintdefault[]
                    135: #$response:status[404]
                    136: #^ifpasshash[]
                    137: #^movedir[]
                    138: #^replace[]
                    139: #^set[]
                    140: #^hash[]<hr>
                    141: #$t[^methresult[]] ->$t
                    142: #^terror[]
                    143: #^ssave[]
                    144: #^thash[]
                    145: #^tdef[]
                    146: #^ford[]
                    147: #^tif[]
1.84      paf       148: #^image[]
1.15      paf       149: #^response[]
                    150: #^regexp2[]
                    151: #^ttablerem[]
                    152: #^pcre[]
                    153: #^regexp[]<hr>
                    154: #^mail[]
                    155: #^fori[]
                    156: #^tconnect[]
                    157: #^xslt[]
                    158: #^xml[]
                    159: #^header[]
1.53      paf       160: #^tablehasht[]
1.54      paf       161: #^datecreatestring[]
1.56      paf       162: #^mssqltypes1[]
                    163: #^badthrows[]
1.57      paf       164: #^xmlspace[]
                    165: #^counter[main.counter]
                    166: #^xpath2[]
                    167: #^callindirect[]
                    168: #^junctionprob[]
1.59      paf       169: #^datecreatestring2[]
                    170: #^tstoredproc[]
                    171: #^tstoredproc2[]
                    172: #^forkeys[]
1.60      paf       173: #^pngsize[]
1.61      paf       174: #^checkList[]
1.63      paf       175: #^datetest[]
1.65      paf       176: #^tserge[]
1.69      paf       177: #^envt[]
1.67      paf       178: #^selectt[]
                    179: #^select2[]
                    180: #^selectSingle2[]
                    181: #^selectString2[]
                    182: #^selectNumber2[]
                    183: #^selectBool2[]
                    184: #^xdoccreate[]
                    185: #^xdoccreatetag[]
1.70      paf       186: #^xdocload[]
1.67      paf       187: #^xdocstring[]
                    188: #^xdocsave[]
1.68      paf       189: #^div[]
                    190: #^datecreatestring3[]
1.73      paf       191: #^tfilespec[]
1.77      paf       192: #^tcrypt[]
1.74      paf       193: #^cryptdocsample[]
1.78      paf       194: #^tnormalize[]
1.83      paf       195: #^xmltransformbyxdoc[]
1.81      paf       196: #^sergestrandef[]
1.83      paf       197: #^tstdin[]
                    198: #^tfind[]
1.86      paf       199: #^mimet[]
1.92      paf       200: #^joinlimit[]
1.89      paf       201: #^tableclonelimit[]
1.91      paf       202: #^transparams[]
                    203: #^sendtests[]
1.93      paf       204: #^wwrapperpass[]
1.95      paf       205: #^badpos[]
1.98      paf       206: #^processtest[]
                    207: #^mail3[]
1.99      paf       208: #^mail4[]
1.100     paf       209: #^datesaving[]
1.101     paf       210: #^badconstructor[]
1.103     paf       211: #^calendar[]
1.104     paf       212: #^monthdays(8)
                    213: #^xdoctypetest[]
1.105     paf       214: #^xtabletest[]
1.117     paf       215: #^staticstest[]
1.108     paf       216: #^staticstest2[]
1.115     paf       217: #^rbodytest[]
                    218: #^cookie[]
1.116     paf       219: #^cookieexpirestest[]
1.119     paf       220: #^postest[]
1.120     paf       221: #^voidpostest[]
1.123     paf       222: #^virtualtest[]
1.122     paf       223: #^badcolumntest[]
1.124     paf       224: #^delimiters[]
1.125     paf       225: #^новый-split[]
1.127     paf       226: #^грязные-cookie[]
                    227: #^html-почта[]
                    228: #^badswitchtest[]
1.128     paf       229: #^okswitchtest[]
1.131     paf       230: #^cgit[]
1.132     paf       231: #^ttransformsep[]
1.133     paf       232: #^calltest[]
1.134     paf       233: #^xpath3[]
1.139     paf       234: #^doubleliterals[]
                    235: #^newxor[]
1.135     paf       236: #^mail2[]
1.139     paf       237: #^exec[]
1.140     paf       238: #^passpost[]
                    239: #^menudelim[]
1.141     paf       240: #^fordelim[]
1.143   ! paf       241: #^duplicatetable2hashkey[]
1.142     paf       242: #^duplicatehashsqlkey[]
1.143   ! paf       243: ^longlreplace[]
1.77      paf       244: <hr>
1.74      paf       245: OK
1.143   ! paf       246: 
        !           247: @longlreplace[]
        !           248: $str1[мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла ]
        !           249: $str2[ела]
        !           250: $str[Мама $str1 раму]
        !           251: 
        !           252: ^str.replace[^table::create[nameless]{$str1    $str2}]
1.141     paf       253: 
                    254: @duplicatehashsqlkey[]
                    255: ^connect[mysql://mdm:4b833ljq@db-mysql/mdm]{
                    256:        $t[^table::sql{select * from news}]
                    257:        $c[^t.columns[]]
                    258:        ^c.menu{$c.column}[,]
                    259: 
1.142     paf       260:        $h[^hash::sql{select news_type_id, name from news}[$.distinct(1)]]
1.141     paf       261: }
                    262: 
                    263: @duplicatetable2hashkey[]
                    264: $t[^table::create{a    b
                    265: 1      2
                    266: 1      3
                    267: }]
1.142     paf       268: #^t.hash[a]
                    269: #^t.hash[a;b]
                    270: ^t.hash[a][$.distinct[1]]
1.140     paf       271: 
                    272: @menudelim[]
                    273: $t[^table::create{a
                    274: 1
                    275: 2
                    276: 3
                    277: 4
                    278: 5
                    279: }]
                    280: 
                    281: ^t.menu{^if($t.a<3){}{$t.a}}[,]
                    282: 
                    283: @fordelim[]
                    284: ^for[a](0;6){^if($a<3){}{$a}}[,]
                    285: 
1.135     paf       286: 
1.139     paf       287: @passpost[]
                    288: <form method=post name="test" id="test">
                    289: <textarea name="text" cols=20 rows =6>^taint[html][1
                    290: 2
                    291: 
                    292: 3]</textarea><br>
                    293: <input type=submit>
                    294: </form>
                    295: 
                    296: ^if(def $form:text){
                    297:        $a[^file::cgi[a.pl]]
                    298:        $a.text|$a.status|$a.stderr<hr>
                    299: }
                    300: 
                    301: @exec[]
                    302: #$a[^file::exec[a.cmd]]
                    303: $a[^file::cgi[a.cmd]]
                    304: $a.text|$a.status|$a.stderr<hr>
                    305: 
                    306: 
1.137     paf       307: @newxor[]
1.138     paf       308: ^eval(1!|2 #примечание()zzz
                    309: |0x100)<br>
1.137     paf       310: #^eval(1!||2)<br>
                    311: ^if(1!|1){y}{n}
                    312: 
                    313: #@method[$bad]
1.136     paf       314: 
1.135     paf       315: @doubleliterals[]
                    316: #^eval(1e-10)
                    317: ^eval("1e-20")
1.133     paf       318: 
                    319: @xpath3[]
                    320: $constr[^xdoc::create{<?xml version="1.0" encoding="$request:charset" standalone="no"?> <constructor-data><object object_type_id="1" template_id="1" data_process_id="1" is_published="1">проверка</object> <block-list> <block name="date" type="0" label="Дата" is_hide_pub="1" data_type="1"/> <block name="content" type="0" label="Текст" is_hide_pub="1" data_type=""/> </block-list></constructor-data>}]
                    321: $objectData[^constr.selectSingle[/constructor-data/object]]
                    322: $objectData.nodeType<br>
                    323: $objectData.firstChild.nodeValue
                    324: 
                    325: @calltest[]
                    326: ^calltest2[string]
                    327: 
                    328: @calltest2[s]
                    329: $s
1.131     paf       330: 
                    331: @ttransformsep[]
                    332: $input[^xdoc::load[20020909131046.xml]]
                    333: $output[^input.transform[generated.xsl]]
                    334: ^output.string[]
1.127     paf       335: 
                    336: @okswitchtest[]
                    337: $local[local value]
                    338: ^switch[1]{
                    339:        ^case[1]{1code $local}
                    340: }
                    341: 
                    342: @badswitchtest[]
                    343: ^switch[1]{
                    344:        ^badswitchtestcase[]
                    345: }
                    346: @badswitchtestcase[][local]
                    347: $local[local value]
                    348:        ^case[1]{1code $local}
                    349: 
                    350: @badjunction[]
                    351: ^badj1[]
                    352: ^badj2[]
                    353: 
                    354: @html-почта[]
                    355: $переменная[значение]
                    356: ^mail:send[
                    357:        $.from[paf@mail]
                    358:        $.to[paf@mail]
                    359:        $.subject[htmltest1]
                    360:        $.html{тест$переменная=  !}
                    361: ]
                    362: 
1.124     paf       363:                  
                    364: @грязные-cookie[]
1.126     paf       365: $cookie:a[&]
1.125     paf       366: $cookie:a
1.124     paf       367: 
                    368: @новый-split[]
                    369: $abc[a.b.c]
                    370: #$table[^abc.split[.]]
                    371: #$table[^abc.split[.;l]]
                    372: #$table[^abc.split[.;v]]
                    373: $table[^abc.split[.;lv]]
                    374: ^table.menu{$table.piece}[,]
                    375: <hr>
                    376: #$table[^abc.split[.;h]]
                    377: $table[^abc.split[.;hr]]
                    378: $table.0,$table.1,$table.2<br>
1.123     paf       379: 
                    380: @delimiters[]
                    381: $a#1[1]<br>
                    382: $a#1=<br>
                    383: 
1.121     paf       384: 
                    385: @badcolumntest[]
                    386: $table[^table::load[ext.cfg]]
                    387: $table.b
                    388: 
1.120     paf       389: 
                    390: @virtualtest[]
                    391: $derived[^derived::create[derived create actual param]]
                    392: ^derived.test[]
                    393: 
1.119     paf       394: 
                    395: @voidpostest[]
                    396: $s[]
                    397: ^s.pos[$nothing]
1.118     paf       398: 
                    399: @postest[]
                    400: $s[$nothing]
                    401: ^s.pos[$nothing]
1.113     paf       402: 
1.115     paf       403: @cookieexpirestest[]
                    404: #$cookie:exptest[1]
                    405: #$cookie:exptest[$.value[2] $.expires(+1)]
                    406: $response:xxxx[^date::now(+10)]
                    407: $response:yyy[$.value[^date::now(+20)]]
                    408: $response:yyy[$.value[vvv] $.aaaa[^date::now(+20)]]
                    409: 
1.113     paf       410: @rbodytest[]
                    411: $request:body=
                    412: <form method=post>
                    413: <input type=submit name=paf value=123>
                    414: </form>
1.107     paf       415: 
                    416: @staticstest2[]
                    417: ^$derived:derived_var=$derived:derived_var<br>
                    418: ^$derived:a=$derived:a<br>
1.108     paf       419: $derived:a[changed] ^$derived:a=$derived:a<br>
1.107     paf       420: $derived:derived_var[changed] 
                    421: ^$derived:derived_var=$derived:derived_var<br>
                    422: 
1.105     paf       423: @staticstest[]
                    424: $derived[^derived::create[]]
                    425: ^derived.test[]
1.110     paf       426: <hr>
1.106     paf       427: ^$derived.a=$derived.a<br>
                    428: ^$derived.x=$derived.x<br>
1.110     paf       429: <hr>
                    430: ^if($derived is derived){derived is derived}{error: derived is not derived}<br>
                    431: ^if($derived is table){derived is table}{error:derived is not table}<br>
1.111     paf       432: <hr>
                    433: ^^eval(^$derived)=^eval($derived)<br>
                    434: ^^if(^$derived)=^if($derived){y}{n}<br>
1.106     paf       435: 
1.105     paf       436: 
1.104     paf       437: @xdoctypetest[]
                    438: $xdoc[^xdoc::create[x]]
                    439: ^if($xdoc is xdoc){y}{n}
                    440: 
                    441: @xtabletest[]
                    442: $xtableo[^xtable::create[]]
                    443: ^if($xtableo is table){y}{n}
1.105     paf       444: #^xtableo.columns[]
1.100     paf       445: 
1.103     paf       446: @monthdays[month]
                    447: $from[^date::create(2000;$month;1)]
                    448: $to[^date::create($from)] ^to.roll[month](+1)
                    449: $result($to-$from)
                    450: 
1.100     paf       451: @badconstructor[]
                    452: ^date::now[]
1.99      paf       453: 
                    454: @datesaving[]
                    455: $now[^date::now[]]
                    456: $now.daylightsaving<br>
                    457: $now.yearday<br>
                    458: #
                    459: $date[^date::create(2002;1;3)]
                    460: $date.daylightsaving<br>
                    461: $date.yearday
1.97      paf       462: 
1.98      paf       463: @mail4[]
                    464: ^mail:send[
                    465:        $.from[paf@mail.design.ru]
                    466:        $.to[paf@mail.design.ru]
                    467:        $.subject[^taint[uri][москва]=2]
                    468:        $.text[^taint[uri][москва]=]
                    469:        $.html{<a href=http://there.ru/?city=^taint[uri][Москва]>link</a>}
                    470: ]
1.97      paf       471: @processtest[]
                    472:     $f[^file::load[text;piece.p]]      ^process{$f.text}
                    473:        $ORIGINS(1)
1.93      paf       474: 
                    475: 
                    476: @badpos[]
                    477: $s[123]
1.94      paf       478: ^s.mid(0;2)
1.92      paf       479: 
                    480: @wwrapperpass[]
                    481: $h[^hash::create[]]
                    482: $h.a(1)
                    483: ^my_method[^if(1){$h}]
                    484: работает. так и должно быть?
                    485: 
                    486: @my_method[p]
                    487: ^p._count[]
                    488: 
1.88      paf       489: 
                    490: @tableclonelimit[]
                    491: $source[^table::create{a
                    492: aa
                    493: bb
                    494: cc}]
                    495: ^source.offset(1)
                    496: #$dest[^table::create[$source]]
                    497: $dest[^table::create[$source;$.offset(2)]]
                    498: $dest[^table::create[$source;$.limit(2)]]
                    499: $dest[^table::create[$source;$.offset(1)$.limit(1)]]
                    500: $dest[^table::create[$source;$.offset(1)$.limit(2)]]
                    501: $dest[^table::create[$source;$.offset[cur]$.limit(2)]]
                    502: 
                    503: ^dest.menu{$dest.a}[,]<br>
                    504: 
                    505: @joinlimit[]
                    506: $source[^table::create{a
                    507: aa
                    508: bb
                    509: cc}]
                    510: ^source.offset(2)
                    511: $dest[^table::create{a
                    512: xx
                    513: }]
                    514: #^dest.join[$source]
                    515: #^dest.join[$source;$.offset(2)]
                    516: #^dest.join[$source;$.limit(2)]
                    517: #^dest.join[$source;$.offset(1)$.limit(1)]
                    518: #^dest.join[$source;$.offset(1)$.limit(2)]
1.91      paf       519: #^dest.join[$source;$.offset[cur]$.limit(1)]
                    520: ^dest.join[$source;$.limit(0)]
1.88      paf       521: 
                    522: ^dest.menu{$dest.a}[,]<br>
1.86      paf       523: 
                    524: @cgit[]
                    525: $f[^file::cgi[showenv.cmd]]
                    526: $f.HELLO=<br>
                    527: $f.CONTENT-TYPE=<br>
                    528: $f.content-type=<br>
                    529: 
1.83      paf       530: 
1.84      paf       531: @mimet[]
1.85      paf       532: $f[^file::stat[a.GIF]]
                    533: $f.content-type
1.84      paf       534: 
                    535: 
1.83      paf       536: @tfind[]
                    537: ^file:find[index.html]
                    538: 
                    539: @tstdin[]
                    540: $f[^file::exec[test.pl;$.stdin[проверка stdin потока]]]
                    541: <pre>$f.text</pre>
1.80      paf       542: 
                    543: @sergestrandef[]
                    544: $sQuantity[ ]
                    545: ^sQuantity.int(10)
1.78      paf       546: 
                    547: @xmltransformbyxdoc[]
                    548: $xdoc[^xdoc::set{^process{<?xml version="1.0" encoding="windows-1251"?>
                    549: <!--DOCTYPE people SYSTEM "D:\Y\parser3project\parser3\src\www\htdocs\people.dtd"-->
                    550: <people>
                    551:        <man id="1" имя="word слово">
                    552:                <name>1  2</name>
                    553:        </man>
                    554: </people>
                    555: }}]
                    556: $sheet[^xdoc::create{<?xml version="1.0"?> 
1.79      paf       557: <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
                    558: 
                    559: >
1.78      paf       560: <!--<xsl:output doctype-public ="-//W3C//DTD XHTML" indent="yes"/>-->
                    561: 
1.79      paf       562:        <!--<xsl:import href="http://localhost/html.xsl"/>-->
                    563:        <xsl:import href="html.xsl"/>
                    564: 
1.78      paf       565: <xsl:param name="param1">defparam1</xsl:param>
                    566: <xsl:param name="param2">defparam2</xsl:param>
1.79      paf       567: 
1.78      paf       568: 
                    569:        <xsl:template match="doc">
                    570:                param1=<xsl:value-of select="^$param1"/><br/>
                    571:                param2=<xsl:value-of select="^$param2"/><br/>
                    572: 
                    573:                test return <something background=""/>
                    574:        </xsl:template>
                    575: 
                    576:        <xsl:template name="test">
1.81      paf       577:                test return3
1.78      paf       578:        </xsl:template>
                    579: 
                    580:   <xsl:template match="people">
                    581:      <html>
                    582:      <head>z</head>
                    583:                para1=<xsl:copy-of select="^$param1"/>
                    584:        <xsl:apply-templates/>
                    585:        <hr/>
                    586:        <xsl:call-template name="test"/>
                    587:      </html>   
                    588:   </xsl:template>
                    589: 
                    590:   <xsl:template match="name">
                    591:     <b><xsl:value-of select="."/></b>
                    592:   </xsl:template>
                    593: </xsl:stylesheet>
                    594: }]
                    595: 
                    596: 
                    597: $xdoc[^xdoc.transform[$sheet]]
                    598: $string[^xdoc.string[$.method[html]]]
                    599: ^string.save[a]
                    600: ^untaint[html]{$string}
                    601: 
                    602: 
1.77      paf       603: 
                    604: @tnormalize[]
                    605: #s состоит из 1000 фрагментов
                    606: $s[^for[i](0;999){фрагмент }]
                    607: #это займет много ресурсов
                    608: ^s.match[фраг][g]{перга}
                    609: #это займет меньше ресурсов
                    610: #$normalized[^s.normalize[]]
                    611: #^normalized.match[фраг][g]{перга}
1.74      paf       612: 
                    613: @sendtests[]
1.89      paf       614: ^text[]
1.74      paf       615: #^html[]
                    616: #^text-n-html[]
                    617: #^file[]
                    618: #^text-n-file[]
1.89      paf       619: #^text-n-html-n-file[]
1.74      paf       620: #^backwardcomp[]
                    621: 
                    622: @backwardcomp[]
                    623: ^mail:send[
                    624:        $.from[paf]
                    625:        $.to[paf]
                    626:        $.body[this is text value]
                    627: ]
                    628: 
                    629: @text[]
                    630: ^mail:send[
                    631:        $.from[paf]
1.90      paf       632:        $.to[paf]
1.74      paf       633:        $.text[
                    634:                $.value[this is text value]
                    635:        ]
                    636: ]
                    637: 
                    638: @html[]
                    639: ^mail:send[
                    640:        $.from[paf]
                    641:        $.to[paf]
                    642:        $.html{this is <b>html</b> value ^taint[<] 10}
                    643: ]
                    644: 
                    645: @text-n-html[]
                    646: ^mail:send[
                    647:        $.from[paf]
                    648:        $.to[paf]
                    649:        $.text[
                    650:                $.value[this is text value]
                    651:        ]
                    652:        $.html[
                    653:        $.value{this is <b>html</b> value ^taint[<] 10}
                    654:        ]
                    655: ]
                    656: 
                    657: @file[]
                    658: ^mail:send[
                    659:        $.from[paf]
                    660:        $.to[paf]
                    661:        $.file[^file::load[binary;image.jpg]]
                    662: ]
                    663: 
                    664: @text-n-file[]
                    665: ^mail:send[
                    666:        $.from[paf]
                    667:        $.to[paf]
                    668:        $.text[
                    669:                $.value[this is text value]
                    670:        ]
                    671:        $.file[^file::load[binary;image.jpg]]
                    672: ]
                    673: 
                    674: @text-n-html-n-file[]
                    675: ^mail:send[
                    676:        $.from[paf]
                    677:        $.to[paf]
                    678:        $.text[
                    679:                $.value[this is text value]
                    680:        ]
                    681:        $.html[
                    682:        $.COntent-type[$.value[text/html]$.charset[windows-1251xx]]
                    683:        $.value{this is <b>html</b> value ^taint[<] 10}
                    684:        ]
                    685:        $.file[^file::load[binary;image.jpg]]
                    686: ]
                    687: 
                    688: 
                    689: 
                    690: @md5salt[]
                    691: 1234
                    692: 
                    693: @cryptdocsample[]
                    694: $users[^table::create{name     password
                    695: alice  ***
                    696: bob    ***
                    697: }]
                    698: 
                    699: $htpasswd[^table::create[nameless]{}]
                    700: ^users.menu{
                    701:        ^htpasswd.append{$users.name:^math:crypt[$users.password;^$apr1^$^md5salt[]]}
                    702: }
                    703: 
                    704: ^htpasswd.save[nameless;.htpasswd-parser-test]
                    705: 
1.73      paf       706: 
                    707: @tcrypt[]
1.76      paf       708: #^math:crypt[123;^$apr1^$1234567890abcdef]<br>
                    709: ^math:crypt[123;^$apr1^$]<br>
1.72      paf       710: 
                    711: @tfilespec[]
                    712: src=$selffilespec<br>
                    713: dirname=^file:dirname[$selffilespec]<br>
                    714: basename=^file:basename[$selffilespec]<br>
                    715: justname=^file:justname[$selffilespec]<br>
                    716: justext=^file:justext[$selffilespec]<br>
1.68      paf       717: 
                    718: @datecreatestring3[]
                    719: $new_after[^date::now(-3)]
                    720: $articles[^table::create{id    title   last_update
                    721: 1      привет  2002-07-03}]
                    722: ^articles.menu{
                    723:     $last_update[^date::create[$articles.last_update]]
                    724:     <a href=${articles.id}.html>$articles.title</a>
                    725:     ^if($last_update > $new_after){новая}
                    726:     <br>
                    727: }
1.67      paf       728: 
                    729: @div[]
                    730: $var(5)
                    731: ^var.inc(7)
                    732: ^var.dec(3)
                    733: ^var.div(4)
                    734: ^var.mul(2)
                    735: $var
                    736: 
                    737: 
                    738: @xdocsave[]
                    739: $document[^xdoc::create{<?xml version="1.0" encoding="windows-1251" ?>
                    740: <document>
                    741: строка1<br/>
                    742: строка2<br/>
                    743: </document>}]
                    744: ^document.save[test.xml]
                    745: 
                    746: @xdocstring[]
                    747: $document[^xdoc::create{<?xml version="1.0" encoding="windows-1251" ?>
                    748: <document>
                    749: строка1<br/>
                    750: строка2<br/>
                    751: </document>}]
                    752: ^document.string[
                    753:     $.method[html]
                    754: ]
                    755: 
                    756: 
                    757: @xdocload[]
                    758: $document[^xdoc::load[article.xml]]
                    759: $response:body[^document.file[$.media-type[text/xml]]]
                    760: 
                    761: 
                    762: @xdoccreatetag[]
                    763: $document[^xdoc::create[document]]
                    764: $paraNode[^document.createElement[para]]
                    765: $dummy[^document.documentElement.appendChild[$paraNode]]
                    766: $response:body[^document.file[$.media-type[text/xml]]]
                    767: 
                    768: 
                    769: @xdoccreate[]
                    770: $document[^xdoc::create{<?xml version="1.0" encoding="windows-1251" ?>
                    771: <document>
                    772: текст
                    773: </document>}]
                    774: $response:body[^document.file[$.media-type[text/xml]]]
                    775: 
                    776: @selectBool2[]
                    777: $d[^xdoc::set{<?xml version="1.0" encoding="windows-1251"?>
                    778: <t attr="привет" n="123"/>}]
                    779: ^if(^d.selectBool[/t/@n > 10]){
                    780:     /t/@n больше 10
                    781: }{
                    782:     не больше
                    783: }
                    784: 
                    785: 
                    786: @selectNumber2[]
                    787: $d[^xdoc::set{<?xml version="1.0" encoding="windows-1251"?>
                    788: <t attr="привет" n="123"/>}]
                    789: ^d.selectNumber[number(/t/@n)+1]<br>
                    790: ^d.selectNumber[2*2]<br>
                    791: 
                    792: 
                    793: @selectString2[]
                    794: $d[^xdoc::set{<?xml version="1.0" encoding="windows-1251"?>
                    795: <t attr="привет" n="123"/>}]
                    796: # результат=привет
                    797: ^d.selectString[string(t/@attr)]
                    798: 
                    799: 
                    800: @selectSingle2[]
                    801: $d[^xdoc::set{<?xml version="1.0" encoding="windows-1251"?>
                    802: <t attr="привет" n="123"/>}]
                    803: # результат=один элемент "t"
                    804: $element[^d.selectSingle[t]]
                    805: # результат=2 (количество атрибутов <t>)
                    806: Количество атрибутов: ^element.attributes._count[]<br>
                    807: # результат=не существует (нет <x>)
                    808: ^if(^d.select[x]){
                    809:     x существует
                    810: }{
                    811:     x не существует
                    812: }
                    813: 
                    814: @select2[]
                    815: $d[^xdoc::set{<?xml version="1.0" encoding="windows-1251"?><t attr="привет" n="123"/>}]
                    816: # результат: список из одного элемента "t"
                    817: $list[^d.select[t]]
                    818: # результат: 2 = количество атрибутов <t>
                    819: ^list.0.attributes._count[]<br>
                    820: ^for[i](0;$list-1){
                    821:     $attr[$list.$i]
                    822:     $attr.nodeName = $attr.nodeType<br>
                    823: }
                    824: 
                    825: 
                    826: @selectt[]
                    827: $d[^xdoc::set{<?xml version="1.0" encoding="windows-1251"?><t attr="привет" n="123"/>}]
                    828: $list[^d.select[t]]
                    829: ^list.0.attributes._count[]
1.65      paf       830: 
                    831: @envt[]
1.66      paf       832: $f[^file::exec[showenv.cmd;
                    833:        $.bad[value]
                    834:        $.CGI_good[value]
                    835: ]]
1.65      paf       836: $f.status<br>
                    837: $f.stderr<br>
                    838: <pre>$f.text</pre>
                    839: 
1.63      paf       840: 
                    841: @tserge[]
1.64      paf       842: ^if(" 09 "){y}
1.61      paf       843: 
                    844: @datetest[]
                    845:        $f[^file::stat[some.zip]]
                    846: Размер в байтах: $f.size<br>
                    847: Год создания: $f.cdate.year<br>
                    848: $now[^date::now[]]
                    849: $DAYS_CONSIDERED_NEW(3)
                    850: Статус: ^if($f.mdate >= $now-$DAYS_CONSIDERED_NEW){новый;старый}
                    851: 
1.60      paf       852: 
                    853: @checkList[]
                    854: ...^oneOf[a;a,b,c]...<br>
                    855: #...^oneOf[a;ax,b,c]...<br>
                    856: ...^oneWord[word]...<br>
                    857: #...^oneWord[wo rd]...<br>
                    858: 
                    859: 
                    860: @oneOf[s;list][t] выдаёт строку, если строка она есть в списке(разделенном запятыми)
                    861: $t[^list.lsplit[,]]
                    862: ^if(!^t.locate[piece;$s]){^throw[user;$s;unknown]}
                    863: $result[$s]
                    864: 
                    865: @oneWord[s]
                    866: ^if(^s.match[\W]){^throw[user.data;$s;not word]}{$s}
1.59      paf       867: 
                    868: @pngsize[]
                    869: $i[^image::measure[test.png]]
                    870: ^i.html[]
                    871: 
                    872: 
                    873: @forkeys[]
                    874: $text[^form:fields.foreach[key;val]{$key=$val
                    875: }]
                    876: ^text.save[ttt.txt]
                    877: =$text=
                    878: 
                    879: 
                    880: @tstoredproc2[]
                    881: ^connect[odbc://DSN=nestle^;UID=nestle^;PWD=mbm32]{
                    882:        ^void:sql{exec pafvoid}
                    883: }
                    884: 
                    885: @tstoredproc[]
                    886: ^connect[odbc://DSN=nestle^;UID=nestle^;PWD=mbm32]{
                    887:        $t[^table::sql{exec pafproc}]
                    888: #      $t[^table::sql{{call pafproc}}]
                    889:        $c[^t.columns[]]
                    890:        ^c.menu{$c.column}[<br>]
                    891: }
1.57      paf       892: 
                    893: @datecreatestring2[]
1.58      paf       894: <table border=1>
                    895: ^datecreatestring2show[2000]
                    896: ^datecreatestring2show[2000-02]
1.59      paf       897: ^datecreatestring2show[2000-2-03]
1.58      paf       898: ^datecreatestring2show[2000-02-03 15]
                    899: ^datecreatestring2show[2000-02-03 15:30] 
                    900: ^datecreatestring2show[2000-02-03 15:30:04] 
                    901: ^datecreatestring2show[2000-02-03 15:30:04 hren] 
                    902: ^datecreatestring2show[15:30] 
                    903: ^datecreatestring2show[15:30:05] 
                    904: ^datecreatestring2show[15:30:05 hren] 
                    905: </table>
                    906: 
                    907: @datecreatestring2show[s]
                    908: $date[^date::create[$s]]
                    909: <tr>
                    910: <td>$s</td><td align=right>^date.sql-string[]</td>
                    911: </tr>
                    912: 
1.57      paf       913: 
                    914: @junctionprob[][l]
                    915: $l[123]
                    916: $a{$l}
                    917: ^junctionprobnested[$a]
                    918: @junctionprobnested[p]
                    919: $p
                    920: 
                    921: 
                    922: @callindirecttarget[]
                    923: callindirecttarget called
                    924: @callindirect[]
                    925: $f[$callindirecttarget]
                    926: ^f[]
                    927: 
                    928: @xpath2[]
                    929: $xdoc[^xdoc::create{<?xml version="1.0" encoding="windows-1251"?>
                    930: <doc>
                    931: <field-list>
                    932: <field name="aa"/>
                    933: <field name="bb"/>
                    934: </field-list>
                    935: </doc>
                    936: }]
                    937: 
                    938: #^xdoc.string[]
                    939: 
                    940: $fieldList[^xdoc.selectSingle[/doc/field-list]]
                    941: #^fieldList.childNodes._count[]
                    942: $fields[^fieldList.select[field]]
                    943: #^fields._count[]
                    944: ^fields.foreach[k;node]{
                    945:        $node.nodeName<br>
                    946: }
                    947: @counter[filespec][f;s]
                    948: ^file:lock[$filespec]{
                    949:        $f[^file::load[text;$filespec]]
                    950:        $s[^eval($f.text+1)]
                    951:        ^s.save[$filespec]      
                    952: }
                    953: $s
1.56      paf       954: 
                    955: @xmlspace[]
                    956: $xdoc[^xdoc::set{^process{<?xml version="1.0" encoding="windows-1251"?>
                    957: <!--DOCTYPE people SYSTEM "D:\Y\parser3project\parser3\src\www\htdocs\people.dtd"-->
                    958: <people>
                    959:        <man id="1" имя="word слово">
                    960:                <name>1  2</name>
                    961:        </man>
                    962: </people>
                    963: }}]
                    964: $xdoc[^xdoc.transform[global.xsl]]
                    965: $string[^xdoc.string[$.method[html]]]
                    966: ^string.save[a]
                    967: ^untaint[html]{$string}
                    968: 
                    969: @badthrows[]
                    970: #^throw[a;b;]
                    971: ^throw[a;]
1.54      paf       972: 
                    973: @mssqltypes1[]
                    974: ^connect[odbc://DSN=nestle^;UID=nestle^;PWD=mbm32]{
1.55      paf       975: #    ^string:sql{select { ts '1998-05-02 01:23:56.123' }}
                    976: #    ^string:sql{select CAST({ ts '1998-05-02 01:23:56.123' }AS smalldatetime)}
                    977: #      ^string:sql{select CAST({ts '2002-04-28 00:00:00.000'} AS smalldatetime)}
                    978:        $t[^table::sql{select a from paf}]
                    979:        ^t.count[]
1.54      paf       980: }
1.51      paf       981: 
1.53      paf       982: @datecreatestring[]
1.54      paf       983: $d[^date::create[2002-04-33 01:03:04]]
1.53      paf       984: ^d.sql-string[]
1.52      paf       985: 
                    986: @method[hash]
                    987: $hash.key
                    988: @mainZ[]
                    989: ^method[
                    990:     $.key{code}
                    991: ]
                    992: 
1.51      paf       993: @tablehasht[]
                    994: $t[^table::create{p
                    995: 1
                    996: 3
                    997: 2
                    998: 4}]
                    999: 
                   1000: $h[^t.hash[p]]
                   1001: 
                   1002: =^h._count[]=
                   1003: 
                   1004: 
                   1005: @sqldefaults[]
                   1006: ^connect[mysql://mdm:4b833ljq@db-mysql/mdm]{
                   1007:        ^int:sql{select news_id from news where news_id=-1}[$.default{2}]<br>
                   1008:     ^string:sql{select news_id from news where news_id=-1}[$.default{2}]
                   1009: }
1.60      paf      1010: =======
                   1011: <hr>
                   1012: OK
                   1013: >>>>>>> 1.50
1.48      paf      1014: 
                   1015: @tcrashlocaljunctionsv2[]
                   1016: $a[
                   1017:        $b{  $c[1] }
                   1018: ]
                   1019: $b
                   1020: $c
                   1021: 
                   1022: @tcrashlocaljunctions[]
                   1023: $var[aaa]
                   1024: ^if(1){
                   1025: ^tcrashlocaljunctions1[]
                   1026: }
                   1027: 
                   1028: $j
                   1029: 
1.49      paf      1030: @tcrashlocaljunctions1[][var]
                   1031: $var[varvalue]
1.48      paf      1032:        $j{
                   1033:                $var
                   1034:        }
1.49      paf      1035: $j
1.48      paf      1036: 
                   1037: @tjunctions[][tl]
                   1038: $t[^t::create[]]
                   1039: ^tjunctionsi[]
                   1040: 
                   1041: @tjunctionsi[][tl]
                   1042: $tl[12345]
                   1043: ^t.tjunctionsm[
                   1044:        $.key{
                   1045:                $tl
                   1046:        }
                   1047: ]
1.46      paf      1048: 
1.47      paf      1049: @replacetest[]
                   1050: $b[b]
                   1051: $s[
                   1052: aaaaaaaaaa${b}aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
                   1053: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa${b}aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
                   1054: ]
                   1055: ^s.replace[^table::create{from to
                   1056: ba     !_}]
                   1057: 
                   1058: 
1.46      paf      1059: @matchoptionpp[]
1.47      paf      1060: #$ORIGINS(1)
1.46      paf      1061: $s[
                   1062: aaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
1.47      paf      1063: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
                   1064: aaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
                   1065: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
                   1066: aaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
                   1067: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
                   1068: aaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
                   1069: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
                   1070: aaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
                   1071: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
1.46      paf      1072: ]
                   1073: ^s.match[b;g']{($match.prematch|$match.match|$match.postmatch)}
                   1074: 
1.44      paf      1075: 
                   1076: @txdocxnodechild[]
                   1077: $xdoc[^xdoc::set{<?xml version="1.0" encoding="windows-1251" ?><d/>}]
                   1078: $xdoc.nodeName
                   1079: ^xdoc.selectNumber[2*2]
1.45      paf      1080: $xdoc:ELEMENT_NODE
1.44      paf      1081: 
                   1082: 
                   1083: @tclasses[]
                   1084: $t[^t::create[]]
                   1085: ^t.method[]
                   1086: <hr>
                   1087: ^t.base_method[]
                   1088: 
1.40      paf      1089: 
                   1090: @errort[]
1.42      paf      1091: ^xdoc::create[a]
1.40      paf      1092: #^throw[user;here;this]
                   1093: 
                   1094: @tselectNumber[]
                   1095: $d[^xdoc::set{<?xml version="1.0" encoding="windows-1251"?><d attr="привет" n="123"/>}]
                   1096: ^d.selectString[string(d/@attr)]<br>
                   1097: ^d.selectNumber[2*2]<br>
                   1098: ^d.selectNumber[number(/d/@n)+1]<br>
                   1099: 
1.34      paf      1100: 
1.36      paf      1101: @invaliddate2[]
                   1102: $d[^date::create(1018946575/60/60)] ^d.sql-string[]
                   1103: 
                   1104: @process2[]
                   1105: ^^process{
                   1106:        ^process{
                   1107:                ^$a[^^if(0){^$.k[y]}{^$.k[^^hren[]n]}] ^$a.k
                   1108:        }
                   1109: }
                   1110: 
1.35      paf      1111: @casehashtext[]
                   1112: $tt[1]
                   1113: $tmp[
                   1114:         ^switch[$tt]{
                   1115:                 ^case[1]{
                   1116:                         $.aaa[123]
                   1117:                 }
                   1118:                 ^case[DEFAULT]{
                   1119:                         $.bbb[456]
                   1120:                 }
                   1121:         }
1.36      paf      1122:         shit!
1.35      paf      1123: ]
1.36      paf      1124: #$tmp
1.35      paf      1125: $tmp.aaa
                   1126: 
                   1127: @subjvaltest[]
                   1128: $a12[val]
                   1129: $b[12]
                   1130: $a$b
                   1131: 
1.34      paf      1132: @tableselect0[]
                   1133: $person[^table::create{name    height
                   1134: paf    1.77
                   1135: шохин  2.07
                   1136: moko   1.77
                   1137: }]
                   1138: $nottoohigh[^person.select($person.height<2)]
                   1139: ^nottoohigh.menu{$nottoohigh.name<br>}
1.32      paf      1140: 
                   1141: @transparams[]
                   1142: $idoc[^xdoc::create{<?xml version="1.0" ?><doc/>}]
                   1143: $odoc[^idoc.transform[global.xsl;
                   1144:        $.param1['1']
                   1145:        $.param2['2']
                   1146: ]]
                   1147: <pre>^taint[^odoc.string[$.method[html]]]
                   1148: 
                   1149: @memnotest1[]
                   1150: ^for[i](0;4000){
                   1151: 
                   1152:  $xxxx[$i]
                   1153:  $xxxx
                   1154: 
                   1155: }
                   1156: 
                   1157: @memnotest1notes[]
                   1158: одна итерация цикла:
                   1159: [Mon Apr  8 20:12:02 2002] execution-------------------------|
1.35      paf      1160: '469641+=28 wcodeframe -> 0 !optimize[3]''469669+=49 string от {} -> 0 optimize[3]'
1.32      paf      1161: [Mon Apr  8 20:12:02 2002] 12:STRING__WRITE
                   1162: [Mon Apr  8 20:12:02 2002]  "|| "
                   1163: [Mon Apr  8 20:12:02 2002] 12:WITH_ROOT
                   1164: [Mon Apr  8 20:12:02 2002] 13:VALUE
                   1165: [Mon Apr  8 20:12:02 2002]  "xxxx" string
1.35      paf      1166: [Mon Apr  8 20:12:02 2002] 14:CREATE_EWPOOL'469377+=24 wcodeframe -> 0 !optimize[1]''469401+=49 string -> 41 !optimize[7]'
1.32      paf      1167: [Mon Apr  8 20:12:02 2002] 16:WITH_READ
                   1168: [Mon Apr  8 20:12:02 2002] 17:VALUE
                   1169: [Mon Apr  8 20:12:02 2002]  "i" string
                   1170: [Mon Apr  8 20:12:02 2002] 18:GET_ELEMENT
1.35      paf      1171: [Mon Apr  8 20:12:02 2002] 17:WRITE_VALUE'469452+=40 MAX_NUMBER -> !~2 actual digits''469492+=49 -> 41 !'
                   1172: [Mon Apr  8 20:12:02 2002] 16:REDUCE_EWPOOL'469541+=24 VString -> 0 optimize[5]'
1.32      paf      1173: [Mon Apr  8 20:12:02 2002] 15:CONSTRUCT_VALUE
                   1174: [Mon Apr  8 20:12:02 2002] 12:STRING__WRITE
                   1175: [Mon Apr  8 20:12:02 2002]  "| "
                   1176: [Mon Apr  8 20:12:02 2002] 12:WITH_READ
                   1177: [Mon Apr  8 20:12:02 2002] 13:VALUE
                   1178: [Mon Apr  8 20:12:02 2002]  "xxxx" string
                   1179: [Mon Apr  8 20:12:02 2002] 14:GET_ELEMENT
                   1180: [Mon Apr  8 20:12:02 2002] 13:WRITE_VALUE'469573+=41 string expand nothing for now'
                   1181: [Mon Apr  8 20:12:02 2002] 12:STRING__WRITE
1.35      paf      1182: [Mon Apr  8 20:12:02 2002]  "||"'469617+=24 VString -> 0 !optimize[6]'
1.32      paf      1183: [Mon Apr  8 20:12:02 2002] <-ja returned
                   1184: [Mon Apr  8 20:12:02 2002] ja->
                   1185: 
                   1186: 201/328=0.612804878049 %%optimized
                   1187: 
                   1188: 1.
                   1189: CREATE_*POOL
                   1190:     сделать
                   1191: *POOL_POOLED+CODE
                   1192:     где
                   1193:         wwrapper
                   1194:         и(возможно) wcodeframe
                   1195:         +string
                   1196:         стековая переменная
                   1197: 
                   1198: 2.
                   1199: избавиться от обёртки при возврате результата process [см. тело _for]
                   1200: 
                   1201: 3.
                   1202: сделать callback для process, чтобы вынести invariants из _for & co.
                   1203: 
                   1204: 4.
                   1205:  @todo склеить get_element и write_value (при вставлении? write_value)
                   1206: 
                   1207: 5.
                   1208: reduce_*pool -> вариант получить именно string, без VString обёртки [часто
                   1209: обёртка сразу выбрасывается = не нужна]
                   1210: 
                   1211: 6.
                   1212: process вариант получить именно string, без VString обёртки [часто обёртка
                   1213: сразу выбрасывается = не нужна]
                   1214: 
                   1215: 7.
                   1216: string head, убить 8 байт неправильной link
1.31      paf      1217: 
                   1218: @voidparams[]
                   1219: ^voidparamsm[$form:field]
                   1220: 
                   1221: @voidparamsm[p]
                   1222: ^p.int(123)
1.29      paf      1223: 
1.30      paf      1224: @rolls2[]
                   1225: $now[^date::now[]]
                   1226: $d[^date::create($now.year;$now.month)] ^d.sql-string[]<br>
                   1227: ^for[i](1;12){
                   1228:        ^d.roll[month](-1) ^d.sql-string[]<br>
                   1229: }
                   1230: 
1.29      paf      1231: @cacheexpireschanging[]
                   1232: ^cache[$DB_HOME/keyключ][^date::now(+1)]{ ^rem{1 day}
                   1233:     ^cache[^date::now(+4/24/60/60)]
                   1234: #    ^cache(2)
1.30      paf      1235: #    ^cache(0)
1.29      paf      1236:        ^math:random(100)
                   1237: }
                   1238: 
                   1239: 
                   1240: 
                   1241: @cacheexpiresfixed[]
                   1242: ^cache[$DB_HOME/keyключ][^date::now(+2/24/60/60)]{
                   1243:        ^math:random(100)
                   1244: }
                   1245: 
                   1246: @dateoffsets[]
                   1247: $d[^date::create(^date::now[]+1/24/60)]
                   1248: #$d[^date::now(+1/24/60)]
                   1249: ^d.sql-string[]
                   1250: #$d
1.26      paf      1251: 
1.28      paf      1252: @exceptionTypes[]
                   1253: #    parser.compile       ^test[}                компиляция (непарная скобка, ...)
                   1254: #    parser.runtime       ^if(0).                параметры (больше/меньше, чем нужно, не тех типов, ...)
                   1255: #    number.zerodivision  ^eval(1/0) ^eval(1%0)
                   1256: #    number.format        ^eval(abc*5)
                   1257: #    file.missing         ^file:delete[delme]                       not found
                   1258: #    file.access          ^table::load[.]                       no rights
                   1259: #    image.format         ^image::measure[index.html]                        not gif/jpg
                   1260: #    sql.connect          ^connect[mysql://baduser:pass@host/db]{}                       not found/timeout
                   1261: #    sql.execute          ^connect[mysql://okuser:pass@host/db]{^void:sql{select bad}}                       syntax error
                   1262: #    xml                  ^xdoc::create{<forgot?>}                       any error in xml/xslt libs
                   1263: #    smtp.connect                                not found/timeout
                   1264: #    smtp.execute                                communication error
                   1265: 
1.26      paf      1266: @roll2[]
                   1267: $d[^date::create(2002;4;2;2;2;3)] ^d.sql-string[]<br>
1.27      paf      1268: ^d.roll[day](+365*3+1) ^d.sql-string[]<br>
1.26      paf      1269: 
1.25      paf      1270: 
                   1271: @rolls[]
                   1272: $d[^date::create(2002;4;4)]
                   1273: ^d.sql-string[]<br>
                   1274: ^for[i](1;7){
                   1275: ^d.roll[day](-1)
                   1276: ^d.sql-string[]<br>
                   1277: }
                   1278: <hr>
                   1279: $d[^date::create(2002;3;28)]
                   1280: ^d.sql-string[]<br>
                   1281: ^for[i](1;7){
                   1282: ^d.roll[day](+1)
                   1283: ^d.sql-string[]<br>
                   1284: }
                   1285: <hr>
                   1286: $d[^date::create(2002;12;3)]
                   1287: ^d.sql-string[]<br>
                   1288: ^for[i](1;14){
                   1289: ^d.roll[day](-1)
                   1290: ^d.sql-string[]<br>
                   1291: }
                   1292: <hr>
                   1293: $d[^date::create(2002;10;19)]
                   1294: ^d.sql-string[]<br>
                   1295: ^for[i](1;14){
                   1296: ^d.roll[day](+1)
                   1297: ^d.sql-string[]<br>
                   1298: }
                   1299: 
                   1300: 
                   1301: 
                   1302: 
                   1303: 
1.22      paf      1304: 
                   1305: @exceptions1[]
                   1306: ^try{
                   1307:        aaa
1.24      paf      1308:        ^throw[custom1;paf;is stupid]
1.22      paf      1309: }{
1.24      paf      1310:        ^if($exception.type eq custom1){
1.28      paf      1311: #              $exception.handled(1)
                   1312:        ^throw[$exception]
1.24      paf      1313:                type=$exception.type<br>
                   1314:            source=$exception.source<br>
                   1315:            file=$exception.file<br>
                   1316:            lineno=$exception.lineno<br>
                   1317:        comment=$exception.comment<br>
                   1318:        }
1.22      paf      1319: }
1.21      paf      1320: 
                   1321: @locate_by_expr[]
                   1322: $t[^table::create{a    b
                   1323: 1      nok
                   1324: 2      ok
                   1325: 3      nok
                   1326: }]
                   1327: ^if(^t.locate($t.a==2)){$t.b}{n}
1.17      paf      1328: 
                   1329: @method_junction_params[param]
                   1330: ^if($param is junction){junction}{ne junction}
                   1331: 
                   1332: @verifyCookie[value] 
                   1333: ^if($cookie:dummyvote eq $value){ 
                   1334:        $result(1) 
                   1335: }{ 
                   1336:        $cookie:dummyvote[$value] 
                   1337:        $result(0) 
                   1338: }
1.16      paf      1339: 
                   1340: @execlangs[]
1.20      paf      1341: $f[^file::exec[test.pl]]
1.36      paf      1342: err:$f.stderr<br>
1.16      paf      1343: ^process{$f.text}
                   1344: #$c[^t.columns[]]
                   1345: #^c.menu{
                   1346: #* $c.column<br>
                   1347: #}
1.36      paf      1348: c:$t.c<br>
1.16      paf      1349: 
                   1350: @tobjeresult[]
                   1351: ^table::create{a
                   1352: 12}
1.15      paf      1353: 
                   1354: @xmlprobs[]
                   1355: $xmlDataType[^xdoc::load[program.xml]]
                   1356: #<pre>^taint[^xmlDataType.string[]]
                   1357: $xmlDataTypes[^xmlDataType.select[programs/program[@id=4]/data]]
                   1358: #=^xmlDataTypes._count[]=
                   1359: =^xmlDataTypes.0.getAttribute[type-id]=
                   1360: 
                   1361: @doubleprobs[]
                   1362: $1(^math:radians(180))
                   1363: $2($math:PI)
                   1364: ^if(^1.format[%.10f]==^2.format[%.10f]){y;n}
                   1365: ^if($1==$2){y;n}
                   1366: ^if(^math:radians(180)==$math:PI){y;n}
                   1367: 
                   1368: 
                   1369: @divnamestop[]
                   1370: $a(10)
                   1371: ^eval($a\3)
                   1372: 
                   1373: @arrayclone[]
                   1374: $t[^table::create{a    b
                   1375: 1      11
                   1376: 2      22
                   1377: }]
                   1378: $c[^table::create[$t]]
                   1379: ^c.append{2    33}
                   1380: ^t.count[]
                   1381: ^c.count[]
                   1382: 
                   1383: @operator_tricks[]
                   1384: ^if(1){$a[^t[]]}
                   1385: $a!
                   1386: $a($b)
                   1387: ^if(1){y}{n}
                   1388: $MAIN:a(^t[] eq OK)
                   1389: #$MAIN:a(1)
                   1390: ^if($a){y}{n}
                   1391: #^if(1){y}{n}
                   1392: $form:if
                   1393: $a[$.n[1]]
                   1394: $a.if
                   1395: 
                   1396: @xoutputrusattr[]
                   1397: $d[^xdoc::set{<?xml version="1.0" encoding="windows-1251"?><d attr="привет"/>}]
                   1398: ^show_xdoc2[$d]
                   1399: 
                   1400: @xdocset1[]
                   1401: $d[^xdoc::set{<?xml version="1.0"?><d>=^taint[&]=</d>}]
                   1402: ^show_xdoc2[$d]
                   1403: 
                   1404: @regexp3[]
                   1405: $s[abcАБВ]
                   1406: ^if(^s.match[][i]){y}{n}
                   1407: 
                   1408: 
                   1409: @exec2[]
                   1410: $a[^file::exec[bin/t.cmd]]
                   1411: <pre>^taint[$a.text]</pre>|$a.status|$a.stderr<hr>
                   1412: 
                   1413: 
                   1414: @tlock[]
                   1415: ^file:lock[lockfile]{
                   1416:        code
                   1417: }
                   1418: 
                   1419: @xmloutattrwithoutvalue[]
                   1420: #$ORIGINS(1)
                   1421: $doc[^xdoc::set{<?xml version="1.0"?><doc background="">zz</doc>}]
                   1422: $doc[^doc.transform[global.xsl]]
                   1423: =^taint[html][^doc.string[$.method[html]]]=
                   1424: 
                   1425: 
                   1426: 
                   1427: @precisionProblem[]
                   1428: $a[123456789012345678901234567890]
                   1429: $b(^a.double[])
                   1430: ^b.format{%.20E}
                   1431: <hr>
                   1432: ^eval(2*2)
                   1433: 
                   1434: @xpath[]
                   1435: $xdoc[^xdoc::set{<?xml version="1.0" encoding="windows-1251" ?>
                   1436: <document><block><p>привет</p></block></document>
                   1437: }]
                   1438: #^show_xdoc2[$xdoc]
                   1439: $node[^xdoc.selectSingle[/document/block/p]]
                   1440: ^if(def $node){
                   1441:        ^if($node is string){
                   1442:                $node
                   1443:        }{
                   1444:        ^if($node is hash){
                   1445:                ^node._count[]
                   1446:        }{
                   1447:                $node.nodeType
                   1448:        }
                   1449:        }
                   1450: #$node.firstChild.nodeValue
                   1451: }{
                   1452:        node not found
                   1453: }
                   1454: 
                   1455: 
                   1456: @ttablesetlang[]
                   1457: $a-tab-b[a     b
                   1458: 1      2]
                   1459: 
                   1460: $t[^table::set{$a-tab-b}]
                   1461: =$t.a=
                   1462: <hr>
                   1463: 
                   1464: $t[^table::set[nameless]{^taint[$a-tab-b]}]
                   1465: =$t.0=
                   1466: <hr>
                   1467: 
                   1468: $t[^table::set{^untaint{^taint[$a-tab-b]}}]
                   1469: =$t.a=
                   1470: 
                   1471: #^t.append{1   2}
                   1472: 
                   1473: @mail3[]
                   1474: ^mail:send[
1.98      paf      1475:        $.from[Александр Петросян <paf@mail.design.ru>]
                   1476:        $.to[Александр Петросян <paf@mail.design.ru>]
                   1477:        $.subject[проверка2]
1.15      paf      1478:        $.body[
                   1479:                $.text[
                   1480:                        $.content-type[$.value[text/plain] $.charset[windows-1251]]
1.98      paf      1481:                        $.body[проверка^taint[uri][москва]=]
1.15      paf      1482:                ]
                   1483:                $.attachment[
                   1484:                        $.value[^file::load[text;index.html]]
                   1485:                        $.file-name[привет всем.html]                   
                   1486:                ]
                   1487:        ]
                   1488: ]
                   1489: 
                   1490: 
                   1491: @ttime[]
                   1492: $now[^date::now[]]
                   1493: $now.hour:$now.minute
                   1494: 
                   1495: @tupper[]
                   1496: $t[abcABCабвАБВ]
                   1497: $t<br>
                   1498: ^t.upper[]
                   1499: 
                   1500: @treplace[]
                   1501: $copy-paste-clean[^table::set{a b
                   1502: .      _
                   1503: ,      _
                   1504: +      _
                   1505: &      _
                   1506: ?      _
                   1507: =      _}]
                   1508: 
                   1509: $cache_key[^taint[в.а,с+я]&был?тут=недавно.cache]
                   1510: # почему-то этот replace роняет апач в 500 ошибку :(
                   1511: #^cache_key.replace[$copy-paste-clean]
                   1512: $test[abc]
                   1513: ^test.save[$cache_key]saved<br>
                   1514: $cache[^file:list[.;\.cache^$]]
                   1515: ^file:delete[$cache_key]deleted($cache.name)<br>
                   1516: 
                   1517: 
                   1518: 
                   1519: @xslt2[]
                   1520: $xdoc[^xdoc::set{<?xml version="1.0" encoding="windows-1251" ?>
                   1521: <document><block><p>привет</p></block></document>
                   1522: }]
                   1523: ^show_xdoc2[$xdoc]
                   1524: ^show_xdoc2[^xdoc.transform[templates/_document.xslt]]
                   1525: <hr>
                   1526: 
                   1527: 
                   1528: @tcache2[]
                   1529: ^cache[$DB_HOME/keyключ](2){
                   1530:        ^math:random(100)
                   1531: }
                   1532: 
                   1533: @ttaintuntaint[]
                   1534: <!-- некий панковский заголовок с буковкой C в круглых скобках -->^taint[html][
                   1535: 
                   1536: ]zz
                   1537: <hr>
                   1538: ^untaint[html]{1^taint[  ]2  3}
                   1539: 
                   1540: 
                   1541: @tappend2[]
                   1542: $t[^table::set{a       b}]^t.append{1  2}$t.a
                   1543: 
                   1544: @badvsnprintf[]
                   1545: ^connect[zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz]{
                   1546: }
                   1547: 
                   1548: 
                   1549: @badoracequoting[]
                   1550: $SQL.connect-string[oracle://webspb:webpwd@mts?NLS_LANG=RUSSIAN_AMERICA.CL8MSWIN1251&NLS_DATE_FORMAT=YYYY-MM-DD HH24:MI:SS]
                   1551: ^connect[$SQL.connect-string]{
                   1552: ^void:sql{delete from paf}
                   1553: ^void:sql{insert into paf values (1, '$form:text')}
                   1554: $paf[^table::sql{select * from paf}]
                   1555: ^paf.menu{
                   1556:        $paf.id: ^untaint{$paf.block}<hr>
                   1557: 
                   1558: }
                   1559: <hr>
                   1560: 
                   1561: 
                   1562: ^rem{
                   1563: $news[^table::sql{select description from news}[$.limit(3)]]
                   1564: ^news.menu{
                   1565:        ^untaint{$news.description}<hr>
                   1566: 
                   1567: }
                   1568: <hr>
                   1569: }
                   1570: 
                   1571: $tables[^table::sql{select table_name from user_tables}]
                   1572: ^tables.menu{
                   1573: $tables.table_name<br>
                   1574: }
                   1575: 
                   1576: }
                   1577: <hr>
                   1578: $env:PATH
                   1579: 
                   1580: @badconstructors[]
                   1581: $bred[^string::length[]]
                   1582: $bred[^response::clear[]]
                   1583: $bred[^int::int[]]
                   1584: 
                   1585: 
                   1586: @xloadwrongtable[]
                   1587: $constr[^xdoc::load[wrongtable.xml]]
                   1588: ^show_xdoc2[$constr]
                   1589: 
                   1590: @xsetwrongtable[]
                   1591: $constr[^xdoc::set{<?xml version="1.0" encoding="windows-1251z" ?>
                   1592: <block-list>^untaint[as-is]{$constructor}</block-list>}]
                   1593: 
                   1594: 
                   1595: @tablecolumnerror[]
                   1596: $t[^table::set{a}]
                   1597: $t.$a
                   1598: 
                   1599: @roll[]
                   1600: #$date[^date::set(1970;1;2)]
                   1601: #^date.roll[month](-1)
                   1602: $date[^date::set(2038;1;1)]
                   1603: ^date.roll[month](+1)
                   1604: $date.year  $date.month  $date.day
                   1605: 
                   1606: @cookie2[]
                   1607: #=$cookie:clientType[$.value[test]]=<br>
                   1608: =$cookie:clientType=<br>
                   1609: 
                   1610: 
                   1611: @tableset[]
                   1612: $a[^table::set{a
                   1613: 1
                   1614: 2}]
                   1615: ^eval(100\$a)
                   1616: 
                   1617: 
                   1618: 
                   1619: @zzz[]
                   1620: 
                   1621: 
                   1622: $constructor[
                   1623: <block1 name="main_srvr" type="0" label="Основное тело" />
                   1624: <block2 name="main_srvr2" type="0" label="Основное тело" />
                   1625: ]
                   1626: 
                   1627: $constr[^xdoc::set{<?xml version="1.0" encoding="windows-1251" ?>
                   1628: <block-list>^untaint[as-is]{$constructor}</block-list>}]
                   1629: 
                   1630: $children[$constr.documentElement.childNodes]
                   1631: ^if($children){
                   1632: ^for[i](1;^children._count[]){
                   1633:        $node[$children.$i]
                   1634:        $node.nodeName<br>
                   1635: }
                   1636: }
                   1637:    
                   1638: 
                   1639: @thashforeach3[]
                   1640: $h[
                   1641:        $.a[1] 
                   1642:        $.b[2]
                   1643: ]
                   1644: $c[^table::set{a
                   1645: ^h.foreach[key;value]{$value
                   1646: }}]
                   1647: $c.a
                   1648: 
                   1649: @thashforeach2[]
                   1650: $h[
                   1651:        $.a[1] 
                   1652:        $.b[2]
                   1653: ]
                   1654: $c[
                   1655: ^h.foreach[key;value]{
                   1656:        $.$key[$value]
                   1657: }
                   1658: ]
                   1659: $c.b
                   1660: 
                   1661: @thashforeach[]
                   1662: $h[
                   1663:        $.a[1] 
                   1664:        $.b[2]
                   1665: ]
                   1666: ^h.foreach[key;value]{
                   1667:        $key=$value<br>
                   1668: }
                   1669: 
                   1670: @thashdelete[]
                   1671: $h[$.a[1] $.b[2]]
                   1672: was:<br>
                   1673: count=^h._count[] <br>
                   1674: b='$h.b' <br>
                   1675: 
                   1676: ^h.delete[b] 
                   1677: 
                   1678: now:<br>
                   1679: count=^h._count[] <br>
                   1680: b='$h.b' 
                   1681: 
                   1682: @sappend[]
                   1683: $test[123]
                   1684: ^test.save[test]
                   1685: ^test.save[append;test]
                   1686: 
                   1687: @tappend[]
                   1688: $test[^table::set{a    b
                   1689: a1     b1}]
                   1690: ^test.save[test]
                   1691: $test[^table::set{a    b
                   1692: a2     b2}]
                   1693: ^test.save[append;test]
                   1694: 
                   1695: 
                   1696: @tform[]
                   1697: ^if(def $form:new_file){y}{n}
                   1698: <form method="post" enctype="multipart/form-data">
                   1699: <input type="file" name="new_file" />
                   1700: <input type=submit>
                   1701: </input>
                   1702: 
                   1703: @formattest[]
                   1704: $size(15.124)
                   1705: 
                   1706: ^size.format{%.2f}
                   1707: 
                   1708: @filelist[]
                   1709: $html[^file:list[.;\.html^$]]
                   1710: ^html.menu{
                   1711:        $html.name<br>
                   1712: }
                   1713: <hr>
                   1714: 
                   1715: @безнадёжна_попытка_поправить_непоправимое[]
                   1716: $dom_from_disk[^xdoc::load[input.xml]]
                   1717: $dom_created_in_air[^xdoc::create[doc]]
                   1718: ^dom_created_in_air.documentElement.appendChild[^dom_from_disk.documentElement.cloneNode(1)]
                   1719: ^show_xdoc2[$dom_created_in_air]
                   1720: 
                   1721: 
                   1722: @tcache[]
                   1723: #^hashfile:clear[cache]
                   1724: $code[^hashfile::open[$DB_HOME;cache]]
                   1725: ^code.cache[key](2){
                   1726:        ^math:random(100)
                   1727: #      ^code.delete[]
                   1728: }
                   1729: 
                   1730: @thashfileexp[]
                   1731: $hf[^hashfile::open[$DB_HOME;hashfile]]
                   1732: $hf.paf[$.value[крут] $.expires(3)]
                   1733: paf=$hf.paf
                   1734: <hr>
                   1735: ^hf.foreach[key;value]{
                   1736:        $key=$value<br>
                   1737: }
                   1738: <hr>
                   1739: $hash[^hf.hash[]]
                   1740: =$hash.paf=
                   1741: <hr>
                   1742: 
                   1743: @tcounter[]
                   1744: ^tcounterone[$DB_HOME]
                   1745: other root:
                   1746: ^tcounterone[${DB_HOME}2]
                   1747: again, first:
                   1748: ^tcounterone[$DB_HOME]
                   1749: 
                   1750: @tcounterone[DB_HOME]
                   1751: $counter[^hashfile::open[$DB_HOME;counter]]
                   1752: #^counter.clear[]
                   1753: ^counter.transaction{
                   1754: #      $counter.value(10)
                   1755:        $counter.value($counter.value+1)
                   1756: #      ^counter.delete[value]
                   1757:        $counter.value
                   1758: }
                   1759: <hr>
                   1760: ^rem{
                   1761: $hash[^counter.hash[]]
                   1762: =$hash.value=
                   1763: <hr>
                   1764: }
                   1765: 
                   1766: @tablehash[]
                   1767: $productList[^table::set{id    name
                   1768: 1      носки
                   1769: 2      валенки
                   1770: 3      ушанка
                   1771: }]
                   1772: 
                   1773: #скажем, у первого дилера
                   1774: $firstPriceList[^table::set{id price
                   1775: 1      0.3
                   1776: 3      1000
                   1777: }]
                   1778: 
                   1779: $firstPriceHash[^firstPriceList.hash[id]]
                   1780: 
                   1781: ^productList.menu{
                   1782:     продукт "$productList.name" | цена у first: $firstPriceHash.[$productList.id].price<br>
                   1783: }
                   1784: 
                   1785: 
                   1786: @hashfile[]
                   1787: $hf[^hashfile::assign[hashfile]]
                   1788: #$hf.paf[крут5]
                   1789: paf=$hf.paf
                   1790: 
                   1791: @formclass[]
                   1792: ^$form:CLASS.a=$form:CLASS.a
                   1793: 
                   1794: @domdata[]
                   1795: ^if(1){
                   1796: #      $a{^hren[]}
                   1797: }
                   1798: $a
                   1799: $xdoc[^xdoc::create[doc]]
                   1800: $doc[$xdoc.documentElement]
                   1801: $name[^doc.appendChild[^xdoc.createElement[name]]]
                   1802: $text[^name.appendChild[^xdoc.createTextNode[петросян&coz]]]
                   1803: ^untaint[as-is]{=$text.nodeValue=}
                   1804: 
                   1805: @domedit[]
                   1806: ^domdata[]
                   1807: #$paf.nodeName<br>
                   1808: #$doc.documentElement.nodeName<br>
                   1809: 
                   1810: ^show_xnode1[$xdoc.documentElement;0;1]
                   1811: <hr>
                   1812: ^show_xdoc2[$xdoc]
                   1813: <hr>
                   1814: 
                   1815: @domxslt[]
                   1816: ^domdata[]
                   1817: ^show_xdoc2[^xdoc.transform[global.xsl;$.param1[123/]]]
                   1818: <hr>
                   1819: 
                   1820: @lsplit2[]
                   1821: $path[/optics/]
                   1822: $pathTable[^path.lsplit[/]]
                   1823: ^pathTable.menu{
                   1824:        ^if(def $pathTable.piece){
                   1825:                =$pathTable.piece=
                   1826:        }
                   1827: }
                   1828: 
                   1829: 
                   1830: @faceesize[]
                   1831: $k(2)
                   1832: $pict[^image::load[paf.gif]]
                   1833: $small[^image::create($pict.width/$k;$pict.height/$k)]
                   1834: ^small.copy[$pict](0;0;$pict.width;$pict.height;0;0;$small.width;$small.height;250)
                   1835: $response:body[^small.gif[]]
                   1836: 
                   1837: @imageresize[]
                   1838: $k(2)
                   1839: $pict[^image::create(400*$k;200*$k)]
                   1840: $pict.line-width(2)
                   1841: ^pict.arc($pict.width/2;$pict.height/2;$pict.width-1;$pict.height-1;0;360;0x000000)
                   1842: ^pict.arc($pict.width/2;$pict.height/2;$pict.width-20;$pict.height-20;0+20;360-20;0xff0000)
                   1843: #^pict.arc($pict.width/2;$pict.height/2;$pict.width;$pict.height;0;360;0xff0000)
                   1844: ^pict.circle($pict.width/2;$pict.height/2;$pict.height/2-20;0x0000ff)
                   1845: ^pict.arc($pict.width/2;$pict.height/2;$pict.height-26;$pict.height-26;0+20;360-20;0xff0000)
                   1846: $response:body[^pict.gif[]]
                   1847: 
                   1848: #$small[^image::create($pict.width/$k;$pict.height/$k)]
                   1849: #^small.copy[$pict](0;0;$pict.width;$pict.height;0;0)
                   1850: #^small.copy[$pict](0;0;$pict.width;$pict.height;0;0;$small.width;$small.height;0)
                   1851: 
                   1852: #$response:body[^small.gif[]]
                   1853: 
                   1854: 
                   1855: @tintdefault[]
                   1856: #$abc[abc]
                   1857: $abc[33]
                   1858: ^abc.int[z]
                   1859: #^abc.int(123)
                   1860: 
                   1861: @ifassignhash[]
                   1862: $h[^if(1){$.a(1);$.a(2)}]
                   1863: $h.a
                   1864: 
                   1865: @ifpasshash[]
                   1866: $a[$.e[a]]
                   1867: $b[$.e[b]]
                   1868: ^ifpasshashdest[^if(1){$a;$b}]
                   1869: #$x[^if(1){$a}{$b}]
                   1870: #^ifpasshashdest[$x]
                   1871: 
                   1872: @ifpasshashdest[p]
                   1873: $p.e
                   1874: 
                   1875: @movedir[]
                   1876: ^file:move[a;deeper/a]
                   1877: 
                   1878: @replace[]
                   1879: $a[12^;3]
                   1880: ^a.replace[^table::set{from    to
                   1881: 2^;    !
                   1882: }]
                   1883: 
                   1884: 
                   1885: @set[]
                   1886: ^setdata[]
                   1887: ^a.add[$b]
                   1888: add:$a.3<br>
                   1889: 
                   1890: ^setdata[]
                   1891: ^a.sub[$b]
                   1892: sub2:$a.2<br>
                   1893: sub1:$a.1<br>
                   1894: 
                   1895: ^setdata[]
                   1896: $c[^a.union[$b]]
                   1897: union3:$c.3<br>
                   1898: union2:$c.2<br>
                   1899: 
                   1900: ^setdata[]
                   1901: $c[^a.intersection[$b]]
                   1902: intersection3:$c.3<br>
                   1903: intersection2:$c.2<br>
                   1904: 
                   1905: ^setdata[]
                   1906: intersects:^if(^a.intersects[$b]){y;n}<br>
                   1907: intersects2:^if(^a.intersects[ ]){y;n}<br>
                   1908: 
                   1909: 
                   1910: <hr>
                   1911: 
                   1912: @setdata[]
                   1913: $a[$.1[a1] $.2[a2]]
                   1914: $b[        $.2[b2] $.3[b3]]
                   1915: 
                   1916: 
                   1917: @hash[]
                   1918: $h[^hash::create[$._default[123]]]
                   1919: $h.paf[not kretin]
                   1920: $h.paf<br>
                   1921: =$h.that=<br>
                   1922: 
                   1923: @methresult[]
                   1924: $result[^table::set{1}]
                   1925: 
                   1926: @terror[]
                   1927: ^error[method z must be called with z]
                   1928: 
                   1929: @syntax1[]
                   1930: #^a[^b]
                   1931: 
                   1932: @syntax2[]
                   1933: #^a[
                   1934: 
                   1935: @ssave[]
                   1936: $abc[abc]
                   1937: ^abc.save[abc]
                   1938: 
                   1939: @calendar[]
1.103     paf      1940: $year(2002)
                   1941: $month(12)
1.84      paf      1942: ${year}-${month}:<br>
                   1943: $week_days[^date:calendar[rus]($year;$month)]
1.15      paf      1944: <pre>
1.101     paf      1945: ^week_days.menu{^for[wday](0;6){^if($week_days.$wday){$week_days.$wday;&nbsp^;&nbsp^;} }=$week_days.week,$week_days.year=<br>}
1.15      paf      1946: </pre>
                   1947: 
                   1948: @thash[]
                   1949: $table[^table::set{id  name    age
                   1950: 1      paf     278
                   1951: 2      пиф     234
                   1952: }]
                   1953: $hash[^table.hash[id;^table::set[nameless]{id
                   1954: name}]]
                   1955: $hash.2.id $hash.2.name $hash.2.age
                   1956: 
                   1957: @tdef[]
                   1958: $s[0]
                   1959: if 0=^if($s){}{n}<br>
                   1960: if def 0=^if(def $s){y}{}<br>
                   1961: <hr>
                   1962: 
                   1963: @ford[]
                   1964: ^for[i](0;5){$i}{($i)}
                   1965: 
                   1966: @tif[]
                   1967: ^if[def]{y;n}
                   1968: 
                   1969: @image[]
                   1970: $pict[^image::create(400;200)]
                   1971: ^pict.arc($pict.width/2;$pict.height/2;$pict.width-1;$pict.height-1;0;360;0x000000)
                   1972: ^pict.arc($pict.width/2;$pict.height/2;$pict.width-10;$pict.height-10;0+10;360-10;0xff0000)
                   1973: #^pict.arc($pict.width/2;$pict.height/2;$pict.width;$pict.height;0;360;0xff0000)
                   1974: ^pict.circle($pict.width/2;$pict.height/2;$pict.height/2-10;0x0000ff)
                   1975: ^pict.arc($pict.width/2;$pict.height/2;$pict.height-26;$pict.height-26;0+10;360-10;0xff0000)
                   1976: $response:body[^pict.gif[]]
                   1977: 
                   1978: 
                   1979: 
                   1980: @mail2[]
                   1981: ^mail:send[
1.139     paf      1982:        $.message-id[<6615%1@parser.ru>]
1.15      paf      1983:        $.content-type[$.value[text/plain] $.charset[windows-1251]]
                   1984:        $.from[Александр Петросян <paf@design.ru>]
                   1985:        $.to[Александр Петросян <paf@design.ru>]
1.134     paf      1986:        $.subject[проверка проверка]
                   1987:        $.text[проверка]
1.15      paf      1988: ]
                   1989: 
                   1990: @cookie[]
1.115     paf      1991: #$env:HTTP_COOKIE<br>
1.15      paf      1992: 
                   1993: #$cookie:переменная[test тест ТЕСТ2]
                   1994: =$cookie:переменная=<br>
                   1995: #$cookie:переменная2[test тест ТЕСТ3]
                   1996: =$cookie:переменная2=<br>
                   1997: =$cookie:CLASS.переменная2=<br>
                   1998: 
                   1999: @response[]
                   2000: #^if($form:reload){
                   2001:        $response:refresh[$.value[0] $.url[./t.html?uri=$env:SERVER_NAME]]
                   2002: #}
                   2003: 
                   2004: @xslt[]
                   2005: ^xdata[]
                   2006: $transformed[^xdoc.transform[global.xsl;$.param1[123/]]]
                   2007: ^show_xdoc2[$transformed]
                   2008: 
                   2009: @regexp2[]
                   2010: $s[  select]
                   2011: $s[^s.match[^^\s*][]{!}]
                   2012: $s
                   2013: 
                   2014: @header[]
                   2015: $response:refresh[
                   2016:        $.value[0]
                   2017:        $.url[http://design.ru?a=^taint[123]]
                   2018: ]
                   2019: 
                   2020: @ttablerem[]
                   2021: $table[^table::load[a.cfg]]
                   2022: ^table.menu{$table.a}
                   2023: 
                   2024: @tconnect[]
                   2025: ^connect[mysql://test:test@paf/test?charset=cp1251_koi8&compress=1&timeout=1&named_pipe=1]{
                   2026: $tables[^table::sql{show tables}]
                   2027: #$cols[^tables.columns[]]
                   2028: #$cols.column
                   2029: ^tables.menu{
                   2030:        $tables.[Tables_in_test]<br>
                   2031: }
                   2032: }
                   2033: 
                   2034: @pcre[]
                   2035: $s[1 2]
                   2036: ^s.match[\s;ig]{!}
                   2037: #^s.match[\d;ig]{!}
                   2038: 
                   2039: 
                   2040: @regexp[]
                   2041: $s[abcАБВ]
                   2042: ^if(^s.match[б][i]){y}{n}
                   2043: 
                   2044: @mail[]
                   2045: #$ORIGINS(1)
                   2046: ^mail:send[
                   2047:        $.from[paf@design.ru]
                   2048:        $.to[paf@design.ru]
                   2049:        $.body[1
                   2050:        
                   2051:        2
                   2052:        
                   2053:        
                   2054:                3]
                   2055: ]
                   2056: 
                   2057: @fori[][i]
                   2058: ^for[i](1;3){... =$i= ...}
                   2059: 
                   2060: @xdata0[]
                   2061: #$response:content-type[$.value[text/html] $.charset[windows-1251]]
                   2062: $xdoc[^xdoc::set{<?xml version="1.0" encoding="windows-1251"?>
                   2063: <!--DOCTYPE people SYSTEM "D:\Y\parser3project\parser3\src\www\htdocs\people.dtd"-->
                   2064: <people>
                   2065:        <man id="1" имя="word слово">
                   2066:                <name>P&#171^;AF        B</name>
                   2067:        </man>
                   2068:                <man id="2">
                   2069:                        <name>ПИФ^taint[&]</name>
                   2070:                </man>
                   2071: </people>
                   2072: }]
                   2073: 
                   2074: @xdata[]
                   2075: #$response:content-type[$.value[text/html] $.charset[windows-1251]]
                   2076: $xdoc[^xdoc::set{^process{<?xml version="1.0" encoding="windows-1251"?>
                   2077: <!--DOCTYPE people SYSTEM "D:\Y\parser3project\parser3\src\www\htdocs\people.dtd"-->
                   2078: <people>
                   2079:        <man id="1" имя="word слово">
                   2080:                <name>P&#171^;AF        B</name>
                   2081:        </man>
                   2082:                <man id="2">
                   2083:             <name>ПИФ^taint[&]</name>
                   2084:                </man>
                   2085: </people>
                   2086: }}]
                   2087: 
                   2088: @xml[]
                   2089: ^xdata[]
                   2090: 
                   2091: ^show_xdoc2[$xdoc]<hr>
                   2092: #^show_xnode1[$xdoc]<hr>
                   2093: $people[^xdoc.select[*/man]]
                   2094: #^show1[]
                   2095: ^show_xnodes1[$people]<hr>
                   2096: #^people.0.owner.hren[]
                   2097: 
                   2098: ^show_xnode1[^xdoc.selectSingle[*/man[2]/name];0;1]<hr>
                   2099: 
                   2100: by id:
                   2101: ^show_xnode1[^xdoc.getElementById[1];0;1]
                   2102: <hr>
                   2103: 
                   2104: @show1[array]
                   2105: ^for[i](0;^array._count[]-1){
                   2106:     $x[$array.$i]
                   2107:        $x.firstChild.nodeValue: 
                   2108:                $pattributes[$x.parentNode.attributes]
                   2109:                ^if(^pattributes._count[]){
                   2110:                        $pattributes.id.name=$pattributes.id.nodeValue
                   2111:                }
                   2112:        <br>
                   2113: }
                   2114:        
                   2115: @show_xnodes1[array][i]
                   2116: ^for[i](0;^array._count[]-1){
                   2117:        ^show_xnode1[$array.$i;0;1]
                   2118: }
                   2119: 
                   2120: @show_xnode1[x;level;single][l]
                   2121: ^if(def $x){
                   2122:     ^for[l](0;$level-1){&nbsp^;&nbsp^;&nbsp^;&nbsp^;}
                   2123:     ^if($x.nodeType == $xnode:ELEMENT_NODE){
                   2124:        &lt^;$x.nodeName
                   2125:            $pairs[$x.attributes]
                   2126:            ^if(def $pairs){
                   2127:                $names[^pairs._keys[]]
                   2128:                ^names.menu{ $names.key="$pairs.[$names.key].nodeValue"}
                   2129:            }
                   2130:            &gt^;
                   2131:     }{
                   2132:        [$x.nodeType]
                   2133:     }
                   2134:     
                   2135:     ^if(def $x.nodeValue){$x.nodeValue}<br>
                   2136:     ^show_xnode1[$x.firstChild]($level+1)
                   2137:     ^if(!$single){
                   2138:            ^show_xnode1[$x.nextSibling]($level)
                   2139:     }
                   2140: 
                   2141:     ^if($x.nodeType == $xnode:ELEMENT_NODE){
                   2142:     ^for[l](0;$level-1){&nbsp^;&nbsp^;&nbsp^;&nbsp^;}&lt^;/$x.nodeName&gt^;<br>
                   2143:     }
                   2144: }
                   2145: 
                   2146: @show_xdoc2[xdoc]
                   2147: ^xdoc.save[out/save.xml;
                   2148: #      $.encoding[utf-8]
                   2149:        $.method[xml]
                   2150: ]
                   2151: $file[^xdoc.file[
                   2152:        $.encoding[utf-8]
                   2153:        $.method[html]
                   2154: ]]
                   2155: ^file.save[text;out/save_file.html]
                   2156: #$response:body[^xdoc.file[    $.media-type[text/paf]  ]]
                   2157: <pre>^taint[html][^xdoc.string[
                   2158:        $.method[html]
                   2159: #      $.encoding[utF-8]
                   2160: #      $.omit-xml-declaration[yes]
                   2161: #      $.standalone[no]
                   2162: #      -$.doctype-public[-//W3C//DTD XHTML]
                   2163: #      -$.doctype-system[/a/b/c/]
                   2164: #      $.indent[yes]
                   2165: #      $.media-type[text/paf]
                   2166: ]]
                   2167: </pre>

E-mail: