/** * @param isReferenced unused in this context but necessary for dispatch signature */ protected void _toJavaStatement(final XSetLiteral literal, ITreeAppendable b, boolean isReferenced) { for(XExpression element: literal.getElements()) internalToJavaStatement(element, b, true); }
/** * @param isReferenced unused in this context but necessary for dispatch signature */ protected void _toJavaStatement(XInstanceOfExpression expr, ITreeAppendable b, boolean isReferenced) { internalToJavaStatement(expr.getExpression(), b, true); }
/** * @param isReferenced unused in this context but necessary for dispatch signature */ protected void _toJavaStatement(XListLiteral literal, ITreeAppendable b, boolean isReferenced) { for(XExpression element: literal.getElements()) internalToJavaStatement(element, b, true); }
protected void _toJavaStatement(XCastedExpression expr, ITreeAppendable b, boolean isReferenced) { internalToJavaStatement(expr.getTarget(), b, isReferenced); }
/** * @param isReferenced unused in this context but necessary for dispatch signature */ protected void _toJavaStatement(XThrowExpression expr, ITreeAppendable b, boolean isReferenced) { internalToJavaStatement(expr.getExpression(), b, true); b.newLine().append("throw "); internalToConvertedExpression(expr.getExpression(), b, null); b.append(";"); }
return; if (expr.getExpressions().size()==1) { internalToJavaStatement(expr.getExpressions().get(0), b, isReferenced); return; XExpression ex = expressions.get(i); if (i < expressions.size() - 1) { internalToJavaStatement(ex, b, false); } else { internalToJavaStatement(ex, b, isReferenced); if (isReferenced) { b.newLine().append(getVarName(expr, b)).append(" = ");
protected void executeThenPart(XSwitchExpression expr, String switchResultName, XExpression then, ITreeAppendable b, boolean isReferenced) { final boolean canBeReferenced = isReferenced && !isPrimitiveVoid(then); internalToJavaStatement(then, b, canBeReferenced); if (canBeReferenced) { b.newLine().append(switchResultName).append(" = "); internalToConvertedExpression(then, b, getLightweightType(expr)); b.append(";"); } }
/** * @param isReferenced unused in this context but necessary for dispatch signature */ protected void _toJavaStatement(XForLoopExpression expr, ITreeAppendable b, boolean isReferenced) { internalToJavaStatement(expr.getForExpression(), b, true); b.newLine(); ITreeAppendable loopAppendable = b.trace(expr); loopAppendable.append("for ("); ITreeAppendable parameterAppendable = loopAppendable.trace(expr.getDeclaredParam()); appendForLoopParameter(expr, parameterAppendable); loopAppendable.append(" : "); internalToJavaExpression(expr.getForExpression(), loopAppendable); loopAppendable.append(") {").increaseIndentation(); internalToJavaStatement(expr.getEachExpression(), loopAppendable, false); loopAppendable.decreaseIndentation().newLine().append("}"); }
/** * @param isReferenced unused in this context but necessary for dispatch signature */ protected void _toJavaStatement(XReturnExpression expr, ITreeAppendable b, boolean isReferenced) { if (expr.getExpression()!=null) { internalToJavaStatement(expr.getExpression(), b, true); b.newLine().append("return "); LightweightTypeReference returnTypeToCompile = findRealReturnType(expr); internalToConvertedExpression(expr.getExpression(), b, returnTypeToCompile); b.append(";"); } else { b.newLine().append("return;"); } }
XExpression initExpression = initExpressions.get(i); if (i < initExpressions.size() - 1) { internalToJavaStatement(initExpression, loopAppendable, false); } else { internalToJavaStatement(initExpression, loopAppendable, isReferenced); if (isReferenced) { loopAppendable.newLine().append(getVarName(expr, loopAppendable)).append(" = ("); internalToJavaStatement(expression, loopAppendable, true); loopAppendable.newLine().append("boolean ").append(varName).append(" = "); internalToJavaExpression(expression, loopAppendable); internalToJavaStatement(eachExpression, loopAppendable, false); internalToJavaStatement(updateExpression, loopAppendable, false); internalToJavaStatement(expression, loopAppendable, true); loopAppendable.newLine().append(varName).append(" = "); internalToJavaExpression(expression, loopAppendable);
/** * @param isReferenced unused in this context but necessary for dispatch signature */ protected void _toJavaStatement(XVariableDeclaration varDeclaration, ITreeAppendable b, boolean isReferenced) { if (varDeclaration.getRight() != null) { internalToJavaStatement(varDeclaration.getRight(), b, true); } b.newLine(); LightweightTypeReference type = appendVariableTypeAndName(varDeclaration, b); b.append(" = "); if (varDeclaration.getRight() != null) { internalToConvertedExpression(varDeclaration.getRight(), b, type); } else { appendDefaultLiteral(b, type); } b.append(";"); }
if (finallyExp != null) { b.append(" finally {").increaseIndentation(); internalToJavaStatement(finallyExp, b, false); b.decreaseIndentation().newLine().append("}");
protected void _toJavaIfElseStatement(XSwitchExpression expr, ITreeAppendable b, boolean isReferenced) { String switchResultName = declareSwitchResultVariable(expr, b, isReferenced); internalToJavaStatement(expr.getSwitch(), b, true);
protected void _toJavaStatement(final XSynchronizedExpression synchronizedExpression, final ITreeAppendable b, boolean isReferenced) { if (isReferenced) { declareSyntheticVariable(synchronizedExpression, b); } ITreeAppendable synchronizedAppendable = b.trace(synchronizedExpression, true); XExpression param = synchronizedExpression.getParam(); if (!canCompileToJavaExpression(param, b)) internalToJavaStatement(param, synchronizedAppendable, isReferenced); synchronizedAppendable.newLine().append("synchronized ("); internalToJavaExpression(param, synchronizedAppendable); synchronizedAppendable.append(") {").increaseIndentation(); synchronizedAppendable.openPseudoScope(); XExpression expression = synchronizedExpression.getExpression(); internalToJavaStatement(expression, b, isReferenced); if (isReferenced) { b.newLine().append(getVarName(synchronizedExpression, synchronizedAppendable)).append(" = "); internalToConvertedExpression(expression, b, getLightweightType(synchronizedExpression)); b.append(";"); } synchronizedAppendable.closeScope(); synchronizedAppendable.decreaseIndentation().newLine().append("}"); }
String varName = null; if (needsStatement) { internalToJavaStatement(expr.getPredicate(), b, true); varName = b.declareSyntheticVariable(expr, "_while"); b.newLine().append("boolean ").append(varName).append(" = "); internalToJavaStatement(expr.getBody(), b, false); if (needsStatement && !isEarlyExit(expr.getBody())) { internalToJavaStatement(expr.getPredicate(), b, true); b.newLine(); b.append(varName).append(" = ");
/** * @param isReferenced unused in this context but necessary for dispatch signature */ protected void _toJavaStatement(XDoWhileExpression expr, ITreeAppendable b, boolean isReferenced) { boolean needsStatement = !canCompileToJavaExpression(expr.getPredicate(), b); String variable = null; if (needsStatement) { variable = b.declareSyntheticVariable(expr, "_dowhile"); b.newLine().append("boolean ").append(variable).append(" = false;"); } b.newLine().append("do {").increaseIndentation(); internalToJavaStatement(expr.getBody(), b, false); if (needsStatement && !isEarlyExit(expr.getBody())) { internalToJavaStatement(expr.getPredicate(), b, true); b.newLine(); b.append(variable).append(" = "); internalToJavaExpression(expr.getPredicate(), b); b.append(";"); } b.decreaseIndentation().newLine().append("} while("); if (needsStatement) { b.append(variable); } else { internalToJavaExpression(expr.getPredicate(), b); } b.append(");"); }
protected void _toJavaStatement(XIfExpression expr, ITreeAppendable b, boolean isReferenced) { if (isReferenced) declareSyntheticVariable(expr, b); internalToJavaStatement(expr.getIf(), b, true); b.newLine().append("if ("); internalToJavaExpression(expr.getIf(), b); b.append(") {").increaseIndentation(); final boolean canBeReferenced = isReferenced && !isPrimitiveVoid(expr.getThen()); internalToJavaStatement(expr.getThen(), b, canBeReferenced); if (canBeReferenced) { b.newLine(); b.append(" else {").increaseIndentation(); final boolean canElseBeReferenced = isReferenced && !isPrimitiveVoid(expr.getElse()); internalToJavaStatement(expr.getElse(), b, canElseBeReferenced); if (canElseBeReferenced) { b.newLine();
internalToJavaStatement(catchClause.getExpression(), withDebugging, canBeReferenced); if (canBeReferenced) { appendable.newLine().append(getVarName(catchClause.eContainer(), appendable)).append(" = ");
protected void _toJavaStatement(XTryCatchFinallyExpression expr, ITreeAppendable outerAppendable, boolean isReferenced) { ITreeAppendable b = outerAppendable.trace(expr, false); if (isReferenced && !isPrimitiveVoid(expr)) { declareSyntheticVariable(expr, b); } b.newLine().append("try {").increaseIndentation(); final boolean canBeReferenced = isReferenced && !isPrimitiveVoid(expr.getExpression()); internalToJavaStatement(expr.getExpression(), b, canBeReferenced); if (canBeReferenced) { b.newLine().append(getVarName(expr, b)).append(" = "); internalToConvertedExpression(expr.getExpression(), b, getLightweightType(expr)); b.append(";"); } b.decreaseIndentation().newLine().append("}"); appendCatchAndFinally(expr, b, isReferenced); }
internalToJavaStatement(expr.getSwitch(), b, true); final String variableName = declareLocalVariable(expr, b);