コード例 #1
0
 public void visitConditional(TypedTree node) {
   this.visit(node.get(_cond));
   this.builder.push("?");
   this.visit(node.get(_then));
   this.builder.push(":");
   this.visit(node.get(_else));
 }
コード例 #2
0
 public void visitWhile(TypedTree node) {
   this.builder.beginStatement("while");
   this.builder.push("(");
   this.visit(node.get(_cond));
   this.builder.push(")");
   this.visitStatement(node.get(_then));
 }
コード例 #3
0
 private void join(StringBuilder sb, TypedTree node) {
   TypedTree prefix = node.get(_prefix);
   if (prefix.size() == 2) {
     join(sb, prefix);
   } else {
     sb.append(prefix.toText());
   }
   sb.append(".").append(node.getText(_name, null));
 }
コード例 #4
0
 public void visitIf(TypedTree node) {
   this.builder.beginStatement("if");
   this.builder.push("(");
   this.visit(node.get(_cond));
   this.builder.push(")");
   this.visitStatement(node.get(_then));
   this.builder.endStatement("");
   if (node.has(_else)) {
     this.builder.beginStatement("else");
     this.visitStatement(node.get(_else));
     this.builder.endStatement("");
   }
 }
コード例 #5
0
 public void visitStatement(TypedTree node) {
   if (node.is(_Block)) {
     visitBlock(node);
   } else {
     this.builder.openBlock("{");
     visit(node);
     this.builder.closeBlock("}");
   }
 }
コード例 #6
0
 public void visitReturn(TypedTree node) {
   this.builder.push("return");
   this.visit(node.get(_expr));
 }
コード例 #7
0
 private void visitUnary(TypedTree node, String name) {
   this.builder.write(name);
   this.visit(node.get(_expr));
 }
コード例 #8
0
 private void visitBinary(TypedTree node, String name) {
   this.visit(node.get(_left));
   this.builder.push(name);
   this.visit(node.get(_right));
 }
コード例 #9
0
 public void visitField(TypedTree node) {
   this.visit(node.get(_left));
   this.builder.write(",");
   this.visit(node.get(_right));
 }
コード例 #10
0
 public void visitCast(TypedTree node) {
   this.visit(node.get(_expr));
 }
コード例 #11
0
 public void visitAssign(TypedTree node) {
   this.visit(node.get(_left));
   this.builder.push("=");
   this.visit(node.get(_right));
 }
コード例 #12
0
 public void visitName(TypedTree node) {
   String name = node.toText();
   this.builder.push(name);
 }
コード例 #13
0
 /* StatementExpression */
 public void visitExpression(TypedTree node) {
   this.builder.beginStatement("");
   this.visit(node.get(_expr));
   this.builder.beginStatement("");
 }