Compare commits
No commits in common. "ad22bc03c54ee953db89c479f877a4d409f411e7" and "f4caa735b2edc6eb87489c5e497067e3e4bfdeb3" have entirely different histories.
ad22bc03c5
...
f4caa735b2
13 changed files with 5 additions and 360 deletions
|
@ -968,7 +968,7 @@ public class JavaParser extends Parser<JavaElement> {
|
||||||
(bag, token) -> bag.set("implement", bag.<Token>get("implement").concat(token)))).then(clazz_implement_name);
|
(bag, token) -> bag.set("implement", bag.<Token>get("implement").concat(token)))).then(clazz_implement_name);
|
||||||
clazz_implement_name.then((validator) -> validator.validate((token) -> token.getValue().equals("{")))
|
clazz_implement_name.then((validator) -> validator.validate((token) -> token.getValue().equals("{")))
|
||||||
.<JavaElement>end((parent, bag) -> {
|
.<JavaElement>end((parent, bag) -> {
|
||||||
Class current = new Class((((AnnotableBuffer)parent).getAnnotationBuffer()), bag.get("name"), bag.get("extend"), bag.get("implement"));
|
Class current = new Class((((AnnotableBuffer)parent).getAnnotationBuffer()), bag.get("name"), bag.get("extend"), bag.get("implements"));
|
||||||
if(parent instanceof ClassContainer) ((ClassContainer)parent).addClass(current);
|
if(parent instanceof ClassContainer) ((ClassContainer)parent).addClass(current);
|
||||||
return current;
|
return current;
|
||||||
})
|
})
|
||||||
|
@ -979,7 +979,7 @@ public class JavaParser extends Parser<JavaElement> {
|
||||||
.then(new RedirectStateTree<>(type, (global, local) -> global.set("extend", local.get())));
|
.then(new RedirectStateTree<>(type, (global, local) -> global.set("extend", local.get())));
|
||||||
clazz_extend.then((validator) -> validator.validate((token) -> token.getValue().equals("{")))
|
clazz_extend.then((validator) -> validator.validate((token) -> token.getValue().equals("{")))
|
||||||
.<JavaElement>end((parent, bag) -> {
|
.<JavaElement>end((parent, bag) -> {
|
||||||
Class current = new Class((((AnnotableBuffer)parent).getAnnotationBuffer()), bag.get("name"), bag.get("extend"), bag.get("implement"));
|
Class current = new Class((((AnnotableBuffer)parent).getAnnotationBuffer()), bag.get("name"), bag.get("extend"), bag.get("implements"));
|
||||||
if(parent instanceof ClassContainer) ((ClassContainer)parent).addClass(current);
|
if(parent instanceof ClassContainer) ((ClassContainer)parent).addClass(current);
|
||||||
return current;
|
return current;
|
||||||
})
|
})
|
||||||
|
@ -1001,7 +1001,7 @@ public class JavaParser extends Parser<JavaElement> {
|
||||||
(bag, token) -> bag.set("name", token)));
|
(bag, token) -> bag.set("name", token)));
|
||||||
StateTree<JavaElement> interface_start = interface_base.then((validator) -> validator.validate((token) -> token.getValue().equals("{")));
|
StateTree<JavaElement> interface_start = interface_base.then((validator) -> validator.validate((token) -> token.getValue().equals("{")));
|
||||||
interface_start.<JavaElement>end((parent,bag) -> {
|
interface_start.<JavaElement>end((parent,bag) -> {
|
||||||
Interface current = new Interface((((AnnotableBuffer)parent).getAnnotationBuffer()), bag.get("name"), bag.get("extend"));
|
Interface current = new Interface((((AnnotableBuffer)parent).getAnnotationBuffer()), bag.get("name"));
|
||||||
if(parent instanceof ClassContainer) ((ClassContainer)parent).addClass(current);
|
if(parent instanceof ClassContainer) ((ClassContainer)parent).addClass(current);
|
||||||
return current;
|
return current;
|
||||||
})
|
})
|
||||||
|
@ -1009,7 +1009,7 @@ public class JavaParser extends Parser<JavaElement> {
|
||||||
.unique((validator) -> validator.validate((token) -> token.getValue().equals("}"))).end((a,b) -> a);
|
.unique((validator) -> validator.validate((token) -> token.getValue().equals("}"))).end((a,b) -> a);
|
||||||
|
|
||||||
interface_base.then((validator) -> validator.validate((token) -> token.getValue().equals("extends")))
|
interface_base.then((validator) -> validator.validate((token) -> token.getValue().equals("extends")))
|
||||||
.then(new RedirectStateTree<>(type, (global, local) -> global.set("extend", local.get())))
|
.then(new RedirectStateTree<>(type, (global, local) -> global.set(null)))
|
||||||
.then(interface_start);
|
.then(interface_start);
|
||||||
|
|
||||||
StateTree<JavaElement> interface_mod = clazz_.then(new RedirectStateTree<>(modifier, (global, local) -> global.set("modifier", local)));
|
StateTree<JavaElement> interface_mod = clazz_.then(new RedirectStateTree<>(modifier, (global, local) -> global.set("modifier", local)));
|
||||||
|
@ -1029,7 +1029,7 @@ public class JavaParser extends Parser<JavaElement> {
|
||||||
|
|
||||||
StateTree<JavaElement> enum_start = enum_base.then((validator) -> validator.validate((token) -> token.getValue().equals("{")));
|
StateTree<JavaElement> enum_start = enum_base.then((validator) -> validator.validate((token) -> token.getValue().equals("{")));
|
||||||
enum_start.<JavaElement>end((parent,bag) -> {
|
enum_start.<JavaElement>end((parent,bag) -> {
|
||||||
Enumeration current = new Enumeration((((AnnotableBuffer)parent).getAnnotationBuffer()), bag.get("name"), bag.get("implement"));
|
Enumeration current = new Enumeration((((AnnotableBuffer)parent).getAnnotationBuffer()), bag.get("name"));
|
||||||
if(parent instanceof ClassContainer) ((ClassContainer)parent).addClass(current);
|
if(parent instanceof ClassContainer) ((ClassContainer)parent).addClass(current);
|
||||||
return current;
|
return current;
|
||||||
})
|
})
|
||||||
|
|
|
@ -1,38 +0,0 @@
|
||||||
package dev.peerat.parser.java.element;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.function.Consumer;
|
|
||||||
import java.util.function.Supplier;
|
|
||||||
|
|
||||||
import org.junit.jupiter.api.Test;
|
|
||||||
|
|
||||||
import dev.peerat.parser.Parser;
|
|
||||||
import dev.peerat.parser.java.JavaElement;
|
|
||||||
import dev.peerat.parser.java.JavaFile;
|
|
||||||
import dev.peerat.parser.java.JavaParser;
|
|
||||||
|
|
||||||
public class BaseElementTests{
|
|
||||||
|
|
||||||
private int size;
|
|
||||||
private List<Supplier<String>> texts = new ArrayList<>();
|
|
||||||
private List<Consumer<JavaFile>> checkers = new ArrayList<>();
|
|
||||||
|
|
||||||
public void register(Supplier<String> text, Consumer<JavaFile> checker){
|
|
||||||
this.texts.add(text);
|
|
||||||
this.checkers.add(checker);
|
|
||||||
this.size++;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void main() throws Exception{
|
|
||||||
Parser<JavaElement> parser = new JavaParser();
|
|
||||||
for(int i = 0; i < size; i++){
|
|
||||||
JavaFile javaFile = new JavaFile();
|
|
||||||
parser.parse(texts.get(i).get(), javaFile);
|
|
||||||
checkers.get(i).accept(javaFile);
|
|
||||||
}
|
|
||||||
System.out.println("passed "+size+" tests");
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,29 +0,0 @@
|
||||||
package dev.peerat.parser.java.element.clazz;
|
|
||||||
|
|
||||||
import static org.junit.Assert.assertNotNull;
|
|
||||||
import static org.junit.Assert.assertTrue;
|
|
||||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
|
||||||
|
|
||||||
import dev.peerat.parser.java.Class;
|
|
||||||
import dev.peerat.parser.java.ClassBase;
|
|
||||||
import dev.peerat.parser.java.element.BaseElementTests;
|
|
||||||
|
|
||||||
public class ClazzWithExtend extends BaseElementTests{
|
|
||||||
|
|
||||||
{
|
|
||||||
register(
|
|
||||||
() -> "package be.jeffcheasey88;"
|
|
||||||
+ ""
|
|
||||||
+ "public class Test extends MyTest{}",
|
|
||||||
(javafile) -> {
|
|
||||||
ClassBase clazzb = javafile.getMainClass();
|
|
||||||
assertNotNull(clazzb);
|
|
||||||
assertTrue(clazzb instanceof Class);
|
|
||||||
Class clazz = (Class)clazzb;
|
|
||||||
assertEquals("Test", clazz.getName().getValue());
|
|
||||||
assertEquals(0, clazz.getElements().size());
|
|
||||||
assertEquals("MyTest", clazz.getExtension().getValue());
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,30 +0,0 @@
|
||||||
package dev.peerat.parser.java.element.clazz;
|
|
||||||
|
|
||||||
import static org.junit.Assert.assertNotNull;
|
|
||||||
import static org.junit.Assert.assertTrue;
|
|
||||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
|
||||||
|
|
||||||
import dev.peerat.parser.java.Class;
|
|
||||||
import dev.peerat.parser.java.ClassBase;
|
|
||||||
import dev.peerat.parser.java.element.BaseElementTests;
|
|
||||||
|
|
||||||
public class ClazzWithExtendsAndImplements extends BaseElementTests{
|
|
||||||
|
|
||||||
{
|
|
||||||
register(
|
|
||||||
() -> "package be.jeffcheasey88;"
|
|
||||||
+ ""
|
|
||||||
+ "public class Test extends MyBigTest implements MyTest{}",
|
|
||||||
(javafile) -> {
|
|
||||||
ClassBase clazzb = javafile.getMainClass();
|
|
||||||
assertNotNull(clazzb);
|
|
||||||
assertTrue(clazzb instanceof Class);
|
|
||||||
Class clazz = (Class)clazzb;
|
|
||||||
assertEquals("Test", clazz.getName().getValue());
|
|
||||||
assertEquals(0, clazz.getElements().size());
|
|
||||||
assertEquals("MyBigTest", clazz.getExtension().getValue());
|
|
||||||
assertEquals("MyTest", clazz.getImplementations().getValue()); //where pouvoir en récuperer plusieurs ?
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,29 +0,0 @@
|
||||||
package dev.peerat.parser.java.element.clazz;
|
|
||||||
|
|
||||||
import static org.junit.Assert.assertNotNull;
|
|
||||||
import static org.junit.Assert.assertTrue;
|
|
||||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
|
||||||
|
|
||||||
import dev.peerat.parser.java.Class;
|
|
||||||
import dev.peerat.parser.java.ClassBase;
|
|
||||||
import dev.peerat.parser.java.element.BaseElementTests;
|
|
||||||
|
|
||||||
public class ClazzWithImplements extends BaseElementTests{
|
|
||||||
|
|
||||||
{
|
|
||||||
register(
|
|
||||||
() -> "package be.jeffcheasey88;"
|
|
||||||
+ ""
|
|
||||||
+ "public class Test implements MyTest{}",
|
|
||||||
(javafile) -> {
|
|
||||||
ClassBase clazzb = javafile.getMainClass();
|
|
||||||
assertNotNull(clazzb);
|
|
||||||
assertTrue(clazzb instanceof Class);
|
|
||||||
Class clazz = (Class)clazzb;
|
|
||||||
assertEquals("Test", clazz.getName().getValue());
|
|
||||||
assertEquals(0, clazz.getElements().size());
|
|
||||||
assertEquals("MyTest", clazz.getImplementations().getValue()); //where pouvoir en récuperer plusieurs ?
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,28 +0,0 @@
|
||||||
package dev.peerat.parser.java.element.clazz;
|
|
||||||
|
|
||||||
import static org.junit.Assert.assertNotNull;
|
|
||||||
import static org.junit.Assert.assertTrue;
|
|
||||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
|
||||||
|
|
||||||
import dev.peerat.parser.java.Class;
|
|
||||||
import dev.peerat.parser.java.ClassBase;
|
|
||||||
import dev.peerat.parser.java.element.BaseElementTests;
|
|
||||||
|
|
||||||
public class ClazzWithMod extends BaseElementTests{
|
|
||||||
|
|
||||||
{
|
|
||||||
register(
|
|
||||||
() -> "package be.jeffcheasey88;"
|
|
||||||
+ ""
|
|
||||||
+ "public static final class Test{}",
|
|
||||||
(javafile) -> {
|
|
||||||
ClassBase clazzb = javafile.getMainClass();
|
|
||||||
assertNotNull(clazzb);
|
|
||||||
assertTrue(clazzb instanceof Class);
|
|
||||||
Class clazz = (Class)clazzb;
|
|
||||||
assertEquals("Test", clazz.getName().getValue());
|
|
||||||
assertEquals(0, clazz.getElements().size());
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,28 +0,0 @@
|
||||||
package dev.peerat.parser.java.element.clazz;
|
|
||||||
|
|
||||||
import static org.junit.Assert.assertNotNull;
|
|
||||||
import static org.junit.Assert.assertTrue;
|
|
||||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
|
||||||
|
|
||||||
import dev.peerat.parser.java.Class;
|
|
||||||
import dev.peerat.parser.java.ClassBase;
|
|
||||||
import dev.peerat.parser.java.element.BaseElementTests;
|
|
||||||
|
|
||||||
public class ClazzWithoutMod extends BaseElementTests{
|
|
||||||
|
|
||||||
{
|
|
||||||
register(
|
|
||||||
() -> "package be.jeffcheasey88;"
|
|
||||||
+ ""
|
|
||||||
+ "class Test{}",
|
|
||||||
(javafile) -> {
|
|
||||||
ClassBase clazzb = javafile.getMainClass();
|
|
||||||
assertNotNull(clazzb);
|
|
||||||
assertTrue(clazzb instanceof Class);
|
|
||||||
Class clazz = (Class)clazzb;
|
|
||||||
assertEquals("Test", clazz.getName().getValue());
|
|
||||||
assertEquals(0, clazz.getElements().size());
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,30 +0,0 @@
|
||||||
package dev.peerat.parser.java.element.clazz;
|
|
||||||
|
|
||||||
import static org.junit.Assert.assertNotNull;
|
|
||||||
import static org.junit.Assert.assertTrue;
|
|
||||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
|
||||||
|
|
||||||
import dev.peerat.parser.java.Class;
|
|
||||||
import dev.peerat.parser.java.ClassBase;
|
|
||||||
import dev.peerat.parser.java.Enumeration;
|
|
||||||
import dev.peerat.parser.java.element.BaseElementTests;
|
|
||||||
|
|
||||||
public class EnumWithImplements extends BaseElementTests{
|
|
||||||
|
|
||||||
{
|
|
||||||
register(
|
|
||||||
() -> "package be.jeffcheasey88;"
|
|
||||||
+ ""
|
|
||||||
+ "public enum Test implements MyTest{}",
|
|
||||||
(javafile) -> {
|
|
||||||
ClassBase clazzb = javafile.getMainClass();
|
|
||||||
assertNotNull(clazzb);
|
|
||||||
assertTrue(clazzb instanceof Enumeration);
|
|
||||||
Enumeration clazz = (Enumeration)clazzb;
|
|
||||||
assertEquals("Test", clazz.getName().getValue());
|
|
||||||
assertEquals(0, clazz.getElements().size());
|
|
||||||
assertEquals("MyTest", clazz.getExtension().getValue());
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,29 +0,0 @@
|
||||||
package dev.peerat.parser.java.element.clazz;
|
|
||||||
|
|
||||||
import static org.junit.Assert.assertNotNull;
|
|
||||||
import static org.junit.Assert.assertTrue;
|
|
||||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
|
||||||
|
|
||||||
import dev.peerat.parser.java.Class;
|
|
||||||
import dev.peerat.parser.java.ClassBase;
|
|
||||||
import dev.peerat.parser.java.Enumeration;
|
|
||||||
import dev.peerat.parser.java.element.BaseElementTests;
|
|
||||||
|
|
||||||
public class EnumWithMod extends BaseElementTests{
|
|
||||||
|
|
||||||
{
|
|
||||||
register(
|
|
||||||
() -> "package be.jeffcheasey88;"
|
|
||||||
+ ""
|
|
||||||
+ "public static final enum Test{}",
|
|
||||||
(javafile) -> {
|
|
||||||
ClassBase clazzb = javafile.getMainClass();
|
|
||||||
assertNotNull(clazzb);
|
|
||||||
assertTrue(clazzb instanceof Enumeration);
|
|
||||||
Enumeration clazz = (Enumeration)clazzb;
|
|
||||||
assertEquals("Test", clazz.getName().getValue());
|
|
||||||
assertEquals(0, clazz.getElements().size());
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,28 +0,0 @@
|
||||||
package dev.peerat.parser.java.element.clazz;
|
|
||||||
|
|
||||||
import static org.junit.Assert.assertNotNull;
|
|
||||||
import static org.junit.Assert.assertTrue;
|
|
||||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
|
||||||
|
|
||||||
import dev.peerat.parser.java.ClassBase;
|
|
||||||
import dev.peerat.parser.java.Enumeration;
|
|
||||||
import dev.peerat.parser.java.element.BaseElementTests;
|
|
||||||
|
|
||||||
public class EnumWithoutMod extends BaseElementTests{
|
|
||||||
|
|
||||||
{
|
|
||||||
register(
|
|
||||||
() -> "package be.jeffcheasey88;"
|
|
||||||
+ ""
|
|
||||||
+ "enum Test{}",
|
|
||||||
(javafile) -> {
|
|
||||||
ClassBase clazzb = javafile.getMainClass();
|
|
||||||
assertNotNull(clazzb);
|
|
||||||
assertTrue(clazzb instanceof Enumeration);
|
|
||||||
Enumeration clazz = (Enumeration)clazzb;
|
|
||||||
assertEquals("Test", clazz.getName().getValue());
|
|
||||||
assertEquals(0, clazz.getElements().size());
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,29 +0,0 @@
|
||||||
package dev.peerat.parser.java.element.clazz;
|
|
||||||
|
|
||||||
import static org.junit.Assert.assertNotNull;
|
|
||||||
import static org.junit.Assert.assertTrue;
|
|
||||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
|
||||||
|
|
||||||
import dev.peerat.parser.java.ClassBase;
|
|
||||||
import dev.peerat.parser.java.Interface;
|
|
||||||
import dev.peerat.parser.java.element.BaseElementTests;
|
|
||||||
|
|
||||||
public class InterfaceWithExtends extends BaseElementTests{
|
|
||||||
|
|
||||||
{
|
|
||||||
register(
|
|
||||||
() -> "package be.jeffcheasey88;"
|
|
||||||
+ ""
|
|
||||||
+ "public interface Test extends MyTest{}",
|
|
||||||
(javafile) -> {
|
|
||||||
ClassBase clazzb = javafile.getMainClass();
|
|
||||||
assertNotNull(clazzb);
|
|
||||||
assertTrue(clazzb instanceof Interface);
|
|
||||||
Interface clazz = (Interface)clazzb;
|
|
||||||
assertEquals("Test", clazz.getName().getValue());
|
|
||||||
assertEquals(0, clazz.getElements().size());
|
|
||||||
assertEquals("MyTest", clazz.getExtension().getValue());
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,29 +0,0 @@
|
||||||
package dev.peerat.parser.java.element.clazz;
|
|
||||||
|
|
||||||
import static org.junit.Assert.assertNotNull;
|
|
||||||
import static org.junit.Assert.assertTrue;
|
|
||||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
|
||||||
|
|
||||||
import dev.peerat.parser.java.Class;
|
|
||||||
import dev.peerat.parser.java.ClassBase;
|
|
||||||
import dev.peerat.parser.java.Interface;
|
|
||||||
import dev.peerat.parser.java.element.BaseElementTests;
|
|
||||||
|
|
||||||
public class InterfaceWithMod extends BaseElementTests{
|
|
||||||
|
|
||||||
{
|
|
||||||
register(
|
|
||||||
() -> "package be.jeffcheasey88;"
|
|
||||||
+ ""
|
|
||||||
+ "public static final interface Test{}",
|
|
||||||
(javafile) -> {
|
|
||||||
ClassBase clazzb = javafile.getMainClass();
|
|
||||||
assertNotNull(clazzb);
|
|
||||||
assertTrue(clazzb instanceof Interface);
|
|
||||||
Interface clazz = (Interface)clazzb;
|
|
||||||
assertEquals("Test", clazz.getName().getValue());
|
|
||||||
assertEquals(0, clazz.getElements().size());
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,28 +0,0 @@
|
||||||
package dev.peerat.parser.java.element.clazz;
|
|
||||||
|
|
||||||
import static org.junit.Assert.assertNotNull;
|
|
||||||
import static org.junit.Assert.assertTrue;
|
|
||||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
|
||||||
|
|
||||||
import dev.peerat.parser.java.ClassBase;
|
|
||||||
import dev.peerat.parser.java.Interface;
|
|
||||||
import dev.peerat.parser.java.element.BaseElementTests;
|
|
||||||
|
|
||||||
public class InterfaceWithoutMod extends BaseElementTests{
|
|
||||||
|
|
||||||
{
|
|
||||||
register(
|
|
||||||
() -> "package be.jeffcheasey88;"
|
|
||||||
+ ""
|
|
||||||
+ "interface Test{}",
|
|
||||||
(javafile) -> {
|
|
||||||
ClassBase clazzb = javafile.getMainClass();
|
|
||||||
assertNotNull(clazzb);
|
|
||||||
assertTrue(clazzb instanceof Interface);
|
|
||||||
Interface clazz = (Interface)clazzb;
|
|
||||||
assertEquals("Test", clazz.getName().getValue());
|
|
||||||
assertEquals(0, clazz.getElements().size());
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
Loading…
Add table
Reference in a new issue