src/Tools/isac/BaseDefinitions/rule-set.sml
changeset 60436 1c8263e775d4
parent 60384 2b6e73df4e5d
child 60440 edeeb202911a
equal deleted inserted replaced
60435:6529b450729d 60436:1c8263e775d4
    10   eqtype id
    10   eqtype id
    11 
    11 
    12   val id: T -> string
    12   val id: T -> string
    13   val rep: T -> {calc: Rule_Def.calc list, erls: T, errpats: Rule_Def.errpatID list, id: string,
    13   val rep: T -> {calc: Rule_Def.calc list, erls: T, errpats: Rule_Def.errpatID list, id: string,
    14     preconds: term list, rew_ord: Rewrite_Ord.rew_ord, rules: Rule_Def.rule list, scr: Rule_Def.program, srls: T}
    14     preconds: term list, rew_ord: Rewrite_Ord.rew_ord, rules: Rule_Def.rule list, scr: Rule_Def.program, srls: T}
       
    15   val to_string: T -> string
    15 
    16 
    16   val append_rules: string -> T -> Rule_Def.rule list -> T
    17   val append_rules: string -> T -> Rule_Def.rule list -> T
    17   val append_erls_rules: string -> T -> Rule_Def.rule list -> T
    18   val append_erls_rules: string -> T -> Rule_Def.rule list -> T
    18   val keep_unique_rules: string -> T ->  Rule_Def.rule list -> T
    19   val keep_unique_rules: string -> T ->  Rule_Def.rule list -> T
    19   val merge: string -> T -> T -> T
    20   val merge: string -> T -> T -> T
    20   val get_rules: T -> Rule_Def.rule list
    21   val get_rules: T -> Rule_Def.rule list
    21 (*val rule2rls': Rule.rule -> string*)
       
    22   val id_from_rule: Rule.rule -> string
    22   val id_from_rule: Rule.rule -> string
    23   val contains: Rule.rule -> T -> bool
    23   val contains: Rule.rule -> T -> bool
    24 
    24 
    25   type for_kestore
    25   type for_kestore
    26   val equal: (''a * ('b * 'c)) * (''a * ('d * 'e)) -> bool
    26   val equal: (''a * ('b * 'c)) * (''a * ('d * 'e)) -> bool
    58       calc = calc, rules = rules, scr = scr}
    58       calc = calc, rules = rules, scr = scr}
    59   | rep (Rule_Def.Sequence {id, preconds, rew_ord, erls, srls, calc, errpatts, rules, scr}) =
    59   | rep (Rule_Def.Sequence {id, preconds, rew_ord, erls, srls, calc, errpatts, rules, scr}) =
    60     {id = id, preconds = preconds, rew_ord = rew_ord, erls = erls, srls = srls, errpats = errpatts,
    60     {id = id, preconds = preconds, rew_ord = rew_ord, erls = erls, srls = srls, errpats = errpatts,
    61       calc = calc, rules = rules, scr = scr}
    61       calc = calc, rules = rules, scr = scr}
    62   | rep (Rule_Def.Rrls _)  = rep empty
    62   | rep (Rule_Def.Rrls _)  = rep empty
       
    63 fun to_string Rule_Def.Empty = "Rule_Set.Empty"
       
    64   | to_string (Rule_Def.Repeat {id, preconds, rew_ord, erls = _, srls = _, calc = _, errpatts = _, rules, scr}) =
       
    65     "(Rule_Def.Repeat {id = " ^ id ^ ", preconds = " ^ UnparseC.terms preconds ^ ", rew_ord = " ^ Rewrite_Ord.to_string rew_ord
       
    66     ^ ",\n  erls = _, srls = _, calc = _, errpatts = _, "
       
    67     ^ ",\n  rules = " ^ Rule.s_to_string rules
       
    68     ^ ",\n  rules = " ^ Rule_Def.rule_to_string scr ^ "})"
       
    69   | to_string (Rule_Def.Sequence {id, preconds, rew_ord, erls = _, srls = _, calc = _, errpatts = _, rules, scr}) =
       
    70     "(Rule_Def.Repeat {id = " ^ id ^ ", preconds = " ^ UnparseC.terms preconds ^ ", rew_ord = " ^ Rewrite_Ord.to_string rew_ord
       
    71     ^ ",\n  erls = _, srls = _, calc = _, errpatts = _, "
       
    72     ^ ",\n  rules = " ^ Rule.s_to_string rules
       
    73     ^ ",\n  rules = " ^ Rule_Def.rule_to_string scr ^ "})"
       
    74   | to_string (Rule_Def.Rrls _)  = "Rule_Def.Rrls _"
    63 
    75 
    64 fun append_rules id Rule_Def.Empty r = (*.. required for append_erls_rules *)
    76 fun append_rules id Rule_Def.Empty r = (*.. required for append_erls_rules *)
    65     Rule_Def.Repeat {id = id, preconds = [], rew_ord = ("dummy_ord", dummy_ord), erls = Rule_Def.Empty, 
    77     Rule_Def.Repeat {id = id, preconds = [], rew_ord = ("dummy_ord", dummy_ord), erls = Rule_Def.Empty, 
    66       srls = Rule_Def.Empty, calc = [], rules = r, errpatts = [], scr = Rule_Def.Empty_Prog}
    78       srls = Rule_Def.Empty, calc = [], rules = r, errpatts = [], scr = Rule_Def.Empty_Prog}
    67   | append_rules id (Rule_Def.Repeat {id = _, preconds = pc, rew_ord = ro, erls = er, srls = sr, calc = ca,
    79   | append_rules id (Rule_Def.Repeat {id = _, preconds = pc, rew_ord = ro, erls = er, srls = sr, calc = ca,