--- parser3/www/htdocs/Attic/index.html 2002/04/04 13:42:51 1.31 +++ parser3/www/htdocs/Attic/index.html 2002/04/16 14:41:40 1.39 @@ -6,8 +6,20 @@ $request:charset[windows-1251] $response:charset[windows-1251] $response:content-type[$.value[text/html]$.charset[$response:charset]] +#@postprocess[body] +#$body +#$result[123] + @main[] -^voidparams[] +#$result[hello] +#^invaliddate2[] +#^process2[] +#^casehashtext[] +#^subjvaltest[] +#^tableselect0[] +#^memnotest1[] +#^transparams[] +#^voidparams[] #^rolls2[] #^cacheexpireschanging[] #^cacheexpiresfixed[] @@ -117,6 +129,123 @@ $response:content-type[$.value[text/html
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
} + +@transparams[] +$idoc[^xdoc::create{}] +$odoc[^idoc.transform[global.xsl; + $.param1['1'] + $.param2['2'] +]] +
^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]
 
@@ -241,12 +370,13 @@ $t[^table::create{a	b
 
 @execlangs[]
 $f[^file::exec[test.pl]]
+err:$f.stderr
^process{$f.text} #$c[^t.columns[]] #^c.menu{ #* $c.column
#} -=$t.c= +c:$t.c
@tobjeresult[] ^table::create{a