|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectsota.lang.java.ast.util.JavaASTBuilder
public class JavaASTBuilder
Erstellt für die übergebenen Dateien den AST und verknüpft die Knoten geeignet.
Nested Class Summary | |
---|---|
private static class |
JavaASTBuilder.TermData
Container für die Sicherung von Typdaten einer Variablen. |
Field Summary | |
---|---|
private ASTManager |
ast
|
private ProjectConfig |
config
|
private FileNode |
currFileNode
|
private static java.util.Stack<JavaASTBuilder.TermData> |
currStack
|
private static JavaASTBuilder.TermData |
currTerm
|
private java.io.FileInputStream |
input
|
private JavaJumpManager |
jm
|
private int |
nrAnonymousClasses
|
private int |
nrEnteredStatements
|
private java.util.HashMap<java.lang.String,IScopeNode> |
scopeMap
|
private JavaSymbolTable |
st
|
private java.util.Stack<ASTNode> |
stackOfNodes
|
Constructor Summary | |
---|---|
JavaASTBuilder()
Konstruktor des JavaASTBuilders |
Method Summary | |
---|---|
void |
addFunctionEntryNode(int ln)
Fügt virtuellen Knoten für den Funktionseingang hinzu. |
void |
addImportedClass(java.lang.String className)
Fügt importierte Klasse hinzu. |
void |
addImportedPackage(java.lang.String packageName)
Fügt importierte Packages hinzu. |
void |
addTypeName(java.lang.String typeName)
Fügt einen Typ hinzu. |
void |
appendBreak(int ln,
java.lang.String s,
java.lang.String l)
Fügt eine Break-Anweisung hinzu. |
JavaASTCaseNode |
appendCase(int ln,
java.lang.String s)
Fügt ein Default-Case an. |
JavaASTCaseNode |
appendCase(int ln,
java.lang.String s,
java.lang.String c)
Fügt ein normales Case an. |
JavaASTCatchNode |
appendCatch(int ln,
java.lang.String s,
java.lang.String e)
Fügt einen ASTCatchNode ein. |
void |
appendContinue(int ln,
java.lang.String s,
java.lang.String l)
Fügt eine Continue-Anweisung hinzu |
JavaASTCatchNode |
appendFinally(int ln,
java.lang.String s)
Fügt einen ASTCatchNode für ein Finally ein. |
JavaASTJumpNode |
appendJump(int ln,
java.lang.String s,
java.lang.String l)
Fügt einen Sprung ein. |
void |
appendLabel(int ln,
java.lang.String s,
java.lang.String l)
Fügt ein Label hinzu. |
ASTNode |
appendNode(int ln)
Fügt einen virutellen (leeren) ASTNode an. |
ASTNode |
appendNode(int ln,
java.lang.String s)
Fügt einen nicht-virtuellen ASTNode ein. |
void |
appendReturn(int ln,
java.lang.String s,
java.lang.String l)
Fügt eine Return-Anweisung hinzu. |
JavaASTStatementNode |
appendStatement(int ln)
Fügt eine virtuelle Anweisung ein. |
JavaASTStatementNode |
appendStatement(int ln,
java.lang.String s)
Fügt eine nicht-virtuelle Anweisung ein. |
void |
appendThrow(int ln,
java.lang.String s,
java.lang.String l)
Fügt eine Throw-Anweisung hinzu. |
void |
appendToType(java.lang.String s)
Erweitert den aktuellen Typ eines Terms. |
ASTClassNode |
beginClass(int ln,
java.lang.String content,
java.lang.String name,
java.lang.String extension)
Beginnt eine neue Klasse. |
JavaASTCompoundNode |
beginCompound(int ln,
java.lang.String s)
Fügt den Beginn eines Blocks ein. |
void |
beginDeclaration(java.lang.String t)
Beginnt eine Typdeklaration. |
JavaASTDoNode |
beginDoIteration(int ln,
java.lang.String s)
Begint Do-While-Iteration. |
JavaASTIterationNode |
beginForEachIteration(int ln,
java.lang.String s)
Beginnt eine For-Each-Schleife. |
JavaASTIterationNode |
beginForIteration(int ln,
java.lang.String s,
java.lang.String s1,
JavaCondition cond,
java.lang.String s2)
Beginnt eine vollständige For-Schleife. |
ASTFunctionNode |
beginFunction(int ln,
java.lang.String content,
java.lang.String modifiers,
java.lang.String name,
java.lang.String arguments)
Beginnt eine Funktion. |
JavaASTIfNode |
beginIf(int ln,
java.lang.String s,
JavaCondition cond)
Fügt ein If ein. |
JavaASTSwitchNode |
beginSwitch(int ln,
java.lang.String s)
Beginnt ein Switch. |
JavaASTTryNode |
beginTry(int ln,
java.lang.String s)
Beginnt Ausnahmebehandlugn. |
JavaASTIterationNode |
beginWhileIteration(int ln,
java.lang.String s,
JavaCondition cond)
Beginnt eine While-Schleife. |
boolean |
buildAST(ASTManager manager,
java.lang.String fileName)
Erstellt die Knoten für eine Datei im ASTManager. |
java.lang.String |
checkType(java.lang.String s)
Sucht vollqualifizierten Typ zu einem Typ. |
void |
clearTerm()
Löscht den aktuellen Term. |
void |
closeScope()
Schließt einen Scope. |
void |
endClass()
Beendet eine Klasse. |
JavaASTCompoundNode |
endCompound(int ln,
java.lang.String s)
Fügt das Ende eines Blocks ein und verknüpft mit zugehörigen ASTCompoundNode. |
void |
endDeclaration()
Beendet eine Typdeklaration. |
JavaASTIterationNode |
endDoIteration(int ln,
java.lang.String s,
JavaCondition cond,
int endLn)
Beendet Do-While-Iteration. |
void |
endFunction(int ln)
Beendet eine Funktion. |
void |
endIf(int ln)
Beendet eine If-Struktur |
void |
endIteration(int ln)
Beendet eine Iteration. |
void |
endSwitch(int ln)
Beendet Switch-Block |
void |
endTry(int ln)
Beendet die Ausnahmebehandlung. |
void |
enterStatement()
Zeigt an, dass eine Anweisung begonnen wurde. |
ASTNode |
getLastNode()
Liefert den letzten erstellten Knoten. |
java.lang.String |
getType()
Liefert den Typ des aktuellen Terms. |
void |
isInstrumented()
Setzt die Datei auf instrumentiert. |
void |
leaveStatement()
Zeigt das Beenden einer Anweisung an. |
java.lang.String |
lookUp(java.lang.String s)
Sucht den Typ für einen String. |
void |
openPackage(java.lang.String packageName)
Beginnt ein Package. |
void |
openScope()
Öffnet einen anonymen Scope. |
void |
openScope(java.lang.String s)
Öffnet einen neuen Scope. |
void |
restoreTermData()
Holt TermData vom Stack. |
void |
setEndOfTryBlock()
Bestimmt das Ende des Tryblocks. |
void |
setEntryOfTryBlock(int ln)
Fügt die einen virtuellen Knoten für den Eintritt in den Try-Blocks ein. |
void |
setType(java.lang.String s)
Legt den Typ für den übergebenen Term fest. |
void |
storeTermData()
Speichert TermData auf Stack. |
private boolean |
withinStatement()
Entscheidet, ob man sich innerhalb einer Anweisung befindet. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
private ASTManager ast
private ProjectConfig config
private FileNode currFileNode
private static java.util.Stack<JavaASTBuilder.TermData> currStack
private static JavaASTBuilder.TermData currTerm
private java.io.FileInputStream input
private JavaJumpManager jm
private int nrAnonymousClasses
private int nrEnteredStatements
private java.util.HashMap<java.lang.String,IScopeNode> scopeMap
private JavaSymbolTable st
private java.util.Stack<ASTNode> stackOfNodes
Constructor Detail |
---|
public JavaASTBuilder()
Method Detail |
---|
public void addFunctionEntryNode(int ln)
ln
- die Zeilennummerpublic void addImportedClass(java.lang.String className)
className
- die Klassepublic void addImportedPackage(java.lang.String packageName)
packageName
- der PackageNamepublic void addTypeName(java.lang.String typeName)
typeName
- der Name des Typspublic void appendBreak(int ln, java.lang.String s, java.lang.String l)
ln
- die Zeilennummers
- der Inhaltl
- das Labelpublic JavaASTCaseNode appendCase(int ln, java.lang.String s)
ln
- die Zeilennummers
- der Inhalt
public JavaASTCaseNode appendCase(int ln, java.lang.String s, java.lang.String c)
ln
- die Zeilennummers
- der Inhaltc
- der Case-Ausdruck
public JavaASTCatchNode appendCatch(int ln, java.lang.String s, java.lang.String e)
ln
- die Zeilennummers
- der Inhalte
- der Case-Ausdruck
public void appendContinue(int ln, java.lang.String s, java.lang.String l)
ln
- die Zeilennummers
- der Inhaltl
- das Labelpublic JavaASTCatchNode appendFinally(int ln, java.lang.String s)
ln
- die Zeilennummers
- der Inhalt
public JavaASTJumpNode appendJump(int ln, java.lang.String s, java.lang.String l)
ln
- die Zeilennummers
- der Inhaltl
- das Label
public void appendLabel(int ln, java.lang.String s, java.lang.String l)
ln
- die Zeilennummers
- der Inhaltl
- das Labelpublic ASTNode appendNode(int ln)
ln
- die Zeilennummer
public ASTNode appendNode(int ln, java.lang.String s)
ln
- die Zeilennummers
- der Inhalt des Strings
public void appendReturn(int ln, java.lang.String s, java.lang.String l)
ln
- die Zeilennummers
- der Inhaltl
- das Labelpublic JavaASTStatementNode appendStatement(int ln)
ln
- die Zeilennummer
public JavaASTStatementNode appendStatement(int ln, java.lang.String s)
ln
- die Zeilennummers
- der Inhalt
public void appendThrow(int ln, java.lang.String s, java.lang.String l)
ln
- die Zeilennummers
- der Inhaltl
- das Geworfenepublic void appendToType(java.lang.String s)
s
- die Erweiterung (z.b.: [])public ASTClassNode beginClass(int ln, java.lang.String content, java.lang.String name, java.lang.String extension)
ln
- die Zeilennummercontent
- der Inhaltname
- der Nameextension
- die Superklasse
public JavaASTCompoundNode beginCompound(int ln, java.lang.String s)
ln
- die Zeilennummers
- der Inhalt
public void beginDeclaration(java.lang.String t)
t
- der Typpublic JavaASTDoNode beginDoIteration(int ln, java.lang.String s)
ln
- die Zeilennummers
- der Inhalt
public JavaASTIterationNode beginForEachIteration(int ln, java.lang.String s)
ln
- die Zeilennummers
- der Inhalt
public JavaASTIterationNode beginForIteration(int ln, java.lang.String s, java.lang.String s1, JavaCondition cond, java.lang.String s2)
ln
- die Zeilennummers
- der Inhalts1
- der For-Init-Ausdruckcond
- die Bedingungs2
- der For-Update-Ausdruck
public ASTFunctionNode beginFunction(int ln, java.lang.String content, java.lang.String modifiers, java.lang.String name, java.lang.String arguments)
ln
- die Zeilennummercontent
- der Inhaltmodifiers
- die Modifiers der Definition.name
- der Name der Funktionarguments
- die Argumente der Funktion
public JavaASTIfNode beginIf(int ln, java.lang.String s, JavaCondition cond)
ln
- die Zeilennummers
- der Inhaltcond
- die Bedingung
public JavaASTSwitchNode beginSwitch(int ln, java.lang.String s)
ln
- die Zeilennummers
- der Ausdruck im Switch
public JavaASTTryNode beginTry(int ln, java.lang.String s)
ln
- die Zeilennummers
- der Inhalt
public JavaASTIterationNode beginWhileIteration(int ln, java.lang.String s, JavaCondition cond)
ln
- die Zeilennummers
- der Inhaltcond
- die Bedingung
public boolean buildAST(ASTManager manager, java.lang.String fileName)
IASTBuilder
buildAST
in interface IASTBuilder
manager
- der ASTManagerfileName
- die Datei
public java.lang.String checkType(java.lang.String s)
s
- der zu untersuchende Typ
public void clearTerm()
public void closeScope()
public void endClass()
public JavaASTCompoundNode endCompound(int ln, java.lang.String s)
ln
- die Zeilennummers
- der Inhalt
public void endDeclaration()
public JavaASTIterationNode endDoIteration(int ln, java.lang.String s, JavaCondition cond, int endLn)
ln
- die Zeilennummers
- der Inhaltcond
- die BedingungendLn
- die Zeilennummer des Endes
public void endFunction(int ln)
ln
- die Zeilennummerpublic void endIf(int ln)
ln
- die Zeilennummerpublic void endIteration(int ln)
ln
- die Zeilennummerpublic void endSwitch(int ln)
ln
- die Zeilennummerpublic void endTry(int ln)
ln
- die Zeilennummerpublic void enterStatement()
public ASTNode getLastNode()
public java.lang.String getType()
public void isInstrumented()
public void leaveStatement()
public java.lang.String lookUp(java.lang.String s)
s
- der Ausdruck
public void openPackage(java.lang.String packageName)
packageName
- der Packagenamepublic void openScope()
public void openScope(java.lang.String s)
s
- der Scopenamepublic void restoreTermData()
public void setEndOfTryBlock()
public void setEntryOfTryBlock(int ln)
ln
- die Zeilennummerpublic void setType(java.lang.String s)
s
- die Variablepublic void storeTermData()
private boolean withinStatement()
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |