parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

круто [updated]

Азат Разетдинов 09.08.2007 16:48 / 09.08.2007 23:06

@CLASS
Hash

###########################################################################
# operator look over all hash elements with specified order
@foreach[hHash;sKeyName;sValueName;jCode;sSeparator;jOrder;sDirection][tKey;jEach;jExpression]
^if($hHash is "hash"){
	^if(!def $sDirection){$sDirection[asc]}
	$tKey[^hHash._keys[]]
	$jEach{^if(def $sKeyName){$caller.[$sKeyName][$tKey.key]}^if(def $sValueName){$caller.[$sValueName][$hHash.[$tKey.key]]}}
	^try{
		$jExpression{${jEach}$jOrder}
		^tKey.sort($jExpression)[$sDirection]
	}{
		$exception.handled(1)
		^tKey.sort{${jEach}$jOrder}[$sDirection]
	}
	$result[^tKey.menu{${jEach}$jCode}[$sSeparator]]
}{
	^throw[Hash;foreach;Variable must be hash]
}
#end @foreach[]