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

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

E-mail: