Push -> My PC just died, RIP my computer 2021 - 2025

This commit is contained in:
jeffcheasey88 2025-05-08 21:11:58 +02:00
parent e0716ef657
commit 7ffd5c2d20
20 changed files with 355 additions and 171 deletions

View file

@ -20,27 +20,25 @@ public class Parser<E>{
this.state = stateTree;
}
public final void parse(BufferedReader reader, E container) throws Exception{
public final TokenValidator parse(BufferedReader reader, E container) throws Exception{
this.tokenizer.reset();
this.tokenizer.parse(reader);
this.state.seed(new TokenValidator(tokenizer.getTokens().toArray(new Token[0])), container);
TokenValidator validator = new TokenValidator(tokenizer.getTokens().toArray(new Token[0]));
this.state.seed(validator, container);
return validator;
}
public final void parse(String line, E container) throws Exception{
public final TokenValidator parse(String line, E container) throws Exception{
this.tokenizer.reset();
this.tokenizer.parse(line);
this.state.seed(new TokenValidator(tokenizer.getTokens().toArray(new Token[0])), container);
}
public final void parseStream(BufferedReader reader, E container) throws Exception{
TokenValidator validator = new TokenValidator(tokenizer.getTokens().toArray(new Token[0]));
this.state.seed(validator, container);
return validator;
}
//tmp
public void build(BufferedWriter writer) throws Exception{
Token[] confirmed = new Token[TokenValidator.MAX_VALIDATE];
public void build(BufferedWriter writer, TokenValidator validator) throws Exception{
Token[] confirmed = new Token[validator.getTokenCount()];
System.arraycopy(tokenizer.getTokens().toArray(), 0, confirmed, 0, confirmed.length);
int line = 1;
int character = 1;

View file

@ -0,0 +1,17 @@
package dev.peerat.parser;
public class SyntaxMissMatchException extends Exception{
private static final long serialVersionUID = -635419322226790786L;
private TokenValidator validator;
public SyntaxMissMatchException(TokenValidator validator){
this.validator = validator;
}
@Override
public String getMessage(){
return "Only "+validator.getValidatedTokenCount()+" out "+validator.getTokenCount()+" of tokens parsed !";
}
}

View file

@ -5,11 +5,7 @@ import java.util.function.Function;
public class TokenValidator{
public static int MAX_VALIDATE = 0;
public static int TOKENS = 0;
private Token[] elements;
private int index;
private int validated;
private Bag bag;
@ -23,6 +19,14 @@ public class TokenValidator{
this.bag = new Bag();
}
public int getTokenCount(){
return this.elements.length;
}
public int getValidatedTokenCount(){
return this.validated;
}
public boolean hasNext(){
return validated < elements.length;
}
@ -30,12 +34,7 @@ public class TokenValidator{
public boolean validate(Function<Token, Boolean> action){
if(validated >= this.elements.length) return false;
if(action.apply(this.elements[validated])){
if(validated+1 > MAX_VALIDATE){
MAX_VALIDATE = validated+1;
TOKENS = elements.length;
}
this.validated++;
return true;
}
return false;
@ -52,13 +51,11 @@ public class TokenValidator{
public TokenValidator branch(){
TokenValidator branch = new TokenValidator(bag);
branch.elements = this.elements;
branch.index = Math.max(0, this.validated-1);
branch.validated = this.validated;
return branch;
}
public void merge(TokenValidator branch){
this.index = branch.index;
this.validated = branch.validated;
this.bag = branch.bag;
}

View file

@ -4,7 +4,6 @@ import java.util.ArrayList;
import java.util.List;
import dev.peerat.parser.Token;
import dev.peerat.parser.java.visitor.JavaVisitor;
import dev.peerat.parser.visitor.Visitor;
import dev.peerat.parser.visitor.VisitorBag;

View file

@ -0,0 +1,44 @@
package dev.peerat.parser.java;
import java.util.ArrayList;
import java.util.List;
import java.util.function.Function;
import dev.peerat.parser.visitor.Visitor;
import dev.peerat.parser.visitor.VisitorBag;
public class JavaProject extends JavaElement{
private List<JavaFile> files;
public JavaProject(){
this.files = new ArrayList<>();
}
public void addFile(JavaFile file){
this.files.add(file);
}
public List<JavaFile> getFiles(){
return this.files;
}
@Override
public <E extends JavaElement> E find(Function<JavaElement, Boolean> finder) {
return null;
}
@Override
public <E extends JavaElement> void findAll(Function<JavaElement, Boolean> finder, List<E> list) {
}
@Override
public VisitorBag visit(Visitor<JavaElement> visitor){
VisitorBag bag = new VisitorBag();
for(JavaFile file : this.files) bag.merge(file.visit(visitor));
return bag;
}
}

View file

@ -2,15 +2,15 @@ package dev.peerat.parser.java.visitor;
import java.util.function.Predicate;
import dev.peerat.parser.java.Annotation;
import dev.peerat.parser.java.Class;
import dev.peerat.parser.java.JavaElement;
import dev.peerat.parser.visitor.Visitor;
import dev.peerat.parser.visitor.VisitorBag;
public class JavaClassVisitor extends JavaVisitor<dev.peerat.parser.java.Class>{
public class JavaClassVisitor extends JavaModifiableVisitor<dev.peerat.parser.java.Class, JavaClassVisitor>{
private Predicate<String> nameFilter;
private Predicate<Integer> modifierFilter;
private Visitor<JavaElement> elementVisitor;
public JavaClassVisitor(boolean propagate){
@ -22,78 +22,6 @@ public class JavaClassVisitor extends JavaVisitor<dev.peerat.parser.java.Class>{
return this;
}
public JavaClassVisitor isPublic(){
Predicate<Integer> validator = (mod) -> (mod & 0x1) != 0;
this.modifierFilter = (this.modifierFilter == null) ? validator : this.modifierFilter.and(validator);
return this;
}
public JavaClassVisitor isPrivate(){
Predicate<Integer> validator = (mod) -> (mod & 0x2) != 0;
this.modifierFilter = (this.modifierFilter == null) ? validator : this.modifierFilter.and(validator);
return this;
}
public JavaClassVisitor isProtected(){
Predicate<Integer> validator = (mod) -> (mod & 0x4) != 0;
this.modifierFilter = (this.modifierFilter == null) ? validator : this.modifierFilter.and(validator);
return this;
}
public JavaClassVisitor isStatic(){
Predicate<Integer> validator = (mod) -> (mod & 0x8) != 0;
this.modifierFilter = (this.modifierFilter == null) ? validator : this.modifierFilter.and(validator);
return this;
}
public JavaClassVisitor isFinal(){
Predicate<Integer> validator = (mod) -> (mod & 0x10) != 0;
this.modifierFilter = (this.modifierFilter == null) ? validator : this.modifierFilter.and(validator);
return this;
}
public JavaClassVisitor isSynchronized(){
Predicate<Integer> validator = (mod) -> (mod & 0x20) != 0;
this.modifierFilter = (this.modifierFilter == null) ? validator : this.modifierFilter.and(validator);
return this;
}
public JavaClassVisitor isVolatile(){
Predicate<Integer> validator = (mod) -> (mod & 0x40) != 0;
this.modifierFilter = (this.modifierFilter == null) ? validator : this.modifierFilter.and(validator);
return this;
}
public JavaClassVisitor isTransient(){
Predicate<Integer> validator = (mod) -> (mod & 0x80) != 0;
this.modifierFilter = (this.modifierFilter == null) ? validator : this.modifierFilter.and(validator);
return this;
}
public JavaClassVisitor isNative(){
Predicate<Integer> validator = (mod) -> (mod & 0x100) != 0;
this.modifierFilter = (this.modifierFilter == null) ? validator : this.modifierFilter.and(validator);
return this;
}
public JavaClassVisitor isAbstract(){
Predicate<Integer> validator = (mod) -> (mod & 0x400) != 0;
this.modifierFilter = (this.modifierFilter == null) ? validator : this.modifierFilter.and(validator);
return this;
}
public JavaClassVisitor isStrict(){
Predicate<Integer> validator = (mod) -> (mod & 0x800) != 0;
this.modifierFilter = (this.modifierFilter == null) ? validator : this.modifierFilter.and(validator);
return this;
}
public JavaClassVisitor isPackageLevel(){
Predicate<Integer> validator = (mod) -> (mod & 0x1) == 0 && (mod & 0x2) == 0 && (mod & 0x4) == 0;
this.modifierFilter = (this.modifierFilter == null) ? validator : this.modifierFilter.and(validator);
return this;
}
public JavaClassVisitor elements(Visitor<JavaElement> visitor){
this.elementVisitor = visitor;
return this;
@ -111,8 +39,20 @@ public class JavaClassVisitor extends JavaVisitor<dev.peerat.parser.java.Class>{
if(!nameFilter.test(element.getName().getValue())) return bag;
}
if(this.annotationVisitor != null){
boolean validatedOne = false;
for(Annotation annotation : element.getAnnotations()){
VisitorBag visited = annotation.visit(this.annotationVisitor);
if(visited.isValidated()){
bag.merge(visited);
validatedOne = true;
}
}
if(!validatedOne) return bag;
}
if(this.modifierFilter != null){
//check MOD
if(!this.modifierFilter.test(element.getModifier())) return bag;
}
if(this.elementVisitor != null){

View file

@ -0,0 +1,93 @@
package dev.peerat.parser.java.visitor;
import java.util.function.Predicate;
import dev.peerat.parser.java.JavaElement;
import dev.peerat.parser.visitor.Visitor;
public abstract class JavaModifiableVisitor<E extends JavaElement, V> extends JavaVisitor<E>{
protected Predicate<Integer> modifierFilter;
protected Visitor<JavaElement> annotationVisitor; //TODO possibility to combine visitor too
public JavaModifiableVisitor(Class<?> type, boolean propagate){
super(type, propagate);
}
public V isPublic(){
Predicate<Integer> validator = (mod) -> (mod & 0x1) != 0;
this.modifierFilter = (this.modifierFilter == null) ? validator : this.modifierFilter.and(validator);
return (V) this;
}
public V isPrivate(){
Predicate<Integer> validator = (mod) -> (mod & 0x2) != 0;
this.modifierFilter = (this.modifierFilter == null) ? validator : this.modifierFilter.and(validator);
return (V) this;
}
public V isProtected(){
Predicate<Integer> validator = (mod) -> (mod & 0x4) != 0;
this.modifierFilter = (this.modifierFilter == null) ? validator : this.modifierFilter.and(validator);
return (V) this;
}
public V isStatic(){
Predicate<Integer> validator = (mod) -> (mod & 0x8) != 0;
this.modifierFilter = (this.modifierFilter == null) ? validator : this.modifierFilter.and(validator);
return (V) this;
}
public V isFinal(){
Predicate<Integer> validator = (mod) -> (mod & 0x10) != 0;
this.modifierFilter = (this.modifierFilter == null) ? validator : this.modifierFilter.and(validator);
return (V) this;
}
public V isSynchronized(){
Predicate<Integer> validator = (mod) -> (mod & 0x20) != 0;
this.modifierFilter = (this.modifierFilter == null) ? validator : this.modifierFilter.and(validator);
return (V) this;
}
public V isVolatile(){
Predicate<Integer> validator = (mod) -> (mod & 0x40) != 0;
this.modifierFilter = (this.modifierFilter == null) ? validator : this.modifierFilter.and(validator);
return (V) this;
}
public V isTransient(){
Predicate<Integer> validator = (mod) -> (mod & 0x80) != 0;
this.modifierFilter = (this.modifierFilter == null) ? validator : this.modifierFilter.and(validator);
return (V) this;
}
public V isNative(){
Predicate<Integer> validator = (mod) -> (mod & 0x100) != 0;
this.modifierFilter = (this.modifierFilter == null) ? validator : this.modifierFilter.and(validator);
return (V) this;
}
public V isAbstract(){
Predicate<Integer> validator = (mod) -> (mod & 0x400) != 0;
this.modifierFilter = (this.modifierFilter == null) ? validator : this.modifierFilter.and(validator);
return (V) this;
}
public V isStrict(){
Predicate<Integer> validator = (mod) -> (mod & 0x800) != 0;
this.modifierFilter = (this.modifierFilter == null) ? validator : this.modifierFilter.and(validator);
return (V) this;
}
public V isPackageLevel(){
Predicate<Integer> validator = (mod) -> (mod & 0x1) == 0 && (mod & 0x2) == 0 && (mod & 0x4) == 0;
this.modifierFilter = (this.modifierFilter == null) ? validator : this.modifierFilter.and(validator);
return (V) this;
}
public V annotation(Visitor<JavaElement> visitor){
this.annotationVisitor = visitor;
return (V) this;
}
}

View file

@ -1,17 +1,18 @@
package dev.peerat.parser.state;
import java.util.function.Function;
import java.util.function.Predicate;
import dev.peerat.parser.TokenValidator;
public class BinaryStateTree<E> extends StateTree<E>{
private Function<TokenValidator, Boolean> condition;
private Predicate<TokenValidator> condition;
private StateTree<E> success;
private StateTree<E> fail;
public BinaryStateTree(Function<TokenValidator, Boolean> checker){
public BinaryStateTree(Predicate<TokenValidator> checker){
super();
this.condition = checker;
@ -19,7 +20,7 @@ public class BinaryStateTree<E> extends StateTree<E>{
@Override
BuilderStateTree<E, ?> internalSeed(TokenValidator validator, E element){
return ((this.condition.apply(validator)) ? success : fail).internalSeed(validator, element);
return ((this.condition.test(validator)) ? success : fail).internalSeed(validator, element);
}
public StateTree<E> success(StateTree<E> state){

View file

@ -4,6 +4,7 @@ import java.util.ArrayList;
import java.util.List;
import java.util.function.BiFunction;
import java.util.function.Function;
import java.util.function.Predicate;
import dev.peerat.parser.Bag;
import dev.peerat.parser.TokenValidator;
@ -40,7 +41,7 @@ public class BuilderStateTree<E, B> extends StateTree<B>{
builded.build(validator, build);
}
}else{
while(state.checker.apply((branch = validator.branch()))){
while(state.checker.test((branch = validator.branch()))){
builded = state.internalSeed(branch, build);
if(builded == null) break;
validator.merge(branch);
@ -57,7 +58,7 @@ public class BuilderStateTree<E, B> extends StateTree<B>{
builded.build(validator, build);
}
}else{
if(state.checker.apply(branch)){
if(state.checker.test(branch)){
builded = state.internalSeed(branch, build);
if(builded == null) break;
validator.merge(branch);
@ -76,7 +77,7 @@ public class BuilderStateTree<E, B> extends StateTree<B>{
sub_builded.build(validator, element);
break;
}
if(child.checker.apply(branch)){
if(child.checker.test(branch)){
sub_builded = child.internalSeed(branch, element);
if(sub_builded == null) continue;
validator.merge(branch);
@ -93,7 +94,7 @@ public class BuilderStateTree<E, B> extends StateTree<B>{
return child;
}
public <T extends StateTree<E>> StateTree<E> thenNoChild(Function<TokenValidator, Boolean> checker){
public <T extends StateTree<E>> StateTree<E> thenNoChild(Predicate<TokenValidator> checker){
StateTree<E> state = new StateTree<>();
state.checker = checker;
this.childs.add(state);
@ -105,7 +106,7 @@ public class BuilderStateTree<E, B> extends StateTree<B>{
return this;
}
public <T extends BuilderStateTree<E,B>> BuilderStateTree<E,B> multiple(Function<TokenValidator, Boolean> checker){
public <T extends BuilderStateTree<E,B>> BuilderStateTree<E,B> multiple(Predicate<TokenValidator> checker){
StateTree<B> state = new StateTree<>();
state.checker = checker;
return multiple(state);
@ -116,7 +117,7 @@ public class BuilderStateTree<E, B> extends StateTree<B>{
return this;
}
public <T extends StateTree<B>> StateTree<B> unique(Function<TokenValidator, Boolean> checker){
public <T extends StateTree<B>> StateTree<B> unique(Predicate<TokenValidator> checker){
StateTree<B> state = new StateTree<>();
state.checker = checker;
unique(state);

View file

@ -26,7 +26,7 @@ public class InitialStateTree<E> extends StateTree<E>{
builded.build(validator, element);
}
}else{
while(state.checker.apply((branch = validator.branch()))){
while(state.checker.test((branch = validator.branch()))){
builded = state.internalSeed(branch, element);
if(builded == null) break;
validator.merge(branch);

View file

@ -4,9 +4,10 @@ import java.util.ArrayList;
import java.util.List;
import java.util.function.BiConsumer;
import java.util.function.BiFunction;
import java.util.function.Function;
import java.util.function.Predicate;
import dev.peerat.parser.Bag;
import dev.peerat.parser.SyntaxMissMatchException;
import dev.peerat.parser.Token;
import dev.peerat.parser.TokenValidator;
@ -14,7 +15,7 @@ public class StateTree<E>{
private List<StateTree<E>> childs;
Function<TokenValidator, Boolean> checker;
protected Predicate<TokenValidator> checker;
private BuilderStateTree<E, ?> builder;
//TODO checker in constructeur ?
@ -22,12 +23,11 @@ public class StateTree<E>{
this.childs = new ArrayList<>();
}
public void seed(TokenValidator validator, E container){
while(validator.hasNext()){
BuilderStateTree<E, ?> build = internalSeed(validator, container);
if(build == null) break;
build.build(validator, container);
}
public void seed(TokenValidator validator, E container) throws SyntaxMissMatchException{
BuilderStateTree<E, ?> build = internalSeed(validator, container);
if(build == null) throw new SyntaxMissMatchException(validator);
build.build(validator, container);
if(validator.hasNext()) throw new SyntaxMissMatchException(validator);
}
BuilderStateTree<E, ?> internalSeed(TokenValidator validator, E element){
@ -41,7 +41,7 @@ public class StateTree<E>{
}
continue;
}
if(child.checker.apply(branch)){
if(child.checker.test(branch)){
BuilderStateTree<E, ?> builded = child.internalSeed(branch, element);
if(builded != null){
validator.merge(branch);
@ -58,7 +58,7 @@ public class StateTree<E>{
return child;
}
public <T extends StateTree<E>> StateTree<E> then(Function<TokenValidator, Boolean> checker){
public <T extends StateTree<E>> StateTree<E> then(Predicate<TokenValidator> checker){
StateTree<E> state = new StateTree<>();
state.checker = checker;
this.childs.add(state);

View file

@ -12,15 +12,16 @@ public class Example {
JavaParser parser = new JavaParser();
JavaFile container = new JavaFile();
parser.parse("package dev.peerat.test; public class Example{ private int i = j; public void helloTest(){ System.out.println(\"hello\"); } }", container);
parser.parse("package dev.peerat.test; public class Example{ private int i = j, j; public void helloTest(){ System.out.println(\"hello\"); } }", container);
VisitorBag result = container.visit(
allClass()
key(allClass()
.isPublic()
.elements(
collect(variable())
value(allVariable()
)
)
);
));
System.out.println("allJavaElement in class : "+result.toList());
}

View file

@ -99,12 +99,28 @@ public class Operator{
};
}
public static <T extends Visitor<?>> T key(Visitor<?> visitor){
return null;
public static <E> Visitor<E> key(Visitor<E> visitor){
return new Visitor<E>(){
@Override
public VisitorBag visit(E element){
return visitor.visit(element).pair(element);
}
@Override
public boolean canVisit(Class<?> type){
// System.out.println("collect can visit ? "+type);
return visitor.canVisit(type);
}
@Override
public boolean canPropagate(){
return visitor.canPropagate();
}
};
}
public static <T extends Visitor<?>> T value(Visitor<?> visitor){
return null;
public static <E> Visitor<E> value(Visitor<E> visitor){
return collect(visitor);
}
public static <E> Visitor<E> collect(Visitor<E> visitor){

View file

@ -0,0 +1,58 @@
package dev.peerat.parser.visitor;
import java.util.function.Predicate;
import dev.peerat.parser.Token;
import dev.peerat.parser.TokenType;
public class TokenVisitor extends Visitor<Token>{
private Predicate<String> name;
private Predicate<TokenType> type;
private Predicate<Integer> line;
private Predicate<Integer> character;
@Override
public boolean canVisit(Class<?> type){
return type.isAssignableFrom(Token.class);
}
@Override
public boolean canPropagate(){
return false;
}
public TokenVisitor named(Predicate<String> predicate){
this.name = predicate;
return this;
}
public TokenVisitor type(Predicate<TokenType> predicate){
this.type = predicate;
return this;
}
public TokenVisitor line(Predicate<Integer> predicate){
this.line = predicate;
return this;
}
public TokenVisitor character(Predicate<Integer> predicate){
this.character = predicate;
return this;
}
@Override
public VisitorBag visit(Token element){
VisitorBag bag = new VisitorBag();
if(this.name != null && !this.name.test(element.getValue())) return bag;
if(this.type != null && !this.type.test(element.getType())) return bag;
if(this.line != null && !this.line.test(element.getLineNumber())) return bag;
if(this.character != null && !this.character.test(element.getCharacterNumber())) return bag;
bag.compute(element);
return bag;
}
}

View file

@ -1,47 +1,50 @@
package dev.peerat.parser.visitor;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
//only one pass in parameter or visit ?
public class VisitorBag{
private static Object VALIDATE_BAG = new Object();
private static final Object VALIDATE_BAG = new Object();
private List<Object> collect;
private List<Object> list;
private Object computed;
public VisitorBag(){
this.collect = new ArrayList<>();
this.list = new ArrayList<>();
}
public void compute(Object element){
// System.out.println("compute("+collect+", "+list+") "+element+" <- "+Thread.currentThread().getStackTrace()[2]);
this.list.add(element);
this.computed = element;
}
VisitorBag pair(Object key){
this.collect = Arrays.asList(new Pair<>(key, collect));
return this;
}
public void merge(VisitorBag bag){
// System.out.println("merge("+collect+", "+list+") <- "+Thread.currentThread().getStackTrace()[2]);
this.collect.addAll(bag.collect);
if(!this.collect.isEmpty()) list.add(VALIDATE_BAG);
// System.out.println("merged("+collect+", "+list+") <- "+Thread.currentThread().getStackTrace()[2]);
if(!this.collect.isEmpty()) this.computed = VALIDATE_BAG;
}
public boolean isValidated(){
return !this.list.isEmpty();
}
public List<Object> computeList(){
return this.list;
return this.VALIDATE_BAG != null;
}
VisitorBag collect(){
this.collect.addAll(this.list);
// System.out.println("collected("+collect+", "+list+") <- "+Thread.currentThread().getStackTrace()[2]);
return this;
}
public boolean hasElement(){
return !this.collect.isEmpty();
}
public <T> T toElement(){
return (T) this.collect.get(0);
}
@ -49,4 +52,45 @@ public class VisitorBag{
public <T> List<T> toList(){
return (List<T>) this.collect;
}
public <K, V> Map<K, V> toMap(){
Map<K, V> map = new HashMap<>();
for(Object obj : this.collect){
Pair<K, V> pair = (Pair<K, V>)obj;
map.put(pair.getKey(), pair.getValue());
}
return map;
}
public <K, V> Map<K, List<V>> toMapValues(){
Map<K, List<V>> map = new HashMap<>();
for(Object obj : this.collect){
Pair<K, V> pair = (Pair<K, V>)obj;
map.put(pair.getKey(), pair.getValues());
}
return map;
}
public static class Pair<K, V>{
private Object key;
private List<Object> values;
public Pair(Object key, List<Object> values){
this.key = key;
this.values = values;
}
public K getKey(){
return (K) this.key;
}
public V getValue(){
return (V) this.values.get(0);
}
public List<V> getValues(){
return (List<V>) this.values;
}
}
}

View file

@ -57,12 +57,7 @@ public class ForCase {
};
void testCase(String value) throws Exception{
TokenValidator.TOKENS = 0;
TokenValidator.MAX_VALIDATE = 0;
parser.parse(value, null);
assertEquals(TokenValidator.TOKENS, TokenValidator.MAX_VALIDATE);
}
@Test

View file

@ -32,8 +32,8 @@ public class SpecificCase{
return value;
}
};
parser.parse(reader, new JavaFile());
parser.build(new BufferedWriter(new FileWriter(new File("/home/ParserV2.txt"))));
TokenValidator validator = parser.parse(reader, new JavaFile());
parser.build(new BufferedWriter(new FileWriter(new File("/home/ParserV2.txt"))), validator);
}
}

View file

@ -90,15 +90,8 @@ public class TypeTests{
};
JavaElement testCase(String value) throws Exception{
TokenValidator.TOKENS = 0;
TokenValidator.MAX_VALIDATE = 0;
JavaElement result = null;
parser.parse(value, result);
assertEquals(TokenValidator.TOKENS, TokenValidator.MAX_VALIDATE);
return result;
}

View file

@ -253,15 +253,8 @@ public class ValueTests {
};
JavaElement testCase(String value) throws Exception{
TokenValidator.TOKENS = 0;
TokenValidator.MAX_VALIDATE = 0;
JavaElement result = null;
parser.parse(value, result);
assertEquals(TokenValidator.TOKENS, TokenValidator.MAX_VALIDATE);
return result;
}

View file

@ -16,6 +16,7 @@ import dev.peerat.parser.TokenType;
import dev.peerat.parser.TokenValidator;
import dev.peerat.parser.java.Annotation.AnnotableBuffer;
import dev.peerat.parser.java.Variable.VariableContainer;
import dev.peerat.parser.java.builder.JavaBuilder;
import dev.peerat.parser.java.value.Value;
import dev.peerat.parser.state.InitialStateTree;
import dev.peerat.parser.state.RedirectStateTree;
@ -78,15 +79,8 @@ public class VariableTests{
};
JavaElement testCase(String value) throws Exception{
TokenValidator.TOKENS = 0;
TokenValidator.MAX_VALIDATE = 0;
JavaElement result = new Class(null, 0,new Token(0, 0, "Test", TokenType.NAME));
JavaElement result = JavaBuilder.ofClass("Test").build();
parser.parse(value, result);
assertEquals(TokenValidator.TOKENS, TokenValidator.MAX_VALIDATE);
return result;
}