次のように指定された文法トークンがあります。
list_value = Suppress(oneOf("[ (")) + Group(
delimitedList(string_value | int_value))("list") + Suppress(oneOf("] )"))
ただし、これにより明らかに可能になります(foo, bar]
リストの開始文字と終了文字が一致する必要があることを強制するにはどうすればよいですか?
リストを2つのルールから選択します。1つは括弧用、もう1つは角かっこ用です。pyparsingをご利用いただきありがとうございます。それはいいですね。あなたの質問に対する私の答えは次のとおりです。
delim_value = Group(delimitedList(string_value | int_value))("list")
list_value = Or( (Suppress("[") + delim_value + Suppress("]"),
Suppress("(") + delim_value + Suppress(")")) )