У меня есть некоторый опыт написания парсеров с ANTLR, и я пытаюсь (для самообучения-:)) перенести один из них на PEG. (Синтаксический анализ грамматики выражений).
Когда я пытаюсь прочувствовать идею, одна вещь кажется мне громоздкой, до такой степени, что я чувствую, что что-то упустил:Как поступать с пробелами.
В ANTLR обычным способом обработки пробелов и комментариев было размещение токенов в скрытом канале, но в грамматиках PEG этап токенизации отсутствует. Принимая во внимание такие языки, как C или Java, где комментарии разрешены почти везде, хотелось бы сразу «скрыть» комментарии, но поскольку комментарии могут иметь семантическое значение (, например, при создании документации по коду, диаграмм классов и т. д.), отбрасывать их просто так не хотелось бы.
Итак, есть ли способ справиться с этим?