private void writeInterfaceList <T1>(IList <T1> list, bool isGeneric) where T1 : VhdlObjectProvider { writer.BeginAlign(); bool first = true; foreach (VhdlObjectProvider objectProvider in list) { if (first) { first = false; } else { writer.Append(";").NewLine(); } if (objectProvider is VhdlObjectGroup <VhdlObject> ) { VhdlObjectGroup <VhdlObject> group = (VhdlObjectGroup <VhdlObject>)objectProvider; VhdlOutputHelper.handleAnnotationsBefore(group, writer); } //TODO: check for equal types etc. VhdlObject obj0 = objectProvider.VhdlObjects[0]; InterfaceDeclarationFormat format = Annotations.getAnnotation <InterfaceDeclarationFormat>(obj0); if (format != null && format.UseObjectClass) { writer.Append(obj0.ObjectClass.ToString()).Append(' '); } writer.AppendIdentifiers(objectProvider.VhdlObjects, ", "); writer.Align(); writer.Append(" : "); if (format != null) { if (format.UseMode || (obj0.Mode != VhdlObject.ModeEnum.IN)) { writer.Append(obj0.Mode.ToString()).Append(' '); } } else { if (!isGeneric || obj0.Mode != VhdlObject.ModeEnum.IN) { writer.Append(obj0.Mode.ToString()).Append(' '); } } VhdlObjectOutputHelper.interfaceSuffix(obj0, writer, output); } writer.NewLine().EndAlign(); }
private bool isOutputObjectClassFunction(VhdlObject @object) { InterfaceDeclarationFormat format = Annotations.getAnnotation <InterfaceDeclarationFormat>(@object); if (format != null && format.UseObjectClass) { return(true); } return(@object.ObjectClass != VhdlObject.ObjectClassEnum.CONSTANT); }
private bool isOutputMode(VhdlObject @object) { if (@object.Mode == VhdlObject.ModeEnum.NONE) { return(false); } InterfaceDeclarationFormat format = Annotations.getAnnotation <InterfaceDeclarationFormat>(@object); if (format != null && format.UseMode) { return(true); } return(@object.Mode != VhdlObject.ModeEnum.IN); }
private bool isOutputObjectClassProcedure(VhdlObject @object) { InterfaceDeclarationFormat format = Annotations.getAnnotation <InterfaceDeclarationFormat>(@object); if (format != null && format.UseObjectClass) { return(true); } switch (@object.ObjectClass) { case VhdlObject.ObjectClassEnum.CONSTANT: return(false); case VhdlObject.ObjectClassEnum.VARIABLE: return(@object.Mode != Variable.ModeEnum.INOUT && @object.Mode != Variable.ModeEnum.OUT); default: return(true); } }