We have developed in collaboration with the ASF+SDF group, an ATerm-like format dedicated to ELAN programs. The notion of Efix ATerms is similar to the one developed for CASL with Casfix ATerms. The current tools related to Efix are
module(simple_formal_module_name("Module"), empty_import, sort_definition([... simple_sort_name("s") ...]), operator_definition([global_symbol_decl( [... operator_decl(simple_formal_module_name("Module"), e_name(["f", "(", placeholder, ... , placeholder, ")" ]), sorts_to_sort( [simple_sort_name("s1"), ..., simple_sort_name("sn") ], simple_sort_name("s")), options(global_option, pri_option (0), no_assoc_option, free_matching, no_built_in) ) ...] )]), empty_strategy_definition , [... rules_family(simple_sort_name("sort(phi)"), [... variable_declare([simple_variable("v")], simple_sort_name("sort(v)")) ...], global_rules( [non_labelled_rule(EFIX-rule(phi))] ), empty_local_rules) ...], [])
Subterms with EFIX-rule top symbol denote terms which are not detailed here for sake of conciseness.
Efix is used as an intermediate format between FCasEnv, and REF, the ELAN executable format.