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

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

E-mail: