parser
Class SimpleNode

java.lang.Object
  extended byparser.SimpleNode
All Implemented Interfaces:
Node

public class SimpleNode
extends java.lang.Object
implements Node

Implementierung eines Baumes zum Aufbau des Parse-Tree, der Verifikationsbedingungen und der Vereinfachungsregeln.

See Also:
SimpRule, VerifCondCreater

Field Summary
protected  Node[] children
          Kindknoten.
protected  int id
          Knotentyp.
protected  java.lang.String name
          Knotenbezeichner.
protected  Node parent
          ParentKnoten.
protected  Verifier parser
          Von "JJTree" automatisch generiertes Feld.
 
Constructor Summary
SimpleNode(int i)
          Von "JJTree" automatisch generierter Konstruktor.
SimpleNode(int i, java.lang.String nname)
          Erzeugt einen Baumknoten vom Typ i und Bezeichner nname ohne Kindknoten.
SimpleNode(int i, java.lang.String nname, SimpleNode[] cchildren)
          Erzeugt einen Baumknoten vom Typ i und Bezeichner nname mit den Kindern cchildren.
SimpleNode(Verifier p, int i)
          Von "JJTree" automatisch generierter Konstruktor.
 
Method Summary
 SimpleNode copy()
          Liefert eine tiefe Kopie dieses Baumes.
 void down(int cons, java.lang.String name)
          Vertauscht den zweiten Kindknoten des aktuellen SimpleNode mit dem zweiten Kindknoten des ersten Kindknoten des aktuellen SimpleNode, falls der erste Kindknoten des aktuellen SimpleNode vom Typ cons ist und den Namen name trägt.
 void downAdd()
          Spezielle Version von down(int cons, String name), die allerdingsberücksichtigt, dass Addition und Subtraktion bei der Linksklammerung gleichgestellt sind.
 java.lang.String dump(java.lang.String prefix)
          Liefert eine String-Repraesentation dieses Knotens mit Kindern und dem Zeilenprefix prefix.
 java.lang.String dumpExpr()
          Liefert eine gemaess den entsprechenden Praezedenzen geklammerte String-Repraesentation dieses Knotens mit Kindern.
 IntList dumpExprList()
          Liefert eine IntegerListe, die an i-ter Stelle die Länge des String-Ausdrucks enthält, der dem i-ten Knoten in der Sring-Repraesentation unter Beruecksichtigung der Klammerung gemaess Praezedenzen entspricht.
 java.lang.String dumpExprOneLine()
          Liefert eine gemaess den entsprechenden Praezedenzen geklammerte, einzeilige String-Repraesentation dieses Knotens mit Kindern.
 java.lang.String dumpExprWithPrecedences(int prec, boolean parenthesis, boolean isRoot, boolean oneline)
          Liefert eine gemaess den entsprechenden Praezedenzen geklammerte, bei Bedarf einzeilige String-Repraesentation dieses Knotens mit Kindern.
 IntList dumpExprWithPrecedencesList(int prec, boolean parenthesis, boolean isRoot, IntList liste, int lang)
          Liefert eine IntegerListe, die an i-ter Stelle die Länge des String-Ausdrucks enthält, der dem i-ten Knoten in der Sring-Repraesentation unter Beruecksichtigung der Klammerung gemaess Praezedenzen entspricht.
 SimpleNode getChild(int i)
          Liefert i-ten Kindknoten des Arrays children.
 java.lang.String getName()
          Liefert den Knotenbezeichner.
 int getNodeType()
          Liefert den Knotentyp.
 SimpleNode getParent()
          Liefert den Parentknoten des aktuellen SimpleNode.
 void inverse()
          Vertauscht die beiden Kinderknoten der aktuellen SimpleNode, falls der Knoten zwei Kinderknoten hat.
 void jjtAddChild(Node n, int i)
          Von "JJTree" automatisch generierte Methode.
 void jjtClose()
          Von "JJTree" automatisch generierte Methode.
 Node jjtGetChild(int i)
          Von "JJTree" automatisch generierte Methode.
 int jjtGetNumChildren()
          Liefert die Anzahl der Kindknoten.
 Node jjtGetParent()
          Von "JJTree" automatisch generierte Methode.
 void jjtOpen()
          Von "JJTree" automatisch generierte Methode.
 void jjtSetParent(Node n)
          Von "JJTree" automatisch generierte Methode.
 void leftAddFirst()
          Fuehrt zu einer Linksklammerung bei Verschachtelten mehrerer Additionen und Subtraktionen.
 void leftFirst(int type, java.lang.String name)
          Führt zu einer Linksklammerung bei Verschachtelten mehrerer Operationen vom Typ type und mit Namen name durch.
 void mod(SimpleNode simpCond)
          Ersetzt in einer SimpleNode den vom Benutzer markierten Teilbaum durch einen vereinfachten Teilbaum simpCond unter Berücksichtigung der Linksklammerung von verschachtelten Summen und Produkten.
 void negSub()
          Ersetzt alle Knoten vom Typ VerifierTreeConstants.JJTNUM mit negativem Wert druch einen Knoten vom Typ VerifierTreeConstants.JJTNEG und einen Knoten vom Typ VerifierTreeConstants.JJTNUM mit positivem Wert.
 boolean notOccur(java.lang.String nodeName)
          Gibt an, ob der Knoten mit dem Bezeichner nodeName in diesem Baum vorkommt.
 void removeChild(int numChild)
          Loescht das an der Position numChild befindliche Kind.
 void replaceAll(SimpleNode oldNode, SimpleNode newNode)
          Ersetzt alle Identifier-Knoten (Typ VerifierTreeConstants.JJTID), die den gleichen Bezeichner wie der Identifier-Knoten oldNode besitzen, durch den Knoten newNode.
 void replaceAll(java.lang.String nameOfOldNode, SimpleNode newNode)
          Ersetzt alle Knoten mit dem Bezeichner nameOfOldNode durch den Knoten newNode.
 void replaceNode(SimpleNode newNode)
          Ersetzt diesen Knoten durch newNode.
 void setName(java.lang.String nname)
          Setzt den Knotenbezeichner.
 void setParents()
          Setzt in einem Baum die Node parent für alle Knoten, außer fuer den Wurzelknoten.
 void setParents(Node newparent)
          Setzt für diesen Knoten und alle seine Kindknoten den Wert parent.
 void standard()
          Standardisiert einen SimpleNode durch Anwendung von negSub(), leftAddFirst() und leftFirst(int type, String name).
 java.lang.String toString()
          Liefert eine String-Repraesentation dieses Knotens ohne Kinder.
 java.lang.String toString(java.lang.String prefix)
          Liefert eine String-Repraesentation dieses Knotens ohne Kinder mit dem Zeilenprefix prefix.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

parent

protected Node parent
ParentKnoten.


children

protected Node[] children
Kindknoten.


id

protected int id
Knotentyp. @see VerifierTreeConstants


parser

protected Verifier parser
Von "JJTree" automatisch generiertes Feld.


name

protected java.lang.String name
Knotenbezeichner.

Constructor Detail

SimpleNode

public SimpleNode(int i)
Von "JJTree" automatisch generierter Konstruktor.


SimpleNode

public SimpleNode(int i,
                  java.lang.String nname,
                  SimpleNode[] cchildren)
Erzeugt einen Baumknoten vom Typ i und Bezeichner nname mit den Kindern cchildren.


SimpleNode

public SimpleNode(int i,
                  java.lang.String nname)
Erzeugt einen Baumknoten vom Typ i und Bezeichner nname ohne Kindknoten.


SimpleNode

public SimpleNode(Verifier p,
                  int i)
Von "JJTree" automatisch generierter Konstruktor.

Method Detail

jjtOpen

public void jjtOpen()
Von "JJTree" automatisch generierte Methode.

Specified by:
jjtOpen in interface Node

jjtClose

public void jjtClose()
Von "JJTree" automatisch generierte Methode.

Specified by:
jjtClose in interface Node

jjtSetParent

public void jjtSetParent(Node n)
Von "JJTree" automatisch generierte Methode.

Specified by:
jjtSetParent in interface Node

jjtGetParent

public Node jjtGetParent()
Von "JJTree" automatisch generierte Methode.

Specified by:
jjtGetParent in interface Node

getParent

public SimpleNode getParent()
Liefert den Parentknoten des aktuellen SimpleNode.


jjtAddChild

public void jjtAddChild(Node n,
                        int i)
Von "JJTree" automatisch generierte Methode.

Specified by:
jjtAddChild in interface Node

jjtGetChild

public Node jjtGetChild(int i)
Von "JJTree" automatisch generierte Methode.

Specified by:
jjtGetChild in interface Node

getChild

public SimpleNode getChild(int i)
Liefert i-ten Kindknoten des Arrays children.


jjtGetNumChildren

public int jjtGetNumChildren()
Liefert die Anzahl der Kindknoten.

Specified by:
jjtGetNumChildren in interface Node

getName

public java.lang.String getName()
Liefert den Knotenbezeichner.


setName

public void setName(java.lang.String nname)
Setzt den Knotenbezeichner.


setParents

public void setParents()
Setzt in einem Baum die Node parent für alle Knoten, außer fuer den Wurzelknoten.

Specified by:
setParents in interface Node

setParents

public void setParents(Node newparent)
Setzt für diesen Knoten und alle seine Kindknoten den Wert parent.

Specified by:
setParents in interface Node

getNodeType

public int getNodeType()
Liefert den Knotentyp.


notOccur

public boolean notOccur(java.lang.String nodeName)
Gibt an, ob der Knoten mit dem Bezeichner nodeName in diesem Baum vorkommt.


copy

public SimpleNode copy()
Liefert eine tiefe Kopie dieses Baumes.


replaceAll

public void replaceAll(SimpleNode oldNode,
                       SimpleNode newNode)
Ersetzt alle Identifier-Knoten (Typ VerifierTreeConstants.JJTID), die den gleichen Bezeichner wie der Identifier-Knoten oldNode besitzen, durch den Knoten newNode.


replaceAll

public void replaceAll(java.lang.String nameOfOldNode,
                       SimpleNode newNode)
Ersetzt alle Knoten mit dem Bezeichner nameOfOldNode durch den Knoten newNode.


replaceNode

public void replaceNode(SimpleNode newNode)
Ersetzt diesen Knoten durch newNode.


removeChild

public void removeChild(int numChild)
Loescht das an der Position numChild befindliche Kind.


toString

public java.lang.String toString()
Liefert eine String-Repraesentation dieses Knotens ohne Kinder.


toString

public java.lang.String toString(java.lang.String prefix)
Liefert eine String-Repraesentation dieses Knotens ohne Kinder mit dem Zeilenprefix prefix.


dump

public java.lang.String dump(java.lang.String prefix)
Liefert eine String-Repraesentation dieses Knotens mit Kindern und dem Zeilenprefix prefix.


dumpExprWithPrecedences

public java.lang.String dumpExprWithPrecedences(int prec,
                                                boolean parenthesis,
                                                boolean isRoot,
                                                boolean oneline)
Liefert eine gemaess den entsprechenden Praezedenzen geklammerte, bei Bedarf einzeilige String-Repraesentation dieses Knotens mit Kindern.

Parameters:
prec - Praezedenz
parenthesis - true erzwingt eine von der Praezedenz unabhaengigen Klammerung.
isRoot - true bedeutet, dass die Methode gerade die Wurzel eines SimpleNode bearbeitet, wird fuer die spezielle Ausgabebehandlung der Implikation verwendet.
oneline - true bedeutet, dass die String-Repraesentation in einer Zeile erzwungen wird.

dumpExpr

public java.lang.String dumpExpr()
Liefert eine gemaess den entsprechenden Praezedenzen geklammerte String-Repraesentation dieses Knotens mit Kindern. Benutzt dumpExprWithPrecedences(int prec, boolean parenthesis, boolean isRoot, boolean oneline).


dumpExprOneLine

public java.lang.String dumpExprOneLine()
Liefert eine gemaess den entsprechenden Praezedenzen geklammerte, einzeilige String-Repraesentation dieses Knotens mit Kindern. Benutzt dumpExprWithPrecedences(int prec, boolean parenthesis, boolean isRoot, boolean oneline).


dumpExprList

public IntList dumpExprList()
Liefert eine IntegerListe, die an i-ter Stelle die Länge des String-Ausdrucks enthält, der dem i-ten Knoten in der Sring-Repraesentation unter Beruecksichtigung der Klammerung gemaess Praezedenzen entspricht. Benutzt dumpExprWithPrecedencesList(int prec, boolean parenthesis, boolean isRoot, IntList liste, int lang).


dumpExprWithPrecedencesList

public IntList dumpExprWithPrecedencesList(int prec,
                                           boolean parenthesis,
                                           boolean isRoot,
                                           IntList liste,
                                           int lang)
Liefert eine IntegerListe, die an i-ter Stelle die Länge des String-Ausdrucks enthält, der dem i-ten Knoten in der Sring-Repraesentation unter Beruecksichtigung der Klammerung gemaess Praezedenzen entspricht.

Parameters:
prec - Praezedenz
parenthesis - true erzwingt eine von der Praezedenz unabhaengigen Klammerung.
isRoot - true bedeutet, dass die Methode gerade die Wurzel eines SimpleNode bearbeitet, wird fuer die spezielle Ausgabebehandlung der Implikation verwendet.
liste - Integer-Liste
lang - Zwischenspeicher für die Anzahl der Zeichen des aktuell bearbeiteten Knotens

inverse

public void inverse()
Vertauscht die beiden Kinderknoten der aktuellen SimpleNode, falls der Knoten zwei Kinderknoten hat.


down

public void down(int cons,
                 java.lang.String name)
Vertauscht den zweiten Kindknoten des aktuellen SimpleNode mit dem zweiten Kindknoten des ersten Kindknoten des aktuellen SimpleNode, falls der erste Kindknoten des aktuellen SimpleNode vom Typ cons ist und den Namen name trägt. Andernfalls vertausche die beiden Kindknoten des aktuellen SimpleNode. Benutzt inverse().

Parameters:
cons - Typ des ersten Kindknotens, mit dem eine Verschiebung stattfinden soll.
name - Name des ersten Kindknotens, mit dem eine Verschiebung stattfinden soll.

downAdd

public void downAdd()
Spezielle Version von down(int cons, String name), die allerdingsberücksichtigt, dass Addition und Subtraktion bei der Linksklammerung gleichgestellt sind. Benutzt inverse().


leftAddFirst

public void leftAddFirst()
Fuehrt zu einer Linksklammerung bei Verschachtelten mehrerer Additionen und Subtraktionen. Benutzt inverse() und down(int cons, String name).


leftFirst

public void leftFirst(int type,
                      java.lang.String name)
Führt zu einer Linksklammerung bei Verschachtelten mehrerer Operationen vom Typ type und mit Namen name durch.
Benutzt inverse() und down(int cons, String name).


negSub

public void negSub()
Ersetzt alle Knoten vom Typ VerifierTreeConstants.JJTNUM mit negativem Wert druch einen Knoten vom Typ VerifierTreeConstants.JJTNEG und einen Knoten vom Typ VerifierTreeConstants.JJTNUM mit positivem Wert.


standard

public void standard()
Standardisiert einen SimpleNode durch Anwendung von negSub(), leftAddFirst() und leftFirst(int type, String name).


mod

public void mod(SimpleNode simpCond)
Ersetzt in einer SimpleNode den vom Benutzer markierten Teilbaum durch einen vereinfachten Teilbaum simpCond unter Berücksichtigung der Linksklammerung von verschachtelten Summen und Produkten.

Parameters:
simpCond - neuer Ausdruck, der den markierten Teilbaum ersetzen soll.