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

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

E-mail: