Compare commits

..

No commits in common. "f4caa735b2edc6eb87489c5e497067e3e4bfdeb3" and "d402407ae20d2837245988f352a3ecadb4a806f9" have entirely different histories.

6 changed files with 15 additions and 63 deletions

View file

@ -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();
}
} }
} }
} }

View file

@ -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){

View file

@ -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);

View file

@ -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){
} }
} }
} }

View file

@ -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("=");