parser

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

 

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

поправка

KLeN 22.10.2006 00:36 / 22.10.2006 01:44

черт ошибка в одной строчке была, не в том месте offset поставил

вот исправленный код:
$sParams[
key1[value1] key2[value2]
	key3[key4[value4] 
key5[value5]
]
	key6[value6]
]

$_tDub[^sParams.split[^]]]
^_tDub.append{^taint[^#0A]}
$_hParams[^getParams[]]
@getParams[name;value]
$result[
	^hash::create[
		^if(def $name && def $value){$.[$name][$value]}
		^while(def ^_tDub.piece.trim[start; 	
]){
			$_tTemp[^_tDub.piece.split[^[;h]]
			^_tDub.offset(1)
			$.[$_tTemp.0][^if(def $_tTemp.2){
				^getParams[$_tTemp.1;$_tTemp.2]
				^_tDub.offset(1)
			}{$_tTemp.1}]
		}
	]
]
думаю код не самый лучший хоть и работает, с удовольствием послушаю предложения об оптимизации