comparison graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder.java @ 19282:ae81dd154fb6

Truffle-DSL: remove old DSL layout; Make new layout the default.
author Christian Humer <christian.humer@gmail.com>
date Thu, 22 Jan 2015 20:44:24 +0100
parents a665483c3881
children 08aa0372dad4
comparison
equal deleted inserted replaced
19281:92880b0f7fed 19282:ae81dd154fb6
322 string(chunks[i]); 322 string(chunks[i]);
323 } 323 }
324 return end(); 324 return end();
325 } 325 }
326 326
327 public CodeTreeBuilder dot() {
328 return string(".");
329 }
330
331 public CodeTreeBuilder newLine() { 327 public CodeTreeBuilder newLine() {
332 return push(NEW_LINE); 328 return push(NEW_LINE);
333 } 329 }
334 330
335 public CodeTreeBuilder startWhile() { 331 public CodeTreeBuilder startWhile() {
574 throw new IllegalArgumentException("Recursive builder usage."); 570 throw new IllegalArgumentException("Recursive builder usage.");
575 } 571 }
576 return declaration(type, name, init.getTree()); 572 return declaration(type, name, init.getTree());
577 } 573 }
578 574
579 public CodeTreeBuilder declaration(String type, String name, CodeTreeBuilder init) {
580 if (init == this) {
581 throw new IllegalArgumentException("Recursive builder usage.");
582 }
583 return declaration(type, name, init.getTree());
584 }
585
586 public CodeTreeBuilder declaration(TypeMirror type, String name) {
587 return declaration(type, name, (CodeTree) null);
588 }
589
590 public CodeTreeBuilder create() { 575 public CodeTreeBuilder create() {
591 return new CodeTreeBuilder(this); 576 return new CodeTreeBuilder(this);
592 } 577 }
593 578
594 public CodeTreeBuilder type(TypeMirror type) { 579 public CodeTreeBuilder type(TypeMirror type) {
618 return root; 603 return root;
619 } 604 }
620 605
621 public CodeTree build() { 606 public CodeTree build() {
622 return root; 607 return root;
623 }
624
625 public CodeTreeBuilder cast(String baseClassName) {
626 string("(").string(baseClassName).string(") ");
627 return this;
628 } 608 }
629 609
630 public CodeTreeBuilder cast(TypeMirror type) { 610 public CodeTreeBuilder cast(TypeMirror type) {
631 string("(").type(type).string(") "); 611 string("(").type(type).string(") ");
632 return this; 612 return this;
669 649
670 public CodeTreeBuilder returnTrue() { 650 public CodeTreeBuilder returnTrue() {
671 return startReturn().string("true").end(); 651 return startReturn().string("true").end();
672 } 652 }
673 653
674 public CodeTreeBuilder instanceOf(CodeTree var, CodeTree type) {
675 return tree(var).string(" instanceof ").tree(type);
676 }
677
678 public CodeTreeBuilder instanceOf(CodeTree var, TypeMirror type) { 654 public CodeTreeBuilder instanceOf(CodeTree var, TypeMirror type) {
679 return tree(var).string(" instanceof ").type(type); 655 return tree(var).string(" instanceof ").type(type);
680 }
681
682 public CodeTreeBuilder instanceOf(String var, String type) {
683 return instanceOf(singleString(var), singleString(type));
684 }
685
686 public CodeTreeBuilder instanceOf(String var, TypeMirror type) {
687 return instanceOf(singleString(var), singleType(type));
688 } 656 }
689 657
690 public CodeTreeBuilder defaultValue(TypeMirror mirror) { 658 public CodeTreeBuilder defaultValue(TypeMirror mirror) {
691 switch (mirror.getKind()) { 659 switch (mirror.getKind()) {
692 case VOID: 660 case VOID:
713 case SHORT: 681 case SHORT:
714 return string("(short) 0"); 682 return string("(short) 0");
715 default: 683 default:
716 throw new AssertionError(); 684 throw new AssertionError();
717 } 685 }
718 }
719
720 public CodeTreeBuilder assertFalse() {
721 return startAssert().string("false").end();
722 }
723
724 public CodeTreeBuilder breakStatement() {
725 return statement("break");
726 }
727
728 public CodeTreeBuilder isNull() {
729 return string(" == null");
730 }
731
732 public CodeTreeBuilder isNotNull() {
733 return string(" != null");
734 }
735
736 public CodeTreeBuilder is(CodeTree tree) {
737 return string(" == ").tree(tree);
738 } 686 }
739 687
740 public CodeTreeBuilder startTryBlock() { 688 public CodeTreeBuilder startTryBlock() {
741 return string("try ").startBlock(); 689 return string("try ").startBlock();
742 } 690 }