Package org.openquark.cal.compiler

Examples of org.openquark.cal.compiler.TypeConstructor


                TypeExprDefn fieldTypeForGetter = getTypeExprDefn(new JavaTypeName[]{fieldType});
                String fieldTypeForGetterTypeConsName = ((TypeExprDefn.TypeCons)fieldTypeForGetter).getTypeConsName().toString();
                String dcFieldTypeConsName = "";
                TypeConsApp typeConsApp = fieldTypeExpr.rootTypeConsApp();
                if (typeConsApp != null) {
                    TypeConstructor tc = typeConsApp.getRoot();
                    dcFieldTypeConsName = tc.getName().toString();
                }
               
                if (!fieldTypeForGetterTypeConsName.equals(dcFieldTypeConsName)) {
                    // apply input and usafe coerce.
                   
View Full Code Here


         * @param javaTypes
         * @return a TypeExprDefn
         */
        private SourceModel.TypeExprDefn getTypeExprDefn (JavaTypeName[] javaTypes) throws UnableToResolveForeignEntityException {
            // First try to find a type constructor for each java type;
            TypeConstructor typeConstructors[] = new TypeConstructor[javaTypes.length];
            findTypeConstructorForJavaClass(javaTypes, typeConstructors);
           
            Name.TypeCons typeConstructorNames[] = new Name.TypeCons[javaTypes.length];
            for (int i = 0, n = javaTypes.length; i < n; ++i) {
                if (typeConstructors[i] != null) {
View Full Code Here

                for (Iterator<TypeExpr> it = hasFieldsMap.values().iterator(); it.hasNext();) {
                    updateInputableImports(it.next());
                }
            } else if (!typeExpr.isFunctionType()) {
                if (tca != null) {
                    TypeConstructor tc = tca.getRoot();
                    // Ignore functions
                    ModuleTypeInfo m = findModuleWithClassInstance(CAL_Prelude.TypeClasses.Inputable, tc.getName());
                    if (m != null) {
                        inputableImports.add(m.getModuleName());
                    } else if (!tc.getName().getModuleName().equals(module.getModuleName())){
                        // Create a module name based on our naming.
                        ModuleName mn =
                            ModuleName.make(
                                    tc.getName().getModuleName().toString() + "_JavaIO");
                        inputableImports.add(mn);
                    }
                }               
            }
           
View Full Code Here

                return;
            }
            visitedModules.add(module);
           
            for (int i = 0, n = module.getNTypeConstructors(); i < n; ++i) {
                TypeConstructor tc = module.getNthTypeConstructor(i);
                ForeignTypeInfo fti = tc.getForeignTypeInfo();
                if (fti == null) {
                    continue;
                }
               
                JavaTypeName foreignType = JavaTypeName.make(fti.getForeignType());
View Full Code Here

        JavaClassRep generateClassForType () {
           
            JavaTypeName typeConstructorClassName =
                JavaTypeName.make(targetPackage + "." + typeConstructorInfo.javaClassName, false);
   
            TypeConstructor typeConstructor = typeConstructorInfo.typeConstructor;
           
            JavaClassRep outerTypeDefinition =
                new OuterTypeDefinitionGenerator().generateOuterTypeDefinition(typeConstructorClassName);
           
            // Now we need to generate inner classes for each data constructor.
            // This is only necessary if the data type is not an enumeration.
            if (!typeConstructorInfo.isEnumerationType) {
               
                for (int i = 0, n = typeConstructor.getNDataConstructors(); i < n; ++i) {
                    DataConstructor dc = typeConstructor.getNthDataConstructor(i);
                    JavaClassRep dcClass = new InnerDCClassGenerator().generateInnerDCClass(dc, typeConstructorInfo, typeConstructorClassName);
                   
                    outerTypeDefinition.addInnerClass(dcClass);
                }
            }
View Full Code Here

     * @param moduleTypeInfo the module whose type constructors are to have their usage indices generated.
     */
    void generateUsageIndices(ModuleTypeInfo moduleTypeInfo) {
        int nTypeConstructors = moduleTypeInfo.getNTypeConstructors();
        for (int i = 0; i < nTypeConstructors; i++) {
            TypeConstructor typeCons = moduleTypeInfo.getNthTypeConstructor(i);
           
            // only generate the usage indices if the type constructor is actually to be documented
            if (filter.shouldGenerateScopedEntity(typeCons)) {
                beginTypeConsUsageDoc(typeCons);
                generateUsageIndicesForTypeConsOrTypeClass(typeCons, typeConsUsageIndices);
View Full Code Here

        /// First, collect the various entities that need to be documented, applying the user-specified filters along the way.
        //
        int nTypeConstructors = moduleTypeInfo.getNTypeConstructors();
        List<TypeConstructor> typeConstructorsList = new ArrayList<TypeConstructor>(nTypeConstructors);
        for (int i = 0; i < nTypeConstructors; i++) {
            TypeConstructor typeCons = moduleTypeInfo.getNthTypeConstructor(i);
            if (filter.shouldGenerateScopedEntity(typeCons)) {
                typeConstructorsList.add(typeCons);
            }
        }
       
View Full Code Here

        //
        int nTypeConstructors = typeConstructors.length;
        beginTypeConsDocSection(nTypeConstructors, calcMaxScopeOfScopedEntities(typeConstructors));
        for (int i = 0; i < nTypeConstructors; i++) {
           
            TypeConstructor typeConstructor = typeConstructors[i];
            QualifiedName name = typeConstructor.getName();
            perModuleTypeIndex.add(new IndexEntry(name.getUnqualifiedName(), labelMaker.getLabel(typeConstructor), typeConstructor.getScope(), IndexEntry.Kind.TYPE));
           
            generateTypeConsDoc(typeConstructor, i);
        }
        endTypeConsDocSection(nTypeConstructors);
    }
View Full Code Here

        @Override
        public ForeignValueNode getNodeInstance(Object value, DataConstructor dataConstructor, TypeExpr typeExpr) {
           
            // Check for handleability.
            TypeConsApp typeConsApp = typeExpr.rootTypeConsApp();
            TypeConstructor typeCons = typeConsApp != null ? getPerspective().getTypeConstructor(typeConsApp.getName())
                                                                    : null;
           
            if (typeCons == null || typeCons.getForeignTypeInfo() == null) {
                return null;
            }
           
            return new ForeignValueNode(value, typeExpr);
        }
View Full Code Here

     * @param typeConsName the name of the type constructor to return
     * @return the type constructor with the given name if it is visible and supported, null otherwise
     */
    public TypeConsApp getTypeConstructorForName(QualifiedName typeConsName) {
       
        TypeConstructor typeCons = perspective.getTypeConstructor(typeConsName);
       
        if (typeCons != null) {
            return getTypeConstructorForEntity(typeCons);
        }
       
View Full Code Here

TOP

Related Classes of org.openquark.cal.compiler.TypeConstructor

Copyright © 2018 www.massapicom. 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.