Mercurial > hg > graal-jvmci-8
diff graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder.java @ 18761:a665483c3881
Truffle-DSL: new node layout implementation.
author | Christian Humer <christian.humer@gmail.com> |
---|---|
date | Mon, 29 Dec 2014 23:38:54 +0100 |
parents | 3912400fc33a |
children | ae81dd154fb6 |
line wrap: on
line diff
--- a/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder.java Mon Dec 29 23:38:50 2014 +0100 +++ b/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder.java Mon Dec 29 23:38:54 2014 +0100 @@ -174,7 +174,11 @@ } public CodeTreeBuilder startCall(String receiver, String callSite) { - return startCall(singleString(receiver), callSite); + if (receiver != null) { + return startCall(singleString(receiver), callSite); + } else { + return startCall(callSite); + } } public CodeTreeBuilder startCall(CodeTree receiver, String callSite) { @@ -614,7 +618,7 @@ return root; } - public CodeTree getRoot() { + public CodeTree build() { return root; } @@ -623,6 +627,11 @@ return this; } + public CodeTreeBuilder cast(TypeMirror type) { + string("(").type(type).string(") "); + return this; + } + public CodeTreeBuilder cast(TypeMirror type, CodeTree content) { if (ElementUtils.isVoid(type)) { tree(content); @@ -738,6 +747,21 @@ return startBlock(); } + public CodeTreeBuilder startCatchBlock(TypeMirror[] exceptionTypes, String localVarName) { + clearLast(CodeTreeKind.NEW_LINE); + string(" catch ("); + + for (int i = 0; i < exceptionTypes.length; i++) { + if (i != 0) { + string(" | "); + } + type(exceptionTypes[i]); + } + + string(" ").string(localVarName).string(") "); + return startBlock(); + } + public CodeTreeBuilder startFinallyBlock() { clearLast(CodeTreeKind.NEW_LINE); string(" finally ");