@Override public PPatternAssistant createPPatternAssistant() { return new PPatternAssistant(this); }
@Override public PTypeList createNewReturnValue(Object node) throws AnalysisException { return new PTypeList(); }
public PTypeList(PType act) { add(act); }
@Override public LexNameList caseAUnionPattern(AUnionPattern pattern) throws AnalysisException { LexNameList list = new LexNameList(); list.addAll(af.createPPatternAssistant().getAllVariableNames(pattern.getLeft())); list.addAll(af.createPPatternAssistant().getAllVariableNames(pattern.getRight())); return list; }
public LexNameList getVariableNames(PPattern pattern) { return af.createPPatternAssistant().getVariableNamesBaseCase(pattern); }
@Override public PTypeList createNewReturnValue(INode node) throws AnalysisException { return new PTypeList(); }
@Override public LexNameList caseARecordPattern(ARecordPattern pattern) throws AnalysisException { LexNameList list = new LexNameList(); for (PPattern p : pattern.getPlist()) { list.addAll(af.createPPatternAssistant().getAllVariableNames(p)); } return list; }
public PTypeList getComposeTypes(PType type) { try { return type.apply(af.getComposeTypeCollector()); } catch (AnalysisException e) { return new PTypeList(); } }
@Override public LexNameList caseASeqPattern(ASeqPattern pattern) throws AnalysisException { LexNameList list = new LexNameList(); for (PPattern p : pattern.getPlist()) { list.addAll(af.createPPatternAssistant().getAllVariableNames(p)); } return list; }
@Override public AOperationType caseAUnknownType(AUnknownType type) throws AnalysisException { return AstFactory.newAOperationType(type.getLocation(), new PTypeList(), AstFactory.newAUnknownType(type.getLocation())); }
@Override public LexNameList caseATuplePattern(ATuplePattern pattern) throws AnalysisException { LexNameList list = new LexNameList(); for (PPattern p : pattern.getPlist()) { list.addAll(af.createPPatternAssistant().getAllVariableNames(p)); } return list; }
@Override public LexNameList caseASetPattern(ASetPattern pattern) throws AnalysisException { LexNameList list = new LexNameList(); for (PPattern p : pattern.getPlist()) { list.addAll(af.createPPatternAssistant().getAllVariableNames(p)); } return list; }