StringBuffer argName = new StringBuffer(termName);
TypeConverter converter = new TypeConverter(
new CTypeConversions(prefix));
if (type.getType() == ATerm.APPL) {
ATermAppl arg0 = (ATermAppl) ((ATermAppl) type).getArgument(0);
/* Check for use of predefined types... */
if (genDeclaration && converter.isReserved(arg0.getName())) {
argName = new StringBuffer(termName + "_arg" + i);
result.append(genIndentation() + "ATerm " + argName
+ " = ATgetArgument(" + termName + ", " + i + ");"
+ newLine);
}
if (arg0.getName().equals("list")) {
result.append(genIndentation() + "if (ATgetType((ATerm)"
+ argName + ") == " + "AT_LIST" + ") "
+ genCompareFunctOpenBracket());
} else if (arg0.getName().equals("int")) {
result.append(genIndentation() + "if (ATgetType((ATerm)"
+ argName + ") == " + "AT_INT" + ") "
+ genCompareFunctOpenBracket());
} else if (arg0.getName().equals("real")) {
result.append(genIndentation() + "if (ATgetType((ATerm)"
+ argName + ") == " + "AT_REAL" + ") "
+ genCompareFunctOpenBracket());
} else if (arg0.getName().equals("str")) {
result.append(genIndentation() + "if (ATgetType((ATerm)"
+ argName + ") == " + "AT_APPL "
+ "&& ATgetArity(ATgetAFun((ATermAppl)" + argName
+ ")) == 0 && ATisQuoted(ATgetAFun((ATermAppl)"
+ argName + ")) == ATtrue) "
+ genCompareFunctOpenBracket());
} else if (arg0.getName().equals("term")) {
result.append(genIndentation() + "if (" + argName
+ " != NULL) " + genCompareFunctOpenBracket());
} else if (arg0.getName().equals("chars")) {
result.append(genIndentation() + "if (ATgetType((ATerm)"
+ argName + ") == " + "AT_LIST" + ") "
+ genCompareFunctOpenBracket());
} else if (arg0.getName().equals("char")) {
result.append(genIndentation() + "if (ATgetType((ATerm)"
+ argName + ") == " + "AT_INT" + ") "
+ genCompareFunctOpenBracket());
}
}