我想用引号字符解析分隔符分隔的值并转义以进行引用。
例如:a, "b""c""", d
-> 预计削减为三列 ( a
), ( b"C"
), ( d
) 假设逗号作为分隔符,quote 既是引号字符又是转义字符。
我也想支持多个分隔符和封闭字符。
例如: -> 如果我们同时使用逗号和用作分隔符a, "b""c"""|d
,则预计将减少为三列。|
另一个例子: -> 如果我们同时使用逗号和分隔符,将左包围作为右包围并作为转义符,a, <b\<c\>>|d
则预期将解析为三列。|
<
>
\
是否可以使用 JParsec 创建解析器组合器?
在花了一些时间使用 API 之后,我希望下面的代码可以工作,但它无法按预期解析上面的示例。
Parser<?> quote_content = Scanners.notAmong(rightEnclose).many();
Parser<?> quoted = Scanners.nestableBlockComment(Scanners.among(leftEnclose),
Scanners.among(rightEnclose), quote_content);
Parser<?> unquoted = Scanners.notAmong(delimiter + leftEnclose);
Parser<?> chunk = Parsers.or(escapedSequence(), unquoted);
Parser<?> all = chunk().many1().source().sepBy(Scanners.among(delimiter));
请建议是否可以使用 JParsec,有没有更好的选择?