Compare commits
No commits in common. "f4caa735b2edc6eb87489c5e497067e3e4bfdeb3" and "d402407ae20d2837245988f352a3ecadb4a806f9" have entirely different histories.
f4caa735b2
...
d402407ae2
6 changed files with 15 additions and 63 deletions
|
@ -28,20 +28,7 @@ public interface ElementBuilder{
|
||||||
}
|
}
|
||||||
|
|
||||||
public void build(BufferedWriter writer) throws Exception{
|
public void build(BufferedWriter writer) throws Exception{
|
||||||
int character = 1;
|
|
||||||
int line = 1;
|
|
||||||
for(Token token : tokens){
|
|
||||||
while(character < token.getCharacterNumber()){
|
|
||||||
writer.write(" ");
|
|
||||||
character++;
|
|
||||||
}
|
|
||||||
while(line < token.getLineNumber()){
|
|
||||||
writer.write("\n");
|
|
||||||
line++;
|
|
||||||
}
|
|
||||||
writer.write(token.getValue());
|
|
||||||
character+=token.getValue().length();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -95,13 +95,8 @@ public class Function extends Annotable implements VariableContainer, OperationC
|
||||||
super.build(builder);
|
super.build(builder);
|
||||||
String mod = Modifier.toString(this.mod);
|
String mod = Modifier.toString(this.mod);
|
||||||
builder.append(new Token(type.getLineNumber(), type.getCharacterNumber()-(mod.length()+1), mod, TokenType.GROUP));
|
builder.append(new Token(type.getLineNumber(), type.getCharacterNumber()-(mod.length()+1), mod, TokenType.GROUP));
|
||||||
builder.append(" ");
|
if(generic != null) builder.append(generic);
|
||||||
if(generic != null){
|
|
||||||
builder.append(generic);
|
|
||||||
builder.append(" ");
|
|
||||||
}
|
|
||||||
builder.append(type);
|
builder.append(type);
|
||||||
builder.append(" ");
|
|
||||||
builder.append(name);
|
builder.append(name);
|
||||||
builder.append("(");
|
builder.append("(");
|
||||||
if(parameters != null){
|
if(parameters != null){
|
||||||
|
|
|
@ -319,14 +319,13 @@ public class JavaParser extends Parser<JavaElement> {
|
||||||
for(int i = 0; i < paramters; i++) list.add(bag.<Bag>get("arg"+i).get());
|
for(int i = 0; i < paramters; i++) list.add(bag.<Bag>get("arg"+i).get());
|
||||||
bag.remove("args");
|
bag.remove("args");
|
||||||
}
|
}
|
||||||
MethodCallValue methodCall = new MethodCallValue(prev, bag.get("gen"), bag.get(), list);
|
MethodCallValue methodCall = new MethodCallValue(prev, bag.get(), list);
|
||||||
bag.set("prev", methodCall);
|
bag.set("prev", methodCall);
|
||||||
bag.remove("gen");
|
|
||||||
}
|
}
|
||||||
bag.set(new Token(token.getLineNumber(), token.getCharacterNumber(), "", TokenType.GROUP));
|
bag.set(token);
|
||||||
}));
|
}));
|
||||||
value_call.end((a,b) -> a);
|
value_call.end((a,b) -> a);
|
||||||
value_call.then(new RedirectStateTree<>(gen, (global, local) -> global.set("gen", global.<Token>get().concat(local.get())))).then(value_name);
|
value_call.then(new RedirectStateTree<>(gen, (global, local) -> global.set(global.<Token>get().concat(local.get())))).then(value_name);
|
||||||
value_call.then(value_name);
|
value_call.then(value_name);
|
||||||
StateTree<JavaElement> value_array_begin = value_name.then((validator) -> validator.validate((token) -> token.getValue().equals("[")));
|
StateTree<JavaElement> value_array_begin = value_name.then((validator) -> validator.validate((token) -> token.getValue().equals("[")));
|
||||||
StateTree<JavaElement> value_array_end = value_array_begin.then((validator) -> validator.validate((token) -> token.getValue().equals("]")));
|
StateTree<JavaElement> value_array_end = value_array_begin.then((validator) -> validator.validate((token) -> token.getValue().equals("]")));
|
||||||
|
@ -354,7 +353,7 @@ public class JavaParser extends Parser<JavaElement> {
|
||||||
for(int i = 0; i < paramters; i++) list.add(bag.<Bag>get("arg"+i).get());
|
for(int i = 0; i < paramters; i++) list.add(bag.<Bag>get("arg"+i).get());
|
||||||
}
|
}
|
||||||
|
|
||||||
MethodCallValue methodCall = new MethodCallValue(bag.get("prev"), bag.get("gen"), bag.get(), list);
|
MethodCallValue methodCall = new MethodCallValue(bag.get("prev"), bag.get(), list);
|
||||||
bag.set(methodCall);
|
bag.set(methodCall);
|
||||||
return null;
|
return null;
|
||||||
});
|
});
|
||||||
|
@ -396,13 +395,13 @@ public class JavaParser extends Parser<JavaElement> {
|
||||||
validator.validate((token) -> token.getValue().equals(">")));
|
validator.validate((token) -> token.getValue().equals(">")));
|
||||||
value_lambda.then((validator) -> validator.validate((token) -> token.getValue().equals("{")))
|
value_lambda.then((validator) -> validator.validate((token) -> token.getValue().equals("{")))
|
||||||
.<JavaElement>end((a,bag) -> {
|
.<JavaElement>end((a,bag) -> {
|
||||||
bag.set(new LambdaValue(null, new ArrayList<>()));
|
bag.set(new LambdaValue(null, null));
|
||||||
return a;
|
return a;
|
||||||
})
|
})
|
||||||
.multiple(function_container)
|
.multiple(function_container)
|
||||||
.unique((validator) -> validator.validate((token) -> token.getValue().equals("}"))).end((a,b) -> a);
|
.unique((validator) -> validator.validate((token) -> token.getValue().equals("}"))).end((a,b) -> a);
|
||||||
value_lambda.then(new RedirectStateTree<>(value_container, (global, local) -> global.set("in", local.get()))).end((a,bag) ->{
|
value_lambda.then(new RedirectStateTree<>(value_container, (global, local) -> global.set(null))).end((a,bag) ->{
|
||||||
bag.set(new LambdaValue(null, bag.<Value>get("in")));
|
bag.set(new LambdaValue(null, null));
|
||||||
return a;
|
return a;
|
||||||
});
|
});
|
||||||
value_lambda_arg.then(value_lambda);
|
value_lambda_arg.then(value_lambda);
|
||||||
|
|
|
@ -1,12 +1,9 @@
|
||||||
package dev.peerat.parser.java;
|
package dev.peerat.parser.java;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
|
|
||||||
import dev.peerat.parser.Token;
|
import dev.peerat.parser.Token;
|
||||||
import dev.peerat.parser.java.Operation.OperationContainer;
|
|
||||||
import dev.peerat.parser.java.Variable.VariableContainer;
|
|
||||||
|
|
||||||
public class Value extends JavaElement{
|
public class Value extends JavaElement{
|
||||||
|
|
||||||
|
@ -156,25 +153,19 @@ public class Value extends JavaElement{
|
||||||
public static class MethodCallValue extends Value{
|
public static class MethodCallValue extends Value{
|
||||||
|
|
||||||
private Value base;
|
private Value base;
|
||||||
private Token generic;
|
|
||||||
private Token token;
|
private Token token;
|
||||||
private List<Value> parameters;
|
private List<Value> parameters;
|
||||||
|
|
||||||
public MethodCallValue(Value base, Token generic, Token token, List<Value> parameters){
|
public MethodCallValue(Value base, Token token, List<Value> parameters){
|
||||||
this.base = base;
|
this.base = base;
|
||||||
this.generic = generic;
|
|
||||||
this.token = token;
|
this.token = token;
|
||||||
this.parameters = parameters;
|
this.parameters = parameters;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Value base(){
|
private Value base(){
|
||||||
return this.base;
|
return this.base;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Token getGeneric(){
|
|
||||||
return this.generic;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Token getToken(){
|
public Token getToken(){
|
||||||
return token;
|
return token;
|
||||||
}
|
}
|
||||||
|
@ -185,7 +176,7 @@ public class Value extends JavaElement{
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString(){
|
public String toString(){
|
||||||
return base+"."+((generic == null ? "":generic.getValue()))+token.getValue()+((parameters == null ? "":parameters));
|
return base+token.getValue()+((parameters == null ? "":parameters));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -274,7 +265,7 @@ public class Value extends JavaElement{
|
||||||
}
|
}
|
||||||
|
|
||||||
//TO FILL
|
//TO FILL
|
||||||
public static class LambdaValue extends Value implements OperationContainer, VariableContainer{
|
public static class LambdaValue extends Value{
|
||||||
|
|
||||||
private List<Token> parameters;
|
private List<Token> parameters;
|
||||||
private List<JavaElement> operations;
|
private List<JavaElement> operations;
|
||||||
|
@ -284,12 +275,6 @@ public class Value extends JavaElement{
|
||||||
this.operations = operations;
|
this.operations = operations;
|
||||||
}
|
}
|
||||||
|
|
||||||
public LambdaValue(List<Token> parameters, Value value){
|
|
||||||
this.parameters = parameters;
|
|
||||||
this.operations = new ArrayList<>();
|
|
||||||
this.operations.add(value);
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<Token> getParameters(){
|
public List<Token> getParameters(){
|
||||||
return this.parameters;
|
return this.parameters;
|
||||||
}
|
}
|
||||||
|
@ -298,20 +283,9 @@ public class Value extends JavaElement{
|
||||||
return this.operations;
|
return this.operations;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void addVariable(Variable variable){
|
|
||||||
this.operations.add(variable);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void addOperation(Operation operation) {
|
|
||||||
this.operations.add(operation);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString(){
|
public String toString(){
|
||||||
return "("+parameters+") -> {"+operations+"}";
|
return "() -> {}";
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -326,6 +300,5 @@ public class Value extends JavaElement{
|
||||||
@Override
|
@Override
|
||||||
public <E extends JavaElement> void findAll(Function<JavaElement, Boolean> finder, List<E> list){
|
public <E extends JavaElement> void findAll(Function<JavaElement, Boolean> finder, List<E> list){
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -71,10 +71,8 @@ public class Variable extends Annotable{
|
||||||
|
|
||||||
String mod = Modifier.toString(this.mod);
|
String mod = Modifier.toString(this.mod);
|
||||||
builder.append(new Token(type.getLineNumber(), type.getCharacterNumber()-(mod.length()+1), mod, TokenType.GROUP));
|
builder.append(new Token(type.getLineNumber(), type.getCharacterNumber()-(mod.length()+1), mod, TokenType.GROUP));
|
||||||
builder.append(" ");
|
|
||||||
builder.append(type);
|
builder.append(type);
|
||||||
if(elips) builder.append("...");
|
if(elips) builder.append("...");
|
||||||
builder.append(" ");
|
|
||||||
builder.append(name);
|
builder.append(name);
|
||||||
if(value != null){
|
if(value != null){
|
||||||
builder.append("=");
|
builder.append("=");
|
||||||
|
|
Loading…
Add table
Reference in a new issue