newCode.add("}");
newCode.add("");
}
+ // Also add the true condition if any
+ if (semantics.containsConditionalInterface(new ConditionalInterface(interfaceName, ""))) {
+ structName = "hb_condition";
+ newCode.add(STRUCT_NEW_DECLARE_DEFINE(ANNO_HB_CONDITION, structName));
+ newCode.add(ASSIGN_TO_PTR(structName, "interface_num", interfaceNum));
+ newCode.add(ASSIGN_TO_PTR(structName, "hb_condition_num", "0"));
+ anno = "annotation_hb_condition";
+ newCode.add(STRUCT_NEW_DECLARE_DEFINE(SPEC_ANNOTATION, anno));
+ newCode.add(ASSIGN_TO_PTR(anno, "type", SPEC_ANNO_TYPE_HB_CONDITION));
+ newCode.add(ASSIGN_TO_PTR(anno, "annotation", structName));
+ newCode.add(ANNOTATE(anno));
+ newCode.add("");
+ }
// Interface end
String infoStructType = null, infoName = null;
if (!header.returnType.equals("void") || header.args.size() > 0) {
newCode.add(COMMENT("Include redundant headers"));
newCode.add(INCLUDE(HEADER_STDINT));
newCode.add(INCLUDE(HEADER_CDSANNOTATE));
+ newCode.add(INCLUDE(HEADER_SPECANNOTATION));
newCode.add("");
// Add annotation
newCode.add("if (" + construct.condition + ") {");