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

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

E-mail: