home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / dtx9302 / sprache / gb.pro < prev    next >
Encoding:
Text File  |  1992-06-19  |  3.6 KB  |  106 lines

  1. " - - - - -  GB - Parser  - - - - - "
  2.  
  3. satz(d,d0,not(<Comp,z>),<INFL'',N-P,<INFL',<INFL,n>,V-P>>) ->
  4.    wort-elemente-VFNP(d,d1,s,m)
  5.    maximale-projektion(s,m,N-P)
  6.    wort(d1,d2,<minus-N,plus-V>,<INFL,n>,v)
  7.    maximale-projektion-VP(d2,d0,not(<Comp,z>),<minus-N,plus-V>,v,V-P);
  8. satz(d,d0,<Comp,z>,<INFL'',N-P,<INFL',<INFL,n>,V-P>>) ->
  9.    wort-elemente-VFNP(d,d1,s,m)
  10.    maximale-projektion(s,m,N-P)
  11.    wort(d1,d2,<minus-N,plus-V>,<INFL,n>,v)
  12.    maximale-projektion-VP(d2,d0,<Comp,z>,<minus-N,plus-V>,v,V-P);
  13.  
  14. maximale-projektion-VP(nil,nil,<Comp,z>,<minus-N,plus-V>,v,<VP,v,<XP,<Spec,"*">,
  15.    <XX',<XX,z>>>>) ->
  16.    kopf(<minus-N,plus-V>,v);
  17. maximale-projektion-VP(nil,nil,not(<Comp,z>),<minus-N,plus-V>,v,<VP,v>) ->
  18.    kopf(<minus-N,plus-V>,v);
  19. maximale-projektion-VP(d,d0,not(<Comp,z>),<minus-N,plus-V>,v,<VP,v,<CP,<SpecC,
  20.    "*">,<CC',<CC,<a,z>>,s>>>) ->
  21.    kopf(<minus-N,plus-V>,v)
  22.    wort(d,d1,<Comp1>,<CC,<a,z>>)
  23.    satz(d1,d0,<Comp,z>,s);
  24. maximale-projektion-VP(d,d0,not(<Comp,z>),<minus-N,plus-V>,v,<VP,v,N-Ps>) ->
  25.    kopf(<minus-N,plus-V>,v)
  26.    wort-elemente(d,d0,s,m)
  27.    maximale-projektion(s,m,N-Ps);
  28.  
  29. wort-elemente-VFNP(a.d,a.d0,nil,nil) ->
  30.    wort(a.d,d0,s-pec,<INFL,m>,v);
  31. wort-elemente-VFNP(d,d0,s-pec.s,n.m) ->
  32.    wort(d,d1,s-pec,n)
  33.    wort-elemente-VFNP(d1,d0,s,m);
  34.  
  35. wort-elemente(nil,nil,nil,nil) ->;
  36. wort-elemente(d,d0,s-pec.s,n.m) ->
  37.    wort(d,d1,s-pec,n)
  38.    wort-elemente(d1,d0,s,m);
  39.  
  40. maximale-projektion(<plus-N,minus-V>.nil,n.nil,<XP,<XX',<Spec,"*">,n>>) ->
  41.    kopf(<plus-N,minus-V>,n);
  42. maximale-projektion(<Specifier>.<plus-N,minus-V>.nil,n.n2.nil,<XP,<XX',<Spec,n>,
  43.    n2>>) ->
  44.    kopf(<plus-N,minus-V>,n2);
  45. maximale-projektion(<Specifier>.<plus-N,plus-V>.<plus-N,minus-V>.nil,n.n2.n3.nil
  46.    ,<XP,<Spec,n>,<XX',n2,n3>>) ->
  47.    kopf(<plus-N,minus-V>,n3);
  48. maximale-projektion(<plus-N,plus-V>.x,a.y,<AP,a,P-P>) ->
  49.    kopf(<plus-N,plus-V>,a)
  50.    maximale-projektion(x,y,P-P);
  51. maximale-projektion(<minus-N,minus-V>.x,p.y,<PP,<XX',p,N-P>>) ->
  52.    kopf(<minus-N,minus-V>,p)
  53.    maximale-projektion(x,y,N-P);
  54.  
  55. kopf(<plus-N,minus-V>,<XX,n>) ->;
  56. kopf(<minus-N,plus-V>,<VV,v>) ->;
  57. kopf(<minus-N,minus-V>,<XX,p>) ->;
  58. kopf(<Comp>,<CC,c>) ->;
  59.  
  60. " - - - - -  Hauptprogramm  - - - - - "
  61.  
  62. lesen(nil) -> next-char'(".") / in-char'(".");
  63. lesen(c.b) -> in-word(a,c) lesen(b);
  64.  
  65. gb ->
  66.    repeat
  67.    line
  68.    outm("Satz:        ")
  69.    lesen(d)
  70.    satz(d,nil,not(<Comp,z>),s-yntax)
  71.    outm("Syntax:      ")
  72.    outl(s-yntax)
  73.    fail;
  74.  
  75. repeat ->;
  76. repeat -> repeat;
  77.  
  78. " - - - - -  GB - Lexikon  - - - - - "
  79. " "
  80. " - - -  Wort-Kategorien  - - - "
  81.  
  82. wort(Hans.x,x,<plus-N,minus-V>,<XX,hans>) ->;
  83. wort(Paul.x,x,<plus-N,minus-V>,<XX,paul>) ->;
  84. wort(Maria.x,x,<plus-N,minus-V>,<XX,maria>) ->;
  85. wort(Kind.x,x,<plus-N,minus-V>,<XX,kind>) ->;
  86. wort(Garten.x,x,<plus-N,minus-V>,<XX,garten>) ->;
  87. wort(Wochenende.x,x,<plus-N,minus-V>,<XX,wochenende>) ->;
  88. wort(Flirt.x,x,<plus-N,minus-V>,<XX,flirt>) ->;
  89. wort(das.x,x,<Specifier>,das) ->;
  90. wort(dem.x,x,<Specifier>,dem) ->;
  91. wort(einem.x,x,<Specifier>,einem) ->;
  92. wort(kleine.x,x,<plus-N,plus-V>,klein) ->;
  93. wort(anregende.x,x,<plus-N,plus-V>,anregend) ->;
  94. wort(anregenden.x,x,<plus-N,plus-V>,anregend) ->;
  95. wort(spielt.x,x,<minus-N,plus-V>,<INFL,"t">,<VV,spiel>) ->;
  96. wort(traeumt.x,x,<minus-N,plus-V>,<INFL,"t">,<VV,traeum>) ->;
  97. wort(liebt.x,x,<minus-N,plus-V>,<INFL,"t">,<VV,lieb>) ->;
  98. wort(weiss.x,x,<minus-N,plus-V>,<INFL,"*">,<VV,weiss>) ->;
  99. wort(in.x,x,<minus-N,minus-V>,<XX,in>) ->;
  100. wort(von.x,x,<minus-N,minus-V>,<XX,von>) ->;
  101. wort(mit.x,x,<minus-N,minus-V>,<XX,mit>) ->;
  102. wort(was.x,x,<Comp1>,<CC,was(z)>) ->;
  103. wort(wen.x,x,<Comp1>,<CC,wen(z)>) ->;
  104. wort(dass.x,x,<Comp2>,<CC,dass>) ->;
  105.  
  106. ;End world: Normal