Iのような表現は、以下を有する:(N) eg 1: (f1 AND f2)
eg 2: ((f1 OR f2) AND f3)
eg 3: ((f1 OR f2) AND (f3 OR (f4 AND f5)))
Fのそれぞれは、SQLの断片を生成するために使用され、これらのフラグメントの各々は、ORを使用して接合/ AND式的に説明します。 1)この式 2)それ 3)を発現させるため
私はLex/Yaccを初めて使用しています。 constant
: I_CONSTANT { printf("I_CONSTANT %d\n", $1); }
| F_CONSTANT
| ENUMERATION_CONSTANT /* after it has been defined as such */
;
問題は、私はアクションを入れていない問題
を読んで、私は私のパーサによって読み込まれるファイルがあります。 BEGINING.
XXX XY-1.
XXXX Y.
XXXX Z.
BODY.
PRINT "Please enter a number?".
END.
test.txtのエラーがPRINTトークンを中心に発生しているが。私の字句解析ツールでは、文字列"Please enter a number?"が
(shift vs reduce)と(reduce vs reduce)のときにLRパーサーの衝突を知りました。 (shift対reduce)競合が発生した場合は、shiftを実行します。 (reduce対reduce)競合が発生した場合、最初のプロダクションルールを実行します。 なぜですか?? シフトと第1のプロダクションルールを選択する理由