From e4e98797fc527089836af9fa7be31c9b2365a133 Mon Sep 17 00:00:00 2001 From: Jakob Herrmann Date: Wed, 11 Jan 2017 16:42:02 +0100 Subject: [PATCH] Extend constructor of SourceFile. --- src/de/dhbwstuttgart/parser/RunParser.java | 46 +++++++++---------- .../syntaxtree/ClassOrInterface.java | 6 +++ .../dhbwstuttgart/syntaxtree/SourceFile.java | 36 ++++++++++----- 3 files changed, 53 insertions(+), 35 deletions(-) diff --git a/src/de/dhbwstuttgart/parser/RunParser.java b/src/de/dhbwstuttgart/parser/RunParser.java index 5ee9606f..6f04ac55 100644 --- a/src/de/dhbwstuttgart/parser/RunParser.java +++ b/src/de/dhbwstuttgart/parser/RunParser.java @@ -12,27 +12,27 @@ import java.io.ByteArrayInputStream; import java.io.InputStream; import java.nio.charset.StandardCharsets; public class RunParser{ - public static void main(String[] args){ - try{ - Scanner sc = new Scanner(System.in); - String inputString = sc.nextLine(); - while(sc.hasNextLine()) inputString = inputString + sc.nextLine(); - InputStream stream = new ByteArrayInputStream(inputString.getBytes(StandardCharsets.UTF_8)); - ANTLRInputStream input = new ANTLRInputStream(stream); - Java8Lexer lexer = new Java8Lexer(input); - CommonTokenStream tokens = new CommonTokenStream(lexer); - Java8Parser parser = new Java8Parser(tokens); - Java8Parser.CompilationUnitContext tree = parser.compilationUnit(); - SyntaxTreeGenerator generator = new SyntaxTreeGenerator(); - generator.getNames(tree); - SourceFile f = generator.convert((Java8Parser.CompilationUnitContext) tree); - for(ClassOrInterface c : f.KlassenVektor){ - System.out.println(c.getClassName().toString()); - } - } - catch(Exception e){ - System.out.println("An exception occured which is unknown and on our TODO list."); - e.printStackTrace(); - } - } + public static void main(String[] args){ + try{ + Scanner sc = new Scanner(System.in); + String inputString = sc.nextLine(); + while(sc.hasNextLine()) inputString = inputString + sc.nextLine(); + InputStream stream = new ByteArrayInputStream(inputString.getBytes(StandardCharsets.UTF_8)); + ANTLRInputStream input = new ANTLRInputStream(stream); + Java8Lexer lexer = new Java8Lexer(input); + CommonTokenStream tokens = new CommonTokenStream(lexer); + Java8Parser parser = new Java8Parser(tokens); + Java8Parser.CompilationUnitContext tree = parser.compilationUnit(); + SyntaxTreeGenerator generator = new SyntaxTreeGenerator(); + generator.getNames(tree); + SourceFile f = generator.convert((Java8Parser.CompilationUnitContext) tree); + for(ClassOrInterface c : f.KlassenVektor){ + System.out.println(c.getClassName().toString()); + } + } + catch(Exception e){ + System.out.println("An exception occured which is unknown and on our TODO list."); + e.printStackTrace(); + } + } } diff --git a/src/de/dhbwstuttgart/syntaxtree/ClassOrInterface.java b/src/de/dhbwstuttgart/syntaxtree/ClassOrInterface.java index d785d4d1..b2d70b7f 100755 --- a/src/de/dhbwstuttgart/syntaxtree/ClassOrInterface.java +++ b/src/de/dhbwstuttgart/syntaxtree/ClassOrInterface.java @@ -33,4 +33,10 @@ public class ClassOrInterface extends GTVDeclarationContext implements IItemWith public void setClassName(JavaClassName name){ this.name = name; } + + // Sets interface "switch". + public void setInterface(Boolean isInterface){ + this.isInterface = isInterface; + } + } diff --git a/src/de/dhbwstuttgart/syntaxtree/SourceFile.java b/src/de/dhbwstuttgart/syntaxtree/SourceFile.java index 8259f41a..6e51c074 100755 --- a/src/de/dhbwstuttgart/syntaxtree/SourceFile.java +++ b/src/de/dhbwstuttgart/syntaxtree/SourceFile.java @@ -5,23 +5,35 @@ import java.util.*; import de.dhbwstuttgart.typecheck.JavaClassName; -public class SourceFile extends SyntaxTreeNode -{ +public class SourceFile extends SyntaxTreeNode{ + private String pkgName; - - private String pkgName; - - public List KlassenVektor = new ArrayList<>(); + public List KlassenVektor = new ArrayList<>(); private List imports; /** * Die SourceFile repräsntiert eine zu einem Syntaxbaum eingelesene Java-Datei. * SourceFile stellt dabei den Wurzelknoten des Syntaxbaumes dar. */ - public SourceFile(List classDefinitions) { - this.KlassenVektor = classDefinitions; - } - - + public SourceFile(String pkgName,List classDefinitions,List imports){ + this.KlassenVektor = classDefinitions; + if(pkgName != null){ + this.pkgName = pkgName; + } + if(imports != null){ + this.imports = imports; + } + } + + public SourceFile(List classDefinitions){ + this(null, classDefinitions, null); + } + + public SourceFile(String pkgName, List classDefinitions){ + this(pkgName, classDefinitions, null); + } + + public SourceFile(List classDefinitions, List imports){ + this(null, classDefinitions, imports); + } } -// ino.end