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

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

E-mail: