学校で、次の文法に従うトップダウン パーサーを Java で作成するように指示された宿題があります。
assign = id , '=' , expr , ';' ;
expr = term , [ ( ’+’ | ’-’ ) , expr ] ;
term = factor , [ ( ’*’ | ’/’) , term] ;
factor = int | ’(’ , expr , ’)’ ;
「IDがある場合、次のトークンが「=」で次がexprであるかどうか、その次が「;」であるかどうかを確認する」など、構文解析の基本的な概念は理解できたと思います。正しい?
ここで、着信入力が式であるかどうかを確認したい場合:
トークンをチェックして、用語があるかどうか、「+ トークン」または「- トークン」があるかどうか、最後に「expr」があるかどうかを確認します。しかし、そこに「expr」があるかどうかを確認すると、ループし、最終的に「expr」があるかどうかを再度確認し、何度も何度も確認します。
どうすればそれもうまくいくのかわかりませんか?誰かが私を助けることができますか?
敬具、