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;
}
Aggregations