如何在PetitParserDart中向左或向右修剪
有一个如何在PetitParserDart中向左或向右修剪,dart,trim,petitparser,Dart,Trim,Petitparser,有一个trim()方法,它将创建一个解析器来修剪两侧的字符串 如何创建一个只修剪左侧或右侧的解析器?以下帮助程序创建以所有可能方式修剪的解析器: Parser trim(Parser parser, [Parser trimmer]) { if (trimmer == null) trimmer = whitespace(); return trimmer.star().seq(parser).seq(trimmer.star()).pick(1); } Parser trimRigh
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
生成与内置函数解析器等效的解析器。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
等效的解析器