ASTVisitor implementieren
This commit is contained in:
parent
3173cccefa
commit
afd3f32f23
@ -4,8 +4,6 @@ import de.dhbwstuttgart.exceptions.NotImplementedException;
|
|||||||
import de.dhbwstuttgart.parser.NullToken;
|
import de.dhbwstuttgart.parser.NullToken;
|
||||||
import de.dhbwstuttgart.parser.antlr.Java8Parser;
|
import de.dhbwstuttgart.parser.antlr.Java8Parser;
|
||||||
import de.dhbwstuttgart.syntaxtree.*;
|
import de.dhbwstuttgart.syntaxtree.*;
|
||||||
import de.dhbwstuttgart.syntaxtree.operator.AndOp;
|
|
||||||
import de.dhbwstuttgart.syntaxtree.operator.OrOp;
|
|
||||||
import de.dhbwstuttgart.syntaxtree.statement.*;
|
import de.dhbwstuttgart.syntaxtree.statement.*;
|
||||||
import de.dhbwstuttgart.syntaxtree.statement.literal.*;
|
import de.dhbwstuttgart.syntaxtree.statement.literal.*;
|
||||||
import de.dhbwstuttgart.syntaxtree.type.RefType;
|
import de.dhbwstuttgart.syntaxtree.type.RefType;
|
||||||
@ -505,7 +503,7 @@ public class StatementGenerator {
|
|||||||
return convert(expression.conditionalAndExpression());
|
return convert(expression.conditionalAndExpression());
|
||||||
}else{
|
}else{
|
||||||
return new Binary(convert(expression.conditionalOrExpression()),
|
return new Binary(convert(expression.conditionalOrExpression()),
|
||||||
convert(expression.conditionalAndExpression()), new OrOp(null));
|
convert(expression.conditionalAndExpression()), Binary.Operator.OR);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -514,7 +512,7 @@ public class StatementGenerator {
|
|||||||
return convert(expression.inclusiveOrExpression());
|
return convert(expression.inclusiveOrExpression());
|
||||||
}else{
|
}else{
|
||||||
return new Binary(convert(expression.conditionalAndExpression()),
|
return new Binary(convert(expression.conditionalAndExpression()),
|
||||||
convert(expression.inclusiveOrExpression()), new AndOp(null));
|
convert(expression.inclusiveOrExpression()), Binary.Operator.AND);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
25
src/de/dhbwstuttgart/syntaxtree/ASTVisitor.java
Normal file
25
src/de/dhbwstuttgart/syntaxtree/ASTVisitor.java
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
package de.dhbwstuttgart.syntaxtree;
|
||||||
|
|
||||||
|
import de.dhbwstuttgart.syntaxtree.statement.*;
|
||||||
|
import de.dhbwstuttgart.syntaxtree.statement.literal.Literal;
|
||||||
|
import de.dhbwstuttgart.syntaxtree.statement.literal.Null;
|
||||||
|
import de.dhbwstuttgart.syntaxtree.type.RefTypeOrTPHOrWildcardOrGeneric;
|
||||||
|
|
||||||
|
public interface ASTVisitor extends StatementVisitor{
|
||||||
|
|
||||||
|
void visit(SourceFile sourceFile);
|
||||||
|
|
||||||
|
void visit(ArgumentList argumentList);
|
||||||
|
|
||||||
|
void visit(RefTypeOrTPHOrWildcardOrGeneric refTypeOrTPHOrWildcardOrGeneric);
|
||||||
|
|
||||||
|
void visit(GenericTypeVar genericTypeVar);
|
||||||
|
|
||||||
|
void visit(FormalParameter formalParameter);
|
||||||
|
|
||||||
|
void visit(GenericDeclarationList genericTypeVars);
|
||||||
|
|
||||||
|
void visit(Field field);
|
||||||
|
|
||||||
|
void visit(ParameterList formalParameters);
|
||||||
|
}
|
@ -24,5 +24,10 @@ public class Field extends SyntaxTreeNode{
|
|||||||
public RefTypeOrTPHOrWildcardOrGeneric getType() {
|
public RefTypeOrTPHOrWildcardOrGeneric getType() {
|
||||||
return type;
|
return type;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void accept(ASTVisitor visitor) {
|
||||||
|
visitor.visit(this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -21,4 +21,9 @@ public class FormalParameter extends SyntaxTreeNode
|
|||||||
public String getName() {
|
public String getName() {
|
||||||
return name;
|
return name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void accept(ASTVisitor visitor) {
|
||||||
|
visitor.visit(this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -26,4 +26,9 @@ public class GenericDeclarationList extends SyntaxTreeNode implements Iterable<G
|
|||||||
public Iterator<GenericTypeVar> iterator() {
|
public Iterator<GenericTypeVar> iterator() {
|
||||||
return gtvs.iterator();
|
return gtvs.iterator();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void accept(ASTVisitor visitor) {
|
||||||
|
visitor.visit(this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -51,4 +51,9 @@ public class GenericTypeVar extends SyntaxTreeNode
|
|||||||
public GenericTypeName getName() {
|
public GenericTypeName getName() {
|
||||||
return name;
|
return name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void accept(ASTVisitor visitor) {
|
||||||
|
visitor.visit(this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -34,4 +34,9 @@ public class ParameterList extends SyntaxTreeNode implements Iterable<FormalPara
|
|||||||
public Iterator<FormalParameter> iterator() {
|
public Iterator<FormalParameter> iterator() {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void accept(ASTVisitor visitor) {
|
||||||
|
visitor.visit(this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -62,4 +62,9 @@ public class SourceFile extends SyntaxTreeNode{
|
|||||||
public File getFile() {
|
public File getFile() {
|
||||||
return file;
|
return file;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void accept(ASTVisitor visitor) {
|
||||||
|
visitor.visit(this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -19,4 +19,5 @@ public abstract class SyntaxTreeNode implements IItemWithOffset{
|
|||||||
return offset;
|
return offset;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public abstract void accept(ASTVisitor visitor);
|
||||||
}
|
}
|
||||||
|
@ -1,23 +0,0 @@
|
|||||||
package de.dhbwstuttgart.syntaxtree.operator;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Hashtable;
|
|
||||||
import java.util.Iterator;
|
|
||||||
|
|
||||||
import org.antlr.v4.runtime.Token;
|
|
||||||
import org.apache.bcel.Constants;
|
|
||||||
import org.apache.bcel.generic.ArithmeticInstruction;
|
|
||||||
import org.apache.bcel.generic.DUP;
|
|
||||||
import org.apache.bcel.generic.IADD;
|
|
||||||
import org.apache.bcel.generic.InstructionList;
|
|
||||||
import org.apache.bcel.generic.InvokeInstruction;
|
|
||||||
import org.apache.bcel.generic.ObjectType;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public abstract class AddOp extends Operator
|
|
||||||
{
|
|
||||||
public AddOp(Token offset) {
|
|
||||||
super(offset);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1,18 +0,0 @@
|
|||||||
package de.dhbwstuttgart.syntaxtree.operator;
|
|
||||||
|
|
||||||
import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode;
|
|
||||||
import de.dhbwstuttgart.syntaxtree.statement.Binary;
|
|
||||||
import org.antlr.v4.runtime.Token;
|
|
||||||
import org.apache.bcel.generic.InstructionList;
|
|
||||||
|
|
||||||
public class AndOp extends LogOp
|
|
||||||
{
|
|
||||||
|
|
||||||
public AndOp(Token offset)
|
|
||||||
{
|
|
||||||
super(offset);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
@ -1,12 +0,0 @@
|
|||||||
package de.dhbwstuttgart.syntaxtree.operator;
|
|
||||||
|
|
||||||
import org.antlr.v4.runtime.Token;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public class DivideOp extends MulOp
|
|
||||||
{
|
|
||||||
public DivideOp(Token offset) {
|
|
||||||
super(offset);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,15 +0,0 @@
|
|||||||
package de.dhbwstuttgart.syntaxtree.operator;
|
|
||||||
|
|
||||||
import org.antlr.v4.runtime.Token;
|
|
||||||
import org.apache.bcel.generic.BranchInstruction;
|
|
||||||
import org.apache.bcel.generic.IF_ICMPNE;
|
|
||||||
|
|
||||||
|
|
||||||
public class EqualOp extends RelOp
|
|
||||||
{
|
|
||||||
|
|
||||||
|
|
||||||
public EqualOp(Token offset) {
|
|
||||||
super(offset);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,13 +0,0 @@
|
|||||||
package de.dhbwstuttgart.syntaxtree.operator;
|
|
||||||
|
|
||||||
import org.antlr.v4.runtime.Token;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public class GreaterEquOp extends RelOp
|
|
||||||
{
|
|
||||||
|
|
||||||
public GreaterEquOp(Token offset) {
|
|
||||||
super(offset);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,14 +0,0 @@
|
|||||||
package de.dhbwstuttgart.syntaxtree.operator;
|
|
||||||
import org.antlr.v4.runtime.Token;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public class GreaterOp extends RelOp
|
|
||||||
{
|
|
||||||
|
|
||||||
|
|
||||||
public GreaterOp(Token offset) {
|
|
||||||
super(offset);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,15 +0,0 @@
|
|||||||
package de.dhbwstuttgart.syntaxtree.operator;
|
|
||||||
|
|
||||||
import org.antlr.v4.runtime.Token;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public class LessEquOp extends RelOp
|
|
||||||
{
|
|
||||||
|
|
||||||
|
|
||||||
public LessEquOp(Token offset) {
|
|
||||||
super(offset);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,14 +0,0 @@
|
|||||||
package de.dhbwstuttgart.syntaxtree.operator;
|
|
||||||
import org.antlr.v4.runtime.Token;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public class LessOp extends RelOp
|
|
||||||
{
|
|
||||||
public LessOp(Token offset)
|
|
||||||
{
|
|
||||||
super(offset);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1,18 +0,0 @@
|
|||||||
package de.dhbwstuttgart.syntaxtree.operator;
|
|
||||||
import org.antlr.v4.runtime.Token;
|
|
||||||
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Hashtable;
|
|
||||||
import java.util.Iterator;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public abstract class LogOp extends Operator
|
|
||||||
{
|
|
||||||
|
|
||||||
public LogOp(Token offset)
|
|
||||||
{
|
|
||||||
super(offset);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1,11 +0,0 @@
|
|||||||
package de.dhbwstuttgart.syntaxtree.operator;
|
|
||||||
|
|
||||||
|
|
||||||
import org.antlr.v4.runtime.Token;
|
|
||||||
|
|
||||||
public class MinusOp extends AddOp
|
|
||||||
{
|
|
||||||
public MinusOp(Token offset) {
|
|
||||||
super(offset);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,15 +0,0 @@
|
|||||||
package de.dhbwstuttgart.syntaxtree.operator;
|
|
||||||
|
|
||||||
import org.antlr.v4.runtime.Token;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public class ModuloOp extends MulOp
|
|
||||||
{
|
|
||||||
public ModuloOp(Token offset)
|
|
||||||
{
|
|
||||||
super(offset);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1,10 +0,0 @@
|
|||||||
package de.dhbwstuttgart.syntaxtree.operator;
|
|
||||||
|
|
||||||
import org.antlr.v4.runtime.Token;
|
|
||||||
|
|
||||||
public abstract class MulOp extends Operator
|
|
||||||
{
|
|
||||||
public MulOp(Token offset) {
|
|
||||||
super(offset);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,11 +0,0 @@
|
|||||||
package de.dhbwstuttgart.syntaxtree.operator;
|
|
||||||
|
|
||||||
import org.antlr.v4.runtime.Token;
|
|
||||||
|
|
||||||
public class NotEqualOp extends RelOp
|
|
||||||
{
|
|
||||||
|
|
||||||
public NotEqualOp(Token offset) {
|
|
||||||
super(offset);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,13 +0,0 @@
|
|||||||
package de.dhbwstuttgart.syntaxtree.operator;
|
|
||||||
|
|
||||||
|
|
||||||
import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode;
|
|
||||||
import org.antlr.v4.runtime.Token;
|
|
||||||
|
|
||||||
public abstract class Operator extends SyntaxTreeNode
|
|
||||||
{
|
|
||||||
|
|
||||||
public Operator(Token offset) {
|
|
||||||
super(offset);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,15 +0,0 @@
|
|||||||
package de.dhbwstuttgart.syntaxtree.operator;
|
|
||||||
|
|
||||||
import org.antlr.v4.runtime.Token;
|
|
||||||
|
|
||||||
|
|
||||||
public class OrOp extends LogOp
|
|
||||||
{
|
|
||||||
|
|
||||||
public OrOp(Token offset)
|
|
||||||
{
|
|
||||||
super(offset);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
@ -1,12 +0,0 @@
|
|||||||
package de.dhbwstuttgart.syntaxtree.operator;
|
|
||||||
|
|
||||||
|
|
||||||
import org.antlr.v4.runtime.Token;
|
|
||||||
|
|
||||||
public class PlusOp extends AddOp
|
|
||||||
{
|
|
||||||
public PlusOp(Token offset)
|
|
||||||
{
|
|
||||||
super(offset);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,11 +0,0 @@
|
|||||||
package de.dhbwstuttgart.syntaxtree.operator;
|
|
||||||
|
|
||||||
import org.antlr.v4.runtime.Token;
|
|
||||||
|
|
||||||
public abstract class RelOp extends Operator
|
|
||||||
{
|
|
||||||
|
|
||||||
public RelOp(Token offset) {
|
|
||||||
super(offset);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,11 +0,0 @@
|
|||||||
package de.dhbwstuttgart.syntaxtree.operator;
|
|
||||||
|
|
||||||
import org.antlr.v4.runtime.Token;
|
|
||||||
|
|
||||||
public class TimesOp extends MulOp
|
|
||||||
{
|
|
||||||
public TimesOp(Token offset)
|
|
||||||
{
|
|
||||||
super(offset);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,6 +1,7 @@
|
|||||||
package de.dhbwstuttgart.syntaxtree.statement;
|
package de.dhbwstuttgart.syntaxtree.statement;
|
||||||
|
|
||||||
|
|
||||||
|
import de.dhbwstuttgart.syntaxtree.ASTVisitor;
|
||||||
import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode;
|
import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode;
|
||||||
import org.antlr.v4.runtime.Token;
|
import org.antlr.v4.runtime.Token;
|
||||||
|
|
||||||
@ -19,4 +20,8 @@ public class ArgumentList extends SyntaxTreeNode
|
|||||||
return expr;
|
return expr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void accept(ASTVisitor visitor) {
|
||||||
|
visitor.visit(this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -6,12 +6,16 @@ import de.dhbwstuttgart.typeinference.assumptions.TypeInferenceBlockInformation;
|
|||||||
import de.dhbwstuttgart.typeinference.constraints.ConstraintSet;
|
import de.dhbwstuttgart.typeinference.constraints.ConstraintSet;
|
||||||
import de.dhbwstuttgart.typeinference.assumptions.TypeInferenceInformation;
|
import de.dhbwstuttgart.typeinference.assumptions.TypeInferenceInformation;
|
||||||
|
|
||||||
import de.dhbwstuttgart.syntaxtree.operator.Operator;
|
|
||||||
|
|
||||||
|
|
||||||
// neu von Felix
|
// neu von Felix
|
||||||
public class Binary extends Expression
|
public class Binary extends Expression
|
||||||
{
|
{
|
||||||
|
public enum Operator{
|
||||||
|
ADD,
|
||||||
|
SUB,
|
||||||
|
MUL,
|
||||||
|
AND, OR, DIV
|
||||||
|
}
|
||||||
public Binary(Expression expr1, Expression expr2, Operator op){
|
public Binary(Expression expr1, Expression expr2, Operator op){
|
||||||
super(null, null);
|
super(null, null);
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
|
|
||||||
package de.dhbwstuttgart.syntaxtree.statement;
|
package de.dhbwstuttgart.syntaxtree.statement;
|
||||||
|
|
||||||
|
import de.dhbwstuttgart.syntaxtree.ASTVisitor;
|
||||||
import de.dhbwstuttgart.syntaxtree.StatementVisitor;
|
import de.dhbwstuttgart.syntaxtree.StatementVisitor;
|
||||||
import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode;
|
import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode;
|
||||||
import de.dhbwstuttgart.syntaxtree.type.RefTypeOrTPHOrWildcardOrGeneric;
|
import de.dhbwstuttgart.syntaxtree.type.RefTypeOrTPHOrWildcardOrGeneric;
|
||||||
@ -23,4 +24,9 @@ public abstract class Expression extends SyntaxTreeNode
|
|||||||
}
|
}
|
||||||
|
|
||||||
public abstract void accept(StatementVisitor visitor);
|
public abstract void accept(StatementVisitor visitor);
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void accept(ASTVisitor visitor) {
|
||||||
|
this.accept((StatementVisitor)visitor);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
package de.dhbwstuttgart.syntaxtree.statement;
|
package de.dhbwstuttgart.syntaxtree.statement;
|
||||||
|
|
||||||
import de.dhbwstuttgart.syntaxtree.StatementVisitor;
|
import de.dhbwstuttgart.syntaxtree.StatementVisitor;
|
||||||
import de.dhbwstuttgart.syntaxtree.operator.Operator;
|
|
||||||
import de.dhbwstuttgart.syntaxtree.type.RefType;
|
import de.dhbwstuttgart.syntaxtree.type.RefType;
|
||||||
import de.dhbwstuttgart.syntaxtree.type.TypePlaceholder;
|
import de.dhbwstuttgart.syntaxtree.type.TypePlaceholder;
|
||||||
import de.dhbwstuttgart.typeinference.assumptions.TypeInferenceBlockInformation;
|
import de.dhbwstuttgart.typeinference.assumptions.TypeInferenceBlockInformation;
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package de.dhbwstuttgart.syntaxtree.type;
|
package de.dhbwstuttgart.syntaxtree.type;
|
||||||
|
|
||||||
|
import de.dhbwstuttgart.syntaxtree.ASTVisitor;
|
||||||
import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode;
|
import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode;
|
||||||
import org.antlr.v4.runtime.Token;
|
import org.antlr.v4.runtime.Token;
|
||||||
|
|
||||||
@ -7,4 +8,9 @@ public class RefTypeOrTPHOrWildcardOrGeneric extends SyntaxTreeNode{
|
|||||||
public RefTypeOrTPHOrWildcardOrGeneric(Token offset) {
|
public RefTypeOrTPHOrWildcardOrGeneric(Token offset) {
|
||||||
super(offset);
|
super(offset);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void accept(ASTVisitor visitor) {
|
||||||
|
visitor.visit(this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
5
src/de/dhbwstuttgart/syntaxtree/visual/ASTPrinter.java
Normal file
5
src/de/dhbwstuttgart/syntaxtree/visual/ASTPrinter.java
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
package de.dhbwstuttgart.syntaxtree.visual;
|
||||||
|
|
||||||
|
public class ASTPrinter {
|
||||||
|
|
||||||
|
}
|
@ -1,8 +1,12 @@
|
|||||||
class Faculty {
|
class Faculty {
|
||||||
|
|
||||||
|
Integer mul(Integer x, Integer y) {
|
||||||
|
return x;
|
||||||
|
}
|
||||||
|
|
||||||
m () {
|
m () {
|
||||||
auto fact = (Integer x) -> {
|
auto fact = (Integer x) -> {
|
||||||
return fact.apply(x);
|
return mul(x, fact.apply(x));
|
||||||
};
|
};
|
||||||
return fact;
|
return fact;
|
||||||
}
|
}
|
||||||
|
@ -26,7 +26,8 @@ public class JavaTXCompilerTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void test() throws IOException, ClassNotFoundException {
|
public void test() throws IOException, ClassNotFoundException {
|
||||||
filesToTest.add(new File(rootDirectory+"mathStruc.jav"));
|
filesToTest.add(new File(rootDirectory+"Faculty.jav"));
|
||||||
|
//filesToTest.add(new File(rootDirectory+"mathStruc.jav"));
|
||||||
//filesToTest.add(new File(rootDirectory+"Lambda.jav"));
|
//filesToTest.add(new File(rootDirectory+"Lambda.jav"));
|
||||||
//filesToTest.add(new File(rootDirectory+"Lambda2.jav"));
|
//filesToTest.add(new File(rootDirectory+"Lambda2.jav"));
|
||||||
//filesToTest.add(new File(rootDirectory+"Lambda3.jav"));
|
//filesToTest.add(new File(rootDirectory+"Lambda3.jav"));
|
||||||
|
Loading…
Reference in New Issue
Block a user