Skip to content

Commit d1b33c1

Browse files
xerenhernanponcedeleon
authored andcommitted
fixup! Add cat parsing support for recursive sets.
1 parent 0c01bc9 commit d1b33c1

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

dartagnan/src/main/java/com/dat3m/dartagnan/parsers/cat/VisitorCat.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,8 @@ public Void visitLetRecDefinition(LetRecDefinitionContext ctx) {
171171
}
172172
// Create the recursive relations.
173173
for (int i = 0; i < recSize; i++) {
174-
final Relation.Arity arity = rhsContexts[i].accept(new ArityInspector());
174+
final Relation.Arity probedArity = rhsContexts[i].accept(new ArityInspector());
175+
final Relation.Arity arity = probedArity != null ? probedArity : Relation.Arity.BINARY;
175176
recursiveGroup[i] = wmm.newRelation(createUniqueName(lhsNames[i]), arity);
176177
recursiveGroup[i].setRecursive();
177178
namespace.put(lhsNames[i], recursiveGroup[i]);
@@ -414,6 +415,11 @@ private final class ArityInspector extends CatBaseVisitor<Relation.Arity> {
414415

415416
private ArityInspector() {}
416417

418+
@Override
419+
public Relation.Arity visitExpr(ExprContext c) {
420+
return c.e.accept(this);
421+
}
422+
417423
@Override
418424
public Relation.Arity visitExprBasic(ExprBasicContext c) {
419425
final Object object = namespace.get(c.n.getText());

0 commit comments

Comments
 (0)