CNF

grammar
Class Grammar

java.lang.Object
  |
  +--grammar.Grammar
All Implemented Interfaces:
java.lang.Cloneable
Direct Known Subclasses:
GrammarContextfree, GrammarWithDescription

public class Grammar
extends java.lang.Object
implements java.lang.Cloneable

Eine Grammatik mit ihren Komponenten und diversen (nützlichen) Operationen. Das Startzeichen ist festgeschrieben auf das Symbol S. Direkte Manipulationen der Meta- und Alphabetzeichenmengen sind nicht möglich. Lediglich die Regelmenge kann manipuliert werden, die Meta- und Alphabetzeichen werden automatisch ermittelt. Dabei werden Zeichen, die lexikograpisch nach dem Zeichen Z folgen und nicht mit einer eckigen Klammer beginnen als Terminale eingeordnet, alle anderen Zeichen als Variablen.

Quelltext


Field Summary
protected  Alphabet A
          Das Alphabet mit den Terminalen.
protected  Alphabet M
          Das Alphabet mit den Metazeichen.
protected  Rules R
          Die Regelmenge.
protected  java.lang.String S
          Das Startzeichen.
 
Constructor Summary
Grammar()
           
 
Method Summary
 Alphabet A()
          Die Alphabetzeichen.
 void addDiff(Alphabet a)
          Fügt die Zeichen des übergebenen Alphabetes gemäss der Heuristik zu den Meta- oder den Alphabetzeichen hinzu.
 void addDiff(Rule r)
          Fügt die Zeichen, die in der übergebenen Regeln verwendet werden gemäss der Heuristik zu den Meta- oder den Alphabetzeichen hinzu.
 void addToR(Rule r)
          Fügt eine bereits getypte Regel hinzu.
 void addToR(Rules Rs)
          Fügt eine Menge von Regeln hinzu.
 void addToR(java.lang.String all)
          Fügt eine Regel hinzu, die durch einen Gesamtstring gegeben ist.
 void addToR(java.lang.String left, java.lang.String right)
          Fügt eine Regel hinzu, deren linke und rechte Seite jeweils als ein String übergeben wird.
 boolean canMake()
          Ermittelt, ob der Algorithmus zur Herstellung des gewünschten Typs angewendet werden kann.
 java.lang.Object clone()
          Gibt eine Kopie der aktuellen Grammatik zurück.
 Grammar cloneTo(Grammar G)
          Kopiert die Regelmenge in eine andere Grammatik.
 void compact()
          Löscht alle überflüssigen Zeichen aus den Alphabeten
 void delFromR(Rule r)
          Löscht eine bereits getypte Regel.
 void delFromR(Rules rs)
          Löscht eine Menge bereits getypter Regeln.
 void delFromR(java.lang.String all)
          Löscht eine Regel, die durch einen Gesamtstring gegeben ist.
 void delFromR(java.lang.String left, java.lang.String right)
          Löscht eine Regel, deren linke und rechte Seite jeweils als ein String übergeben wird.
 void delFromRwith(java.lang.String s)
          Löscht alle Regeln, die ein bestimmtes Zeichen enthalten.
 boolean equals(java.lang.Object obj)
          Zwei Grammatiken sind gleich, wenn sie die selben Regeln haben.
 Alphabet M()
          Die Metazeichen.
 Grammar make(Run run)
          Stellt den gewünschten Typ her und zeigt die einzelnen Schritte unter Verwendung der step-Routine des arbeitenden Threads an.
 java.lang.String makeNewMetaFrom(java.lang.String m)
          Setzt solange "M" vor das Zeichen, bis das resultierende Zeichen nicht in der Metazeichenmenge enthalten ist, also ein neues Metazeichen gefunden wurde.
 boolean ok()
          Ermittelt, ob die Grammatik den gewünschten Typ hat.
 Rules R()
          Die Regeln.
 java.lang.String S()
          Das Startzeichen.
 void setR(Rules newR)
          Setzt die komplette Regelmenge neu.
 void shortenM()
          Zählt die Metazeichen ab, macht sie möglichst kurz und sortiert die Regelmenge.
 java.lang.String toString()
          Einfache textuelle Repräsentation einer Grammatik.
 java.lang.String type()
          Eine textuelle Repräsentation des (speziellen) Typs der Grammatik.
 
Methods inherited from class java.lang.Object
finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

A

protected Alphabet A
Das Alphabet mit den Terminalen.

M

protected Alphabet M
Das Alphabet mit den Metazeichen. Vereinbarungsgemäss enthält es mindestens das Zeichen "S", das als Startzeichen festgeschrieben ist.

R

protected Rules R
Die Regelmenge.

S

protected final java.lang.String S
Das Startzeichen.
Constructor Detail

Grammar

public Grammar()
Method Detail

A

public final Alphabet A()
Die Alphabetzeichen.

addDiff

public final void addDiff(Alphabet a)
Fügt die Zeichen des übergebenen Alphabetes gemäss der Heuristik zu den Meta- oder den Alphabetzeichen hinzu.
See Also:
FilterTerms

addDiff

public final void addDiff(Rule r)
Fügt die Zeichen, die in der übergebenen Regeln verwendet werden gemäss der Heuristik zu den Meta- oder den Alphabetzeichen hinzu.
See Also:
FilterTerms

addToR

public final void addToR(Rule r)
Fügt eine bereits getypte Regel hinzu.

addToR

public final void addToR(Rules Rs)
Fügt eine Menge von Regeln hinzu.

addToR

public final void addToR(java.lang.String all)
Fügt eine Regel hinzu, die durch einen Gesamtstring gegeben ist.

addToR

public final void addToR(java.lang.String left,
                         java.lang.String right)
Fügt eine Regel hinzu, deren linke und rechte Seite jeweils als ein String übergeben wird.

canMake

public boolean canMake()
Ermittelt, ob der Algorithmus zur Herstellung des gewünschten Typs angewendet werden kann.

clone

public final java.lang.Object clone()
Gibt eine Kopie der aktuellen Grammatik zurück.
Overrides:
clone in class java.lang.Object

cloneTo

public final Grammar cloneTo(Grammar G)
Kopiert die Regelmenge in eine andere Grammatik. Wird benutzt, um die Regeln in speziellere Grammatiken zu kopieren.

compact

public final void compact()
Löscht alle überflüssigen Zeichen aus den Alphabeten

delFromR

public final void delFromR(Rule r)
Löscht eine bereits getypte Regel.

delFromR

public final void delFromR(Rules rs)
Löscht eine Menge bereits getypter Regeln.

delFromR

public final void delFromR(java.lang.String all)
Löscht eine Regel, die durch einen Gesamtstring gegeben ist.

delFromR

public final void delFromR(java.lang.String left,
                           java.lang.String right)
Löscht eine Regel, deren linke und rechte Seite jeweils als ein String übergeben wird.

delFromRwith

public final void delFromRwith(java.lang.String s)
Löscht alle Regeln, die ein bestimmtes Zeichen enthalten.
See Also:
FilterRulesWith

equals

public final boolean equals(java.lang.Object obj)
Zwei Grammatiken sind gleich, wenn sie die selben Regeln haben.
Overrides:
equals in class java.lang.Object

M

public final Alphabet M()
Die Metazeichen.

make

public Grammar make(Run run)
Stellt den gewünschten Typ her und zeigt die einzelnen Schritte unter Verwendung der step-Routine des arbeitenden Threads an.

makeNewMetaFrom

public final java.lang.String makeNewMetaFrom(java.lang.String m)
Setzt solange "M" vor das Zeichen, bis das resultierende Zeichen nicht in der Metazeichenmenge enthalten ist, also ein neues Metazeichen gefunden wurde.

ok

public boolean ok()
Ermittelt, ob die Grammatik den gewünschten Typ hat.

R

public final Rules R()
Die Regeln.

S

public final java.lang.String S()
Das Startzeichen. (Momentan fixiert auf "S")

setR

public final void setR(Rules newR)
Setzt die komplette Regelmenge neu.

shortenM

public final void shortenM()
Zählt die Metazeichen ab, macht sie möglichst kurz und sortiert die Regelmenge.
See Also:
FilterStringsLessThan, FilterRulesLessThan, FoldlShortenMeta

toString

public final java.lang.String toString()
Einfache textuelle Repräsentation einer Grammatik.
Overrides:
toString in class java.lang.Object

type

public java.lang.String type()
Eine textuelle Repräsentation des (speziellen) Typs der Grammatik.

CNF

Kontakt: m.rahn@stud.uka.de und mai99jsv@studserv.uni-leipzig.de