--- parser3/src/www/htdocs/Attic/index.html 2001/03/29 17:44:39 1.80
+++ parser3/src/www/htdocs/Attic/index.html 2002/01/15 13:18:43 1.523
@@ -1,134 +1,826 @@
@auto[]
-!!$html-typo[^table:set{user html comment
-<< «^; длинные user вперёд
->> »^;
-\n\n
!эти есть в таблице по умолчанию
-\n
!но т.к. заменяем, надо повторить.
-< <^; !можно этим воспользоваться,
-> >^; !и что-то сделать ДО обычных замен
-" "^; !например из << и >>
-& &^; !сделать ёлочки-кавычки.
-_  ^;
-^#AB «^; windows коды ёлочек
-^#BB »^; windows коды ёлочек
-(c) ©^;
-^#A9 ©^; windows (c)
-}]
-
-@dump[t]
-#^t.menu{$n
}
-
-@func[n]
-$n
-@twop[a;b]
-($a,$b)
+$request:charset[windows-1251]
+$response:charset[windows-1251]
+$response:content-type[$.value[text/html]$.charset[$response:charset]]
+
@main[]
-$a[vasya,fedya,kolya]
-^^"$a".lsplit[,]=$as[^a.lsplit[,]]$as.0|$as.1|$as.2|$as.3
-^^"$a".rsplit[,]=$as[^a.rsplit[,]]$as.0|$as.1|$as.2|$as.3
-^^a.pos(sy]="^a.pos[sy]"
-^^a.pos[zsy]="^a.pos[zsy]"
-^^a.left(3)="^a.left(3)"
-^^a.right(3)="^a.right(3)"
-^^a.mid(1;3)="^a.mid(1;3)"
-
-^twop[a;]
-^$request:browser.type=$request:browser.type
-^$request:browser.version=$request:browser.version
-
-$tf[^file:load[test.zip;abc.zip]]
-^$tf.name=$tf.name
-^$tf.size=$tf.size
-^$tf.mime-type=$tf.mime-type
-^$tf.text:
-$tf.text
-
-^file:find[test.cfg]
-^file:find[tes.cfg]{not found}
-
-
-$t[^table:set{n
-3
-01.3
-1.2
-2
-}]
-#$t{^locate[n;2z]^found{$n}{not found}}
-#$t{^locate[n;3]^found{found:$n}{not found}}
-^$t:
-^dump[$t]
-#^t.sort($n)
-^^t.sort(^$n):
-^dump[$t]
-#^t.sort{^:func($n)}
-^^t.sort{^^:func(^$n)}:
-^dump[$t]
-#^t.sort{$n}
-^^t.sort{^$n}:
-^dump[$t]
-#^t.sort{$n}[desc]
-^^t.sort{^$n}[desc]:
-^dump[$t]
-
-
-^if(-f index.html){y}{n}
-^taint[html-typo;не знаю
-я ничего
-
-<<слово длинное>>
-
-(c) by Я
-]
-$t[^table:load[/test.cfg]]
-^process[@b[]
-f
-]
-^b[]
-
-^$t.a=$t.a
-^t.offset[2]
-#$r[^t.record[]]
-#^$r.a=$r.a
-
-^$request:uri=$request:uri
-^$env:PATH_INFO=$env:PATH_INFO
-^$env:REMOTE_ADDR=$env:REMOTE_ADDR
+#^xpath[]
+#^ttablesetlang[]
+#^mail3[]
+#^ttime[]
+#^tupper[]
+#^treplace[]
+^xslt2[]
+#^tcache2[]
+#$ORIGINS(1)
+#$t[^table::set{a b} ^table::set{c d}]
+#^ttaintuntaint[]
+#^tappend2[]
+#^badvsnprintf[]
+#^badoracequoting[]
+#^badconstructors[]
+#^xloadwrongtable[]
+#^xsetwrongtable[]
+#^if($form:test){y}{n}
+#^tablecolumnerror[]
+#^roll[]
+#^cookie2[]
+#^tableset[]
+#^math:PI.format{%.30f}
+#^xchildren[]
+#^thashforeach3[]
+#^thashforeach2[]
+#^thashforeach[]
+#^thashdelete[]
+#^connect[mysql://user:pass@cd.rinet.ru/db]{^void:sql{z} }
+#^tappend[]
+#^sappend[]
+#^eval(10\3)
+#^tform[]
+#^formattest[]
+#^filelist[]
+#^connect[mysql://user:pass@host]{ }
+#^безнадёжна_попытка_поправить_непоправимое[]
+#^tcache[]
+#^thashfileexp[]
+#^tcounter[]
+#^tablehash[]
+#j^hashfile[]
+#^formclass[]
+#^hren[]
+#^domedit[]
+#^domxslt[]
+#^lsplit2[]
+#^faceesize[]
+#^imageresize[]
+#^ifassignhash[]
+#^tintdefault[]
+#$response:status[404]
+#^ifpasshash[]
+#^movedir[]
+#^replace[]
+#^set[]
+#^hash[]
+#$t[^methresult[]] ->$t
+#^terror[]
+#^ssave[]
+#^calendar[]
+#^thash[]
+#^tdef[]
+#^ford[]
+#^tif[]
+#^image[]
+#^mail2[]
+#^cookie[]
+#^response[]
+#^regexp2[]
+#^ttablerem[]
+#^pcre[]
+#^regexp[]
+#^mail[]
+#^exec[]
+#^fori[]
+#^tconnect[]
+#^xslt[]
+#^xml[]
+#^header[]
+
+OK
+
+@xpath[]
+$xdoc[^xdoc::set{
+привет
+}]
+#^show-xdoc2[$xdoc]
+$node[^xdoc.selectSingle[/document/block/p]]
+^if(def $node){
+ ^if($node is string){
+ $node
+ }{
+ ^if($node is hash){
+ ^node._count[]
+ }{
+ $node.nodeType
+ }
+ }
+#$node.firstChild.nodeValue
+}{
+ node not found
+}
+
+
+@ttablesetlang[]
+$a-tab-b[a b
+1 2]
+
+$t[^table::set{$a-tab-b}]
+=$t.a=
+
+
+$t[^table::set[nameless]{^taint[$a-tab-b]}]
+=$t.0=
+
+
+$t[^table::set{^untaint{^taint[$a-tab-b]}}]
+=$t.a=
+
+#^t.append{1 2}
+
+@mail3[]
+^mail:send[
+ $.from[Александр Петросян ]
+ $.to[Александр Петросян ]
+ $.subject[проверка4]
+ $.body[
+ $.text[
+ $.content-type[$.value[text/plain] $.charset[windows-1251]]
+ $.body[проверка]
+ ]
+ $.attachment[
+ $.value[^file::load[text;index.html]]
+ $.file-name[привет всем.html]
+ ]
+ ]
+]
+
+
+@ttime[]
+$now[^date::now[]]
+$now.hour:$now.minute
+
+@tupper[]
+$t[abcABCабвАБВ]
+$t
+^t.upper[]
+
+@treplace[]
+$copy-paste-clean[^table::set{a b
+. _
+, _
++ _
+& _
+? _
+= _}]
+
+$cache_key[^taint[в.а,с+я]&был?тут=недавно.cache]
+# почему-то этот replace роняет апач в 500 ошибку :(
+#^cache_key.replace[$copy-paste-clean]
+$test[abc]
+^test.save[$cache_key]saved
+$cache[^file:list[.;\.cache^$]]
+^file:delete[$cache_key]deleted($cache.name)
+
+
+
+@xslt2[]
+$xdoc[^xdoc::set{
+привет
+}]
+^show-xdoc2[$xdoc]
+^show-xdoc2[^xdoc.transform[templates/_document.xslt]]
+
+
+
+@tcache2[]
+^cache[$DB_HOME/keyключ](2){
+ ^math:random(100)
+}
+
+@ttaintuntaint[]
+^taint[html][
+
+]zz
+
+^untaint[html]{1^taint[ ]2 3}
+
+
+@tappend2[]
+$t[^table::set{a b}]^t.append{1 2}$t.a
+
+@badvsnprintf[]
+^connect[zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz]{
+}
+
+
+@badoracequoting[]
+$SQL.connect-string[oracle://webspb:webpwd@mts?NLS_LANG=RUSSIAN_AMERICA.CL8MSWIN1251&NLS_DATE_FORMAT=YYYY-MM-DD HH24:MI:SS]
+^connect[$SQL.connect-string]{
+^void:sql{delete from paf}
+^void:sql{insert into paf values (1, '$form:text')}
+$paf[^table::sql{select * from paf}]
+^paf.menu{
+ $paf.id: ^untaint{$paf.block}
+
+}
+
+
^rem{
-$response:body[]
-$response:location[http://parser3/123]
+$news[^table::sql{select description from news}[$.limit(3)]]
+^news.menu{
+ ^untaint{$news.description}
+
}
+
+}
+
+$tables[^table::sql{select table_name from user_tables}]
+^tables.menu{
+$tables.table_name
+}
+
+}
+
+$env:PATH
+
+@badconstructors[]
+$bred[^string::length[]]
+$bred[^response::clear[]]
+$bred[^int::int[]]
+
+
+@xloadwrongtable[]
+$constr[^xdoc::load[wrongtable.xml]]
+^show-xdoc2[$constr]
+
+@xsetwrongtable[]
+$constr[^xdoc::set{
+^untaint[as-is]{$constructor}}]
+
+
+@tablecolumnerror[]
+$t[^table::set{a}]
+$t.$a
+
+@roll[]
+#$date[^date::set(1970;1;2)]
+#^date.roll[month](-1)
+$date[^date::set(2038;1;1)]
+^date.roll[month](+1)
+$date.year $date.month $date.day
+
+@cookie2[]
+#=$cookie:clientType[$.value[test]]=
+=$cookie:clientType=
+
+@tableset[]
+$a[^table::set{a
+1
+2}]
+^eval(100\$a)
-
-^^auto_test[]:
-
-^auto_test[]
-
-
-^${cookie:вот}=${cookie:вот}?
-^$request:query=$request:query
-^$request:uri=$request:uri
-
+
+
+@formattest[]
+$size(15.124)
+
+^size.format{%.2f}
+
+@filelist[]
+$html[^file:list[.;\.html^$]]
+^html.menu{
+ $html.name
+}
+
+
+@безнадёжна_попытка_поправить_непоправимое[]
+$dom_from_disk[^xdoc::load[input.xml]]
+$dom_created_in_air[^xdoc::create[doc]]
+^dom_created_in_air.documentElement.appendChild[^dom_from_disk.documentElement.cloneNode(1)]
+^show-xdoc2[$dom_created_in_air]
+
+
+@tcache[]
+#^hashfile:clear[cache]
+$code[^hashfile::open[$DB_HOME;cache]]
+^code.cache[key](2){
+ ^math:random(100)
+# ^code.delete[]
+}
+
+@thashfileexp[]
+$hf[^hashfile::open[$DB_HOME;hashfile]]
+$hf.paf[$.value[крут] $.expires(3)]
+paf=$hf.paf
+
+^hf.foreach[key;value]{
+ $key=$value
+}
+
+$hash[^hf.hash[]]
+=$hash.paf=
+
+
+@tcounter[]
+^tcounterone[$DB_HOME]
+other root:
+^tcounterone[${DB_HOME}2]
+again, first:
+^tcounterone[$DB_HOME]
+
+@tcounterone[DB_HOME]
+$counter[^hashfile::open[$DB_HOME;counter]]
+#^counter.clear[]
+^counter.transaction{
+# $counter.value(10)
+ $counter.value($counter.value+1)
+# ^counter.delete[value]
+ $counter.value
+}
+
+^rem{
+$hash[^counter.hash[]]
+=$hash.value=
+
+}
+
+@tablehash[]
+$productList[^table::set{id name
+1 носки
+2 валенки
+3 ушанка
+}]
+
+#скажем, у первого дилера
+$firstPriceList[^table::set{id price
+1 0.3
+3 1000
+}]
+
+$firstPriceHash[^firstPriceList.hash[id]]
+
+^productList.menu{
+ продукт "$productList.name" | цена у first: $firstPriceHash.[$productList.id].price
+}
+
+
+@hashfile[]
+$hf[^hashfile::assign[hashfile]]
+#$hf.paf[крут5]
+paf=$hf.paf
+
+@formclass[]
+^$form:CLASS.a=$form:CLASS.a
+
+@domdata[]
+^if(1){
+# $a{^hren[]}
+}
+$a
+$xdoc[^xdoc::create[doc]]
+$doc[$xdoc.documentElement]
+$name[^doc.appendChild[^xdoc.createElement[name]]]
+$text[^name.appendChild[^xdoc.createTextNode[петросян&coz]]]
+^untaint[as-is]{=$text.nodeValue=}
+
+@domedit[]
+^domdata[]
+#$paf.nodeName
+#$doc.documentElement.nodeName
+
+^show-xnode1[$xdoc.documentElement;0;1]
+
+^show-xdoc2[$xdoc]
+
+
+@domxslt[]
+^domdata[]
+^show-xdoc2[^xdoc.transform[global.xsl;$.param1[123/]]]
+
+
+@lsplit2[]
+$path[/optics/]
+$pathTable[^path.lsplit[/]]
+^pathTable.menu{
+ ^if(def $pathTable.piece){
+ =$pathTable.piece=
+ }
+}
-@default[test;def]
-$result[^if(^test.length[]){$test}{$def}]
-@exception[origin;source;comment;type;code]
-
-
-ERROR:
-^if(def $source){$origin '$source'}
-${comment}.
-^if(def $type){type=$type}
-^if(def $code){code=$code}
-
-@auto_test[]
-^BASE.auto_test[]
-${request:uri}!
\ No newline at end of file
+@faceesize[]
+$k(2)
+$pict[^image::load[paf.gif]]
+$small[^image::create($pict.width/$k;$pict.height/$k)]
+^small.copy[$pict](0;0;$pict.width;$pict.height;0;0;$small.width;$small.height;250)
+$response:body[^small.gif[]]
+
+@imageresize[]
+$k(2)
+$pict[^image::create(400*$k;200*$k)]
+$pict.line-width(2)
+^pict.arc($pict.width/2;$pict.height/2;$pict.width-1;$pict.height-1;0;360;0x000000)
+^pict.arc($pict.width/2;$pict.height/2;$pict.width-20;$pict.height-20;0+20;360-20;0xff0000)
+#^pict.arc($pict.width/2;$pict.height/2;$pict.width;$pict.height;0;360;0xff0000)
+^pict.circle($pict.width/2;$pict.height/2;$pict.height/2-20;0x0000ff)
+^pict.arc($pict.width/2;$pict.height/2;$pict.height-26;$pict.height-26;0+20;360-20;0xff0000)
+$response:body[^pict.gif[]]
+
+#$small[^image::create($pict.width/$k;$pict.height/$k)]
+#^small.copy[$pict](0;0;$pict.width;$pict.height;0;0)
+#^small.copy[$pict](0;0;$pict.width;$pict.height;0;0;$small.width;$small.height;0)
+
+#$response:body[^small.gif[]]
+
+
+@tintdefault[]
+#$abc[abc]
+$abc[33]
+^abc.int[z]
+#^abc.int(123)
+
+@ifassignhash[]
+$h[^if(1){$.a(1);$.a(2)}]
+$h.a
+
+@ifpasshash[]
+$a[$.e[a]]
+$b[$.e[b]]
+^ifpasshashdest[^if(1){$a;$b}]
+#$x[^if(1){$a}{$b}]
+#^ifpasshashdest[$x]
+
+@ifpasshashdest[p]
+$p.e
+
+@movedir[]
+^file:move[a;deeper/a]
+
+@replace[]
+$a[12^;3]
+^a.replace[^table::set{from to
+2^; !
+}]
+
+
+@set[]
+^setdata[]
+^a.add[$b]
+add:$a.3
+
+^setdata[]
+^a.sub[$b]
+sub2:$a.2
+sub1:$a.1
+
+^setdata[]
+$c[^a.union[$b]]
+union3:$c.3
+union2:$c.2
+
+^setdata[]
+$c[^a.intersection[$b]]
+intersection3:$c.3
+intersection2:$c.2
+
+^setdata[]
+intersects:^if(^a.intersects[$b]){y;n}
+intersects2:^if(^a.intersects[ ]){y;n}
+
+
+
+
+@setdata[]
+$a[$.1[a1] $.2[a2]]
+$b[ $.2[b2] $.3[b3]]
+
+
+@hash[]
+$h[^hash::create[$._default[123]]]
+$h.paf[not kretin]
+$h.paf
+=$h.that=
+
+@methresult[]
+$result[^table::set{1}]
+
+@terror[]
+^error[method z must be called with z]
+
+@syntax1[]
+#^a[^b]
+
+@syntax2[]
+#^a[
+
+@ssave[]
+$abc[abc]
+^abc.save[abc]
+
+@calendar[]
+2001;11:
+$week_days[^date:calendar[rus](2001;11)]
+
+^week_days.menu{^for[wday](0;7){^if($week_days.$wday){$week_days.$wday; ^; ^;} }
}
+
+
+@thash[]
+$table[^table::set{id name age
+1 paf 278
+2 пиф 234
+}]
+$hash[^table.hash[id;^table::set[nameless]{id
+name}]]
+$hash.2.id $hash.2.name $hash.2.age
+
+@tdef[]
+$s[0]
+if 0=^if($s){}{n}
+if def 0=^if(def $s){y}{}
+
+
+@ford[]
+^for[i](0;5){$i}{($i)}
+
+@tif[]
+^if[def]{y;n}
+
+@image[]
+$pict[^image::create(400;200)]
+^pict.arc($pict.width/2;$pict.height/2;$pict.width-1;$pict.height-1;0;360;0x000000)
+^pict.arc($pict.width/2;$pict.height/2;$pict.width-10;$pict.height-10;0+10;360-10;0xff0000)
+#^pict.arc($pict.width/2;$pict.height/2;$pict.width;$pict.height;0;360;0xff0000)
+^pict.circle($pict.width/2;$pict.height/2;$pict.height/2-10;0x0000ff)
+^pict.arc($pict.width/2;$pict.height/2;$pict.height-26;$pict.height-26;0+10;360-10;0xff0000)
+$response:body[^pict.gif[]]
+
+
+
+@mail2[]
+^mail:send[
+ $.content-type[$.value[text/plain] $.charset[windows-1251]]
+ $.from[Александр Петросян ]
+ $.to[Александр Петросян ]
+ $.subject[проверка]
+ $.body[проверка]
+]
+
+@cookie[]
+$env:HTTP_COOKIE
+
+#$cookie:переменная[test тест ТЕСТ2]
+=$cookie:переменная=
+#$cookie:переменная2[test тест ТЕСТ3]
+=$cookie:переменная2=
+=$cookie:CLASS.переменная2=
+
+@response[]
+#^if($form:reload){
+ $response:refresh[$.value[0] $.url[./t.html?uri=$env:SERVER_NAME]]
+#}
+
+@xslt[]
+^xdata[]
+$transformed[^xdoc.transform[global.xsl;$.param1[123/]]]
+^show-xdoc2[$transformed]
+
+@regexp2[]
+$s[ select]
+$s[^s.match[^^\s*][]{!}]
+$s
+
+@header[]
+$response:refresh[
+ $.value[0]
+ $.url[http://design.ru?a=^taint[123]]
+]
+
+@ttablerem[]
+$table[^table::load[a.cfg]]
+^table.menu{$table.a}
+
+@tconnect[]
+^connect[mysql://test:test@paf/test?charset=cp1251_koi8&compress=1&timeout=1&named_pipe=1]{
+$tables[^table::sql{show tables}]
+#$cols[^tables.columns[]]
+#$cols.column
+^tables.menu{
+ $tables.[Tables_in_test]
+}
+}
+
+@pcre[]
+$s[1 2]
+^s.match[\s;ig]{!}
+#^s.match[\d;ig]{!}
+
+
+@regexp[]
+$s[abcАБВ]
+^if(^s.match[б][i]){y}{n}
+
+@mail[]
+#$ORIGINS(1)
+^mail:send[
+ $.from[paf@design.ru]
+ $.to[paf@design.ru]
+ $.body[1
+
+ 2
+
+
+ 3]
+]
+
+@exec[]
+$a[^file::exec[fc.exe;;a;b]]
+$a.status|$a.stderr
+
+@fori[][i]
+^for[i](1;3){... =$i= ...}
+
+@xdata0[]
+#$response:content-type[$.value[text/html] $.charset[windows-1251]]
+$xdoc[^xdoc::set{
+
+
+
+ P«^;AF B
+
+
+ ПИФ^taint[&]
+
+
+}]
+
+@xdata[]
+#$response:content-type[$.value[text/html] $.charset[windows-1251]]
+$xdoc[^xdoc::set{^process{
+
+
+
+ P«^;AF B
+
+
+ ПИФ^taint[&]
+
+
+}}]
+
+@xml[]
+^xdata[]
+
+^show-xdoc2[$xdoc]
+#^show-xnode1[$xdoc]
+$people[^xdoc.select[*/man]]
+#^show1[]
+^show-xnodes1[$people]
+#^people.0.owner.hren[]
+
+^show-xnode1[^xdoc.selectSingle[*/man[2]/name];0;1]
+
+by id:
+^show-xnode1[^xdoc.getElementById[1];0;1]
+
+
+@show1[array]
+^for[i](0;^array._count[]-1){
+ $x[$array.$i]
+ $x.firstChild.nodeValue:
+ $pattributes[$x.parentNode.attributes]
+ ^if(^pattributes._count[]){
+ $pattributes.id.name=$pattributes.id.nodeValue
+ }
+
+}
+
+@show-xnodes1[array][i]
+^for[i](0;^array._count[]-1){
+ ^show-xnode1[$array.$i;0;1]
+}
+
+@show-xnode1[x;level;single][l]
+^if(def $x){
+ ^for[l](0;$level-1){ ^; ^; ^; ^;}
+ ^if($x.nodeType == $xnode:ELEMENT_NODE){
+ <^;$x.nodeName
+ $pairs[$x.attributes]
+ ^if(def $pairs){
+ $names[^pairs._keys[]]
+ ^names.menu{ $names.key="$pairs.[$names.key].nodeValue"}
+ }
+ >^;
+ }{
+ [$x.nodeType]
+ }
+
+ ^if(def $x.nodeValue){$x.nodeValue}
+ ^show-xnode1[$x.firstChild]($level+1)
+ ^if(!$single){
+ ^show-xnode1[$x.nextSibling]($level)
+ }
+
+ ^if($x.nodeType == $xnode:ELEMENT_NODE){
+ ^for[l](0;$level-1){ ^; ^; ^; ^;}<^;/$x.nodeName>^;
+ }
+}
+
+@show-xdoc2[xdoc]
+^rem{
+^xdoc.save[out/save.xml;
+# $.encoding[windows-1251]
+ $.method[xml]
+]
+$file[^xdoc.file[
+# $.encoding[windows-1251]
+ $.method[html]
+]]
+^file.save[text;out/save_file.html]
+}
+#$response:body[^xdoc.file[ $.media-type[text/paf] ]]
+^taint[html][^xdoc.string[
+# $.method[html]
+# $.encoding[utF-8]
+# $.omit-xml-declaration[yes]
+# $.standalone[no]
+# -$.doctype-public[-//W3C//DTD XHTML]
+# -$.doctype-system[/a/b/c/]
+# $.indent[yes]
+# $.media-type[text/paf]
+]]
+