
s([s, A, B])-->np(A), vp(B).
np([np, A, B])-->det(A), n(B).
vp([vp|A])-->v(B), {A=[B]}; (v(C), np(D)), {A=[C, D]}.
det([det|A])-->[der], {A=[der]};[das], {A=[das]}.
n([n|A])-->['Programmierer'], {A=['Programmierer']};['Programm'], {A=['Programm']}.
v([v, steht])-->[steht].
v([v, schrieb])-->[schrieb].

