AutoTest -> 19.669%

This commit is contained in:
jeffcheasey88 2023-07-26 10:42:55 +02:00
parent 59e54f8111
commit 28dd9cd7b1
2 changed files with 70 additions and 31 deletions

View file

@ -119,7 +119,6 @@ public class JavaParser extends Parser<JavaElement> {
type_.end((a,b) -> a);
type_generic_name.then(type_array_begin);
type_generic_begin.then(type_generic_name);
type_generic_split.then(type_generic_name);
type_generic_end.end((a,b) -> a);
type_generic_end.then(type_generic_name);
@ -135,12 +134,28 @@ public class JavaParser extends Parser<JavaElement> {
//VALUE
StateTree<JavaElement> value = new StateTree<>();
StateTree<JavaElement> value_container = new StateTree<>();
value_container.then((validator) -> validator.validate((token) -> token.getValue().equals("!"))).then(value_container);
StateTree<JavaElement> value_left = value_container.then(new RedirectStateTree<>(value, (global, local) -> global.set(null)));
value_left.end((a,b) -> a);
StateTree<JavaElement> value_equals = value_left.then((validator) -> validator.validate((token) -> token.getValue().equals("=")));
value_equals.then(new RedirectStateTree<>(value_container, (global, local) -> global.set(null))).end((a,b) -> a);
value_equals.then((validator) -> validator.validate((token) -> token.getValue().equals("="))).then(new RedirectStateTree<>(value_container, (global, local) -> global.set(null))).end((a,b) -> a);
StateTree<JavaElement> value_minus = value_left.then((validator) -> validator.validate((token) -> token.getValue().equals("<"))).loop();
value_minus.then(new RedirectStateTree<>(value_container, (global, local) -> global.set(null))).end((a,b) -> a);
value_minus.then((validator) -> validator.validate((token) -> token.getValue().equals("="))).then(new RedirectStateTree<>(value_container, (global, local) -> global.set(null))).end((a,b) -> a);
StateTree<JavaElement> value_max = value_left.then((validator) -> validator.validate((token) -> token.getValue().equals(">"))).loop();
value_max.then(new RedirectStateTree<>(value_container, (global, local) -> global.set(null))).end((a,b) -> a);
value_max.then((validator) -> validator.validate((token) -> token.getValue().equals("="))).then(new RedirectStateTree<>(value_container, (global, local) -> global.set(null))).end((a,b) -> a);
value_left.then((validator) -> validator.validate((token) -> token.getValue().equals("!")) && validator.validate((token) -> token.getValue().equals("="))).then(new RedirectStateTree<>(value_container, (global, local) -> global.set(null))).end((a,b) -> a);
value_left.then((validator) -> validator.validate((token) -> token.getValue().equals("|")) && validator.validate((token) -> token.getValue().equals("|"))).then(new RedirectStateTree<>(value_container, (global, local) -> global.set(null))).end((a,b) -> a);
StateTree<JavaElement> value_instance = value.then((validator) -> validator.validate((token) -> token.getValue().equals("new")));
StateTree<JavaElement> value_name = new StateTree<JavaElement>();
value.then(value_name);
value_instance = value_instance
.then(new RedirectStateTree<>(value_name, (global, local) -> {
}));
.then(new RedirectStateTree<>(value_name, (global, local) -> global.set(null)));
value_name = value_name.then((validator) -> validator.validate(
(token) -> token.getType().equals(TokenType.NAME),
(bag, token) -> {
@ -150,23 +165,33 @@ public class JavaParser extends Parser<JavaElement> {
bag.set(current);
}));
value_name.end((a,b) -> a);
value_instance.end((a,b) -> a);
value_instance.then((validator) -> validator.validate((token) -> token.getValue().equals("{")))
StateTree<JavaElement> instance = value_instance.end((a,b) -> a);
instance.then((validator) -> validator.validate((token) -> token.getValue().equals("{")))
.end((a,b) -> a)
.multiple(clazz_container);
StateTree<JavaElement> value_call = value_name.then((validator) -> validator.validate((token) -> token.getValue().equals(".")));
value_call.then(value_name);
StateTree<JavaElement> value_array = value_name.then((validator) -> validator.validate((token) -> token.getValue().equals("[")))
.then(new RedirectStateTree<>(value_container, (global, local) -> global.set(null)))
.then((validator) -> validator.validate((token) -> token.getValue().equals("]")));
value_array.end((a,b) -> a);
value_array.then(value_call);
StateTree<JavaElement> value_arg_begin = value_name.then((validator) -> validator.validate((token) -> token.getValue().equals("(")));
StateTree<JavaElement> value_arg_end = value_arg_begin.then((validator) -> validator.validate((token) -> token.getValue().equals(")")));
value_arg_end.end((a,b) -> a);
value_arg_end.then(value_call);
StateTree<JavaElement> value_generic_begin = value_name.then((validator) -> validator.validate((token) -> token.getValue().equals("<")));
StateTree<JavaElement> value_generic_name = value_generic_begin.then((validator) -> validator.validate((token) -> token.getType().equals(TokenType.NAME)));
StateTree<JavaElement> value_generic_split = value_generic_name.then((validator) -> validator.validate((token) -> token.getValue().equals(",")));
StateTree<JavaElement> value_generic_end = value_generic_begin.then((validator) -> validator.validate((token) -> token.getValue().equals(">")));
value_generic_end.then(value_arg_begin);
StateTree<JavaElement> value_arg = value_arg_begin.then(new RedirectStateTree<>(value, (global, local) -> {
value_generic_end.then(value_generic_name);
value_generic_end.then(value_generic_split);
value_generic_name.then(value_generic_begin);
value_generic_split.then(value_generic_name);
StateTree<JavaElement> value_arg = value_arg_begin.then(new RedirectStateTree<>(value_container, (global, local) -> {
Integer count = global.get("args");
if(count == null) count = 0;
global.set("arg"+count, local);
@ -174,6 +199,7 @@ public class JavaParser extends Parser<JavaElement> {
}));
value_arg.then((validator) -> validator.validate((token) -> token.getValue().equals(",")))
.then(value_arg);
value_arg.then(value_arg_end);
value.then((validator) -> {
if(validator.validate((token) -> token.getValue().equals("'"))){
validator.validate((token) -> token.getValue().equals("\\"));
@ -206,9 +232,10 @@ public class JavaParser extends Parser<JavaElement> {
//OPERATION
StateTree<JavaElement> operation = new StateTree<>();
StateTree<JavaElement> operation_name = operation.then((validator) -> validator.validate((token) -> token.getType().equals(TokenType.NAME)));
StateTree<JavaElement> operation_name = operation.then(new RedirectStateTree<>(value_container, (global, local) -> global.set(null)));
operation_name.then((validator) -> validator.validate((token) -> token.getValue().equals(";"))).end((a,b) -> a);
operation_name.then((validator) -> validator.validate((token) -> token.getValue().equals("=")))
.then(new RedirectStateTree<>(value, (global, local) -> global.set(null)))
.then(new RedirectStateTree<>(value_container, (global, local) -> global.set(null)))
.then((validator) -> validator.validate((token) -> token.getValue().equals(";")))
.end((a,b) -> a);
StateTree<JavaElement> operation_call = operation_name.then((validator) -> validator.validate((token) -> token.getValue().equals(".")));
@ -218,20 +245,22 @@ public class JavaParser extends Parser<JavaElement> {
operation_end.then(operation_call);
operation_end.then((validator) -> validator.validate((token) -> token.getValue().equals(";")))
.end((a,b) -> a);
StateTree<JavaElement> operation_value = operation_begin.then(new RedirectStateTree<>(value, (global, local) -> global.set(null)));
StateTree<JavaElement> operation_value = operation_begin.then(new RedirectStateTree<>(value_container, (global, local) -> global.set(null)));
operation_value.then(operation_end);
operation_value.then((validator) -> validator.validate((token) -> token.getValue().equals("."))).then(operation_value);
operation_value.then((validator) -> validator.validate((token) -> token.getValue().equals(","))).then(operation_value);
operation.then((validator) -> validator.validate((token) -> token.getValue().equals("return")))
.then(new RedirectStateTree<>(value, (global, local) -> global.set(null)))
StateTree<JavaElement> operation_return = operation.then((validator) -> validator.validate((token) -> token.getValue().equals("return")));
operation_return.then(new RedirectStateTree<>(value_container, (global, local) -> global.set(null)))
.then((validator) -> validator.validate((token) -> token.getValue().equals(";")))
.end((a,b) -> a);
operation_return.then((validator) -> validator.validate((token) -> token.getValue().equals(";")))
.end((a,b) -> a);
operation.then((validator) -> validator.validate((token) -> token.getValue().equals("throw")))
.then(new RedirectStateTree<>(value, (global, local) -> global.set(null)))
.then(new RedirectStateTree<>(value_container, (global, local) -> global.set(null)))
.then((validator) -> validator.validate((token) -> token.getValue().equals(";")))
.end((a,b) -> a);
operation.then((validator) -> validator.validate((token) -> token.getValue().equals("do")))
.then(new RedirectStateTree<>(value, (global, local) -> global.set(null)))
.then(new RedirectStateTree<>(value_container, (global, local) -> global.set(null)))
.then((validator) -> validator.validate((token) -> token.getValue().equals(";")))
.end((a,b) -> a);
operation.then((validator) -> validator.validate((token) -> token.getValue().equals("else")))
@ -246,28 +275,29 @@ public class JavaParser extends Parser<JavaElement> {
.end((a,b) -> a);
StateTree<JavaElement> operation_if = operation.then((validator) -> validator.validate((token) -> token.getValue().equals("if")))
.then((validator) -> validator.validate((token) -> token.getValue().equals("(")))
.then(new RedirectStateTree<>(value, (global, local) -> global.set(null)))
.then(new RedirectStateTree<>(value_container, (global, local) -> global.set(null)))
.then((validator) -> validator.validate((token) -> token.getValue().equals(")")))
.end((a,b) -> a);
operation_if.then(operation);
operation_if.then((validator) -> validator.validate((token) -> token.getValue().equals("{")))
.then(new RedirectStateTree<>(function_container, (global, local) -> global.set(null)))
.end((a,b) -> a)
.multiple(function_container)
.then((validator) -> validator.validate((token) -> token.getValue().equals("}")))
.end((a,b) -> a);
operation.then((validator) -> validator.validate((token) -> token.getValue().equals("for")))
.then((validator) -> validator.validate((token) -> token.getValue().equals("(")))
.then(new RedirectStateTree<>(value, (global, local) -> global.set(null)))
.then(new RedirectStateTree<>(value_container, (global, local) -> global.set(null)))
.then((validator) -> validator.validate((token) -> token.getValue().equals(")")))
.end((a,b) -> a);
operation.then((validator) -> validator.validate((token) -> token.getValue().equals("while")))
.then((validator) -> validator.validate((token) -> token.getValue().equals("(")))
.then(new RedirectStateTree<>(value, (global, local) -> global.set(null)))
.then(new RedirectStateTree<>(value_container, (global, local) -> global.set(null)))
.then((validator) -> validator.validate((token) -> token.getValue().equals(")")))
.end((a,b) -> a);
operation.then((validator) -> validator.validate((token) -> token.getValue().equals("synchronized")))
.then((validator) -> validator.validate((token) -> token.getValue().equals("(")))
.then(new RedirectStateTree<>(value, (global, local) -> global.set(null)))
.then(new RedirectStateTree<>(value_container, (global, local) -> global.set(null)))
.then((validator) -> validator.validate((token) -> token.getValue().equals(")")))
.end((a,b) -> a);
@ -284,7 +314,7 @@ public class JavaParser extends Parser<JavaElement> {
StateTree<JavaElement> variable_split = variable_name.then((validator) -> validator.validate((token) -> token.getValue().equals(",")));
variable_split.then(variable_name);
StateTree<JavaElement> variable_value = variable_name.then((validator) -> validator.validate((token) -> token.getValue().equals("=")))
.then(new RedirectStateTree<>(value, (global, local) -> global.set("value", local)));
.then(new RedirectStateTree<>(value_container, (global, local) -> global.set("value", local)));
variable_value.then(variable_split);
variable_value.then((validator) -> validator.validate((token) -> token.getValue().equals(";")))
.end((a,b) -> a);
@ -423,7 +453,8 @@ public class JavaParser extends Parser<JavaElement> {
}
public static void main(String[] args) throws Exception{
File file = new File("C:\\Users\\jeffc\\eclipse-workspace\\peer-at-code-parseur\\src\\be\\jeffcheasey88\\peeratcode\\parser\\java\\JavaParser.java");
File file = new File("C:\\Users\\jeffc\\eclipse-workspace\\AdminSys\\src\\be\\lhoistxavier\\Main.java");
BufferedReader reader = new BufferedReader(new FileReader(file));
time = System.currentTimeMillis();

View file

@ -3,34 +3,42 @@ import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;
import java.util.List;
import org.junit.jupiter.api.Test;
import be.jeffcheasey88.peeratcode.parser.Parser;
import be.jeffcheasey88.peeratcode.parser.TokenValidator;
import be.jeffcheasey88.peeratcode.parser.java.JavaElement;
import be.jeffcheasey88.peeratcode.parser.java.JavaFile;
import be.jeffcheasey88.peeratcode.parser.java.JavaParser;
class GlobalCover {
@Test
public static void main(String[] args) throws Exception {
new GlobalCover().workspace();
}
void workspace() throws Exception{
List<File> files = files(new File("C:\\Users\\jeffc\\eclipse-workspace"));
long validated = 0;
long tokens = 0;
int count = 0;
boolean hasWriten = false;
long time = System.currentTimeMillis();
for(File file : files){
if(file.getName().endsWith(".java")){
BufferedReader reader = new BufferedReader(new FileReader(file));
new JavaParser().parse(reader, new JavaFile());
Parser<JavaElement> parser = new JavaParser();
parser.parse(reader, new JavaFile());
reader.close();
if((!hasWriten) && TokenValidator.MAX_VALIDATE < TokenValidator.TOKENS){
parser.build(new BufferedWriter(new FileWriter(new File("/home/ParserV2.txt"))));
hasWriten = true;
}
validated += TokenValidator.MAX_VALIDATE;
tokens += TokenValidator.TOKENS;
System.out.println(file+" "+validated+" / "+tokens);