Search in sources :

Example 1 with TypedArgNoAssignContext

use of org.apache.sysml.parser.dml.DmlParser.TypedArgNoAssignContext in project incubator-systemml by apache.

the class DmlSyntacticValidator method getFunctionParameters.

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.equalsIgnoreCase("matrix"))
            dataId.setDataType(DataType.MATRIX);
        else if (dataType.equalsIgnoreCase("frame"))
            dataId.setDataType(DataType.FRAME);
        else if (dataType.equalsIgnoreCase("scalar"))
            dataId.setDataType(DataType.SCALAR);
        valueType = paramCtx.paramType.valueType().getText();
        if (valueType.equals("int") || valueType.equals("integer") || valueType.equals("Int") || valueType.equals("Integer")) {
            dataId.setValueType(ValueType.INT);
        } else if (valueType.equals("string") || valueType.equals("String")) {
            dataId.setValueType(ValueType.STRING);
        } else if (valueType.equals("boolean") || valueType.equals("Boolean")) {
            dataId.setValueType(ValueType.BOOLEAN);
        } else if (valueType.equals("double") || valueType.equals("Double")) {
            dataId.setValueType(ValueType.DOUBLE);
        } else if (valueType.equals("bool")) {
            notifyErrorListeners("invalid valuetype " + valueType + " (Quickfix: use \'boolean\' instead)", paramCtx.start);
            return null;
        } 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.dml.DmlParser.TypedArgNoAssignContext)

Aggregations

ArrayList (java.util.ArrayList)1 DataIdentifier (org.apache.sysml.parser.DataIdentifier)1 TypedArgNoAssignContext (org.apache.sysml.parser.dml.DmlParser.TypedArgNoAssignContext)1