Package org.openquark.cal.internal.javamodel.JavaStatement

Examples of org.openquark.cal.internal.javamodel.JavaStatement.Block.addStatement()


        }
       
        Block newBlock = new Block(newExceptionHandlers);
       
        for (int i = 0, n = block.getNBlockStatements(); i < n; ++i) {
            newBlock.addStatement(
                    (JavaStatement)block.getNthBlockStatement(i).accept(this, arg));
        }
       
        return newBlock;
    }
View Full Code Here


                    argTypes[i] = type;
                   
                    JavaExpression.JavaField.Instance field =
                        new JavaExpression.JavaField.Instance(null, fieldName, type);
                    JavaExpression assign = new Assignment (field, new MethodVariable(argName));
                    constructorBody.addStatement(new ExpressionStatement(assign));
                    i++;
                }
               
                String constructorName = className.getUnqualifiedJavaSourceName();
                int index = constructorName.lastIndexOf('.');
View Full Code Here

                    if (!typeConstructorInfo.commonFieldNames.contains(fn)) {
                        JavaExpression.JavaField.Instance field =
                            new JavaExpression.JavaField.Instance(null, fieldName, type);
                        JavaExpression assign = new Assignment (field, new MethodVariable(argName));
                        constructorBody.addStatement(new ExpressionStatement(assign));
                    }
                }
               
                String constructorName = dcClassTypeName.getUnqualifiedJavaSourceName();
                int index = constructorName.lastIndexOf('.');
View Full Code Here

        Block elseBlock;
        if (falseAlt == null) {
            LiteralWrapper badValueMessageWrapper = LiteralWrapper.make("Illegal fallthrough to default case in function.");
            JavaStatement badValueReturnStatement = generateReturn(getBadValueCall(eSwitch.getErrorInfo(), badValueMessageWrapper), variableContext);
            elseBlock = new Block();
            elseBlock.addStatement (badValueReturnStatement);
        } else {
            variableContext.pushJavaScope();
            JavaStatement elsePart = genS_R (falseAlt, variableContext);

            elseBlock = variableContext.popJavaScope();
View Full Code Here

        } else {
            variableContext.pushJavaScope();
            JavaStatement elsePart = genS_R (falseAlt, variableContext);

            elseBlock = variableContext.popJavaScope();
            elseBlock.addStatement(elsePart);
        }

        JavaStatement ite = new IfThenElseStatement(pair.getJavaExpression(), thenBlock, elseBlock);

        Block contextBlock = pair.getContextBlock();
View Full Code Here

        }

        JavaStatement ite = new IfThenElseStatement(pair.getJavaExpression(), thenBlock, elseBlock);

        Block contextBlock = pair.getContextBlock();
        contextBlock.addStatement(ite);
        return contextBlock;
    }

    /**
     * This method generates the java code for a switch statement when we know that the switch can be ignored.
View Full Code Here

        JavaTypeName caseVarType = (isSwitchingOnDC && alt.hasVars()) ? JavaTypeNames.RTCONS : JavaTypeNames.RTVALUE;
        if (!switchExprEvaluated || alt.hasVars()) {
            caseVar = new LocalVariable("$case" + nestedCaseLevel, caseVarType);

            ExpressionContextPair pair = genS_E(eSwitch.getSwitchExpr(), variableContext);
            switchBlock.addStatement(pair.getContextBlock());
            JavaExpression caseExpression = pair.getJavaExpression();

            if (caseVarType.equals(JavaTypeNames.RTCONS)) {
                caseExpression = new CastExpression(JavaTypeNames.RTCONS, caseExpression);
            }
View Full Code Here

                caseExpression = new CastExpression(JavaTypeNames.RTCONS, caseExpression);
            }

            LocalVariableDeclaration caseVarDeclaration =
                new LocalVariableDeclaration(caseVar, caseExpression);
            switchBlock.addStatement(caseVarDeclaration);
        }

        // Populate the switch statement with case statement groups.

        // Create a new let variable scope to handle the alternate and any let variables it contains.
View Full Code Here

        variableContext.pushJavaScope();

        Block caseBlock = new Block();

        if (isSwitchingOnDC) {
            caseBlock.addStatement(new LineComment(((DataConstructor)altTag).getName().getQualifiedName()));
        }

        // Get this alternative's variables.  These have to be added to the active list of scope variables
        if (alt.hasVars()) {
            caseBlock.addStatement(new LineComment("Decompose data type to access members."));
View Full Code Here

            caseBlock.addStatement(new LineComment(((DataConstructor)altTag).getName().getQualifiedName()));
        }

        // Get this alternative's variables.  These have to be added to the active list of scope variables
        if (alt.hasVars()) {
            caseBlock.addStatement(new LineComment("Decompose data type to access members."));

            if (caseVar == null) {
                throw new CodeGenerationException ("Null case variable encountered in single alternate switch.");
            }
View Full Code Here

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.