有一种trim()
方法可以创建一个解析器来修剪两边的字符串。
如何创建一个只修剪左边或右边的?
以下帮助程序创建以所有可能方式进行修剪的解析器:
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
。