parser

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

 

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

К вопросу об улучшении парсерного цикла FOR

Sergei 30.11.2002 14:39

Уважаемый Александр (PAF) - как главный создатель Пасера, да и все остальные кто желает, чтобы сей замечательный язык стал ещё лучше!
Вопрос, который я хочу поднять, уже по-моему один раз поднимался на форуме, но всё же давайте ещё раз вернёмся к нему.
На мой взгляд парсерному циклу for на данный момент не достаёт тех возможностей, которые есть практчески во всех языках программирования (от Бейска до Си):
Недостаток №1: итератор работает только вперёд и шагом равным 1 (i++)
Недостаток №2: нет "exit for" (но если устранить 1-й недостаток, то 2-й можно будет реализовываться достаточно просто - можно будет делать итератор большим, чем конечное значение счётчка и всё получится)

Я понимаю, что сейчас всё это можно реализовать через while, но for получается какой-то "убогий" (сравните его с for-ом в Cи, там по сути вообще другие циклы не нужны, всё можно for-ом реализовать)
Было бы хорошо, если бы в следующих версиях Парсера мы увидели "ВСЕМОГУЩИЙ" парсерный for.

И ещё, я как-то написал метод @min_max[a;b;min_or_max] и делал примерно такой вызов ^min_max[44;12;min] (использовал синтаксис как описано в документации).
Misha мне посоветовал сделать лучше так:
^min_max(44;12)[min] - это действительно лучше (получается более удобочтаемый код),
а оказывается можно писать даже и так ^min_max(44)(12)[min]
А в документации даже намёка нет на такие замечательные возможности парсерного синтаксиса. Специально просматривал, думал может где-то пропустил - ничего не нашёл, даже намёка. Надо бы в доку эту полезную штуковину прописать!