@Override public ILexLocation defaultPExp(PExp node) throws AnalysisException { return node.getLocation(); }
@Override public Boolean defaultInPExp(PExp node) throws AnalysisException { if (!isValidModule(node.getLocation())) { invalidNodes.add(node); return false; } return true; }
public static Breakpoint getBreakpoint(PExp exp) { if (!expressionMap.containsKey(exp)) { expressionMap.put(exp, new Breakpoint(exp.getLocation())); } return expressionMap.get(exp); }
public POForAllContext(PBind bind, PExp exp) { // Create new binding for "bind.pattern in set elems exp" bindings = new Vector<PMultipleBind>(); List<PPattern> pl = new ArrayList<PPattern>(); pl.add(bind.getPattern().clone()); AElementsUnaryExp elems = AstFactory.newAElementsUnaryExp(exp.getLocation(), exp.clone()); ASetMultipleBind msb = AstFactory.newASetMultipleBind(pl, elems); bindings.add(msb); }
public static AExpressionPattern newAExpressionPattern(PExp expression) { AExpressionPattern result = new AExpressionPattern(); initPattern(result, expression.getLocation()); result.setExp(expression); return result; }
public SeqMembershipObligation(PPattern pattern, PExp seq, IPOContextStack ctxt, IPogAssistantFactory af) throws AnalysisException { super(seq, POType.SEQ_MEMBER, ctxt, seq.getLocation(), af); AElementsUnaryExp elems = AstFactory.newAElementsUnaryExp(seq.getLocation(), seq.clone()); AInSetBinaryExp inSetExp = AstExpressionFactory.newAInSetBinaryExp(patternToExp(pattern), elems); stitch = inSetExp; valuetree.setPredicate(ctxt.getPredWithContext(inSetExp)); } }
public MapInjectivityComp(PExp exp, IPOContextStack ctxt, IPogAssistantFactory af) throws AnalysisException { super(exp, POType.MAP_INJ_COMP, ctxt, exp.getLocation(), af); stitch = buildPredicate(exp.clone()); valuetree.setPredicate(ctxt.getPredWithContext(stitch)); }
public static AFuncInstatiationExp newAFuncInstatiationExp(PExp function, List<PType> types) { AFuncInstatiationExp result = new AFuncInstatiationExp(); result.setLocation(function.getLocation()); result.setFunction(function); result.setActualTypes(types); return result; }
public static PExp newAApplyExp(PExp root, List<PExp> args) { AApplyExp result = new AApplyExp(); result.setLocation(root.getLocation()); result.setRoot(root); result.setArgs(args); return result; }
public NonEmptySetObligation(PExp exp, IPOContextStack ctxt, IPogAssistantFactory af) throws AnalysisException { super(exp, POType.NON_EMPTY_SET, ctxt, exp.getLocation(), af); // exp <> {} ASetEnumSetExp setExp = new ASetEnumSetExp(); setExp.setMembers(new LinkedList<PExp>()); // empty list ANotEqualBinaryExp notEqualsExp = AstExpressionFactory.newANotEqualBinaryExp(exp.clone(), setExp); stitch = notEqualsExp; valuetree.setPredicate(ctxt.getPredWithContext(notEqualsExp)); } }
public static ASubseqExp newASubseqExp(PExp seq, PExp from, PExp to) { ASubseqExp result = new ASubseqExp(); result.setLocation(seq.getLocation()); result.setSeq(seq); result.setFrom(from); result.setTo(to); return result; }
public SetMembershipObligation(PPattern pattern, PExp set, IPOContextStack ctxt, IPogAssistantFactory af) throws AnalysisException { super(set, POType.SET_MEMBER, ctxt, set.getLocation(), af); AInSetBinaryExp inSetExp = AstExpressionFactory.newAInSetBinaryExp(patternToExp(pattern), set.clone()); stitch = inSetExp; valuetree.setPredicate(ctxt.getPredWithContext(inSetExp)); } }
public static AStateInitExp newAStateInitExp(AStateDefinition state) { AStateInitExp result = new AStateInitExp(); initExpression(result, state.getInitExpression().getLocation()); result.setState(state); result.getLocation().executable(false); return result; }
public static PExp newAFieldNumberExp(PExp tuple, LexIntegerToken field) { AFieldNumberExp result = new AFieldNumberExp(); result.setLocation(tuple.getLocation()); result.setTuple(tuple); result.setField(field); result.getField().getLocation().executable(true); return result; }
public SeqApplyObligation(PExp root, PExp arg, IPOContextStack ctxt, IPogAssistantFactory af) throws AnalysisException { super(root, POType.SEQ_APPLY, ctxt, root.getLocation(), af); AIndicesUnaryExp indsExp = new AIndicesUnaryExp(); indsExp.setExp(root.clone()); AInSetBinaryExp inSetExp = AstExpressionFactory.newAInSetBinaryExp(arg.clone(), indsExp); stitch = inSetExp; valuetree.setPredicate(ctxt.getPredWithContext(stitch)); }
public AExplicitFunctionDefinition getPostDefinition( AImplicitFunctionDefinition d) { List<List<PPattern>> parameters = getParamPatternList(d); parameters.get(0).add(d.getResult().getPattern().clone()); @SuppressWarnings("unchecked") AExplicitFunctionDefinition def = AstFactory.newAExplicitFunctionDefinition(d.getName().getPostName(d.getPostcondition().getLocation()), NameScope.GLOBAL, (List<ILexNameToken>) d.getTypeParams().clone(), af.createAFunctionTypeAssistant().getPostType((AFunctionType) d.getType()), parameters, d.getPostcondition(), null, null, false, null); def.setAccess(d.getAccess().clone()); def.setClassDefinition(d.getClassDefinition()); return def; }
public static AFieldExp newAFieldExp(PExp object, ILexNameToken field) { AFieldExp result = new AFieldExp(); result.setLocation(object.getLocation()); result.setObject(object); result.setField(new LexIdentifierToken(field.getName(), field.getOld(), field.getLocation())); result.setMemberName(field); result.getField().getLocation().executable(true); return result; }
@Override public PType caseACardinalityUnaryExp(ACardinalityUnaryExp node, TypeCheckInfo question) throws AnalysisException { PExp exp = node.getExp(); question.qualifiers = null; if (!question.assistantFactory.createPTypeAssistant().isSet(exp.apply(THIS, question.newConstraint(null)))) { TypeCheckerErrors.report(3067, "Argument of 'card' is not a set", exp.getLocation(), exp); } node.setType(AstFactory.newANatNumericBasicType(node.getLocation())); return question.assistantFactory.createPTypeAssistant().possibleConstraint(question.constraint, node.getType(), node.getLocation()); }
public AExplicitFunctionDefinition getPreDefinition( AImplicitFunctionDefinition d) { @SuppressWarnings("unchecked") AExplicitFunctionDefinition def = AstFactory.newAExplicitFunctionDefinition(d.getName().getPreName(d.getPrecondition().getLocation()), NameScope.GLOBAL, (List<ILexNameToken>) d.getTypeParams().clone(), af.createAFunctionTypeAssistant().getPreType((AFunctionType) d.getType()), getParamPatternList(d), d.getPrecondition(), null, null, false, null); def.setAccess(d.getAccess().clone()); def.setClassDefinition(d.getClassDefinition()); return def; }
public AExplicitFunctionDefinition getPreDefinition( AExplicitFunctionDefinition d) { @SuppressWarnings("unchecked") AExplicitFunctionDefinition def = AstFactory.newAExplicitFunctionDefinition(d.getName().getPreName(d.getPrecondition().getLocation()), NameScope.GLOBAL, (List<ILexNameToken>) d.getTypeParams().clone(), af.createAFunctionTypeAssistant().getCurriedPreType((AFunctionType) d.getType(), d.getIsCurried()), (LinkedList<List<PPattern>>) d.getParamPatternList().clone(), d.getPrecondition(), null, null, false, null); def.setAccess(d.getAccess().clone()); def.setClassDefinition(d.getClassDefinition()); return def; }