parser

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

 

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

При чем тут усложнение?

Константин Моршнев 17.02.2003 11:29

Нормально - это когда функция возвращает один результат.
Для ситуаций с более чем одним результом существуют разные страндартные решение -

1. Возвращать int со статусом, остальные результаты возвращать через изменение параметров - в парсере (как и во многих языках) нельзя явно передавать параметры по ссылке, но по ссылке всегда передаются "сложные" типы, которые и можно изменять.

2. Возвращать сложный тип (объект, хеш). Хеш в парсере возвращать удобно:
было $a[$r1] ... $f[$r5], стало $result[ $.a[$r1] ... $.f[$r5] ]

3. ...

Но вообще конкретно к парсеру это имеет отдаленное отношение. :) Хотя в принципе в парсере (всвязи с тем, что он интерпретатор)
возможностей несколько больше: во-первых удобнее передавать код (обычно надо передавать ссылку на метод) и можно получить доступ к локальным переменным вызвавшего процедуру (тот самый $caller).