@main[]
^print[^o1::create[]]
^print[^o2::create[]]
allowed: ^json:string[^hash::create[non-blank string]]
@print[o][v]
Class: $o.CLASS_NAME
expression: ^eval($o)
$v[^hash::create[$o]]
hash: $v.key
$v[^table::create[$o]]
table: $v.name
def: ^if(def $o){true}{false}
bool: ^if($o || 0){true}{false}
double: ^eval($o + 0)
@CLASS
o1
@create[]
@GET[mode]
^switch[$mode]{
^case[expression]{ $result(-1) }
^case[hash]{ $result[$.key[hash-value]] }
^case[table]{ $result[^table::create{name^#0Atable-value}] }
^case[def]{ $result(true) }
^case[bool]{ $result(false) }
^case[double]{ $result(255) }
^case[DEFAULT]{ ^throw[;unsupported mode '$sMode'] }
}
@CLASS
o2
@create[]
@GET[mode]
^switch[$mode]{
^case[expression]{ $result(0) }
^case[hash]{ $result[$.key[hash-value]] }
^case[table]{ $result[^table::create{name^#0Atable-value}] }
^case[def]{ $result(false) }
^case[bool]{ $result(true) }
^case[double]{ $result(32) }
^case[DEFAULT]{ ^throw[;unsupported mode '$sMode'] }
}