ll

    0

    1答えて

    私のタスクはFIRSTを計算し、次の文法のためのセットに従うことです設定します。 P ::= S CS . S ::= (int , int) CS ::= C CS | epsilon C ::= left int | right int | low C I得た後の最初のセット:私は計算し、次のセットの場合 FIRST(S) = {'('} FIRST(C) = {left,righ

    2

    1答えて

    STATEMENT ::= ε | R R :: = print (variable) LL文法のチャンクを想定そして、私はFIRST(ステートメント)を探してみてください FIRST(STATEMENT) = FIRST(ε) + FIRST(R) FIRST(R) = { print (variable) } 私の質問です。 FIRST(R)は正しいですか?以下:

    0

    1答えて

    は、私は次の文法を与えられたと仮定があることを、次の文法を操作しますIDENTIFIERはそれぞれの生産の最初の端末です。 2つのルックアヘッドを使用するだけで、パーサがどのパスを取るかを決めることができます。 上記の文法をLL(1)にする方法はありますか?それとも不可能なのでしょうか?

    0

    1答えて

    コンパイラの魔法を勉強していて、結果が分からない。ここで は文法である:私は「最初」を見つけるとセットに「従う」しようとすると S -> A # A -> B G D E B -> + | - | EPSILON C -> c C | EPSILON G -> c C D -> . C | EPSILON E -> e B G | EPSILON 、私は私がオンライン予測因子でそれ

    0

    1答えて

    P → PL | L L → N; | M; | C N → print E M → print "W" W → TW | ε C → if E {P} | if E {P} else {P} E → (EOE) | V (note: this has a variable O) O → + | - | * V → 0 | 1 | 2 | 3 (note: this has a t

    1

    1答えて

    単純な再帰的降下構文解析プログラムを作成することで、パーサーの仕組みを学びます。しかし、私は文法をLL(1)と定義するのに問題があります。 1(LLを使用している場合しかし、これは曖昧につながる statement: assignent | expression assignment: NAME EQUALS expression expression: term [(PLUS|MINUS)

    1

    3答えて

    これはANTLR対BISONではなく、金属質問への手でコード化されたペダルです。 また、バイナリ形式の解析用です。字句解析はありません。

    0

    1答えて

    私はLL(1)パーサ右結合の文法を処理する方法を見つけようとしています。たとえば、左の連想文法の場合、E->+TE' first()とfollow()は円滑に動作し、簡単に生成されたテーブルを解析します。しかし、右回帰文法の場合には、例えば、E->T^E/Tのパージングテーブルのような電源が適切に生成されていないなどの場合。私はリソースを探していますが、権限のような正しい結合性を避けるあらゆる例が

    1

    1答えて

    は、我々は、以下の(A)を求めるため、以下のルールで発表されました: α Aは開始記号である場合には、(A)に従うように '$' を追加します 場合 - > α B βは、FIRSTを追加(β) - {&イプシロン;}(B) 追従するAの場合 - > α B、又は(A - > α B βとβ * - >)、FOLLOW(A)をFOLLOW(B)に追加します。 また、フォロー(A)の非公式の定義が与

    1

    1答えて

    私は、いわゆる適応LL(*)アルゴリズムに基づいたパーサージェネレータであるANTLR v4について学んでいます。 LL(*)アルゴリズムと比較して大きな改善点であると主張している。しかし、私はLRのようないくつかのアルゴリズムについても聞いた。パーサを構築するためにどのように多くの現代のアルゴリズム あります ので、好奇心から全体像を取得しますか? ANTLRのアダプティブLL(*)アルゴリズム