在 PetitParser2 中,如何匹配一组封闭的标记,例如月份名称?例如(在伪代码中)
[ :word | MonthNames anySatisfy: [ :mn | mn beginsWith: word ] ] asParser.
PPPredicateSequenceParser
似乎有可能,但您似乎必须提前知道字符串的大小。我想我可以这样做:
| monthRules |
monthRules := Array streamContents: [ :unamused: |
MonthNames collect: [ :e |
s nextPut: e asString asPParser.
s nextPut: (e first: 3) asPParser ] ].
^ PP2ChoiceNode withAll: monthRules
但我想知道是否有内置/直截了当的东西