parser

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

 

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

да, некая проблема есть

Александр Петросян (PAF) 09.11.2004 11:01

происходит следующее: code-junction взрывается в руках.
только его взяли в руки, он вычисляется. ещё раз взяли в руки, ещё раз вычисляется.

method-junction так себя не ведёт: ему нужны параметры для вызова.

поэтому code-junction можно только использовать только после вычисления.
ясно, что после вычисления тип уже не junction.

рассмотрим пример:
@main[][i]
$i(0)
^mywhile($i<10){
  $i
  ^i.inc[]
}
@mywhile[expr;code]
^while($expr){$code}
тут в while ушёл code-junction.
не обращайте внимание на скобки. и круглые и фигурные скобки создают code-junction.

соответственно в while надо обязательно code-junction вычислять.
и parser не знает, что за оператор будет применён к выражению (и будет ли применён вообще), parser достаёт значение code-junction и вычисляет его сначала, потом остальное.

красивого решения не вижу.