parser

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

 

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

пока удовлетворился таким:

Larrikin 31.07.2007 13:52 / 31.07.2007 13:53

вместо x1 и x2 сделал x и y
$wrong[
	^func.match[
		[^^xy\d\+\-\*\/]
	][ixg']
	]
^if($wrong > 0 ){
	<br />
	недопустимый символ в формуле:
	$wrong.match
	<br />
}{
# заменяем X и Y на 1
	$func[^func.match[x|y][ig]{1}]
	^try{
		$func(^process{^^eval(^untaint{$func})})
		^oSql.void{
			INSERT
			INTO dataname (func)
			VALUES ('$form:dataname')
  		}
	   Добавлен набор "$form:dataname"
	}{
		^if(
			$exception.type eq number.format 
			|| $exception.type eq parser.runtime 
			|| $exception.type eq parser.compile
		){
			$exception.handled(true)
			Ошибка в формуле,
			<pre>$exception.comment</pre>
			функция должна состоять из: 'x', 'y', цифр и знаков '+', '-', '*', '/'
		}{
			^if($exception.type eq number.zerodivision){
				$exception.handled(true)
				Деление на ноль!
				<pre>$exception.comment</pre>
				Есть попроще функции? лень лечить деление...
			}{
				^if($exception.type eq sql.execute){
					$exception.handled(true)
					Ошибка создания набора данных:
					<pre>$exception.comment</pre>
				}
			}
		}
	}
}