home *** CD-ROM | disk | FTP | other *** search
- " - - - - - Kategorial-Grammatik - Parser - - - - - "
-
- syntax(a,c,d) ->
- analyse(0,t,a,c)
- loeschen(schnitt)
- reduction(t,c,nil,d)
- /;
- syntax(a,c,"KEIN SATZ") ->;
-
- " - - Analyse: Ausdrücke -> Kategorien - - "
-
- analyse(t,t,nil,nil) ->;
- analyse(t,t',x.a,y.b) ->
- kategorie(x,y)
- val(add(t,1),t'')
- analyse(t'',t',a,b);
-
- " - - Reduktion: Kategorien -> SATZ - - "
-
- reduction(t,nil,SATZ.nil,"SATZ") ->;
- reduction(t,nil,c,d) ->
- dot(c)
- val(sub(t,1),t')
- reduction(t',c,nil,d);
- reduction(t,a.b.x,c,d) ->
- reduce(a,b,c')
- reduction(t,c'.x,c,d);
- reduction(t,a.x,c,d) ->
- val(inf(0,t),1)
- element-ans-ende(a,c,c')
- reduction(t,x,c',d);
-
- element-ans-ende(a,nil,a.nil) ->;
- element-ans-ende(a,b.x,b.y) ->
- element-ans-ende(a,x,y);
-
- " - - Reduktionsregeln - - "
-
- reduce(x.nil,x."\".ss.nil,SATZ) ->
- faktum(schnitt(x.nil,x."\".ss.nil,SATZ.nil),nil);
- reduce(u."/".x.nil,x.nil,u.nil) ->
- faktum(schnitt(u."/".x.nil,x.nil,u.nil),nil);
- reduce(x.nil,x."\".u.nil,u.nil) ->
- faktum(schnitt(x.nil,x."\".u.nil,u.nil),nil);
- reduce("(".z1."\".z2.")"."/".y.nil,y.nil,z1."\".z2.nil) ->
- faktum(schnitt("(".z1."\".z2.")"."/".y.nil,y.nil,z1."\".z2.nil),nil);
- reduce("("."(".z1."\".z2.")"."/".z3.")"."/".y.nil,y.nil,"(".z1."\".z2.")"."/".z3
- .nil) ->
- faktum(schnitt("("."(".z1."\".z2.")"."/".z3.")"."/".y.nil,y.nil,"(".z1."\".z2
- .")"."/".z3.nil),nil);
-
- faktum(a,b) -> assert'(a,b);
-
- " - - - - - Wort-Kategorien - Ausgabe - - - - - "
-
- kategorien(nil,nil) ->
- line;
- kategorien(a.x,b.y) ->
- bound(b)
- set-line-cursor(13)
- out(a)
- set-line-cursor(24)
- outm(" = ")
- set-line-cursor(28)
- ausgabe(b)
- line
- kategorien(x,y);
-
- ausgabe(nil) ->;
- ausgabe(a.b) ->
- ident(a)
- out(a)
- ausgabe(b);
- ausgabe(a.b) ->
- string(a)
- outm(a)
- ausgabe(b);
-
- ausgabe-schnitte ->
- schnitt(a,b,c)
- outm("Kategorie: ")
- ausgabe(a)
- set-line-cursor(26)
- outm(" geschnitten mit: ")
- ausgabe(b)
- set-line-cursor(60)
- outm(" ergibt: ")
- ausgabe(c)
- line;
-
- " - - - - - Hauptprogramm - - - - - "
-
- lesen(nil) -> next-char'(".") / in-char'(".");
- lesen(c.b) -> in-word(a,c) lesen(b);
-
- kg ->
- repeat
- line
- outm("Satz: ")
- lesen(p)
- syntax(p,c,d)
- outm("Ergebnis: ")
- outml(d)
- kategorien-x(p,c)
- ausgabe-schnitte
- loeschen(schnitt)
- fail;
-
- kategorien-x(p,a.c) ->
- bound(a)
- outm("Kategorien:")
- kategorien(p,a.c);
- kategorien-x(p,c) ->;
-
- repeat ->;
- repeat -> repeat;
-
- " - - - - - Datenbank - - - - - "
- " "
- " - - Lexikalische Kategorien - - "
- " "
- " Anmerkung: nn = Individuen; ss = Aussagen "
-
- kategorie(Hans,nn.nil) ->;
- kategorie(Maria,nn.nil) ->;
- kategorie(Kind,nn."\".nn.nil) ->;
- kategorie(Flirt,nn."\".nn.nil) ->;
- kategorie(Wochenende,nn."\".nn.nil) ->;
- kategorie(anregenden,nn.nil) ->;
- kategorie(das,nn."/".nn.nil) ->;
- kategorie(das,nn.nil) ->;
- kategorie(dem,nn."/".nn.nil) ->;
- kategorie(dem,nn.nil) ->;
- kategorie(einem,nn."/".nn.nil) ->;
- kategorie(einem,nn.nil) ->;
- kategorie(von,nn."/".nn.nil) ->;
- kategorie(mit,nn."/".nn.nil) ->;
- kategorie(traeumt,"("."(".nn."\".ss.")"."/".nn.")"."/".nn.nil) ->;
- kategorie(traeumt,"(".nn."\".ss.")"."/".nn.nil) ->;
- kategorie(traeumt,nn."\".ss.nil) ->;
- kategorie(langsam,ss."\".ss.nil) ->;
- kategorie(gern,ss."\".ss.nil) ->;
- kategorie(oft,ss."\".ss.nil) ->;
- kategorie(liebt,"(".nn."\".ss.")"."/".nn.nil) ->;
-
- " - - - - - Hilfspraedikate - - - - - "
-
- loeschen(a) ->
- rule-nb(a,b)
- find-rule(a)
- suppress(b);
- loeschen(a) ->;
-
- ;End world: Normal