添付ファイルは、ネストされた if ステートメントとしてツリーを表す Java ソース コードに変換したいツリー構造を表します。
STOP_WORDS > 0
| NEXT_TYPE > 5: X
| NEXT_TYPE <= 5: Y
STOP_WORDS <= 0
…
If (STOP_WORDS > 0)
{
If (NEXT_TYPE > 5)
{
Return X
}
If ( NEXT_TYPE <= 5)
{
Return Y
}
}
If (STOP_WORDS <= 0)
{
….
}
ご覧のとおり、パイプ ( | ) 記号を使用したインデント レベルは親子関係を表します。 このプログラムは Java で記述できますが、必要に応じて他の適切な言語で記述することもできます。
以下は、If ステートメントに変換する必要があるテキスト ファイルです。
STOP_WORDS > 0
| NEXT_TYPE > 5: 5
| NEXT_TYPE <= 5: 1
STOP_WORDS <= 0
| STREET_TYE > 0
| | PREVIOUS_TYPE > 5: 2
| | PREVIOUS_TYPE <= 5
| | | NEXT_TYPE > 5: 2
| | | NEXT_TYPE <= 5: 5
| STREET_TYE <= 0
| | PERSON_TITLE > 0
| | | NEXT_TYPE <= 5: 4
| | | NEXT_TYPE > 5: 5
| | PERSON_TITLE <= 0
| | | SURNAME > 0
| | | | PREVIOUS_TYPE <= 4: 3
| | | | PREVIOUS_TYPE > 4: 5
| | | SURNAME <= 0
| | | | FIRST_NAME > 0
| | | | | NEXT_TYPE <= 5: 0
| | | | | NEXT_TYPE > 5: 5
| | | | FIRST_NAME <= 0
| | | | | TOKEN_LENGTH <= 1
| | | | | | NEXT_TYPE <= 4: 0
| | | | | | NEXT_TYPE > 4
| | | | | | | NEXT_TYPE <= 5: 1
| | | | | | | NEXT_TYPE > 5: 5
| | | | | TOKEN_LENGTH >1
| | | | | | NEXT_TYPE > 4: 5
| | | | | | NEXT_TYPE <= 4: 0
| | | | | | | PREVIOUS_TYPE <= 1: 4
| | | | | | | PREVIOUS_TYPE >1
| | | | | | | | PREVIOUS_TYPE >3: 4
| | | | | | | | PREVIOUS_TYPE <= 3: 5
私の問題は、以前の If ステートメントとそれらをいつ閉じるかを追跡するロジックが見つからないことです。ご覧のとおり、各行には多くのパイプ (|) があり、パイプが少ない場合と多い場合があります。私はそれの論理を見つけられません。
どんな助けでも大歓迎です。