parser

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

 

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

Re: Как минимум да :)

Никита Козин 30.08.2005 08:46

Еще полезный пост: http://www.parser.ru/forum/?id=42382

Я для отладки написал себе такой метод:
@print[v][temp]
^if(def $v){
	^if($v is table){^printTable[$v]}
	^if($v is hash){^printHash[$v]}
	^if($v is string || $v is int || $v is double){$v}
	^if($v is class){<u>класс</u>}
	^if($v is object){<u>объект</u>}
	^if($v is file){^printFile[$v]}
}
# end @print[]
Метод не идеален, причем далеко не идеален. Но переписывать лень, а для отладки пока хватает и этого.

Ну и вот для примера один из дочерних методов (также не идеален):
@printHash[hash;params][_keys;level]
^if($hash is hash){
	$order_direction[^if(def $params.direction){$params.direction}{asc}]
	$level(^params.level.int(0))
	$_keys[^hash._keys[]]
	^_keys.sort{$_keys.key}[$order_direction]
	$result[
	<ul style="list-style-type: none^;">
		^_keys.menu{
			<li style="color: #000000" style="padding: 0^;">
			<b>^$^if($level > 0){.}${_keys.key}^if($hash.[$_keys.key] is int){(}{[}</b>
			<font color="#999999">
				^if($hash.[$_keys.key] is hash){
					^printHash[$hash.[$_keys.key]][
						$.direction[$order_direction]
						$.level(^eval($level+1))
					]
				}{
					^print[$hash.[$_keys.key]]
				}
			</font>
			<b>^if($hash.[$_keys.key] is int){)}{]}</b>
			</li>
		}
	</ul>
	]
}
# end @printHash[]