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

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

E-mail: