Examples of LiteralWrapper


Examples of org.openquark.cal.internal.javamodel.JavaExpression.LiteralWrapper

                new LocalVariable ("result", JavaTypeName.INT);
            LocalVariableDeclaration localVarDecl =
                new LocalVariableDeclaration(result, LiteralWrapper.make(new Integer(17)));
            thenBlock.addStatement(localVarDecl);
           
            LiteralWrapper thirtySeven = LiteralWrapper.make (new Integer(37));
            JavaExpression thirtySevenTimesResult =
                new OperatorExpression.Binary(JavaOperator.MULTIPLY_INT, thirtySeven, result);

            LiteralWrapper zero = LiteralWrapper.make (new Integer (0));
            LiteralWrapper one  = LiteralWrapper.make (new Integer (1));

            // Start by including dc name in the hashcode.
            // get objects hashcode
            JavaExpression nameExpression =
                new MethodInvocation.Instance (
View Full Code Here

Examples of org.openquark.cal.internal.javamodel.JavaExpression.LiteralWrapper

                    JavaField field = new JavaField.Static(className, fieldName, tagDCTypeName);
                    SwitchStatement.SwitchCase sc = new SwitchStatement.IntCaseGroup(dc.getOrdinal(), new ReturnStatement(field));
                    ordSwitch.addCase(sc);
                } else {
                    // This is a valid ordinal for the data type but does not correspond to a zero arity DC.
                    LiteralWrapper badValueMessageWrapper = LiteralWrapper.make ("Attempt to treat " + dc.getName() + " as a zero arity data constructor.");
                    Block block = new Block();
                    block.addStatement(new JavaStatement.LineComment(dc.getName().getQualifiedName()));
                    JavaExpression castExpression = new CastExpression(tagDCTypeName, new MethodInvocation.Static(JavaTypeNames.RTVALUE, "badValue", badValueMessageWrapper, JavaTypeName.STRING, JavaTypeNames.RTVALUE));
                    block.addStatement(new ReturnStatement(castExpression));
                    ordSwitch.addCase(new SwitchStatement.IntCaseGroup (dc.getOrdinal(), block));
                }
            }

            // Add a default case in the switch to throw an error if an invalid ordinal value is used.
            Block defaultBlock = new Block();
            LocalVariable bf = new LocalVariable("bf", JavaTypeName.STRING_BUILDER);
            defaultBlock.addStatement(new LocalVariableDeclaration (bf, new ClassInstanceCreationExpression(JavaTypeName.STRING_BUILDER)));
            LiteralWrapper badValueMessageWrapper1 = LiteralWrapper.make("Invalid ordinal value of ");
            JavaExpression message = new MethodInvocation.Instance(bf, "append", badValueMessageWrapper1, JavaTypeName.STRING, JavaTypeName.STRING_BUILDER, MethodInvocation.InvocationType.VIRTUAL);
            message = new  MethodInvocation.Instance(message, "append", METHODVAR_ORDINAL, JavaTypeName.INT, JavaTypeName.STRING_BUILDER, MethodInvocation.InvocationType.VIRTUAL);
            LiteralWrapper badValueMessageWrapper2 = LiteralWrapper.make(" in " + className.toString() + ".getTagDC().");
            message = new MethodInvocation.Instance(message, "append", badValueMessageWrapper2, JavaTypeName.STRING, JavaTypeName.STRING_BUILDER, MethodInvocation.InvocationType.VIRTUAL);
            defaultBlock.addStatement (new ExpressionStatement(message));
            message = new MethodInvocation.Instance(bf, "toString", JavaTypeName.STRING, MethodInvocation.InvocationType.VIRTUAL);
            defaultBlock.addStatement (new ReturnStatement(new CastExpression(tagDCTypeName, new MethodInvocation.Static(JavaTypeNames.RTVALUE, "badValue", message, JavaTypeName.STRING, JavaTypeNames.RTVALUE))));
            ordSwitch.addCase(new SwitchStatement.DefaultCase (defaultBlock));
View Full Code Here

Examples of org.openquark.cal.internal.javamodel.JavaExpression.LiteralWrapper

                    JavaTypeName fieldType = JavaTypeNames.RTVALUE;
                    if (SCJavaDefn.canTypeBeUnboxed(fieldTypes[i])) {
                        fieldType = SCJavaDefn.typeExprToTypeName(fieldTypes[i]);
                    }

                    LiteralWrapper fieldVal = JavaDefinitionBuilder.getDefaultValueForType(fieldType);
                    JavaField jf = new JavaField.Instance(null, javaFieldNames[i], fieldType);
                    JavaExpression assign = new JavaExpression.Assignment(jf, fieldVal);
                    javaConstructor.addStatement(new ExpressionStatement(assign));
                }
            }
View Full Code Here

Examples of org.openquark.cal.internal.javamodel.JavaExpression.LiteralWrapper

        // generated. So we need to either return the literal value or follow
        // the alias to a
        // function for which there is a generated source/class file.
        final Object literalValue = mf.getLiteralValue();
        if (literalValue != null) {
            final LiteralWrapper wrappedLiteral = JavaExpression.LiteralWrapper.make(literalValue);
            final Class<?> unboxedLiteralType = supportedLiteralTypesBoxedToUnboxedClassMap.get(wrappedLiteral.getClass());
           
            if (unboxedLiteralType == null) {
                throw new IllegalArgumentException("Unsupported literal type in machine function: " + literalValue.getClass());
            }
            return makeRTValueMarshallingExpr(ClassTypeInfo.make(unboxedLiteralType), wrappedLiteral);
View Full Code Here

Examples of org.openquark.cal.internal.javamodel.JavaExpression.LiteralWrapper

        DataConstructor dc = constructorOpExpressions.getDataConstructor ();

        // If we are dealing with a data constructor for the CAL type boolean we want to optimize
        // by substituting and instance of the literal RTKernel.CAL_Boolean.
        if (isTrueOrFalseDataCons(dc)) {
            LiteralWrapper boolWrapper = LiteralWrapper.make(Boolean.valueOf(isTrueDataCons(dc)));

            return new ExpressionContextPair(createMakeKernelBooleanInvocation(boolWrapper));
        }

        if (LECCMachineConfiguration.TREAT_ENUMS_AS_INTS) {
View Full Code Here

Examples of org.openquark.cal.internal.javamodel.JavaExpression.LiteralWrapper

                // If we are dealing with a data constructor for the CAL type boolean we want to optimize
                // by substituting the literal boolean values.
                if (isTrueOrFalseDataCons(dc)) {
                    verifyUnboxType(unboxType, JavaTypeName.BOOLEAN);
                    LiteralWrapper boolWrapper = LiteralWrapper.make(Boolean.valueOf(isTrueDataCons(dc)));
                    return new ExpressionContextPair(boolWrapper);
                }

                if (LECCMachineConfiguration.TREAT_ENUMS_AS_INTS) {
                    if (SCJavaDefn.isEnumDataType(dc)) {
View Full Code Here

Examples of org.openquark.cal.internal.javamodel.JavaExpression.LiteralWrapper

                // If we are dealing with a data constructor for the CAL type boolean we want to optimize
                // by substituting and instance of the literal RTKernel.CAL_Boolean.
                if (isTrueOrFalseDataCons(dc)) {
                    verifyUnboxType(unboxType, JavaTypeName.BOOLEAN);
                    LiteralWrapper boolWrapper = LiteralWrapper.make(Boolean.valueOf(isTrueDataCons(dc)));
                    return new ExpressionContextPair(boolWrapper);
                }

                if (LECCMachineConfiguration.TREAT_ENUMS_AS_INTS) {
                    if (SCJavaDefn.isEnumDataType(dc)) {
View Full Code Here

Examples of org.openquark.cal.internal.javamodel.JavaExpression.LiteralWrapper

        ExpressionContextPair pair = generateUnboxedArgument(JavaTypeName.BOOLEAN, condExpression, variableContext);

        // Then
        Block thenBlock;
        if (trueAlt == null) {
            LiteralWrapper badValueMessageWrapper = LiteralWrapper.make("Illegal fallthrough to default case.");
            JavaExpression returnValueExpression = getBadValueCall(eSwitch.getErrorInfo(), badValueMessageWrapper);
            JavaStatement badValueReturnStatement = generateReturn(returnValueExpression, variableContext);
            thenBlock = new Block();
            thenBlock.addStatement (badValueReturnStatement);
        } else {
            variableContext.pushJavaScope();
            JavaStatement thenPart = genS_R (trueAlt, variableContext);

            thenBlock = variableContext.popJavaScope();
            thenBlock.addStatement(thenPart);
        }

        // Else
        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();
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.