--- parser3/www/htdocs/Attic/index.html 2002/03/18 15:29:46 1.22
+++ parser3/www/htdocs/Attic/index.html 2002/08/07 13:54:24 1.94
@@ -1,13 +1,57 @@
#@USE
-#z/t.p
+#t.p
-@autoz[]
-$request:charset[windows-1251]
-$response:charset[windows-1251]
-$response:content-type[$.value[text/html]$.charset[$response:charset]]
+@auto[filespec]
+$selffilespec[$filespec]
+#$form:here
+#$request:charset[UTF-8]
+#$response:charset[windows-1251]
+#$response:content-type[$.value[text/html]$.charset[$response:charset]]
+
+#@postprocess[body]
+#$body
+#$result[123]
@main[]
-^exceptions1[]
+#$a(123)
+#^a.format[%.10u]
+#$result[111]
+#^f[a]
+#^connect[mysql://mdm:4b833ljq@db-mysql/mdm]{
+# ^int: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}]
+#}
+#^eval(2)
+#^tcrashlocaljunctionsv2[]
+#^tcrashlocaljunctions[]
+#^tjunctions[]
+#^replacetest[]
+#^matchoptionpp[]
+#^txdocxnodechild[]
+#^tclasses[]
+#$math:PI
+#^b:method[]
+#^main[]
+#^errort[]
+#^tselectNumber[]
+#$result[hello]
+#^invaliddate2[]
+#^process2[]
+#^casehashtext[]
+#^subjvaltest[]
+#^tableselect0[]
+#^memnotest1[]
+#^voidparams[]
+#^rolls2[]
+#^cacheexpireschanging[]
+#^cacheexpiresfixed[]
+#^dateoffsets[]
+#^exceptionTypes[]
+#^roll2[]
+#^rolls[]
+#^exceptions1[]
#^locate_by_expr[]
#^method_junction_params{...}
#^verifyCookie[paf]
@@ -86,7 +130,6 @@ $response:content-type[$.value[text/html
#$t[^methresult[]] ->$t
#^terror[]
#^ssave[]
-#^calendar[]
#^thash[]
#^tdef[]
#^ford[]
@@ -106,21 +149,901 @@ $response:content-type[$.value[text/html
#^xslt[]
#^xml[]
#^header[]
+#^tablehasht[]
+#^datecreatestring[]
+#^mssqltypes1[]
+#^badthrows[]
+#^xmlspace[]
+#^counter[main.counter]
+#^xpath2[]
+#^callindirect[]
+#^junctionprob[]
+#^datecreatestring2[]
+#^tstoredproc[]
+#^tstoredproc2[]
+#^forkeys[]
+#^pngsize[]
+#^checkList[]
+#^datetest[]
+#^tserge[]
+#^envt[]
+#^selectt[]
+#^select2[]
+#^selectSingle2[]
+#^selectString2[]
+#^selectNumber2[]
+#^selectBool2[]
+#^xdoccreate[]
+#^xdoccreatetag[]
+#^xdocload[]
+#^xdocstring[]
+#^xdocsave[]
+#^div[]
+#^datecreatestring3[]
+#^tfilespec[]
+#^tcrypt[]
+#^cryptdocsample[]
+#^tnormalize[]
+#^xmltransformbyxdoc[]
+#^sergestrandef[]
+#^tstdin[]
+#^tfind[]
+#^calendar[]
+#^mimet[]
+#^cgit[]
+#^joinlimit[]
+#^tableclonelimit[]
+#^transparams[]
+#^sendtests[]
+#^wwrapperpass[]
+^badpos[]
+
$f.text+ +@sergestrandef[] +$sQuantity[ ] +^sQuantity.int(10) + +@xmltransformbyxdoc[] +$xdoc[^xdoc::set{^process{ + +
$f.text+ + +@tserge[] +^if(" 09 "){y} + +@datetest[] + $f[^file::stat[some.zip]] +Размер в байтах: $f.size
^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[]
+^for[i](1;12){
+ ^d.roll[month](-1) ^d.sql-string[]
+}
+
+@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{} 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[]
+^d.roll[day](+365*3+1) ^d.sql-string[]
+
+
+@rolls[]
+$d[^date::create(2002;4;4)]
+^d.sql-string[]
+^for[i](1;7){
+^d.roll[day](-1)
+^d.sql-string[]
+}
+
+$d[^date::create(2002;3;28)]
+^d.sql-string[]
+^for[i](1;7){
+^d.roll[day](+1)
+^d.sql-string[]
+}
+
+$d[^date::create(2002;12;3)]
+^d.sql-string[]
+^for[i](1;14){
+^d.roll[day](-1)
+^d.sql-string[]
+}
+
+$d[^date::create(2002;10;19)]
+^d.sql-string[]
+^for[i](1;14){
+^d.roll[day](+1)
+^d.sql-string[]
+}
+
+
+
+
+
@exceptions1[]
^try{
aaa
- ^throw[user;paf;is stupid]
+ ^throw[custom1;paf;is stupid]
}{
-$exception.handled(1)
-#^throw[$exception]
- type=$exception.type
- source=$exception.source
- file=$exception.file
- lineno=$exception.lineno
- comment=$exception.comment
+ ^if($exception.type eq custom1){
+# $exception.handled(1)
+ ^throw[$exception]
+ type=$exception.type
+ source=$exception.source
+ file=$exception.file
+ lineno=$exception.lineno
+ comment=$exception.comment
+ }
}
@locate_by_expr[]
@@ -144,12 +1067,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
@@ -741,10 +1665,12 @@ $abc[abc]
^abc.save[abc]
@calendar[]
-2001;11:
-$week_days[^date:calendar[rus](2001;11)]
+$year(2002)
+$month(8)
+${year}-${month}:
+$week_days[^date:calendar[rus]($year;$month)]
-^week_days.menu{^for[wday](0;7){^if($week_days.$wday){$week_days.$wday; ^; ^;} }
}
+^week_days.menu{^for[wday](0;6){^if($week_days.$wday){$week_days.$wday; ^; ^;} }=$week_days.week=
}
@thash[]