私は解析のためのpythonのpyparsingしようとしています。再帰的なパーサを作成している間、私は立ち往生した。pyparsingを使用して再帰的なパーサーを作成するための助けが必要
は、私は要素の直積を作りたい問題
を説明しましょう。構文は、私はより具体的な方法
cross({a},{c1}) or cross({a,b},{c1}) or cross({a,b,c,d},{c1}) or
だから一般的な形式は、最初のグループが持っているn個の要素(A、B、C、D)であろうです入れ
cross({elements },{element})
あります。第2のグループは、最終的な出力がデカルト積であるように1つの要素を有する。
構文は、これはC1にB、交差手段
cross(cross({a,b},{c1}),{c2})
ようにn個のレベルに行くことができるので、再帰なされるべきです。私たちに結果を言うことができます。我々は再び(クロス(十字(クロス......
何私がしたいことはsetparseAction
を使用して初期化するオブジェクトを持つことである。これは、n個のレベルのクロスまですることができC2
とYにそれを渡りますだから、私は再帰的なパーサを作ることができないのです。この上で助けを必要とし、クラス2
class object1(object):
This will be used by a,b,c,d
class object2(object):
This will hold cross elements
を持つことになります。
私が使用する表現を必要といけません。私はこれをPythonで行うにはpyparsingのみを使用する必要があります。構文は固定されていると書かれていると私は再帰的なパーサーを使用して行うことができると思う。 –
@asb:他の人はこの種のものに対して再帰的なパーサを使用しないので、混乱しない再帰を排除するために、(構文ではなく定義されている)定義を変更すればもっと成功するかもしれません。 –