배열 및 행렬이있는 클래스를 필드로 지원하는 것으로 가정되는 작은 언어 용 컵 파서를 작성했습니다. 쉬프트의/감소하기 때문에,컵 파서에서의 시프트/감소 충돌 (얼라이언스 및 행렬이있는 문법)
c.x;
c.y[];
c.z[][];
나는 문제가이 마지막 부분의 생산을 쓰는 데 :
C c;
필드가 함께 액세스 할 수있는 예를 들어, 클래스 인스턴스가있는 경우 갈등 나는 계속 간다.
Designator ::= IDENT
|
Designator DOT IDENT
|
Designator LSQUARE Expr RSQUARE
|
Designator LSQUARE Expr RSQUARE LSQUARE Expr RSQUARE
;
경고 :이 내 생산, 상태 #에서 발견 * 시프트/갈등을 줄일 수 189 부호 사이 :: = 부호 LSQUARE EXPR RSQUARE () 및 부호 :: = 부호 LSQUARE EXPR RSQUARE () LSQUARE Expr RSQUARE 기호 LSQUARE 이동을 위해 해결됨.
누구든지 해결할 수 있습니까?