File:  [parser3project] / parser3 / tests / 224.html
Revision 1.9: download - view: text, annotated - select for diffs - revision graph
Mon May 20 23:28:44 2024 UTC (2 years ago) by moko
Branches: MAIN
CVS tags: release_3_5_1, release_3_5_0, HEAD
@try-catch-comment added and used

@USE
224.p


@main[]
$h[^reflection:classes[]]
$hi[^h.intersection[
	$.hash[]
	$.env[]
	$.cookie[]
	$.table[]
	$.test[]
	$.test1[]
	$.test2[]
]]
$t[^hi._keys[]]
^t.sort{$t.key}
^t.menu{$t.key^if(def $hi.[$t.key]){ - $hi.[$t.key]}}[<br />]
<hr />

^do{$d[^reflection:create[date;create]]}
^do{$d[^reflection:create[date;calendar;1;2;3]]}
^do{$d[^reflection:create[date;now](-2;1)]}
^do{$d[^reflection:create[date;now](-2)]}

^do{$o[^reflection:create[test;create](-1)]}
^do{$o0[^reflection:create[test;create0]]}
^do{$o1[^reflection:create[test1;create1](1)]}
^do{$o2[^reflection:create[test2;create2]]}
<hr />

^reflection:class_name[$hash:CLASS]<br />
^reflection:class_name[$cookie:CLASS]<br />
^reflection:class_name[$env:CLASS]<br />
<hr />

^print[test;$o]
^print[test1;$o1]
^print[test2;$o2]
^print[date;$d]
^print[env;$env:CLASS]
^print[unknown]
<hr />

^test3:m[]
$o[^test3::create[]]
^o.m[]

$h[^reflection:fields[$o.CLASS]]
^h.foreach[k;v]{$k=$v}[, ]<br />

$h[^reflection:fields[$o]]
^h.foreach[k;v]{$k=$v}[, ]<br />
done.

@do[code]
^try-catch{
	$code
}
<br />

@print[class;o][m;k;v;h;i;t]
^do{
	$m[^reflection:methods[$class]]
	$t[^m._keys[]]
	^t.sort{$t.key}
	^t.menu{
		$k[$t.key]
		$v[$m.$k]
		$h[^reflection:method_info[$class;$k]]
		^@${k}[^if($v eq "native"){^if($h.min_params != $h.max_params){^h.min_params.int(0)-}^h.max_params.int(0)}{^for[i](0;^h._count[]-1){$h.$i}[^;]}]^if(def $h.call_type){ {$h.call_type}}^if(def $h.inherited){ {defined in $h.inherited}}
	}[<br />]
}
^if(def $o){
	^if($m){<br /><br />}
	'$class' object class name: '^reflection:class_name[$o]/^reflection:class_name[^reflection:class[$o]]'<br />
	'$class' object base class name: '^reflection:base_name[$o]/^if(^reflection:base[$o] is "void"){;^reflection:class_name[^reflection:base[$o]]}'<br />
}
<hr />


E-mail: