src/Tools/isac/BaseDefinitions/rule-set.sml
changeset 60436 1c8263e775d4
parent 60384 2b6e73df4e5d
child 60440 edeeb202911a
     1.1 --- a/src/Tools/isac/BaseDefinitions/rule-set.sml	Sun May 29 19:05:14 2022 +0200
     1.2 +++ b/src/Tools/isac/BaseDefinitions/rule-set.sml	Tue May 31 09:16:12 2022 +0200
     1.3 @@ -12,13 +12,13 @@
     1.4    val id: T -> string
     1.5    val rep: T -> {calc: Rule_Def.calc list, erls: T, errpats: Rule_Def.errpatID list, id: string,
     1.6      preconds: term list, rew_ord: Rewrite_Ord.rew_ord, rules: Rule_Def.rule list, scr: Rule_Def.program, srls: T}
     1.7 +  val to_string: T -> string
     1.8  
     1.9    val append_rules: string -> T -> Rule_Def.rule list -> T
    1.10    val append_erls_rules: string -> T -> Rule_Def.rule list -> T
    1.11    val keep_unique_rules: string -> T ->  Rule_Def.rule list -> T
    1.12    val merge: string -> T -> T -> T
    1.13    val get_rules: T -> Rule_Def.rule list
    1.14 -(*val rule2rls': Rule.rule -> string*)
    1.15    val id_from_rule: Rule.rule -> string
    1.16    val contains: Rule.rule -> T -> bool
    1.17  
    1.18 @@ -60,6 +60,18 @@
    1.19      {id = id, preconds = preconds, rew_ord = rew_ord, erls = erls, srls = srls, errpats = errpatts,
    1.20        calc = calc, rules = rules, scr = scr}
    1.21    | rep (Rule_Def.Rrls _)  = rep empty
    1.22 +fun to_string Rule_Def.Empty = "Rule_Set.Empty"
    1.23 +  | to_string (Rule_Def.Repeat {id, preconds, rew_ord, erls = _, srls = _, calc = _, errpatts = _, rules, scr}) =
    1.24 +    "(Rule_Def.Repeat {id = " ^ id ^ ", preconds = " ^ UnparseC.terms preconds ^ ", rew_ord = " ^ Rewrite_Ord.to_string rew_ord
    1.25 +    ^ ",\n  erls = _, srls = _, calc = _, errpatts = _, "
    1.26 +    ^ ",\n  rules = " ^ Rule.s_to_string rules
    1.27 +    ^ ",\n  rules = " ^ Rule_Def.rule_to_string scr ^ "})"
    1.28 +  | to_string (Rule_Def.Sequence {id, preconds, rew_ord, erls = _, srls = _, calc = _, errpatts = _, rules, scr}) =
    1.29 +    "(Rule_Def.Repeat {id = " ^ id ^ ", preconds = " ^ UnparseC.terms preconds ^ ", rew_ord = " ^ Rewrite_Ord.to_string rew_ord
    1.30 +    ^ ",\n  erls = _, srls = _, calc = _, errpatts = _, "
    1.31 +    ^ ",\n  rules = " ^ Rule.s_to_string rules
    1.32 +    ^ ",\n  rules = " ^ Rule_Def.rule_to_string scr ^ "})"
    1.33 +  | to_string (Rule_Def.Rrls _)  = "Rule_Def.Rrls _"
    1.34  
    1.35  fun append_rules id Rule_Def.Empty r = (*.. required for append_erls_rules *)
    1.36      Rule_Def.Repeat {id = id, preconds = [], rew_ord = ("dummy_ord", dummy_ord), erls = Rule_Def.Empty,