Diff for /parser3/www/htdocs/Attic/index.html between versions 1.1 and 1.36

version 1.1, 2002/01/31 10:20:24 version 1.36, 2002/04/16 09:38:51
Line 1 Line 1
 @auto[]  #@USE
   #z/t.p
   
   @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]]
   
 @main[]  @main[]
 ^xoutputrusattr[]  #^invaliddate2[]
   #^process2[]
   #^casehashtext[]
   #^subjvaltest[]
   #^tableselect0[]
   #^memnotest1[]
   #^transparams[]
   #^voidparams[]
   #^rolls2[]
   #^cacheexpireschanging[]
   #^cacheexpiresfixed[]
   #^dateoffsets[]
   #^exceptionTypes[]
   #^roll2[]
   #^rolls[]
   #^exceptions1[]
   #^locate_by_expr[]
   #^method_junction_params{...}
   #^verifyCookie[paf]
   ^execlangs[]
   #$t[^tobjeresult[]]$t.a
   #^xmlprobs[]
   #^doubleprobs[]
   #^math:random(-10)
   #^divnamestop[]
   #^arrayclone[]
   #^operator_tricks[]
   #^xoutputrusattr[]
 #^xdocset1[]  #^xdocset1[]
 #^regexp3[]  #^regexp3[]
 #^exec2[]  #^exec2[]
Line 94  $response:content-type[$.value[text/html Line 124  $response:content-type[$.value[text/html
 <hr>  <hr>
 OK  OK
   
   @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[]
   ^try{
           aaa
           ^throw[custom1;paf;is stupid]
   }{
           ^if($exception.type eq custom1){
   #               $exception.handled(1)
           ^throw[$exception]
                   type=$exception.type<br>
               source=$exception.source<br>
               file=$exception.file<br>
               lineno=$exception.lineno<br>
           comment=$exception.comment<br>
           }
   }
   
   @locate_by_expr[]
   $t[^table::create{a     b
   1       nok
   2       ok
   3       nok
   }]
   ^if(^t.locate($t.a==2)){$t.b}{n}
   
   @method_junction_params[param]
   ^if($param is junction){junction}{ne junction}
   
   @verifyCookie[value] 
   ^if($cookie:dummyvote eq $value){ 
           $result(1) 
   }{ 
           $cookie:dummyvote[$value] 
           $result(0) 
   }
   
   @execlangs[]
   $f[^file::exec[test.pl]]
   err:$f.stderr<br>
   ^process{$f.text}
   #$c[^t.columns[]]
   #^c.menu{
   #* $c.column<br>
   #}
   c:$t.c<br>
   
   @tobjeresult[]
   ^table::create{a
   12}
   
   @xmlprobs[]
   $xmlDataType[^xdoc::load[program.xml]]
   #<pre>^taint[^xmlDataType.string[]]
   $xmlDataTypes[^xmlDataType.select[programs/program[@id=4]/data]]
   #=^xmlDataTypes._count[]=
   =^xmlDataTypes.0.getAttribute[type-id]=
   
   @doubleprobs[]
   $1(^math:radians(180))
   $2($math:PI)
   ^if(^1.format[%.10f]==^2.format[%.10f]){y;n}
   ^if($1==$2){y;n}
   ^if(^math:radians(180)==$math:PI){y;n}
   
   
   @divnamestop[]
   $a(10)
   ^eval($a\3)
   
   @arrayclone[]
   $t[^table::create{a     b
   1       11
   2       22
   }]
   $c[^table::create[$t]]
   ^c.append{2     33}
   ^t.count[]
   ^c.count[]
   
   @operator_tricks[]
   ^if(1){$a[^t[]]}
   $a!
   $a($b)
   ^if(1){y}{n}
   $MAIN:a(^t[] eq OK)
   #$MAIN:a(1)
   ^if($a){y}{n}
   #^if(1){y}{n}
   $form:if
   $a[$.n[1]]
   $a.if
   
 @xoutputrusattr[]  @xoutputrusattr[]
 $d[^xdoc::set{<?xml version="1.0" encoding="windows-1251"?><d attr="привет"/>}]  $d[^xdoc::set{<?xml version="1.0" encoding="windows-1251"?><d attr="привет"/>}]
 ^show_xdoc2[$d]  ^show_xdoc2[$d]

Removed from v.1.1  
changed lines
  Added in v.1.36


E-mail: