use of org.sireum.hamr.ir.BTSStateDeclaration in project osate-plugin by sireum.
the class BAVisitor method caseBehaviorAnnex.
@Override
public Boolean caseBehaviorAnnex(BehaviorAnnex o) {
// NA for BA
boolean doNotProve = true;
// NA for BA
List<BTSAssertion> _assertions = new ArrayList<>();
// NA for BA
Option<BTSAssertion> _invariant = toNone();
List<BTSVariableDeclaration> _variables = new ArrayList<>();
if (o.getVariables() != null) {
for (BehaviorVariable bv : o.getVariables()) {
visit(bv);
_variables.addAll(pop());
}
}
List<BTSStateDeclaration> _states = new ArrayList<>();
for (BehaviorState bs : o.getStates()) {
visit(bs);
_states.add(pop());
}
List<BTSTransition> _transitions = new ArrayList<>();
for (BehaviorTransition bt : o.getTransitions()) {
visit(bt);
_transitions.add(pop());
}
BTSBLESSAnnexClause b = BTSBLESSAnnexClause$.MODULE$.apply(doNotProve, VisitorUtil.toISZ(_assertions), _invariant, VisitorUtil.toISZ(_variables), VisitorUtil.toISZ(_states), VisitorUtil.toISZ(_transitions));
push(b);
return false;
}
use of org.sireum.hamr.ir.BTSStateDeclaration in project osate-plugin by sireum.
the class BAVisitor method caseBehaviorState.
@Override
public Boolean caseBehaviorState(BehaviorState object) {
Name id = toSimpleName(object.getName());
List<BTSStateCategory.Type> categories = new ArrayList<>();
if (object.isInitial()) {
categories.add(BTSStateCategory.byName("Initial").get());
}
if (object.isComplete()) {
categories.add(BTSStateCategory.byName("Complete").get());
}
if (object.isFinal()) {
categories.add(BTSStateCategory.byName("Final").get());
}
if (categories.isEmpty()) {
categories.add(BTSStateCategory.byName("Execute").get());
}
// NA for BA
Option<BTSAssertion> assertion = toNone();
BTSStateDeclaration bsd = BTSStateDeclaration$.MODULE$.apply(id, VisitorUtil.toISZ(categories), assertion);
push(bsd);
return false;
}
Aggregations