left-recursion

    0

    1答えて

    文法からこの行の左再帰を削除するにはどうすればよいですか? A - > D | R | r B A n; | AA |イプシロン r、nおよび;終端記号です。 D、R、B、Aはすべて非終端記号です。事前

    10

    2答えて

    私はthis algorithmを見てきましたが、すべての左回帰を削除する必要があります。 A -> Cd B -> Ce C -> A | B | f 私はループ内または静止間接の左再帰である文法で終わる試みるものは何でも: は、しかし、私は、この特定の文法の問題に実行していますよ。 this algorithmをこの文法に正しく実装するにはどうすればよいですか?

    3

    2答えて

    プログラマー以外の人にはわからないvb6コードのスニペットはありません(機能のサブセットのみを使用しています)。これらはルールと呼ばれます。これらを書いている人にとって、デバッグは難しいので、サブファンクションを評価できるように、ある種のアドホック・パーサを書いて、問題がどこにあるのかをより良く示しています。 このアドホックパーサーは非常に悪く、実際にウォールでは動作しません。だから実際のパーサを

    0

    2答えて

    私は例えば、ブール式の再帰下降パーサを書いています: 1が「本当」である (1 * 0) (0 + ~1) (0 * (1 + c) 、0は「偽」である、+ 'ですまたは '、* is' and '、〜は' not 'であり、' c 'は変数名です(アルファベットは一文字でも構いません)。何らかの操作順序を実装するのではなく、かっこを使用することを計画しています。 私の現在のパーサは表現

    1

    1答えて

    私の文法では、第6の生成規則で左回帰のケースがあります。 私はこのような規則6および7を交換することによって、これを解決:私はこの文法で任意の間接的な左再帰を見つけることができませんでした 。 唯一気になるのは、2つの非端末で囲まれた端末を持つ最終的な制作ルールです。 私の二つの質問は次のとおりです。 は正しい私の解決左再帰ですか? 最終的な制作ルールは左回帰ですか?私はどのように この特殊なケー

    13

    3答えて

    は、LL文法が定義され:任意の生産A -> a|bために、以下の2つの条件が当てはまる場合だけ 文法はLLです。 FIRST(a)とFIRST(b)は互いに素です。これはbは、その後aがFIRST(a)とFOLLOW(A)は互いに素でなければならないですFOLLOW(A)で始まる任意の文字列を導き出すことができない、EMPTYを引き出すことができれば、彼らは両方のEMPTY を導き出すことができな

    0

    1答えて

    明日の試験のために改訂して、前年を上回っています。 テストでは文法がありました。 Expression -> Foo "+" Bar "end" Foo -> [a-z0-9]+ | Expression Bar -> Expression Foo | a*b*c+ 私はこれを行う方法について調査して時間を費やしましたが、それを把握することはできません。 私はイプシロンで物事を置き換えて見

    0

    1答えて

    ここではプロダクションです。 A-> Aa| b|c; は、今私は A->bA' A'-> aA' | e (empty transition) A->c を行うものとし、それが正しい答えだろうか?それは 'b'か 'c'のどちらでも使用できますか?私が言う

    0

    1答えて

    私は練習問題を解決しようとしていましたが、私はサンプル回答と私とを比較しようとしたときに問題に直面しました。ここでは文法は、変換前にある: E-> S* S-> SD S-> D D-> [D] D-> x 開始記号はEであり、他非終端記号はSとDです。ここ 私の答えは次のとおりです。サンプルの回答で E-> S* S-> DS' S'-> DS' S'-> D-> [D]

    2

    1答えて

    私は、再帰的降下パーサーで使用される文法には2つのタイプの制限があることを知っています。 文法は文法は、トークンが先読みでより多くを要求してはなりません任意の左再帰的な制作 を持つことはできません。 私は最初のものを理解していますが、2番目の制限で少し失われています。なぜこの制限が必要であり、それがなければ生産も存在するのだろうか?