summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/hastabel2idp/IDP.java93
1 files changed, 58 insertions, 35 deletions
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<List<Type>> 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<Element> member:
- predicate.get_relevant_members(relevant_signatures)
- )
+ for (final List<Type> 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<Element> 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<Type> 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();
}
}