Как просто обрезать влево или вправо в PetitParserDart

E сть trim() метод, который создаст парсер для обрезки строки с обеих сторон.

Как создать тот, который просто обрезает влево или вправо?

1 ответ

Решение

Следующие помощники создают парсеры, которые обрезаются всеми возможными способами:

Parser trim(Parser parser, [Parser trimmer]) {
  if (trimmer == null) trimmer = whitespace();
  return trimmer.star().seq(parser).seq(trimmer.star()).pick(1);
}

Parser trimRight(Parser parser, [Parser trimmer]) {
  if (trimmer == null) trimmer = whitespace();
  return parser.seq(trimmer.star()).pick(0);
}

Parser trimLeft(Parser parser, [Parser trimmer]) {
  if (trimmer == null) trimmer = whitespace();
  return trimmer.star().seq(parser).pick(1);
}

Выше функция trim приводит к эквивалентному парсеру встроенной функции Parser.trim,

Другие вопросы по тегам