如何在PetitParserDart中向左或向右修剪

时间:2013-07-02 16:10:02

标签: dart trim petitparser

有一个trim()方法可以创建一个解析器来修剪两边的字符串。

如何创建一个只修剪左或右的?

1 个答案:

答案 0 :(得分: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的等效解析器。