わかりました、次の条件で単純なパーサーを作成しようとしています。
d = {
'a': [1,2,3,4],
'b': [2,3,4,5],
'c': [2,4,6,7]
}
そして、次の 2 つの関数:
def _and(l1, l2):
return [i for i in l1 if i in l2]
def _or(l1, l2):
return list(set(l1+l2))
"a||(b&c)"
文字列 (例: ) を取り込んで、次のように解析しようとしています。
_or(d['a'],_and(d['b'],d['c']))
私はこれまでパーサーを書いたことがなかったので、少し戸惑いました。パーサーはOR
、AND
および括弧をサポートする必要があります。誰かが私を正しい方向に向けることができますか? Python での同様の例は、誰かが知っていれば素晴らしいでしょう。