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

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

E-mail: