From 5d5717936473424f7f774a145c95fedf786f2dce Mon Sep 17 00:00:00 2001 From: JanUlrich Date: Wed, 12 Mar 2014 15:27:26 +0100 Subject: [PATCH] =?UTF-8?q?SyntaxTreeNode.getDescription()=20angef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/mycompiler/MyCompiler.java | 6 ++++-- src/mycompiler/MyCompilerAPI.java | 3 ++- src/mycompiler/SyntaxTreeNode.java | 8 ++++++++ src/mycompiler/myclass/Class.java | 5 +++++ src/mycompiler/myclass/Field.java | 5 +++++ src/mycompiler/myclass/Method.java | 2 -- test/plugindevelopment/SyntaxTreeTests.java | 7 +++++++ 7 files changed, 31 insertions(+), 5 deletions(-) create mode 100644 test/plugindevelopment/SyntaxTreeTests.java diff --git a/src/mycompiler/MyCompiler.java b/src/mycompiler/MyCompiler.java index d7a90d61f..a40d05547 100755 --- a/src/mycompiler/MyCompiler.java +++ b/src/mycompiler/MyCompiler.java @@ -828,8 +828,10 @@ public class MyCompiler implements MyCompilerAPI } @Override - public void parse(String sourceCode) { - this.m_AbstractSyntaxTree.add(this.parse2SyntaxTree(new StringReader(sourceCode))); + public SourceFile parse(String sourceCode) { + SourceFile ret = this.parse2SyntaxTree(new StringReader(sourceCode)); + this.m_AbstractSyntaxTree.add(ret); + return ret; } } // ino.end diff --git a/src/mycompiler/MyCompilerAPI.java b/src/mycompiler/MyCompilerAPI.java index 126242a8f..9120cb74a 100755 --- a/src/mycompiler/MyCompilerAPI.java +++ b/src/mycompiler/MyCompilerAPI.java @@ -127,8 +127,9 @@ public interface MyCompilerAPI /** * Parst den SourceCode einer Datei. * @param sourceCode - SourceCode einer Java-Quellcodedatei + * @return den aus dem sourceCode generierten Syntaxbaum */ - public void parse(String sourceCode); + public SourceFile parse(String sourceCode); } // ino.end diff --git a/src/mycompiler/SyntaxTreeNode.java b/src/mycompiler/SyntaxTreeNode.java index eeb0bd7a9..cc8f4d6de 100644 --- a/src/mycompiler/SyntaxTreeNode.java +++ b/src/mycompiler/SyntaxTreeNode.java @@ -33,4 +33,12 @@ public abstract class SyntaxTreeNode { if(parent == null)throw new TypinferenzException("Das Wurzelelement eines Syntaxbaumes muss Class sein"); return parent.getParentClass(); } + + /** + * Eine Beschreibung/Name des SyntaxTree-Nodes + * @return + */ + public String getDescription(){ + return this.toString(); + } } diff --git a/src/mycompiler/myclass/Class.java b/src/mycompiler/myclass/Class.java index e89d30a77..35f9dbfee 100755 --- a/src/mycompiler/myclass/Class.java +++ b/src/mycompiler/myclass/Class.java @@ -1314,5 +1314,10 @@ public class Class extends SyntaxTreeNode implements AClassOrInterface return true; } + + @Override + public String getDescription(){ + return "class "+this.getName(); + } } // ino.end diff --git a/src/mycompiler/myclass/Field.java b/src/mycompiler/myclass/Field.java index e3885aa4d..a39079209 100644 --- a/src/mycompiler/myclass/Field.java +++ b/src/mycompiler/myclass/Field.java @@ -90,4 +90,9 @@ public abstract class Field extends SyntaxTreeNode implements TypeInsertable, Ty public String getIdentifier() { return this.get_Name().firstElement().get_Name(); } + + @Override + public String getDescription(){ + return this.getIdentifier(); + } } diff --git a/src/mycompiler/myclass/Method.java b/src/mycompiler/myclass/Method.java index f41a2a998..76562ccbd 100755 --- a/src/mycompiler/myclass/Method.java +++ b/src/mycompiler/myclass/Method.java @@ -699,7 +699,5 @@ public class Method extends Field implements IItemWithOffset, TypeInsertable return ret; } - - } // ino.end diff --git a/test/plugindevelopment/SyntaxTreeTests.java b/test/plugindevelopment/SyntaxTreeTests.java new file mode 100644 index 000000000..105897a1c --- /dev/null +++ b/test/plugindevelopment/SyntaxTreeTests.java @@ -0,0 +1,7 @@ +package plugindevelopment; + +public class SyntaxTreeTests { + + //TODO: Hier tests für getChildren anfügen. + +}