public TypeAssistantIR getTypeAssistant() { return assistantManager.getTypeAssistant(); }
public boolean isSeqType(SExpIR exp) { return info.getAssistantManager().getTypeAssistant().isSeqType(exp); }
public boolean isMapType(SExpIR exp) { return info.getAssistantManager().getTypeAssistant().isMapType(exp); }
public boolean isStringType(STypeIR type) { return info.getAssistantManager().getTypeAssistant().isStringType(type); }
public boolean isStringType(SExpIR exp) { return info.getAssistantManager().getTypeAssistant().isStringType(exp); }
private String formattedTypes(List<STypeIR> types, String typePostFix) throws AnalysisException { STypeIR firstType = types.get(0); if (info.getAssistantManager().getTypeAssistant().isBasicType(firstType)) { firstType = info.getAssistantManager().getTypeAssistant().getWrapperType((SBasicTypeIR) firstType); } StringWriter writer = new StringWriter(); writer.append(format(firstType) + typePostFix); for (int i = 1; i < types.size(); i++) { STypeIR currentType = types.get(i); if (info.getAssistantManager().getTypeAssistant().isBasicType(currentType)) { currentType = info.getAssistantManager().getTypeAssistant().getWrapperType((SBasicTypeIR) currentType); } writer.append(", " + format(currentType) + typePostFix); } String result = writer.toString(); return result; }
private boolean correctArgTypes(List<SExpIR> args, List<STypeIR> paramTypes, boolean sameSize) throws AnalysisException { if (sameSize && args.size() != paramTypes.size()) { return false; } if (transAssistant.getInfo().getAssistantManager().getTypeAssistant().checkArgTypes(transAssistant.getInfo(), args, paramTypes)) { for (int k = 0; k < paramTypes.size(); k++) { SExpIR arg = args.get(k); if (!(arg instanceof ANullExpIR)) { correctTypes(arg, paramTypes.get(k)); } } return true; } return false; }
public String formatTemplateParam(INode potentialBasicType) throws AnalysisException { if (potentialBasicType == null) { return ""; } TypeAssistantIR typeAssistant = info.getAssistantManager().getTypeAssistant(); if (potentialBasicType instanceof STypeIR && typeAssistant.isNumericType((STypeIR) potentialBasicType)) { return "Number"; } else if (potentialBasicType instanceof ABoolBasicTypeIR) { return "Boolean"; } else if (potentialBasicType instanceof ACharBasicTypeIR) { return "Character"; } else { return format(potentialBasicType); } }
@Override public boolean mustHandleNameToken(ILexNameToken nameToken) { PDefinitionAssistantTC defAssistant = irInfo.getTcFactory().createPDefinitionAssistant(); if (irInfo.getAssistantManager().getTypeAssistant().getTypeDef(nameToken, defAssistant) != null) { return false; } PDefinition def = nameToken.getAncestor(PDefinition.class); if (def instanceof SOperationDefinition || def instanceof SFunctionDefinition) { return false; } for (String name : this.getNames()) { if (nameToken.getName().startsWith(name)) { return true; } } return false; }
@Override public boolean mustHandleNameToken(ILexNameToken nameToken) { if (this.getNames().contains(nameToken.getName())) { PDefinitionAssistantTC defAssistant = irInfo.getTcFactory().createPDefinitionAssistant(); TypeAssistantIR typeAssistantCg = irInfo.getAssistantManager().getTypeAssistant(); PDefinition def = typeAssistantCg.getTypeDef(nameToken, defAssistant); if (def instanceof ATypeDefinition) { ATypeDefinition typeDef = (ATypeDefinition) def; return typeDef.getInvType() == null; } return def != null; } else if (isModuleViolation(nameToken)) { return true; } return false; }
private String findNumberDereferenceCall(STypeIR type) { if (type == null || type.parent() instanceof AHistoryExpIR) { return ""; } final String DOUBLE_VALUE = ".doubleValue()"; final String LONG_VALUE = ".longValue()"; if (info.getAssistantManager().getTypeAssistant().isInt(type)) { return LONG_VALUE; } else if (info.getAssistantManager().getTypeAssistant().isRealOrRat(type)) { return DOUBLE_VALUE; } else { PTypeAssistantTC typeAssistant = info.getTcFactory().createPTypeAssistant(); SourceNode sourceNode = type.getSourceNode(); if (sourceNode != null && !(sourceNode.getVdmNode() instanceof PType)) { PType vdmType = (PType) sourceNode.getVdmNode(); if (typeAssistant.isNumeric(vdmType)) { return DOUBLE_VALUE; } } return ""; } }
ACaseAltExpExpIR cgCase = casesCg.get(i); PType patternType = question.getAssistantManager().getTypeAssistant().getType(question, unionType, vdmCase.getPattern()); STypeIR patternTypeCg = patternType.apply(question.getTypeVisitor(), question); cgCase.setPatternType(patternTypeCg);
ACaseAltStmStmIR cgCase = casesCg.get(i); PType patternType = question.getAssistantManager().getTypeAssistant().getType(question, unionType, vdmCase.getPattern()); STypeIR patternTypeCg = patternType.apply(question.getTypeVisitor(), question); cgCase.setPatternType(patternTypeCg);
private void handleCallStm(SCallStmIR node, String className) throws AnalysisException { for (SExpIR arg : node.getArgs()) { arg.apply(this); } String fieldName = node.getName(); LinkedList<SExpIR> args = node.getArgs(); TypeAssistantIR typeAssistant = transAssistant.getInfo().getAssistantManager().getTypeAssistant(); AMethodTypeIR methodType = typeAssistant.getMethodType(transAssistant.getInfo(), className, fieldName, args); if (methodType != null) { correctArgTypes(args, methodType.getParams(), true); } }
if (assistantManager.getTypeAssistant().checkArgTypes(info, args, params))
TypeAssistantIR typeAssistant = transAssistant.getInfo().getAssistantManager().getTypeAssistant();
if (!javaFormat.getIrInfo().getAssistantManager().getTypeAssistant().isBasicType(varExp.getType()))
TypeAssistantIR typeAssistant = transAssistant.getInfo().getAssistantManager().getTypeAssistant();
List<STypeIR> fieldTypes = transAssistant.getInfo().getAssistantManager().getTypeAssistant().getFieldTypes(record);