2013-07-02 64 views

回答

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

相關問題