parser

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

 

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

Ответ

G_Z 10.03.2016 16:45

@main[]
$h[^hash::create[]]
^parseData[$h;name.a.b.c;value1]
^parseData[$h;name.a.b.d;value2]
^parseData[$h;name0;value]
^parseData[$h;;value]

^dstop[$h]


@parseData[data;field;value][locals;result]
$parts[^field.split[.]]

^if($parts > 1){
	^parts.menu{
		$field[$parts.piece]

		^if(^parts.line[] < $parts){
			^if(!^data.contains[$field]){
				$data.$field[^hash::create[]]
			}

			$data[$data.$field]
		}{
			$data.$field[$value]
		}
	}
}{
	$data.$field[$value]
}