home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / dtx9302 / sprache / psg.pro < prev   
Encoding:
Text File  |  1992-06-19  |  2.2 KB  |  77 lines

  1. " - - - - -  PSG-Grammatik - Parser  - - - - - "
  2.  
  3. syntax(d,d1,s-atz) -> satz(d,d1,s-atz) /;
  4. syntax(d,d1,KEIN-SATZ) ->;
  5.  
  6. satz(d,d2,satz(<n-p,v-p>)) ->
  7.    np(d,d1,s-ubkat,n-p)
  8.    vp(d1,d2,s-ubkat,v-p);
  9.  
  10. np(d,d1,a.b.c,np(<en,x,a.b.c>)) ->
  11.    eigenname(d,d1,<en,x,a.b.c>);
  12. np(d,d2,a.b.c,np(<art,x,a.b.c>,nomen(y,a.b.c))) ->
  13.    artikel(d,d1,<art,x,a.b.c>)
  14.    nomen(d1,d2,nomen(y,a.b.c));
  15. np(d,d3,a.b.c,np(<art,x,a.b.c>,<adj,y,a.b.c>,nomen(z,a.b.c))) ->
  16.    artikel(d,d1,<art,x,a.b.c>)
  17.    adjektiv(d1,d2,<adj,y,a.b.c>)
  18.    nomen(d2,d3,nomen(z,a.b.c));
  19.  
  20. pp(d,d2,a.b.c,pp(<<praep,x,a.b.c>,n-p>)) ->
  21.    praeposition(d,d1,<praep,x,a.b.c>)
  22.    np(d1,d2,a.b.c,n-p);
  23.  
  24. vp(d,d1,a.b.c,vp(verb(x,a.b.c))) ->
  25.    verb(d,d1,verb(x,a.b.c));
  26. vp(d,d2,a1.b1.c1,vp(<verb(x,a1.b1.c1,a2.b2.c2),n-p>)) ->
  27.    verb(d,d1,verb(x,a1.b1.c1,a2.b2.c2))
  28.    np(d1,d2,a2.b2.c2,n-p);
  29. vp(d,d2,a1.b1.c1,vp(<verb(x,a1.b1.c1,a2.b2.c2),p-p>)) ->
  30.    verb(d,d1,verb(x,a1.b1.c1,a2.b2.c2))
  31.    pp(d1,d2,a2.b2.c2,p-p);
  32. vp(d,d3,a1.b1.c1,vp(<verb(x,a1.b1.c1,a2.b2.c2,a3.b3.c3),p-p1,p-p2>)) ->
  33.    verb(d,d1,verb(x,a1.b1.c1,a2.b2.c2,a3.b3.c3))
  34.    pp(d1,d2,a2.b2.c2,p-p1)
  35.    pp(d2,d3,a3.b3.c3,p-p2);
  36.  
  37. " - - - - -  Hauptprogramm  - - - - - "
  38.  
  39. lesen(nil) -> next-char'(".") / in-char'(".");
  40. lesen(c.b) -> in-word(a,c) lesen(b);
  41.  
  42. psg ->
  43.    repeat
  44.    line
  45.    outm("Satz:        ")
  46.    lesen(d)
  47.    syntax(d,nil,y)
  48.    outm("Syntax:      ")
  49.    outl(y)
  50.    fail;
  51.  
  52. repeat ->;
  53. repeat -> repeat;
  54.  
  55. " - - - - -  Datenbank  - - - - - "
  56.  
  57. eigenname(Hans.d,d,<en,Hans,sg.mas.c>) ->;
  58. eigenname(Maria.d,d,<en,Maria,sg.fem.c>) ->;
  59.  
  60. artikel(das.d,d,<art,das,sg.b.c>) ->;
  61. artikel(einem.d,d,<art,einem,sg.b.c>) ->;
  62.  
  63. adjektiv(anregenden.d,d,<adj,anregenden,sg.b.c>) ->;
  64. adjektiv(anregende.d,d,<adj,anregende,sg.b.c>) ->;
  65.  
  66. nomen(Kind.d,d,nomen(Kind,sg.ntr.c)) ->;
  67. nomen(Wochenende.d,d,nomen(Wochenende,sg.ntr.c)) ->;
  68.  
  69. praeposition(von.d,d,<praep,von,a.b.dat>) ->;
  70. praeposition(mit.d,d,<praep,mit,a.b.dat>) ->;
  71.  
  72. verb(traeumt.d,d,verb(traeumt,sg.b1.nom)) ->;
  73. verb(traeumt.d,d,verb(traeumt,sg.b1.nom,a2.b2.dat)) ->;
  74. verb(traeumt.d,d,verb(traeumt,sg.b1.nom,a2.b2.dat,a3.b3.dat)) ->;
  75. verb(liebt.d,d,verb(liebt,sg.b1.nom,a2.b2.akk)) ->;
  76.  
  77. ;End world: Normal