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

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

E-mail: