Skip to content

#736 Remove or ignore annotations in CIF tools, where relevant

  • Best to review per commit.
  • In general, to support various scenarios, I changed:
    • RemoveAnnotaions: allow keeping some annotations, but only when invoked from code, not with CIF to CIF transformer.
    • Extended relevant CIF checks with ignoreAnnotations methods:
      • ExprNoSpecific*Check for expressions, binary expressions and unary expressions.
      • FuncNoSpecificStdLibCheck
      • TypeIntBoundsCheck
      • TypeNoSpecificTypesCheck
  • I changed the CIF tools as follows:
    • CIF/BDD + datasynth: not changed, as doesn't walk over annotations.
    • CIF to CIF: not changed, as want to keep models intact.
    • CIF to mCRL2: remove annotations as pre-processing.
    • CIF to PLC: remove annotations as pre-processing.
    • CIF to Supremica: remove annotations as pre-processing.
    • CIF to UPPAAL: remove annotations as pre-processing.
    • CIF to yEd (model diagram): not changed, as want to output the annotations in the yEd diagram.
    • CIF to yEd (relations diagram): remove annotations as pre-processing, to not find relations in annotations.
    • CIF codegen: remove all but doc annotations as pre-processing, and then ignore type/expression related constraints for doc annotations.
    • CIF controllercheck: to be done in a later merge request, as it doesn't yet use the new pre-condition checker framework.
    • CIF event-based: not changed, as doesn't walk over annotations.
    • CIF event disabler: not changed, as doesn't walk over annotations.
    • CIF explorer: remove annotations as pre-processing.
    • CIF merger: not changed, as doesn't walk over annotations.
    • CIF multilevel: remove annotations as pre-processing.
    • CIF PLCgen: remove all but doc annotations as pre-processing, and then ignore type/expression related constraints for doc annotations.
    • CIF simulator: remove annotations as pre-processing.
  • I undid the changes of #772 (closed) (but not #773 (closed)) for the button_lamp_timer example, by remove an option from its ToolDef script that disabled adding state annotations for supervisor synthesis.

Addresses #736 (closed)

Edited by Dennis Hendriks

Merge request reports