Zadanie 1

Dla poniższej gramatyki wyznaczyć symbole wyprowadzające słowo puste. Symbolami końcowymi są ARRAY, CONST, ID, LICZBA, OF, TYPE i znaki pojawiające się w gramatyce.

deklaracje : stale typy ;

stale : stale ';' stala
      | /* puste */
      ;

stala : CONST ID '=' LICZBA ;

typy : typy typ
     | /* puste */
     ;

typ : TYPE ID = typ1 ;

typ1 : ID
     | array '[' LICZBA ']' OF typ1
     ;

Zadanie 2

Dla poniższej gramatyki wyznaczyć symbole które wyprowadzają słowo niepuste. Symbolami końcowymi są znaki występujące w gramatyce.

S : T | U | V | X | Y ;

T : T X T
  | /* puste */
  ;

U : U X 'u'
  | /* puste */
  ;

V : Y 'v' Y
  | X 'v'
  ;

X : X Y X
  | /* puste */
  ;

Y : Y 'y' ;