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

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

E-mail: