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

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

E-mail: