Type Checker - adjivas/telamon GitHub Wiki

Set:

  • redefinition_name_set: A set name is unique
  • field_name_redefinition: A field from a set is unique.
  • undefined_key_set: A set should always have the keys: type, id_type, id_getter, iterator, getter (see paragraph 3.3.1 Program Representation Declaration)
    • undefined_superset_key (clef optionnel -> subsetof implique necessairement une clef from_superset).
    • undefined_parametric_superset (verifier que le super ensemble existe - subsetof)
    • (identifiant de clef unique par set)
    • (verifier que les variables $ soit bien definit par SetDefKey (voir ir/set.rs) et par l'argument parametrique d'une Set)
    • (verifier qu'un argument parametrique de subsetof value soit bien definit par son parent et qu'il soit bien du meme type)
  • A set is configurable by only parametric set
    • undefined_parametric_set: This parametric set should be defined

Define-Enum:

  • name_redefinition: A set enum is unique
  • field_name_redefinition: A field from a enum is unique.
  • A basic enum is configurable by a list of {N} parametric set
    • undefined_parametric_set: This parametric set should be defined
  • A enum alias:
    • undefined_alias_value: A alias should refers a defined fields from same enum.
  • A enum [antisymmetric]:
    • undefined_field_antisymmetric: A antisymmetric should refers a defined fields from same enum.
  • A enum [symmetric]:
    • symmetric_untwo_parametric: A antisymmetric should refers from two parametric.
    • symmetric_unsame_parametric: A antisymmetric should refers from same parametric.
  • A enum requires ?

Quotient? Require?