Так «решил» не автор, а комбинатор Many. Наткнувшись на невалидный question, он прекращает парсинг и делает откат (недетерминированный парсер же). Причём, считая его успешным. Ему-то всё равно сколько question'ов выбрать. а дальше на этот невалидный question натыкается парсер, ожидающий "]". Вот он и валится, и вместе с ним вся section.
А поскольку sections тоже объединены комбинатором many, то результат будет: «спарсили успешно, но ещё остались входные данные». И никакого указания на точное место ошибки.
Без перестроения грамматики это не вылечить. А если менять грамматику — вся прелесть комбинаторов исчезнет.
Дело в том, что у комбинаторных парсеров такие ошибки — это штатная ситуация. Вот если сделать синтаксическую ошибку в одном из question, то парсер будет ругаться на Section в целом.
У меня были ситуации когда надо было поставить систему на компьютер у которого не было ни CD/DVD ни USB. Я снял с него диск и подключил на другой машине в virtualbox'е. Установил Ubuntu и просто вернул диск на место.
1. На десктопе работают десятки программ. Если они перестанут шарить ресурсы (код), то никакой памяти не хватит. Представьте, что переключатель раскладок и апплет погоды займут не 300KB, а 30MB. Для пользовательских данных памяти не останется вообще.
2. Я в Dalvik не специалист, но там не очень хорошо с reflection. Жертва не малая.
3. По-сути: сейчас ничего подобного нет.
А поскольку sections тоже объединены комбинатором many, то результат будет: «спарсили успешно, но ещё остались входные данные». И никакого указания на точное место ошибки.
Без перестроения грамматики это не вылечить. А если менять грамматику — вся прелесть комбинаторов исчезнет.
А для eDSL очень часто можно использовать YAML.
Перечитайте мой первый комментарий. Именно это я и пытался донести.
1. На десктопе работают десятки программ. Если они перестанут шарить ресурсы (код), то никакой памяти не хватит. Представьте, что переключатель раскладок и апплет погоды займут не 300KB, а 30MB. Для пользовательских данных памяти не останется вообще.
2. Я в Dalvik не специалист, но там не очень хорошо с reflection. Жертва не малая.
3. По-сути: сейчас ничего подобного нет.