/**This is a simple example of a header to demonstrate Cheader-parsing.*/
#ifndef __mystruct_h   //this construct will be expected by Cheader.zbnf
#define __mystruct_h


/**That are head data, used in several structs. An input to processing data 
 * may known a reference of type of this head data. Depending on the ident
 * a casting will be done to the concret data. It is a abstraction of data
 * in interface, adequate to superclasses in Object Orientation.
 */
typedef struct HeadData_t
{ int16 nrofBytes;
  int16 ident;
} HeadData;  


/**A struct ... */
typedef struct
{ int32 m,n;
}MyStruct2;


/**Another struct ... */
typedef struct
{ float x,y;
}MyStruct3;



/**Example of a struct type. The comment should be written above, like javadoc. */
typedef struct MyStruct_t
{ 
  /**The struct start with Head data, to use as input-interface: @uml=super. */
  HeadData head;
  
  
  /**Also a comment to each element should be written above/before.*/
  int32 a;
  /**Comment and type for both variables: */
  int16 b,c;

  /**Two arrays. */
  int16 x[10], y[10];
  
  /**A reference to data. */
  MyStruct3* refData;

  float f;  //the comment after a element will also be detected as comment.

  MyStruct2 embeddedStruct;

} MyStruct;


#endif //__mystruct.h
