Search in sources :

Example 1 with BTSVariableDeclaration

use of org.sireum.hamr.ir.BTSVariableDeclaration 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;
}
Also used : BehaviorVariable(org.osate.ba.aadlba.BehaviorVariable) ArrayList(java.util.ArrayList) BehaviorTransition(org.osate.ba.aadlba.BehaviorTransition) BTSAssertion(org.sireum.hamr.ir.BTSAssertion) BTSTransition(org.sireum.hamr.ir.BTSTransition) BTSVariableDeclaration(org.sireum.hamr.ir.BTSVariableDeclaration) BehaviorState(org.osate.ba.aadlba.BehaviorState) BTSStateDeclaration(org.sireum.hamr.ir.BTSStateDeclaration) BTSBLESSAnnexClause(org.sireum.hamr.ir.BTSBLESSAnnexClause)

Example 2 with BTSVariableDeclaration

use of org.sireum.hamr.ir.BTSVariableDeclaration in project osate-plugin by sireum.

the class BAVisitor method caseBehaviorVariable.

@Override
public Boolean caseBehaviorVariable(BehaviorVariable object) {
    Option<BTSVariableCategory.Type> category = toNone();
    List<BTSVariableDeclaration> names = new ArrayList<>();
    DataClassifier dc = object.getDataClassifier();
    this.v.processDataType(dc);
    Classifier c = Classifier$.MODULE$.apply(dc.getQualifiedName());
    BTSType varType = BTSClassifier$.MODULE$.apply(c);
    Name name = toSimpleName(object.getName());
    Option<BTSExp> assignExpression = toNone();
    assert object.getOwnedValueConstant() == null : "Need to handle ba variable const init " + object;
    Option<BLESSIntConst> arraySize = toNone();
    // NA for BA
    Option<BTSAssertion> variableAssertion = toNone();
    BTSVariableDeclaration vd = BTSVariableDeclaration$.MODULE$.apply(name, category, varType, assignExpression, arraySize, variableAssertion);
    names.add(vd);
    push(names);
    return false;
}
Also used : ArrayList(java.util.ArrayList) DataClassifier(org.osate.aadl2.DataClassifier) Classifier(org.sireum.hamr.ir.Classifier) DataClassifier(org.osate.aadl2.DataClassifier) BLESSIntConst(org.sireum.hamr.ir.BLESSIntConst) Name(org.sireum.hamr.ir.Name) BTSType(org.sireum.hamr.ir.BTSType) BTSAssertion(org.sireum.hamr.ir.BTSAssertion) BTSType(org.sireum.hamr.ir.BTSType) BTSLiteralType(org.sireum.hamr.ir.BTSLiteralType) BTSVariableDeclaration(org.sireum.hamr.ir.BTSVariableDeclaration) BTSExp(org.sireum.hamr.ir.BTSExp)

Aggregations

ArrayList (java.util.ArrayList)2 BTSAssertion (org.sireum.hamr.ir.BTSAssertion)2 BTSVariableDeclaration (org.sireum.hamr.ir.BTSVariableDeclaration)2 DataClassifier (org.osate.aadl2.DataClassifier)1 BehaviorState (org.osate.ba.aadlba.BehaviorState)1 BehaviorTransition (org.osate.ba.aadlba.BehaviorTransition)1 BehaviorVariable (org.osate.ba.aadlba.BehaviorVariable)1 BLESSIntConst (org.sireum.hamr.ir.BLESSIntConst)1 BTSBLESSAnnexClause (org.sireum.hamr.ir.BTSBLESSAnnexClause)1 BTSExp (org.sireum.hamr.ir.BTSExp)1 BTSLiteralType (org.sireum.hamr.ir.BTSLiteralType)1 BTSStateDeclaration (org.sireum.hamr.ir.BTSStateDeclaration)1 BTSTransition (org.sireum.hamr.ir.BTSTransition)1 BTSType (org.sireum.hamr.ir.BTSType)1 Classifier (org.sireum.hamr.ir.Classifier)1 Name (org.sireum.hamr.ir.Name)1