From ce631dbbec6ffa518dd2e3511a77ec4fecb836d7 Mon Sep 17 00:00:00 2001 From: Nathanael Sensfelder Date: Fri, 25 May 2018 15:09:54 +0200 Subject: Generate one predicate per signature. --- src/hastabel2idp/IDP.java | 93 +++++++++++++++++++++++++++++------------------ 1 file changed, 58 insertions(+), 35 deletions(-) (limited to 'src') diff --git a/src/hastabel2idp/IDP.java b/src/hastabel2idp/IDP.java index ceb9d7d..3e00b64 100644 --- a/src/hastabel2idp/IDP.java +++ b/src/hastabel2idp/IDP.java @@ -145,6 +145,7 @@ public class IDP vocabulary.write(" "); vocabulary.write(predicate.get_name()); + vocabulary.write(signature_to_suffix(signature)); vocabulary.write("("); for (final Type sig_type:signature) @@ -173,54 +174,76 @@ public class IDP final Set> relevant_signatures ) { - boolean is_first_member; - - structure.write(" "); - structure.write(predicate.get_name()); - structure.write("={"); - structure.insert_newline(); - - is_first_member = true; - - for - ( - final List member: - predicate.get_relevant_members(relevant_signatures) - ) + for (final List signature: relevant_signatures) { - boolean is_first_member_param; + boolean is_first_member; - is_first_member_param = true; + structure.write(" "); + structure.write(predicate.get_name()); + structure.write(signature_to_suffix(signature)); + structure.write("={"); + structure.insert_newline(); - if (is_first_member) - { - is_first_member = false; - structure.write(" "); - } - else - { - structure.write(";"); - structure.insert_newline(); - structure.write(" "); - } + is_first_member = true; - for (final Element member_param: member) + for + ( + final List member: + predicate.get_relevant_members(signature) + ) { - if (is_first_member_param) + boolean is_first_member_param; + + is_first_member_param = true; + + if (is_first_member) { - is_first_member_param = false; + is_first_member = false; + structure.write(" "); } else { - structure.write(", "); + structure.write(";"); + structure.insert_newline(); + structure.write(" "); } - structure.write(member_param.get_name()); + for (final Element member_param: member) + { + if (is_first_member_param) + { + is_first_member_param = false; + } + else + { + structure.write(", "); + } + + structure.write(member_param.get_name()); + } } + + structure.insert_newline(); + structure.write(" }"); + structure.insert_newline(); } + } - structure.insert_newline(); - structure.write(" }"); - structure.insert_newline(); + private static String signature_to_suffix (final List signature) + { + final StringBuilder sb; + + sb = new StringBuilder(); + + for (final Type t: signature) + { + if (t != null) + { + sb.append("_"); + sb.append(t.get_name()); + } + } + + return sb.toString(); } } -- cgit v1.2.3-70-g09d2