Operation -> Return statement -> get value
This commit is contained in:
parent
c7b9454ede
commit
f4ff094554
5 changed files with 20 additions and 20 deletions
|
@ -14,7 +14,7 @@ import be.jeffcheasey88.peeratcode.parser.java.CleanerPool.Cleaner;
|
||||||
public class JavaParser{
|
public class JavaParser{
|
||||||
|
|
||||||
public static void main(String[] args) throws Exception {
|
public static void main(String[] args) throws Exception {
|
||||||
File file = new File("C:\\Users\\jeffc\\eclipse-workspace\\peer-at-code-backend\\src\\be\\jeffcheasey88\\peeratcode\\parser\\java\\Class.java");
|
File file = new File("C:\\Users\\jeffc\\eclipse-workspace\\peer-at-code-backend\\src\\be\\jeffcheasey88\\peeratcode\\parser\\java\\ExampleClass.java");
|
||||||
BufferedReader reader = new BufferedReader(new FileReader(file));
|
BufferedReader reader = new BufferedReader(new FileReader(file));
|
||||||
|
|
||||||
JavaParser parser = new JavaParser(reader);
|
JavaParser parser = new JavaParser(reader);
|
||||||
|
|
|
@ -26,8 +26,6 @@ public class Variable extends JavaElement{
|
||||||
}
|
}
|
||||||
|
|
||||||
public int parse(String content, CleanerPool global, CleanerPool local) throws Exception{
|
public int parse(String content, CleanerPool global, CleanerPool local) throws Exception{
|
||||||
System.out.println("local ? "+local);
|
|
||||||
System.out.println("Variable.parse -> "+content);
|
|
||||||
CleanerPool generic = new CleanerPool(
|
CleanerPool generic = new CleanerPool(
|
||||||
new Cleaner("GENERIC_TYPE",'<','>'),
|
new Cleaner("GENERIC_TYPE",'<','>'),
|
||||||
new Cleaner("GENERIC_ARRAY",'[',']'),
|
new Cleaner("GENERIC_ARRAY",'[',']'),
|
||||||
|
@ -36,7 +34,6 @@ public class Variable extends JavaElement{
|
||||||
if(local == null) local = generic;
|
if(local == null) local = generic;
|
||||||
else local = local.group(generic);
|
else local = local.group(generic);
|
||||||
content = local.clean(content);
|
content = local.clean(content);
|
||||||
System.out.println("Variable.parse -> "+content);
|
|
||||||
|
|
||||||
Matcher matcher = PATTERN.matcher(content);
|
Matcher matcher = PATTERN.matcher(content);
|
||||||
matcher.matches();
|
matcher.matches();
|
||||||
|
@ -56,8 +53,6 @@ public class Variable extends JavaElement{
|
||||||
onlyDefine(body, local);
|
onlyDefine(body, local);
|
||||||
}
|
}
|
||||||
|
|
||||||
System.out.println("skip var in "+body);
|
|
||||||
|
|
||||||
return offset+local.unzipOne(body, (s,p) -> (p.equals("^GENERIC_TYPE") || p.equals("^GENERIC_ARRAY")) ? s : null).length();
|
return offset+local.unzipOne(body, (s,p) -> (p.equals("^GENERIC_TYPE") || p.equals("^GENERIC_ARRAY")) ? s : null).length();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -17,22 +17,15 @@ public class ConditionalOperation extends OperationContainer{
|
||||||
this.pattern = pattern;
|
this.pattern = pattern;
|
||||||
}
|
}
|
||||||
|
|
||||||
//loss global cleaner
|
|
||||||
@Override
|
@Override
|
||||||
public int parse(String content, CleanerPool global, CleanerPool local) throws Exception{
|
public int parse(String content, CleanerPool global, CleanerPool local) throws Exception{
|
||||||
// content = local.clean(content);
|
|
||||||
System.out.println("ConditionalOperation.parse -> "+content);
|
|
||||||
|
|
||||||
Matcher matcher = this.pattern.matcher(content);
|
Matcher matcher = this.pattern.matcher(content);
|
||||||
matcher.matches();
|
matcher.matches();
|
||||||
|
|
||||||
this.condition = local.unzipOne(matcher.group(2), (s,p) -> s);
|
this.condition = local.unzipOne(matcher.group(2), (s,p) -> s);
|
||||||
System.out.println("condition -> "+condition);
|
|
||||||
|
|
||||||
|
|
||||||
int index = matcher.group(1).length();
|
int index = matcher.group(1).length();
|
||||||
content = content.substring(index);
|
content = content.substring(index);
|
||||||
System.out.println("body is around "+content);
|
|
||||||
|
|
||||||
int bodysize;
|
int bodysize;
|
||||||
if(content.startsWith("^")){
|
if(content.startsWith("^")){
|
||||||
|
|
|
@ -16,10 +16,6 @@ public class ElseOperation extends OperationContainer{
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int parse(String content, CleanerPool global, CleanerPool local) throws Exception{
|
public int parse(String content, CleanerPool global, CleanerPool local) throws Exception{
|
||||||
System.out.println("ElseOperation.parse -> "+content);
|
|
||||||
|
|
||||||
// content = global.clean(content);
|
|
||||||
|
|
||||||
Matcher matcher = PATTERN.matcher(content);
|
Matcher matcher = PATTERN.matcher(content);
|
||||||
matcher.matches();
|
matcher.matches();
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,10 @@ public class ReturnOperation extends JavaElement{
|
||||||
|
|
||||||
private static Pattern PATTERN = Pattern.compile("^(\\s*return\\s*([^;]*);).*$");
|
private static Pattern PATTERN = Pattern.compile("^(\\s*return\\s*([^;]*);).*$");
|
||||||
|
|
||||||
private String value;
|
private static OperationFactory FACTORY = OperationFactory.getFactory();
|
||||||
|
|
||||||
|
private String toChange;
|
||||||
|
private JavaElement value;
|
||||||
|
|
||||||
public ReturnOperation(){}
|
public ReturnOperation(){}
|
||||||
|
|
||||||
|
@ -19,7 +22,14 @@ public class ReturnOperation extends JavaElement{
|
||||||
Matcher matcher = PATTERN.matcher(content);
|
Matcher matcher = PATTERN.matcher(content);
|
||||||
matcher.matches();
|
matcher.matches();
|
||||||
|
|
||||||
this.value = matcher.group(2);
|
//To update for native obj
|
||||||
|
this.toChange = matcher.group(2);
|
||||||
|
JavaElement operation = FACTORY.buildOperation(toChange+";");
|
||||||
|
if(operation != null){
|
||||||
|
System.out.println(operation.getClass().getSimpleName());
|
||||||
|
value = operation;
|
||||||
|
value.parse(toChange+";", global, local);
|
||||||
|
}
|
||||||
|
|
||||||
return matcher.group(1).length();
|
return matcher.group(1).length();
|
||||||
}
|
}
|
||||||
|
@ -28,7 +38,13 @@ public class ReturnOperation extends JavaElement{
|
||||||
public void show(int tab){
|
public void show(int tab){
|
||||||
String start = "";
|
String start = "";
|
||||||
for(int i = 0; i < tab; i++) start+="\t";
|
for(int i = 0; i < tab; i++) start+="\t";
|
||||||
System.out.println(start+"return "+value+";");
|
if(value != null){
|
||||||
|
System.out.println("return");
|
||||||
|
value.show(tab+1);
|
||||||
|
System.out.println(";");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
System.out.println(start+"return "+toChange+";");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue