More Website Templates @ TemplateMonster.com - November 14, 2011!

96 lines of C header code generated from the 10 line BRON2 Code example.

/****************************************************************************
* GENERATION   : The TEST code module was generated using BRON2 C code      *
*              : Generator. DO NOT MODIFY                                   *
* AUTHOR       : (C)2012, Amenuensis Ltd.,                                  *
* CONTACT      : <support@Amenuensis.com>                                   *
****************************************************************************/
#ifndef	TEST_H
#define	TEST_H
#include	"ref.h"

/****************************************************************************
* DEFINITION   : of object types                                            *
****************************************************************************/
typedef struct FIRST_OBJECT firstObject;
typedef struct THE_OTHER_OBJECT theOtherObject;
typedef struct YETANOTHEROBJECT yetanotherobject;

/****************************************************************************
* DEFINITION   : of firstObject object structure                            *
****************************************************************************/
struct FIRST_OBJECT
{
	dnode *theOtherObjectList;
	int aninteger;
	char * sometext;
};

/****************************************************************************
* DEFINITION   : of theOtherObject object structure                         *
****************************************************************************/
struct THE_OTHER_OBJECT
{
	I_DNODE( THE_OTHER_OBJECT );
	firstObject *parent;
	yetanotherobject *yetanotherobjectRef;
	char * findMe;
	int Mustsupplythisvalue;
};

/****************************************************************************
* DEFINITION   : of yetanotherobject object structure                       *
****************************************************************************/
struct YETANOTHEROBJECT
{
	char * whatever;
};

/****************************************************************************
* DEFINITION   : of theOtherObject access macros                            *
****************************************************************************/
#define theTheOtherObjectListIsEmpty(a)	dListIsEmpty((a)->theOtherObjectList)
#define myTheOtherObjectListIsEmpty()	dListIsEmpty((my)->theOtherObjectList)
#define theFirstTheOtherObject(a)	((theOtherObject*)(SUCC((a)->theOtherObjectList)))
#define myFirstTheOtherObject()	((theOtherObject*)(SUCC((my)->theOtherObjectList)))
#define theLastTheOtherObject(a)	((theOtherObject*)(PRED((a)->theOtherObjectList)))
#define myLastTheOtherObject()	((theOtherObject*)(PRED((my)->theOtherObjectList)))

/****************************************************************************
* DEFINITION   : of yetanotherobject static allocator macro                 *
****************************************************************************/
#define staticYetanotherobject() { }

/****************************************************************************
* DEFINITION   : of firstObject functional prototypes                       *
****************************************************************************/
firstObject *newFirstObject( void );
void freeFirstObject( firstObject *my );

/****************************************************************************
* DEFINITION   : of theOtherObject functional prototypes                    *
****************************************************************************/
theOtherObject *newTheOtherObject( char * findMe, int Mustsupplythisvalue );
void freeTheOtherObject( theOtherObject *my );
theOtherObject *linkTheOtherObject( firstObject *parent,
	theOtherObject *my );
void unlinkTheOtherObject( theOtherObject *my );
theOtherObject *linkNewTheOtherObject( firstObject *parent,
	char * findMe, int Mustsupplythisvalue );
void unlinkFreeTheOtherObject( theOtherObject *my );
theOtherObject *findNextTheOtherObject( firstObject *parent,
	theOtherObject *soFar, char * findMe );
void matchAllTheOtherObject( firstObject *parent, refList *rl,
	char * findMe );
theOtherObject *findFirstTheOtherObject( firstObject *parent,
	char * findMe );

/****************************************************************************
* DEFINITION   : of yetanotherobject functional prototypes                  *
****************************************************************************/
yetanotherobject *newYetanotherobject( void );
void freeYetanotherobject( yetanotherobject *my );

#endif

 

See the 478 lines of generated C code

Successful System Designs

“Before Amenuensis, software projects we were involved in benefited greatly from the use of BRON technology. We formed Amenuensis to bring BRON 2 and it's sister product Visual BRON to a wider audience of software engineers.” Rebecca BryanCEO & Co-Founder

“Using BRON 2 or VisualBRON allows time to ensure that systems designs are right, to test thoroughly, and to try what-if optimisations that simply aren't feasible without BRON. Design & code Reviews become a breeze.” Mark Gregory Co-Founder