parser

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

 

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

лучше я приведу полный код, а то до вечера def'ы будем обсуждать :)

Dima 30.10.2004 16:59

@doProc[id][pname;pf;pbody]
# если еще не процессили
^if(!$proc_cont.[$id].proc_body_loaded){
		$pname[proc_${id}_main]

		^try{
				$pf[^file::load[text;$SITE_ROOT_DIR/$proc_cont.[$id].filename]]
				$pbody[^taint[as-is][$pf.text]]
				^if(^pbody.pos[@main^[^]] >= 0){
						^rem{*** если есть метод main - меняем на свой ***}
						$pbody[^pbody.match[\@main\^[\^]][g]{@${pname}^[^]}]
				}{
						^rem{*** еcли нет - приделаываем свой в начало ***}
						^if(def $pbody){
								$pbody[@${pname}^[^] ^#0A$pbody]
						}
				}
		}{
				^rem{*** х.з. ***}
				$exception.handled(1)

				$pbody[]
				^memory:compact[]
		}

		^rem{*** процессим ***}
		^if(def $caller.self){
				^process[$caller.self]{$pbody}[$.file[$SITE_ROOT_DIR/$proc_cont.[$id].filename]]
		}{
				^process{$pbody}[$.file[$SITE_ROOT_DIR/$proc_cont.[$id].filename]]
		}

		^rem{*** запоминаем ссылку на junction и то, что уже процессили файл ***}
		^proc_cont.[$id].add[
				$.proc_body_loaded(1)
				$.main[$$pname]
		]
}

^if($proc_cont.[$id].main is "junction"){
		$result[^trim[^proc_cont.[$id].main[]]]
}{
		$result[]
}
ничего не возвращает - $result[], т.е. $proc_cont.[$id].main не junction, почему?