Extend constructor of SourceFile.

This commit is contained in:
Jakob Herrmann 2017-01-11 16:42:02 +01:00
parent 647196bf16
commit e4e98797fc
3 changed files with 53 additions and 35 deletions

View File

@ -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();
}
}
}

View File

@ -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;
}
}

View File

@ -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<ClassOrInterface> KlassenVektor = new ArrayList<>();
public List<ClassOrInterface> KlassenVektor = new ArrayList<>();
private List<JavaClassName> imports;
/**
* Die SourceFile repräsntiert eine zu einem Syntaxbaum eingelesene Java-Datei.
* SourceFile stellt dabei den Wurzelknoten des Syntaxbaumes dar.
*/
public SourceFile(List<ClassOrInterface> classDefinitions) {
this.KlassenVektor = classDefinitions;
}
public SourceFile(String pkgName,List<ClassOrInterface> classDefinitions,List<JavaClassName> imports){
this.KlassenVektor = classDefinitions;
if(pkgName != null){
this.pkgName = pkgName;
}
if(imports != null){
this.imports = imports;
}
}
public SourceFile(List<ClassOrInterface> classDefinitions){
this(null, classDefinitions, null);
}
public SourceFile(String pkgName, List<ClassOrInterface> classDefinitions){
this(pkgName, classDefinitions, null);
}
public SourceFile(List<ClassOrInterface> classDefinitions, List<JavaClassName> imports){
this(null, classDefinitions, imports);
}
}
// ino.end