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