Search in sources :

Example 21 with ExprVar

use of edu.mit.csail.sdg.ast.ExprVar in project org.alloytools.alloy by AlloyTools.

the class InternalTest method test1.

public void test1() throws Exception {
    XMLNode xml = new XMLNode(new StringReader("<alloy builddate='unknown'>" + "<instance bitwidth='2' maxseq='1' command='Run Deadlock' filename='dijkstra.als'>" + "<sig label='univ' ID='0' builtin='yes'> <atom label='-2'/> <atom label='-1'/> <atom label='0'/> <atom label='1'/> <atom label='State$0'/> <atom label='State$1'/> <atom label='State$2'/> </sig>" + "<sig label='Int' ID='1' parentID='0' builtin='yes'> <atom label='-2'/> <atom label='-1'/> <atom label='0'/> <atom label='1'/> </sig>" + "<sig label='seq/Int' ID='2' parentID='1' builtin='yes'> <atom label='0'/> </sig>" + "<sig label='State' ID='5' parentID='0'> <atom label='State$0'/> <atom label='State$1'/> <atom label='State$2'/> </sig>" + "<field label='len' parentID='5' ID='17'>" + "   <tuple> <atom label='State$1'/> <atom label='-2'/> </tuple>" + "   <tuple> <atom label='State$1'/> <atom label='-1'/> </tuple>" + "   <types> <type ID='5'/> <type ID='1'/> </types>" + "</field>" + "<skolem label='$Deadlock_s' ID='16'>" + "   <tuple> <atom label='State$0'/> </tuple>" + "   <types> <type ID='5'/> </types>" + "</skolem>" + "</instance>" + "</alloy>"));
    Sig state = new Sig.PrimSig("State");
    A4Solution sol = A4SolutionReader.read(Arrays.asList(state), xml);
    SafeList<ExprVar> skolems = new SafeList<ExprVar>(sol.getAllSkolems());
    check(skolems.size() == 1);
    check(skolems.get(0).label, "$Deadlock_s");
    check(skolems.get(0).type(), state.type());
    // 
    Sig state2 = new Sig.PrimSig("State");
    Field field2 = state2.addField("len", Sig.SIGINT);
    sol = A4SolutionReader.read(Arrays.asList(state2), xml);
    SafeList<ExprVar> skolems2 = new SafeList<ExprVar>(sol.getAllSkolems());
    check(skolems2.size() == 1);
    check(skolems2.get(0).label, "$Deadlock_s");
    check(skolems2.get(0).type(), state2.type());
    check("" + sol.eval(field2.cardinality()), "-2");
}
Also used : Sig(edu.mit.csail.sdg.ast.Sig) ExprVar(edu.mit.csail.sdg.ast.ExprVar) Field(edu.mit.csail.sdg.ast.Sig.Field) XMLNode(edu.mit.csail.sdg.alloy4.XMLNode) SafeList(edu.mit.csail.sdg.alloy4.SafeList) StringReader(java.io.StringReader) A4Solution(edu.mit.csail.sdg.translator.A4Solution)

Example 22 with ExprVar

use of edu.mit.csail.sdg.ast.ExprVar in project org.alloytools.alloy by AlloyTools.

the class InternalTest method test2.

public void test2() throws Exception {
    test1();
    XMLNode xml = new XMLNode(new StringReader("<alloy builddate='unknown'>" + "<instance bitwidth='2' maxseq='1' command='Run Deadlock' filename='dijkstra.als'>" + "<sig label='univ' ID='0' builtin='yes'> <atom label='-2'/> <atom label='-1'/> <atom label='0'/> <atom label='1'/> <atom label='State$0'/> <atom label='State$1'/> <atom label='State$2'/> </sig>" + "<sig label='Int' ID='1' parentID='0' builtin='yes'> <atom label='-2'/> <atom label='-1'/> <atom label='0'/> <atom label='1'/> </sig>" + "<sig label='seq/Int' ID='2' parentID='1' builtin='yes'> <atom label='0'/> </sig>" + "<sig label='Act' ID='5' parentID='0'> <atom label='Act$0'/> <atom label='Act$1'/> <atom label='Act$2'/> </sig>" + "<skolem label='$x' ID='16'>" + "   <tuple> <atom label='0'/> <atom label='Act$1'/> </tuple>" + "   <types> <type ID='2'/> <type ID='5'/> </types>" + "</skolem>" + "</instance>" + "</alloy>"));
    Sig activity = new Sig.PrimSig("Act");
    A4Solution sol = A4SolutionReader.read(Arrays.asList(activity), xml);
    SafeList<ExprVar> skolems = new SafeList<ExprVar>(sol.getAllSkolems());
    check(skolems.size() == 1);
    check(skolems.get(0).label, "$x");
    check(skolems.get(0).type(), Sig.SEQIDX.type().product(activity.type()));
}
Also used : Sig(edu.mit.csail.sdg.ast.Sig) ExprVar(edu.mit.csail.sdg.ast.ExprVar) XMLNode(edu.mit.csail.sdg.alloy4.XMLNode) SafeList(edu.mit.csail.sdg.alloy4.SafeList) StringReader(java.io.StringReader) A4Solution(edu.mit.csail.sdg.translator.A4Solution)

Aggregations

ExprVar (edu.mit.csail.sdg.ast.ExprVar)22 Expr (edu.mit.csail.sdg.ast.Expr)11 Sig (edu.mit.csail.sdg.ast.Sig)11 PrimSig (edu.mit.csail.sdg.ast.Sig.PrimSig)8 ErrorSyntax (edu.mit.csail.sdg.alloy4.ErrorSyntax)7 Field (edu.mit.csail.sdg.ast.Sig.Field)7 SubsetSig (edu.mit.csail.sdg.ast.Sig.SubsetSig)5 Func (edu.mit.csail.sdg.ast.Func)4 ArrayList (java.util.ArrayList)4 HashMap (java.util.HashMap)4 LinkedHashMap (java.util.LinkedHashMap)4 TempList (edu.mit.csail.sdg.alloy4.ConstList.TempList)3 ErrorFatal (edu.mit.csail.sdg.alloy4.ErrorFatal)3 SafeList (edu.mit.csail.sdg.alloy4.SafeList)3 XMLNode (edu.mit.csail.sdg.alloy4.XMLNode)3 ExprHasName (edu.mit.csail.sdg.ast.ExprHasName)3 A4Solution (edu.mit.csail.sdg.translator.A4Solution)3 IOException (java.io.IOException)3 IdentityHashMap (java.util.IdentityHashMap)3 Map (java.util.Map)3