Search in sources :

Example 1 with ParametricDataTypeUse

use of abs.frontend.ast.ParametricDataTypeUse in project abstools by abstools.

the class AbsASTBuilderUtil method generateImportAST.

public static final Set<Import> generateImportAST(TypeUse t) {
    Set<Import> imports = new HashSet<>();
    imports.add(generateImportAST(t.getName(), t.getModuleDecl().getName()));
    if (t instanceof ParametricDataTypeUse) {
        for (TypeUse st : ((ParametricDataTypeUse) t).getParams()) {
            imports.addAll(generateImportAST(st));
        }
    }
    return imports;
}
Also used : TypeUse(abs.frontend.ast.TypeUse) ParametricDataTypeUse(abs.frontend.ast.ParametricDataTypeUse) DataTypeUse(abs.frontend.ast.DataTypeUse) InterfaceTypeUse(abs.frontend.ast.InterfaceTypeUse) FromImport(abs.frontend.ast.FromImport) Import(abs.frontend.ast.Import) HashSet(java.util.HashSet) ParametricDataTypeUse(abs.frontend.ast.ParametricDataTypeUse)

Example 2 with ParametricDataTypeUse

use of abs.frontend.ast.ParametricDataTypeUse in project abstools by abstools.

the class AbsASTBuilderUtil method getType.

public static final DataTypeUse getType(String n, TypeUse... types) {
    if (types.length > 0) {
        ParametricDataTypeUse set = new ParametricDataTypeUse();
        set.setName(n);
        for (TypeUse d : types) {
            set.addParam(d);
        }
        return set;
    } else {
        DataTypeUse set = new DataTypeUse();
        set.setName(n);
        return set;
    }
}
Also used : TypeUse(abs.frontend.ast.TypeUse) ParametricDataTypeUse(abs.frontend.ast.ParametricDataTypeUse) DataTypeUse(abs.frontend.ast.DataTypeUse) InterfaceTypeUse(abs.frontend.ast.InterfaceTypeUse) ParametricDataTypeUse(abs.frontend.ast.ParametricDataTypeUse) DataTypeUse(abs.frontend.ast.DataTypeUse) ParametricDataTypeUse(abs.frontend.ast.ParametricDataTypeUse)

Example 3 with ParametricDataTypeUse

use of abs.frontend.ast.ParametricDataTypeUse in project abstools by abstools.

the class ASTBasedABSTestRunnerGenerator method generateDataPointsAST.

private TypeUse generateDataPointsAST(InterfaceDecl key, ClassDecl clazz, Set<TypeUse> use, MainBlock block) {
    MethodSig dataPoint = findDataPoints(key);
    if (dataPoint == null) {
        return null;
    }
    Access rt = dataPoint.getReturnType();
    if (!(rt instanceof ParametricDataTypeUse)) {
        return null;
    }
    ParametricDataTypeUse prt = (ParametricDataTypeUse) rt;
    if (!prt.getName().equals("Set")) {
        return null;
    }
    // Set has only one type parameter
    TypeUse u = (TypeUse) prt.getParam(0).copy();
    use.add(u);
    String objName = uncap(clazz.getName()) + "dataPoint";
    String dataSet = dataPointSetName(clazz);
    block.addStmtNoTransform(newObj(key, clazz, objName, true));
    block.addStmtNoTransform(getVarDecl(dataSet, prt.copy(), new SyncCall(new VarUse(objName), dataPoint.getName(), new List<>())));
    return u;
}
Also used : MethodSig(abs.frontend.ast.MethodSig) TypeUse(abs.frontend.ast.TypeUse) ParametricDataTypeUse(abs.frontend.ast.ParametricDataTypeUse) DataTypeUse(abs.frontend.ast.DataTypeUse) SyncCall(abs.frontend.ast.SyncCall) Access(abs.frontend.ast.Access) VarUse(abs.frontend.ast.VarUse) ParametricDataTypeUse(abs.frontend.ast.ParametricDataTypeUse)

Aggregations

DataTypeUse (abs.frontend.ast.DataTypeUse)3 ParametricDataTypeUse (abs.frontend.ast.ParametricDataTypeUse)3 TypeUse (abs.frontend.ast.TypeUse)3 InterfaceTypeUse (abs.frontend.ast.InterfaceTypeUse)2 Access (abs.frontend.ast.Access)1 FromImport (abs.frontend.ast.FromImport)1 Import (abs.frontend.ast.Import)1 MethodSig (abs.frontend.ast.MethodSig)1 SyncCall (abs.frontend.ast.SyncCall)1 VarUse (abs.frontend.ast.VarUse)1 HashSet (java.util.HashSet)1