Search in sources :

Example 1 with TypedArgNoAssignContext

use of org.apache.sysml.parser.pydml.PydmlParser.TypedArgNoAssignContext in project incubator-systemml by apache.

the class PydmlSyntacticValidator method getFunctionParameters.

// -----------------------------------------------------------------
// 				Internal & External Functions Definitions
// -----------------------------------------------------------------
private ArrayList<DataIdentifier> getFunctionParameters(List<TypedArgNoAssignContext> ctx) {
    ArrayList<DataIdentifier> retVal = new ArrayList<DataIdentifier>();
    for (TypedArgNoAssignContext paramCtx : ctx) {
        DataIdentifier dataId = new DataIdentifier(paramCtx.paramName.getText());
        String dataType = null;
        String valueType = null;
        if (paramCtx.paramType == null || paramCtx.paramType.dataType() == null || paramCtx.paramType.dataType().getText() == null || paramCtx.paramType.dataType().getText().isEmpty()) {
            dataType = "scalar";
        } else {
            dataType = paramCtx.paramType.dataType().getText();
        }
        //check and assign data type
        checkValidDataType(dataType, paramCtx.start);
        if (dataType.equals("matrix"))
            dataId.setDataType(DataType.MATRIX);
        else if (dataType.equals("frame"))
            dataId.setDataType(DataType.FRAME);
        else if (dataType.equals("scalar"))
            dataId.setDataType(DataType.SCALAR);
        valueType = paramCtx.paramType.valueType().getText();
        if (valueType.equals("int")) {
            dataId.setValueType(ValueType.INT);
        } else if (valueType.equals("str")) {
            dataId.setValueType(ValueType.STRING);
        } else if (valueType.equals("bool")) {
            dataId.setValueType(ValueType.BOOLEAN);
        } else if (valueType.equals("float")) {
            dataId.setValueType(ValueType.DOUBLE);
        } else {
            notifyErrorListeners("invalid valuetype " + valueType, paramCtx.start);
            return null;
        }
        retVal.add(dataId);
    }
    return retVal;
}
Also used : DataIdentifier(org.apache.sysml.parser.DataIdentifier) ArrayList(java.util.ArrayList) TypedArgNoAssignContext(org.apache.sysml.parser.pydml.PydmlParser.TypedArgNoAssignContext)

Aggregations

ArrayList (java.util.ArrayList)1 DataIdentifier (org.apache.sysml.parser.DataIdentifier)1 TypedArgNoAssignContext (org.apache.sysml.parser.pydml.PydmlParser.TypedArgNoAssignContext)1