Diff for /parser3/www/htdocs/Attic/index.html between versions 1.69 and 1.188

version 1.69, 2002/06/18 13:16:15 version 1.188, 2002/11/28 12:23:39
Line 1 Line 1
 #@USE  @USE
 #t.p  /derived.p
   /operators.p
   
 @autoZ[]  @auto[filespec]
   $selffilespec[$filespec]
 #$form:here  #$form:here
   #$request:charset[UTF-8]
 $request:charset[windows-1251]  $request:charset[windows-1251]
 $response:charset[windows-1251]  $response:charset[windows-1251]
 $response:content-type[$.value[text/html]$.charset[$response:charset]]  #$response:charset[UTF-8]
   #$response:charset[empty]
   #$response:content-type[$.value[text/html]$.charset[$response:charset]]
   
 #@postprocess[body]  @postprocess[body]
 #<b>$body</b>  #<b>$body</b>
 #$result[123]  #$result[123]
   $body
   <hr>
   OK
   
 @main[]  @main[]
   #$a(123)
   #^a.format[%.10u]
   #$result[111]
   #^f[a]
 #^connect[mysql://mdm:4b833ljq@db-mysql/mdm]{  #^connect[mysql://mdm:4b833ljq@db-mysql/mdm]{
 #       ^int:sql{select news_id from news where news_id=-1}[$.default{2}]<br>  #       ^int:sql{select news_id from news where news_id=-1}[
   #       $.default{2}
   #       ]<br>
   #    ^hash::sql{bad}
 #    ^string:sql{select news_id from news where news_id=-1}[$.default{2}]  #    ^string:sql{select news_id from news where news_id=-1}[$.default{2}]
   #       ^file::load[text;^string:sql{select 'from sql server' }]
   #       ^string:sql{select '^^hello[]' }] $ORIGINS(1)
   #       ^process{       ^^h[]}
   #       ^process{^string:sql{select '1
   #       ^^hello[]' }]   }
   #       ^double:sql{select '2*' ^; }
   #$card_sequence_expect_no(^double:sql{select 20020909131047 #card_sequence_expect_no from card_sequence})
   #^card_sequence_expect_no.format[%15.f]
 #}  #}
 #^eval(2)  #^eval(2)
 #^tcrashlocaljunctionsv2[]  #^tcrashlocaljunctionsv2[]
Line 36  $response:content-type[$.value[text/html Line 59  $response:content-type[$.value[text/html
 #^subjvaltest[]  #^subjvaltest[]
 #^tableselect0[]  #^tableselect0[]
 #^memnotest1[]  #^memnotest1[]
 #^transparams[]  
 #^voidparams[]  #^voidparams[]
 #^rolls2[]  #^rolls2[]
 #^cacheexpireschanging[]  #^cacheexpireschanging[]
Line 66  $response:content-type[$.value[text/html Line 88  $response:content-type[$.value[text/html
 #^precisionProblem[]  #^precisionProblem[]
 #^xpath[]  #^xpath[]
 #^ttablesetlang[]  #^ttablesetlang[]
 #^mail3[]  
 #^ttime[]  #^ttime[]
 #^tupper[]  #^tupper[]
 #^treplace[]  #^treplace[]
Line 84  $response:content-type[$.value[text/html Line 105  $response:content-type[$.value[text/html
 #^if($form:test){y}{n}  #^if($form:test){y}{n}
 #^tablecolumnerror[]  #^tablecolumnerror[]
 #^roll[]  #^roll[]
 #^cookie2[]  
 #^tableset[]  #^tableset[]
 #^math:PI.format{%.30f}  #^math:PI.format{%.30f}
 #^xchildren[]  #^xchildren[]
Line 124  $response:content-type[$.value[text/html Line 144  $response:content-type[$.value[text/html
 #$t[^methresult[]] ->$t  #$t[^methresult[]] ->$t
 #^terror[]  #^terror[]
 #^ssave[]  #^ssave[]
 #^calendar[]  
 #^thash[]  #^thash[]
 #^tdef[]  #^tdef[]
 #^ford[]  #^ford[]
 #^tif[]  #^tif[]
 #^image[]  #^image[]
 #^mail2[]  
 #^cookie[]  
 #^response[]  #^response[]
 #^regexp2[]  #^regexp2[]
 #^ttablerem[]  #^ttablerem[]
 #^pcre[]  #^pcre[]
 #^regexp[]<hr>  #^regexp[]<hr>
 #^mail[]  #^mail[]
 #^exec[]  
 #^fori[]  #^fori[]
 #^tconnect[]  #^tconnect[]
 #^xslt[]  #^xslt[]
 #^xml[]  
 #^header[]  #^header[]
 #^tablehasht[]  #^tablehasht[]
 #^datecreatestring[]  #^datecreatestring[]
Line 170  $response:content-type[$.value[text/html Line 185  $response:content-type[$.value[text/html
 #^selectBool2[]  #^selectBool2[]
 #^xdoccreate[]  #^xdoccreate[]
 #^xdoccreatetag[]  #^xdoccreatetag[]
 ^xdocload[]  #^xdocload[]
 #^xdocstring[]  #^xdocstring[]
 #^xdocsave[]  #^xdocsave[]
 #^div[]  #^div[]
 #^datecreatestring3[]  #^datecreatestring3[]
   #^tfilespec[]
   #^tcrypt[]
   #^cryptdocsample[]
   #^tnormalize[]
   #^xmltransformbyxdoc[]
   #^sergestrandef[]
   #^tstdin[]
   #^tfind[]
   #^mimet[]
   #^joinlimit[]
   #^tableclonelimit[]
   #^transparams[]
   #^sendtests[]
   #^wwrapperpass[]
   #^badpos[]
   #^processtest[]
   #^mail3[]
   #^datesaving[]
   #^badconstructor[]
   #^calendar[]
   #^monthdays(8)
   #^xdoctypetest[]
   #^xtabletest[]
   #^staticstest[]
   #^staticstest2[]
   #^rbodytest[]
   #^cookie[]
   #^cookieexpirestest[]
   #^postest[]
   #^voidpostest[]
   #^badcolumntest[]
   #^delimiters[]
   #^новый-split[]
   #^грязные-cookie[]
   #^html-почта[]
   #^badswitchtest[]
   #^okswitchtest[]
   #^cgit[]
   #^ttransformsep[]
   #^calltest[]
   #^xpath3[]
   #^doubleliterals[]
   #^newxor[]
   #^mail2[]
   #^exec[]
   #^passpost[]
   #^fordelim[]
   #^duplicatetable2hashkey[]
   #^duplicatehashsqlkey[]
   #^longlreplace[]
   #^table2hash_onecolumn[]
   #^crossopvars[]
   #^three[]
   #^badLangAfterCatch[]
   #^zeroinstdin[]
   #^shifts[]
   #^jspace[]
   #^hashselfmodification[]
   #^emptyTransformResult[]
   #^badxdoccreate[]
   #^if(-d "CVS"){y}{n}
   #^badjunctioncall[]
   #^russianindex[]
   #^virtualtest[]
   #^xml[]
   #^mail4[]
   #^voidconstructorpass[]
   #^$form:CLASS.a=$form:CLASS.a<br>
   #^cookie2[]
   #^menudelim[]
   #^touchittest[]
   #^touchittest2[]
   #^opauto[]
   #^trycontextt[]
   #^tfor[]
   #^user-foreach-test[]
   #^includet[]
   #^derived:includet[]
   #^fortestsep[]
   #^derived:inclass_process_test[]
   #$derived[^derived::create[]]^derived.inclass_process_test[]
   #^domorigint[]
   #^junctiontest2[]
   #^junctionselftest[]
   #^bad-compiletosystem[]
   #^steppedfor[i](1;10;2){$i }
   #^file:fullpath[a.gif]<br>
   #^file:fullpath[/abs/a.gif]<br>
   #$form:a/$form:image-map=
   #^foreachform[]
   #^selectSingleoct[]
   #^compilebug[]
   #^badhashcreate[]
   #^badsendmail[]
   #^keygenedhash[]<br>
   #<hr>[$env:HTTP_REFERER]
   #$response:Content-TypE[bad]
   #^emailhead2[]
   #^includet2overridedynamic[]
   #^includet2overridestatic[]
   #^virtualtest2[]
   #^message-id-test[]
   #^test_exif[jpg]
   #^http_prefix[]
   #^http_prefix_table[]
   #^http_prefix_xml[]
   ^imagefont[]
   #^downloadtest[]
   #^cachebug[]
   #^quickregexatend[]
   
   @quickregexatend[]
   #$subject[xxxabcd]
   #^if(^subject.match[^(?>.*)(?<=abcd)]){y;n}
   $subject[^for[i](0;1000){xxxxxyyyyy}   ]
   ^for[j](0;1000){
   #$trimmed[^subject.match[\s+^$][]{}]
   #$table[^subject.match[^(.*\S)\s+^$]]
   $table[^subject.match[^(.*\S)\s+^$]]
   $trimmed[$table.1]
   }
   ^untaint[html]{"$trimmed"}
   #$table[^subject.match[^(.*?)\s+^$]]
   #^untaint[html]{"$table.1"}
   
   
   @cachebug[]
   ^cache[test](10){body}
   
   @downloadtest[]
   $response:body[^file::load[binary;index.html]]
   
   
   @imagefont[]
   $image[^image::create(200;30;0x00FFFF)]
   height(font)=1950<br>
   $alph[ ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя0123456789-+=!\"%:,.^;<>?@()^[^]'&*/]
   ^^alph.length[]=^alph.length[]<br>
   ^eval(1950/^alph.length[])[%.10f]
   
   ^image.font[$alph;font.gif](20)
   $text[AПривет*]
   ^image.text(0;0)[$text]
   $length[^image.length[$text]]
   #^image.rectangle(0;50)(2;2)(0x000000)
   ^image.rectangle(0;0)($length-1;5)(0x000000)
   $response:body[^image.gif[]]
   
   @http_prefix_xml[]
    $xdoc[^xdoc::load[http://www.cbr.ru/scripts/XML_daily.asp?date_req=02/03/2002;
   #       $.method[HEAD]
           $.headers[
                   $.user-agent[1]
           ]
   ]]
   
   <pre>^taint[^xdoc.string[]]</pre>
   
   @http_prefix_table[]
   $table[^table::load[nameless;http://www.artlebedev.ru;$.USER-AGENT[paf]]]
   ^table.count[]
   <hr>
   <pre>$table.0</pre>
   
   @http_prefix[]
   #$file[^file::load[text;http://www.artlebedev.ru]]
   #$file[^file::load[text;http://www.artlebedev.ru;alt]]
   #$file[^file::load[text;http://parser3/exif.html;
   $file[^file::load[text;http://parser3/none;
           $.headers[
                   $.USER-AGENT[paf]
           ]
   ]]
   server: $file.SERVER<br>
   $file.status
   <hr>
   <pre>$file.text</pre>
   
   @test_exif[dir]
   $file[^file:list[$dir;\.(jpe?g|JPE?G)^$]]
   <table border=1>
   ^file.menu{
   <tr valign=top>
           $image[^image::measure[$dir/$file.name]]
           <td>^image.html[$.width(100)$.height(100)]</td>
           <td>
                   $file.name<hr>
           $exif[$image.exif]
           ^if($exif){
                   $keys[^exif._keys[]] ^keys.sort{$keys.key}
                   ^keys.menu{
                           $key[$keys.key]
                           $value[$exif.$key]
   
                           ${key}: <b>^show_exif_value[$value]</b><br>
                   }
           }{
                   no EXIF info<br>
           }
       </td>
   </tr>
   }
   </table>
   
   @show_exif_value[value][i]
   ^if($value is hash){
           ^for[i](0;$value-1){$value.$i}[,]
   }{
           $value
   }
   
   
   @message-id-test[]
   ^mail:send[
           $.from[paf@mail]
           $.to[paf@mail]
           $.subject[test]
   #       $.message-id[<1@parser.ru>]
           $.Message-id[<2@parser.ru>]
           $.subject[проверка]
           $.text[мычит!]
   ]
   
   @virtualtest2[]
   $derived[^derived::create[]]
   ^derived.first[]
   
   
   @includet2overridedynamic[]
   includet2overridedynamic:<br>
   shold say 'hello in some.p'<br>
   <hr>
   $derived[^derived::create[]]
   ^derived.includet2override[]
   
   @includet2overridestatic[]
   includet2overridestatic:<br>
   shold say 'hello in derived.p'<br>
   because in static classes there's no way to determine derived class (no virtual mech becase of no virtual table)<br>
   <hr>
   ^derived:includet2override[]
   
   @emailhead2[]
   ^mail:send[
           $.charset[koi8-r]
           $.from[paf@design.ru]
           $.to[paf@mail]
   #       $.reply-to[^taint[agat] <^taint[ag_7k@mail.ru]>]
   $user[^taint[agat]]
   $email[^taint[ag_7k@mail.ru]]
           $.reply-to[$user $email]
           $.subject[test2]
   ]
   
   @keygenedhash[]
   $table[^table::create{key       value
   1       a
   2       b
   }]
   $hash[^table.hash($table.key*2)]
   '$hash.4.value' must be 'b'
   
   @badsendmail[]
   ^mail:send[
           $.from[hren < paf@design.ru
           >]
           $.to[paf@design.ru]
           $.subject[test]
   ]
   
   @badhashcreate[]
   $hash[
           $.ok[1]
   ]
   $.bad[1]
   
   @compilebug[]
   ^a[]^#31=
   
   @selectSingleoct[]
   $d[^xdoc::create[doc]]
   $element[^d.selectSingle[$nothing]]
   
   
   @foreachform[]
   <a href=index.cgihtml?one&a=1&two&b=2&three?1,2>one</a><br>
   <a href=index.cgihtml?one&a=1&two&b=2&three?shit>two</a><br>
   
   ^form:fields.foreach[key;value]{
           $key -- $value
   }[<br>]
   <hr>
   $nameless[$form:tables.nameless]
   ^if(def $nameless){
           nameless table -- ^nameless.menu{$nameless.field}[,]
   }
   ^if(def $form:imap){
           <hr>
           IMAP $form:imap.x : $form:imap.y
   }
   
   @steppedfor[name;from;to;step;code]
   $caller.$name($from)
   ^while($caller.$name<=$to){
           $code
           ^caller.$name.inc($step)
   }
   
   @bad-compiletosystem[]
   ^process[$string:CLASS]{@a[]
   }
   
   @junctionselftest[]
   $derived[^derived::create[]]^derived.explodejunction{$tomain[tomainOK]}
   ^$tomain=$tomain
   
   @junctiontest2[]
   ^if($if is junction){is junction;not junction}<br>
   ^if(def $if){defined;not defined}<br>
   
   @domorigint[]
   $xdoc[^xdoc::create[вася]]
   ^xdoc.firstChild.setAttribute[name;значение]
   $var[$xdoc.firstChild.nodeName]
   ^throw[paf;$var]
   
   
   @fortestsep[][i]
   ^for[i](1;3){$i}[,]
   
   @includet[]
   ^include[some.p]
   ^included_method[2]
   
   @user-foreach-test[][key;value]
   ^user-foreach[key;value]{$key=$value<br>}
   
   @user-foreach[key;value;code]
   ^for[i](1;10){
           $caller.$key($i)
           $caller.$value($i*2)
           $code
   }
   
   
   @tfor[][i]
   ^for[i](1;10){
   $i
   }
   
   @trycontextt[]
   ^try{
           ^trycontexttsub[]
   }{
           $exception.handled(0)
   }
   
   
   @trycontexttsub[]
   ^bad[]
   
   
   @opauto[]
   ^reada[]
   
   
   @rusage2[]
   <hr>
   OK
   
   @rusage2[]
   $s[$status:rusage]
   
   ^s.tv_sec.format[%.0f].^s.tv_usec.format[%06.0f]
   
   
   @voidconstructorpass[]
   $a[$form:a]
   =^form:a.int(1)=
   =^a.int(1)=
   
   
   @russianindex[]
   #dir with files with russian-lang names
   $where[dir]
   
   $dir[^file:list[$where;\.txt^$]]
   ^dir.menu{
           <a href=$where/^untaint[uri]{$dir.name}>$dir.name</a><br>
   }
   
   @badjunctioncall[]
   ^badjunctioncallinside{code}
   
   @badjunctioncallinside[code]
   xx^code[]
   
   @badxdoccreate[]
   $xdoc[^xdoc::create[вася]]
   #$xdoc[^xdoc::create{<?xml version="1.0" encoding="$request:charset"?><doc>вася</doc>}]
   
   ^xdoc.firstChild.setAttribute[name;значение]
   ^xdoc.string[]
   
   
   @emptyTransformResult[]
   $input[^xdoc::create[docBad]]
   $sheet[^xdoc::create{<?xml version="1.0"?> 
   <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
           <xsl:template match="doc">
                   output
           </xsl:template>
   </xsl:stylesheet>
   }]
   $output[^input.transform[$sheet]]
   $response:body[^output.file[]]
   
   @hashselfmodification[]
   $hash[
           $.a[1]
           $.b[2]
   ]
   ^hash.foreach[key;value]{
   #       $hash.c[1]
           $hash.a[1]
   }       
   
   @touchittest[][i]
   $i[before]
   ^touchit[]
   $i
   
   @touchittest2[]
   $i[before]
   ^touchit[]
   $i
   
   
   @jspace[]
   $a(1)
   ^jspace_call{^eval($a*2)}
   #$a(2)
   #$junction
   
   @jspace_call[param][a]
   $a[unrelcfgdfgated]
   $junction<br>
   $junction.a(2)
   $junction<br>
   
   @shifts[]
   ^eval(1<<3)<br>
   ^eval(8>>2)<br>
   #^if(1=1){y;n}<br>
   
   
   @zeroinstdin[]
   #$f[^file::exec[a.pl;$.stdin[$.shit[]]]]
   $f[^file::exec[a.pl;$.stdin[^file::load[binary;1z2.txt]]]]
   =$f.text=
   ^f.save[binary;1z2.out]
   
   @badLangAfterCatch[]
   ^try{
           $a[ 
                   тут язык сменился на pass_appended
                   ^throw[user;test]
                   и улетело с не тем  языком
           ]
   }{
           $exception.handled(1)
   }
   1  2
   
   @crossopvars[]
   #^one[]<hr>
   ^two[]<hr>
   
   @table2hash_onecolumn[]
   $t[^table::create{a
   1
   1
   }]
   #^t.hash[a]
   #^t.hash[a;b]
   $h[^t.hash[a][$.distinct(1)]]
   $h.1.a
   
   @longlreplace[]
   $str1[  мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла ]
   $str2[ела]
   $str[Мама $str1 раму]
   
   ^str.replace[^table::create[nameless]{мыла      $str2}]
   
   @duplicatehashsqlkey[]
   ^connect[mysql://mdm:4b833ljq@db-mysql/mdm]{
           $t[^table::sql{select * from news}]
           $c[^t.columns[]]
           ^c.menu{$c.column}[,]
   
           $h[^hash::sql{select news_type_id, name from news}[$.distinct(1)]]
   }
   
   @duplicatetable2hashkey[]
   $t[^table::create{a     b
   1       2
   1       3
   }]
   #^t.hash[a]
   #^t.hash[a;b]
   ^t.hash[a][$.distinct[1]]
   
   @menudelim[]
   $t[^table::create{a
   1
   2
   3
   4
   5
   }]
   
   ^t.menu{^if($t.a<3){}{$t.a}}[,]
   
   @fordelim[]
   ^for[a](0;6){^if($a<3){}{$a}}[,]
   
   
   @passpost[]
   <form method=post name="test" id="test">
   <textarea name="text" cols=20 rows =6>^taint[html][1
   2
   
   3]</textarea><br>
   <input type=submit>
   </form>
   
   ^if(def $form:text){
           $a[^file::cgi[a.pl]]
           $a.text|$a.status|$a.stderr<hr>
   }
   
   @exec[]
   #$a[^file::exec[a.cmd]]
   $a[^file::cgi[a.cmd]]
   $a.text|$a.status|$a.stderr<hr>
   
   
   @newxor[]
   ^eval(1!|2 #примечание()zzz
   |0x100)<br>
   #^eval(1!||2)<br>
   ^if(1!|1){y}{n}
   
   #@method[$bad]
   
   @doubleliterals[]
   #^eval(1e-10)
   ^eval("1e-20")
   
   @xpath3[]
   $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>}]
   $objectData[^constr.selectSingle[/constructor-data/object]]
   $objectData.nodeType<br>
   $objectData.firstChild.nodeValue
   
   @calltest[]
   ^calltest2[string]
   
   @calltest2[s]
   $s
   
   @ttransformsep[]
   $input[^xdoc::load[20020909131046.xml]]
   $output[^input.transform[generated.xsl]]
   ^output.string[]
   
   @okswitchtest[]
   $local[local value]
   ^switch[1]{
           ^case[1]{1code $local}
   }
   
   @badswitchtest[]
   ^switch[1]{
           ^badswitchtestcase[]
   }
   @badswitchtestcase[][local]
   $local[local value]
           ^case[1]{1code $local}
   
   @badjunction[]
   ^badj1[]
   ^badj2[]
   
   @html-почта[]
   $переменная[значение]
   ^mail:send[
           $.from[paf@mail]
           $.to[paf@mail]
           $.subject[htmltest1]
           $.html{тест$переменная=  !}
   ]
   
                    
   @грязные-cookie[]
   $cookie:a[&]
   $cookie:a
   
   @новый-split[]
   $abc[a.b.c]
   #$table[^abc.split[.]]
   #$table[^abc.split[.;l]]
   #$table[^abc.split[.;v]]
   $table[^abc.split[.;lv]]
   ^table.menu{$table.piece}[,]
   <hr>
   #$table[^abc.split[.;h]]
   $table[^abc.split[.;hr]]
   $table.0,$table.1,$table.2<br>
   
   @delimiters[]
   $a#1[1]<br>
   $a#1=<br>
   
   
   @badcolumntest[]
   $table[^table::load[ext.cfg]]
   $table.b
   
   
   @virtualtest[]
   $derived[^derived::create[derived create actual param]]
   ^derived.test[]
   
   
   @voidpostest[]
   $s[]
   ^s.pos[$nothing]
   
   @postest[]
   $s[$nothing]
   ^s.pos[$nothing]
   
   @cookieexpirestest[]
   #$cookie:exptest[1]
   #$cookie:exptest[$.value[2] $.expires(+1)]
   $response:xxxx[^date::now(+10)]
   $response:yyy[$.value[^date::now(+20)]]
   $response:yyy[$.value[vvv] $.aaaa[^date::now(+20)]]
   
   @rbodytest[]
   $request:body=
   <form method=post>
   <input type=submit name=paf value=123>
   </form>
   
   @staticstest2[]
   ^$derived:derived_var=$derived:derived_var<br>
   ^$derived:a=$derived:a<br>
   $derived:a[changed] ^$derived:a=$derived:a<br>
   $derived:derived_var[changed] 
   ^$derived:derived_var=$derived:derived_var<br>
   
   @staticstest[]
   $derived[^derived::create[]]
   ^derived.test[]
   <hr>
   ^$derived.a=$derived.a<br>
   ^$derived.x=$derived.x<br>
   <hr>
   ^if($derived is derived){derived is derived}{error: derived is not derived}<br>
   ^if($derived is table){derived is table}{error:derived is not table}<br>
   <hr>
   ^^eval(^$derived)=^eval($derived)<br>
   ^^if(^$derived)=^if($derived){y}{n}<br>
   
   
   @xdoctypetest[]
   $xdoc[^xdoc::create[x]]
   ^if($xdoc is xdoc){y}{n}
   
   @xtabletest[]
   $xtableo[^xtable::create[]]
   ^if($xtableo is table){y}{n}
   #^xtableo.columns[]
   
   @monthdays[month]
   $from[^date::create(2000;$month;1)]
   $to[^date::create($from)] ^to.roll[month](+1)
   $result($to-$from)
   
   @badconstructor[]
   ^date::now[]
   
   @datesaving[]
   $now[^date::now[]]
   $now.daylightsaving<br>
   $now.yearday<br>
   #
   $date[^date::create(2002;1;3)]
   $date.daylightsaving<br>
   $date.yearday
   
   @mail4[]
   ^mail:send[
           $.from[paf@mail.design.ru]
           $.to[paf@mail.design.ru]
           $.subject[^taint[uri][москва=E0_+ ]=2]
           $.text[^taint[uri][москва]=]
           $.html{<a href=http://there.ru/?city=^taint[uri][Москва]>link</a>}
   ]
   @processtest[]
       $f[^file::load[text;piece.p]]       ^process{$f.text}
           $ORIGINS(1)
   
   
   @badpos[]
   $s[123]
   ^s.mid(0;2)
   
   @wwrapperpass[]
   $h[^hash::create[]]
   $h.a(1)
   ^my_method[^if(1){$h}]
   работает. так и должно быть?
   
   @my_method[p]
   ^p._count[]
   
   
   @tableclonelimit[]
   $source[^table::create{a
   aa
   bb
   cc}]
   ^source.offset(1)
   #$dest[^table::create[$source]]
   $dest[^table::create[$source;$.offset(2)]]
   $dest[^table::create[$source;$.limit(2)]]
   $dest[^table::create[$source;$.offset(1)$.limit(1)]]
   $dest[^table::create[$source;$.offset(1)$.limit(2)]]
   $dest[^table::create[$source;$.offset[cur]$.limit(2)]]
   
   ^dest.menu{$dest.a}[,]<br>
   
   @joinlimit[]
   $source[^table::create{a
   aa
   bb
   cc}]
   ^source.offset(2)
   $dest[^table::create{a
   xx
   }]
   #^dest.join[$source]
   #^dest.join[$source;$.offset(2)]
   #^dest.join[$source;$.limit(2)]
   #^dest.join[$source;$.offset(1)$.limit(1)]
   #^dest.join[$source;$.offset(1)$.limit(2)]
   #^dest.join[$source;$.offset[cur]$.limit(1)]
   ^dest.join[$source;$.limit(0)]
   
   ^dest.menu{$dest.a}[,]<br>
   
   @cgit[]
   $f[^file::cgi[showenv.cmd]]
   $f.HELLO=<br>
   $f.CONTENT-TYPE=<br>
   $f.content-type=<br>
   
   
   @mimet[]
   $f[^file::stat[a.GIF]]
   $f.content-type
   
   
   @tfind[]
   ^file:find[index.html]
   
   @tstdin[]
   $f[^file::exec[test.pl;$.stdin[проверка stdin потока]]]
   <pre>$f.text</pre>
   
   @sergestrandef[]
   $sQuantity[ ]
   ^sQuantity.int(10)
   
   @xmltransformbyxdoc[]
   $xdoc[^xdoc::set{^process{<?xml version="1.0" encoding="windows-1251"?>
   <!--DOCTYPE people SYSTEM "D:\Y\parser3project\parser3\src\www\htdocs\people.dtd"-->
   <people>
           <man id="1" имя="word слово">
                   <name>1  2</name>
           </man>
   </people>
   }}]
   $sheet[^xdoc::create{<?xml version="1.0"?> 
   <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
   
   >
   <!--<xsl:output doctype-public ="-//W3C//DTD XHTML" indent="yes"/>-->
   
           <!--<xsl:import href="http://localhost/html.xsl"/>-->
           <xsl:import href="html.xsl"/>
   
   <xsl:param name="param1">defparam1</xsl:param>
   <xsl:param name="param2">defparam2</xsl:param>
   
   
           <xsl:template match="doc">
                   param1=<xsl:value-of select="^$param1"/><br/>
                   param2=<xsl:value-of select="^$param2"/><br/>
   
                   test return <something background=""/>
           </xsl:template>
   
           <xsl:template name="test">
                   test return3
           </xsl:template>
   
     <xsl:template match="people">
        <html>
        <head>
   <link type='text/xml' rel='alternate' href='/Default.vsdisco'/>
   z</head>
                   para1=<xsl:copy-of select="^$param1"/>
           <xsl:apply-templates/>
           <hr/>
           <xsl:call-template name="test"/>
        </html>    
     </xsl:template>
   
     <xsl:template match="name">
       <b><xsl:value-of select="."/></b>
     </xsl:template>
   </xsl:stylesheet>
   }]
   
   
   $xdoc[^xdoc.transform[$sheet]]
   $string[^xdoc.string[$.method[html]]]
   ^string.save[a]
   ^untaint[html]{$string}
   
   
   
   @tnormalize[]
   #s состоит из 1000 фрагментов
   $s[^for[i](0;999){фрагмент }]
   #это займет много ресурсов
   ^s.match[фраг][g]{перга}
   #это займет меньше ресурсов
   #$normalized[^s.normalize[]]
   #^normalized.match[фраг][g]{перга}
   
   @sendtests[]
   ^text[]
   #^html[]
   #^text-n-html[]
   #^file[]
   #^text-n-file[]
   #^text-n-html-n-file[]
   #^backwardcomp[]
   
   @backwardcomp[]
   ^mail:send[
           $.from[paf]
           $.to[paf]
           $.body[this is text value]
   ]
   
   @text[]
   ^mail:send[
           $.from[paf]
           $.to[paf]
           $.text[
                   $.value[this is text value]
           ]
   ]
   
   @html[]
   ^mail:send[
           $.from[paf]
           $.to[paf]
           $.html{this is <b>html</b> value ^taint[<] 10}
   ]
   
   @text-n-html[]
   ^mail:send[
           $.from[paf]
           $.to[paf]
           $.text[
                   $.value[this is text value]
           ]
           $.html[
           $.value{this is <b>html</b> value ^taint[<] 10}
           ]
   ]
   
   @file[]
   ^mail:send[
           $.from[paf]
           $.to[paf]
           $.file[^file::load[binary;image.jpg]]
   ]
   
   @text-n-file[]
   ^mail:send[
           $.from[paf]
           $.to[paf]
           $.text[
                   $.value[this is text value]
           ]
           $.file[^file::load[binary;image.jpg]]
   ]
   
   @text-n-html-n-file[]
   ^mail:send[
           $.from[paf]
           $.to[paf]
           $.text[
                   $.value[this is text value]
           ]
           $.html[
           $.COntent-type[$.value[text/html]$.charset[windows-1251xx]]
           $.value{this is <b>html</b> value ^taint[<] 10}
           ]
           $.file[^file::load[binary;image.jpg]]
   ]
   
   
   
   @md5salt[]
   1234
   
   @cryptdocsample[]
   $users[^table::create{name      password
   alice   ***
   bob     ***
   }]
   
   $htpasswd[^table::create[nameless]{}]
   ^users.menu{
           ^htpasswd.append{$users.name:^math:crypt[$users.password;^$apr1^$^md5salt[]]}
   }
   
   ^htpasswd.save[nameless;.htpasswd-parser-test]
   
   
   @tcrypt[]
   #^math:crypt[123;^$apr1^$1234567890abcdef]<br>
   ^math:crypt[123;^$apr1^$]<br>
   
   @tfilespec[]
   src=$selffilespec<br>
   dirname=^file:dirname[$selffilespec]<br>
   basename=^file:basename[$selffilespec]<br>
   justname=^file:justname[$selffilespec]<br>
   justext=^file:justext[$selffilespec]<br>
   
 @datecreatestring3[]  @datecreatestring3[]
 $new_after[^date::now(-3)]  $new_after[^date::now(-3)]
Line 933  $t[^table::set{^untaint{^taint[$a-tab-b] Line 1908  $t[^table::set{^untaint{^taint[$a-tab-b]
   
 @mail3[]  @mail3[]
 ^mail:send[  ^mail:send[
         $.from[Александр Петросян <paf@design.ru>]          $.from[Александр Петросян <paf@mail.design.ru>]
         $.to[Александр Петросян <paf@design.ru>]          $.to[Александр Петросян <paf@mail.design.ru>]
         $.subject[проверка4]          $.subject[проверка2]
         $.body[          $.body[
                 $.text[                  $.text[
                         $.content-type[$.value[text/plain] $.charset[windows-1251]]                          $.content-type[$.value[text/plain] $.charset[windows-1251]]
                         $.body[проверка]                          $.body[проверка^taint[uri][москва]=]
                 ]                  ]
                 $.attachment[                  $.attachment[
                         $.value[^file::load[text;index.html]]                          $.value[^file::load[text;index.html]]
Line 1066  $date.year  $date.month  $date.day Line 2041  $date.year  $date.month  $date.day
   
 @cookie2[]  @cookie2[]
 #=$cookie:clientType[$.value[test]]=<br>  #=$cookie:clientType[$.value[test]]=<br>
 =$cookie:clientType=<br>  =$cookie:CLASS.clientType=<br>
   
   
 @tableset[]  @tableset[]
Line 1398  $abc[abc] Line 2373  $abc[abc]
 ^abc.save[abc]  ^abc.save[abc]
   
 @calendar[]  @calendar[]
 2001;11:<br>  $year(2002)
 $week_days[^date:calendar[rus](2001;11)]  $month(12)
   ${year}-${month}:<br>
   $week_days[^date:calendar[rus]($year;$month)]
 <pre>  <pre>
 ^week_days.menu{^for[wday](0;7){^if($week_days.$wday){$week_days.$wday;&nbsp^;&nbsp^;} }<br>}  ^week_days.menu{^for[wday](0;6){^if($week_days.$wday){$week_days.$wday;&nbsp^;&nbsp^;} }=$week_days.week,$week_days.year=<br>}
 </pre>  </pre>
   
 @thash[]  @thash[]
Line 1438  $response:body[^pict.gif[]] Line 2415  $response:body[^pict.gif[]]
   
 @mail2[]  @mail2[]
 ^mail:send[  ^mail:send[
           $.message-id[<6615%1@parser.ru>]
         $.content-type[$.value[text/plain] $.charset[windows-1251]]          $.content-type[$.value[text/plain] $.charset[windows-1251]]
         $.from[Александр Петросян <paf@design.ru>]          $.from[Александр Петросян <paf@design.ru>]
         $.to[Александр Петросян <paf@design.ru>]          $.to[Александр Петросян <paf@design.ru>]
         $.subject[проверка]          $.subject[проверка проверка]
         $.body[проверка]          $.text[проверка]
 ]  ]
   
 @cookie[]  @cookie[]
 $env:HTTP_COOKIE<br>  #$env:HTTP_COOKIE<br>
   
 #$cookie:переменная[test тест ТЕСТ2]  #$cookie:переменная[test тест ТЕСТ2]
 =$cookie:переменная=<br>  =$cookie:переменная=<br>
Line 1512  $s[abcАБВ] Line 2490  $s[abcАБВ]
                 3]                  3]
 ]  ]
   
 @exec[]  
 $a[^file::exec[fc.exe;;a;b]]  
 $a.status|$a.stderr<hr>  
   
 @fori[][i]  @fori[][i]
 ^for[i](1;3){... =$i= ...}  ^for[i](1;3){... =$i= ...}
   
Line 1535  $xdoc[^xdoc::set{<?xml version="1.0" enc Line 2509  $xdoc[^xdoc::set{<?xml version="1.0" enc
   
 @xdata[]  @xdata[]
 #$response:content-type[$.value[text/html] $.charset[windows-1251]]  #$response:content-type[$.value[text/html] $.charset[windows-1251]]
 $xdoc[^xdoc::set{^process{<?xml version="1.0" encoding="windows-1251"?>  $xdoc[^xdoc::create{<?xml version="1.0" encoding="windows-1251"?>
 <!--DOCTYPE people SYSTEM "D:\Y\parser3project\parser3\src\www\htdocs\people.dtd"-->  <!--DOCTYPE people SYSTEM "D:\Y\parser3project\parser3\src\www\htdocs\people.dtd"-->
 <people>  <people>
         <man id="1" имя="word слово">          <man id="1" имя="word слово">
Line 1545  $xdoc[^xdoc::set{^process{<?xml version= Line 2519  $xdoc[^xdoc::set{^process{<?xml version=
             <name>ПИФ^taint[&]</name>              <name>ПИФ^taint[&]</name>
                 </man>                  </man>
 </people>  </people>
 }}]  }]
   
 @xml[]  @xml[]
 ^xdata[]  ^xdata[]

Removed from v.1.69  
changed lines
  Added in v.1.188


E-mail: