egyszerű LL(1) S -> aA (1) | bSdB (2) A -> bB (3) B -> f (4) abf# a b d f # S (aA,1) (bSdB,2) A (bB,3) B (f,4) ----------------------------------------- a pop b pop d pop f pop # accept (abf#, S#, []) -> a/S: (aA,1) (abf#, aA#, [1]) -> a/a: pop (bf#, A#, [1]) -> b/A: (bB,3) (bf#, bB#, [1,3]) -> b/b: pop (f#, B#, [1,3]) -> f/B: (f,4) (f#, f#, [1,3,4]) -> f/f: pop (#, #, [1,3,4]) -> #/#: accept epszilonmentes LL(1) S -> ABDa | b A -> BD B -> DS D -> f FIRST_1(S) = {b} u FIRST_1(A) FIRST S b A | b | b | bf | bf A B | | f | f | f B D | f | f | f | f D f | f | f | f | f a b f # S (b,2) (ABDa,1) A (BD,3) B (DS,4) D (f,5) S -> ASa | dB A -> Bb | Da B -> b | fA D -> aS | h FIRST S d A | dbfah A BD | bfah B bf | bf D ah | ah a b d f h # S (ASa,1) (ASa,1) (dB,2) (ASa,1) (ASa,1) A (Da,4) (Bb,3) (Bb,3) (Da,4) B (b,5) (fA,6) D (aS,7) (h,8) általános LL(1) lehet epszilon: S, A, B, D FIRST S ABD | abd A a | a B b | b D d | d FOLLOW S # A FIRST(B),FIRST(D) FOLLOW(S) B FIRST(D) FOLLOW(S) D FOLLOW(S) S # | # A bd S | bd# B d S | d# D S | # S -> ABD A -> epszilon | a B -> epszilon | b D -> epszilon | d a b d # S (ABD,1) (ABD,1) (ABD,1) (ABD,1) A (a,3) (eps,2) (eps,2) (eps,2) B (b,5) (eps,4) (eps,4) D (d,7) (eps,6) S -> DaB | BbD B -> eps | f D -> eps | d