@Override public Integer caseAMapPattern(AMapPattern pattern) throws AnalysisException { return pattern.getMaplets().size(); }
@Override public Boolean caseAMapPattern(AMapPattern pattern) throws AnalysisException { for (AMapletPatternMaplet p : pattern.getMaplets()) { if (p.apply(THIS)) { return true; } } return false; }
@Override public Boolean caseAMapPattern(AMapPattern pattern) throws AnalysisException { for (AMapletPatternMaplet mp : pattern.getMaplets()) { // if (!AMapletPatternMapletAssistantTC.isSimple(mp)) // Original code. if (!mp.apply(THIS)) { return false; } } return true; }
@Override public List<AIdentifierPattern> caseAMapPattern(AMapPattern pattern) throws AnalysisException { List<AIdentifierPattern> list = new Vector<AIdentifierPattern>(); for (AMapletPatternMaplet p : pattern.getMaplets()) { list.addAll(af.createAMapPatternMapletAssistant().findIdentifiers(p)); } return list; }
@Override public void caseAMapPattern(AMapPattern pattern) throws AnalysisException { for (AMapletPatternMaplet mp : pattern.getMaplets()) { // af.createAMapletPatternMapletAssistant().unResolve(mp); mp.apply(THIS); } pattern.setResolved(false); }
public PExp caseAMapPattern(AMapPattern node) throws AnalysisException { AMapEnumMapExp map = new AMapEnumMapExp(); List<AMapletExp> values = new Vector<AMapletExp>(); for (AMapletPatternMaplet p : node.getMaplets()) { values.add((AMapletExp) p.apply(this).clone()); } map.setMembers(values); return addPossibleType(map, node); }
/** * Called by the {@link AMapPattern} node from {@link AMapPattern#apply(IAnalysis)}. * @param node the calling {@link AMapPattern} node */ public void caseAMapPattern(AMapPattern node) throws AnalysisException { _visitedNodes.add(node); inAMapPattern(node); { List<PDefinition> copy = new ArrayList<PDefinition>(node.getDefinitions()); for( PDefinition e : copy) { if(!_visitedNodes.contains(e)) { e.apply(this); } } } { List<AMapletPatternMaplet> copy = new ArrayList<AMapletPatternMaplet>(node.getMaplets()); for( AMapletPatternMaplet e : copy) { if(!_visitedNodes.contains(e)) { e.apply(this); } } } outAMapPattern(node); }
/** * Called by the {@link AMapPattern} node from {@link AMapPattern#apply(IPOFAnalysis)}. * @param node the calling {@link AMapPattern} node */ public void caseAMapPattern(AMapPattern node) throws AnalysisException { _visitedNodes.add(node); inAMapPattern(node); { List<PDefinition> copy = new ArrayList<PDefinition>(node.getDefinitions()); for( PDefinition e : copy) { if(!_visitedNodes.contains(e)) { e.apply(this); } } } { List<AMapletPatternMaplet> copy = new ArrayList<AMapletPatternMaplet>(node.getMaplets()); for( AMapletPatternMaplet e : copy) { if(!_visitedNodes.contains(e)) { e.apply(this); } } } outAMapPattern(node); }
/** * Called by the {@link AMapPattern} node from {@link AMapPattern#apply(IAnalysis)}. * @param node the calling {@link AMapPattern} node */ public void caseAMapPattern(AMapPattern node, Q question) throws AnalysisException { _visitedNodes.add(node); inAMapPattern(node, question); { List<PDefinition> copy = new ArrayList<PDefinition>(node.getDefinitions()); for( PDefinition e : copy) { if(!_visitedNodes.contains(e)) { e.apply(this, question); } } } { List<AMapletPatternMaplet> copy = new ArrayList<AMapletPatternMaplet>(node.getMaplets()); for( AMapletPatternMaplet e : copy) { if(!_visitedNodes.contains(e)) { e.apply(this, question); } } } outAMapPattern(node, question); }
List<AMapletPatternMaplet> copy = new ArrayList<AMapletPatternMaplet>(node.getMaplets()); for( AMapletPatternMaplet e : copy)
List<AMapletPatternMaplet> copy = new ArrayList<AMapletPatternMaplet>(node.getMaplets()); for( AMapletPatternMaplet e : copy)
if (values.size() != pattern.getMaplets().size()) int psize = pattern.getMaplets().size(); if (pattern.getMaplets().isEmpty()) for (AMapletPatternMaplet p : pattern.getMaplets())
@Override public List<PDefinition> caseAMapPattern(AMapPattern pattern, NewQuestion question) throws AnalysisException { List<PDefinition> defs = new Vector<PDefinition>(); if (!af.createPTypeAssistant().isMap(question.ptype)) { TypeCheckerErrors.report(3314, "Map pattern is not matched against map type", pattern.getLocation(), pattern); TypeCheckerErrors.detail("Actual type", question.ptype); } else { SMapType map = af.createPTypeAssistant().getMap(question.ptype); if (!map.getEmpty()) { for (AMapletPatternMaplet p : pattern.getMaplets()) { defs.addAll(getDefinitions(p, map, question.scope)); // defs.addAll(p.apply(THIS, question)); } } } return defs; }
@Override public void caseAMapPattern(AMapPattern pattern, NewQuestion question) throws AnalysisException { if (pattern.getResolved()) { return; } else { pattern.setResolved(true); } try { for (AMapletPatternMaplet mp : pattern.getMaplets()) { // af.createAMapletPatternMapletAssistant().typeResolve(mp, question.rootVisitor, question.question); mp.apply(THIS, question); } } catch (TypeCheckException e) { // af.createAMapPatternAssistant().unResolve(pattern); pattern.apply(af.getPatternUnresolver()); throw e; } }