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

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

E-mail: