Как просто обрезать влево или вправо в 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
,