提取重复方法
This commit is contained in:
parent
7e3d7fc4d0
commit
e3bc1a99e7
@ -1,4 +1,6 @@
|
||||
package org.jcnc.snow.compiler.parser.ast;
|
||||
package org.jcnc.snow.compiler.parser.util;
|
||||
|
||||
import org.jcnc.snow.compiler.parser.ast.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ -80,12 +82,7 @@ public class ASTJsonSerializer {
|
||||
// body
|
||||
sb.append("\"body\":[");
|
||||
List<StatementNode> body = f.body();
|
||||
for (int i = 0; i < body.size(); i++) {
|
||||
sb.append(nodeToJson(body.get(i)));
|
||||
if (i + 1 < body.size()) sb.append(",");
|
||||
}
|
||||
sb.append("]}");
|
||||
return sb.toString();
|
||||
return getString(sb, body);
|
||||
}
|
||||
|
||||
private static String declarationToJson(DeclarationNode d) {
|
||||
@ -114,6 +111,10 @@ public class ASTJsonSerializer {
|
||||
.append(exprToJson(i.condition())).append(",");
|
||||
sb.append("\"then\":[");
|
||||
List<StatementNode> thenBranch = i.thenBranch();
|
||||
return getString(sb, thenBranch);
|
||||
}
|
||||
|
||||
private static String getString(StringBuilder sb, List<StatementNode> thenBranch) {
|
||||
for (int j = 0; j < thenBranch.size(); j++) {
|
||||
sb.append(nodeToJson(thenBranch.get(j)));
|
||||
if (j + 1 < thenBranch.size()) sb.append(",");
|
||||
@ -130,12 +131,7 @@ public class ASTJsonSerializer {
|
||||
.append("\"update\":").append(nodeToJson(l.update())).append(",")
|
||||
.append("\"body\":[");
|
||||
List<StatementNode> body = l.body();
|
||||
for (int i = 0; i < body.size(); i++) {
|
||||
sb.append(nodeToJson(body.get(i)));
|
||||
if (i + 1 < body.size()) sb.append(",");
|
||||
}
|
||||
sb.append("]}");
|
||||
return sb.toString();
|
||||
return getString(sb, body);
|
||||
}
|
||||
|
||||
private static String returnToJson(ReturnNode r) {
|
||||
Loading…
x
Reference in New Issue
Block a user