Diff for /parser3/www/htdocs/Attic/index.html between versions 1.22 and 1.56

version 1.22, 2002/03/18 15:29:46 version 1.56, 2002/04/30 10:40:58
Line 1 Line 1
 #@USE  @USE
 #z/t.p  t.p
   
 @autoz[]  @autoz[]
 $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:content-type[$.value[text/html]$.charset[$response:charset]]
   
   @postprocess[body]
   #=$env:HTTP_TEST=<br>
   #=$env:REDIRECT_HTTP_TEST=<br>
   #<hr>
   $body
   <hr>
   OK
   
 @main[]  @main[]
 ^exceptions1[]  #^sqldefaults[]
   #^eval(2)
   #^tcrashlocaljunctionsv2[]
   #^tcrashlocaljunctions[]
   #^tjunctions[]
   #^replacetest[]
   #^matchoptionpp[]
   #^txdocxnodechild[]
   #^tclasses[]
   #$math:PI
   #^b:method[]
   #^main[]
   #^errort[]
   #^tselectNumber[]
   #$result[hello]
   #^invaliddate2[]
   #^process2[]
   #^casehashtext[]
   #^subjvaltest[]
   #^tableselect0[]
   #^memnotest1[]
   #^transparams[]
   #^voidparams[]
   #^rolls2[]
   #^cacheexpireschanging[]
   #^cacheexpiresfixed[]
   #^dateoffsets[]
   #^exceptionTypes[]
   #^roll2[]
   #^rolls[]
   #^exceptions1[]
 #^locate_by_expr[]  #^locate_by_expr[]
 #^method_junction_params{...}  #^method_junction_params{...}
 #^verifyCookie[paf]  #^verifyCookie[paf]
Line 106  $response:content-type[$.value[text/html Line 144  $response:content-type[$.value[text/html
 #^xslt[]  #^xslt[]
 #^xml[]  #^xml[]
 #^header[]  #^header[]
   #^tablehasht[]
   
   #^datecreatestring[]
   #^mssqltypes1[]
   #^badthrows[]
   ^xmlspace[]
   
   @xmlspace[]
   $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>
   }}]
   $xdoc[^xdoc.transform[global.xsl]]
   $string[^xdoc.string[$.method[html]]]
   ^string.save[a]
   ^untaint[html]{$string}
   
   @badthrows[]
   #^throw[a;b;]
   ^throw[a;]
   
   @mssqltypes1[]
   ^connect[odbc://DSN=nestle^;UID=nestle^;PWD=mbm32]{
   #    ^string:sql{select { ts '1998-05-02 01:23:56.123' }}
   #    ^string:sql{select CAST({ ts '1998-05-02 01:23:56.123' }AS smalldatetime)}
   #       ^string:sql{select CAST({ts '2002-04-28 00:00:00.000'} AS smalldatetime)}
           $t[^table::sql{select a from paf}]
           ^t.count[]
   }
   
   @datecreatestring[]
   $d[^date::create[2002-04-33 01:03:04]]
   ^d.sql-string[]
   
   @method[hash]
   $hash.key
   @mainZ[]
   ^method[
       $.key{code}
   ]
   
   @tablehasht[]
   $t[^table::create{p
   1
   3
   2
   4}]
   
   $h[^t.hash[p]]
   
   =^h._count[]=
   
   
   @sqldefaults[]
   ^connect[mysql://mdm:4b833ljq@db-mysql/mdm]{
           ^int:sql{select news_id from news where news_id=-1}[$.default{2}]<br>
       ^string:sql{select news_id from news where news_id=-1}[$.default{2}]
   }
   
   @tcrashlocaljunctionsv2[]
   $a[
           $b{  $c[1] }
   ]
   $b
   $c
   
   @tcrashlocaljunctions[]
   $var[aaa]
   ^if(1){
   ^tcrashlocaljunctions1[]
   }
   
   $j
   
   @tcrashlocaljunctions1[][var]
   $var[varvalue]
           $j{
                   $var
           }
   $j
   
   @tjunctions[][tl]
   $t[^t::create[]]
   ^tjunctionsi[]
   
   @tjunctionsi[][tl]
   $tl[12345]
   ^t.tjunctionsm[
           $.key{
                   $tl
           }
   ]
   
   @replacetest[]
   $b[b]
   $s[
   aaaaaaaaaa${b}aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa${b}aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
   ]
   ^s.replace[^table::create{from  to
   ba      !_}]
   
   
   @matchoptionpp[]
   #$ORIGINS(1)
   $s[
   aaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
   aaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
   aaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
   aaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
   aaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
   ]
   ^s.match[b;g']{($match.prematch|$match.match|$match.postmatch)}
   
   
   @txdocxnodechild[]
   $xdoc[^xdoc::set{<?xml version="1.0" encoding="windows-1251" ?><d/>}]
   $xdoc.nodeName
   ^xdoc.selectNumber[2*2]
   $xdoc:ELEMENT_NODE
   
   
   @tclasses[]
   $t[^t::create[]]
   ^t.method[]
 <hr>  <hr>
 OK  ^t.base_method[]
   
   
   @errort[]
   ^xdoc::create[a]
   #^throw[user;here;this]
   
   @tselectNumber[]
   $d[^xdoc::set{<?xml version="1.0" encoding="windows-1251"?><d attr="привет" n="123"/>}]
   ^d.selectString[string(d/@attr)]<br>
   ^d.selectNumber[2*2]<br>
   ^d.selectNumber[number(/d/@n)+1]<br>
   
   
   @invaliddate2[]
   $d[^date::create(1018946575/60/60)] ^d.sql-string[]
   
   @process2[]
   ^^process{
           ^process{
                   ^$a[^^if(0){^$.k[y]}{^$.k[^^hren[]n]}] ^$a.k
           }
   }
   
   @casehashtext[]
   $tt[1]
   $tmp[
           ^switch[$tt]{
                   ^case[1]{
                           $.aaa[123]
                   }
                   ^case[DEFAULT]{
                           $.bbb[456]
                   }
           }
           shit!
   ]
   #$tmp
   $tmp.aaa
   
   @subjvaltest[]
   $a12[val]
   $b[12]
   $a$b
   
   @tableselect0[]
   $person[^table::create{name     height
   paf     1.77
   шохин   2.07
   moko    1.77
   }]
   $nottoohigh[^person.select($person.height<2)]
   ^nottoohigh.menu{$nottoohigh.name<br>}
   
   @transparams[]
   $idoc[^xdoc::create{<?xml version="1.0" ?><doc/>}]
   $odoc[^idoc.transform[global.xsl;
           $.param1['1']
           $.param2['2']
   ]]
   <pre>^taint[^odoc.string[$.method[html]]]
   
   @memnotest1[]
   ^for[i](0;4000){
   
    $xxxx[$i]
    $xxxx
   
   }
   
   @memnotest1notes[]
   одна итерация цикла:
   [Mon Apr  8 20:12:02 2002] execution-------------------------|
   '469641+=28 wcodeframe -> 0 !optimize[3]''469669+=49 string от {} -> 0 optimize[3]'
   [Mon Apr  8 20:12:02 2002] 12:STRING__WRITE
   [Mon Apr  8 20:12:02 2002]  "|| "
   [Mon Apr  8 20:12:02 2002] 12:WITH_ROOT
   [Mon Apr  8 20:12:02 2002] 13:VALUE
   [Mon Apr  8 20:12:02 2002]  "xxxx" string
   [Mon Apr  8 20:12:02 2002] 14:CREATE_EWPOOL'469377+=24 wcodeframe -> 0 !optimize[1]''469401+=49 string -> 41 !optimize[7]'
   [Mon Apr  8 20:12:02 2002] 16:WITH_READ
   [Mon Apr  8 20:12:02 2002] 17:VALUE
   [Mon Apr  8 20:12:02 2002]  "i" string
   [Mon Apr  8 20:12:02 2002] 18:GET_ELEMENT
   [Mon Apr  8 20:12:02 2002] 17:WRITE_VALUE'469452+=40 MAX_NUMBER -> !~2 actual digits''469492+=49 -> 41 !'
   [Mon Apr  8 20:12:02 2002] 16:REDUCE_EWPOOL'469541+=24 VString -> 0 optimize[5]'
   [Mon Apr  8 20:12:02 2002] 15:CONSTRUCT_VALUE
   [Mon Apr  8 20:12:02 2002] 12:STRING__WRITE
   [Mon Apr  8 20:12:02 2002]  "| "
   [Mon Apr  8 20:12:02 2002] 12:WITH_READ
   [Mon Apr  8 20:12:02 2002] 13:VALUE
   [Mon Apr  8 20:12:02 2002]  "xxxx" string
   [Mon Apr  8 20:12:02 2002] 14:GET_ELEMENT
   [Mon Apr  8 20:12:02 2002] 13:WRITE_VALUE'469573+=41 string expand nothing for now'
   [Mon Apr  8 20:12:02 2002] 12:STRING__WRITE
   [Mon Apr  8 20:12:02 2002]  "||"'469617+=24 VString -> 0 !optimize[6]'
   [Mon Apr  8 20:12:02 2002] <-ja returned
   [Mon Apr  8 20:12:02 2002] ja->
   
   201/328=0.612804878049 %%optimized
   
   1.
   CREATE_*POOL
       сделать
   *POOL_POOLED+CODE
       где
           wwrapper
           и(возможно) wcodeframe
           +string
           стековая переменная
   
   2.
   избавиться от обёртки при возврате результата process [см. тело _for]
   
   3.
   сделать callback для process, чтобы вынести invariants из _for & co.
   
   4.
    @todo склеить get_element и write_value (при вставлении? write_value)
   
   5.
   reduce_*pool -> вариант получить именно string, без VString обёртки [часто
   обёртка сразу выбрасывается = не нужна]
   
   6.
   process вариант получить именно string, без VString обёртки [часто обёртка
   сразу выбрасывается = не нужна]
   
   7.
   string head, убить 8 байт неправильной link
   
   @voidparams[]
   ^voidparamsm[$form:field]
   
   @voidparamsm[p]
   ^p.int(123)
   
   @rolls2[]
   $now[^date::now[]]
   $d[^date::create($now.year;$now.month)] ^d.sql-string[]<br>
   ^for[i](1;12){
           ^d.roll[month](-1) ^d.sql-string[]<br>
   }
   
   @cacheexpireschanging[]
   ^cache[$DB_HOME/keyключ][^date::now(+1)]{ ^rem{1 day}
       ^cache[^date::now(+4/24/60/60)]
   #    ^cache(2)
   #    ^cache(0)
           ^math:random(100)
   }
   
   
   
   @cacheexpiresfixed[]
   ^cache[$DB_HOME/keyключ][^date::now(+2/24/60/60)]{
           ^math:random(100)
   }
   
   @dateoffsets[]
   $d[^date::create(^date::now[]+1/24/60)]
   #$d[^date::now(+1/24/60)]
   ^d.sql-string[]
   #$d
   
   @exceptionTypes[]
   #    parser.compile       ^test[}                компиляция (непарная скобка, ...)
   #    parser.runtime       ^if(0).                параметры (больше/меньше, чем нужно, не тех типов, ...)
   #    number.zerodivision  ^eval(1/0) ^eval(1%0)
   #    number.format        ^eval(abc*5)
   #    file.missing         ^file:delete[delme]                       not found
   #    file.access          ^table::load[.]                       no rights
   #    image.format         ^image::measure[index.html]                        not gif/jpg
   #    sql.connect          ^connect[mysql://baduser:pass@host/db]{}                       not found/timeout
   #    sql.execute          ^connect[mysql://okuser:pass@host/db]{^void:sql{select bad}}                       syntax error
   #    xml                  ^xdoc::create{<forgot?>}                       any error in xml/xslt libs
   #    smtp.connect                                not found/timeout
   #    smtp.execute                                communication error
   
   @roll2[]
   $d[^date::create(2002;4;2;2;2;3)] ^d.sql-string[]<br>
   ^d.roll[day](+365*3+1) ^d.sql-string[]<br>
   
   
   @rolls[]
   $d[^date::create(2002;4;4)]
   ^d.sql-string[]<br>
   ^for[i](1;7){
   ^d.roll[day](-1)
   ^d.sql-string[]<br>
   }
   <hr>
   $d[^date::create(2002;3;28)]
   ^d.sql-string[]<br>
   ^for[i](1;7){
   ^d.roll[day](+1)
   ^d.sql-string[]<br>
   }
   <hr>
   $d[^date::create(2002;12;3)]
   ^d.sql-string[]<br>
   ^for[i](1;14){
   ^d.roll[day](-1)
   ^d.sql-string[]<br>
   }
   <hr>
   $d[^date::create(2002;10;19)]
   ^d.sql-string[]<br>
   ^for[i](1;14){
   ^d.roll[day](+1)
   ^d.sql-string[]<br>
   }
   
   
   
   
   
   
 @exceptions1[]  @exceptions1[]
 ^try{  ^try{
         aaa          aaa
         ^throw[user;paf;is stupid]          ^throw[custom1;paf;is stupid]
 }{  }{
 $exception.handled(1)          ^if($exception.type eq custom1){
 #^throw[$exception]  #               $exception.handled(1)
         type=$exception.type<br>          ^throw[$exception]
     source=$exception.source<br>                  type=$exception.type<br>
     file=$exception.file<br>              source=$exception.source<br>
     lineno=$exception.lineno<br>              file=$exception.file<br>
     comment=$exception.comment<br>              lineno=$exception.lineno<br>
           comment=$exception.comment<br>
           }
 }  }
   
 @locate_by_expr[]  @locate_by_expr[]
Line 144  $t[^table::create{a b Line 534  $t[^table::create{a b
   
 @execlangs[]  @execlangs[]
 $f[^file::exec[test.pl]]  $f[^file::exec[test.pl]]
   err:$f.stderr<br>
 ^process{$f.text}  ^process{$f.text}
 #$c[^t.columns[]]  #$c[^t.columns[]]
 #^c.menu{  #^c.menu{
 #* $c.column<br>  #* $c.column<br>
 #}  #}
 =$t.c=  c:$t.c<br>
   
 @tobjeresult[]  @tobjeresult[]
 ^table::create{a  ^table::create{a

Removed from v.1.22  
changed lines
  Added in v.1.56


E-mail: