#undef BB
#undef BBStr
#undef bb
#undef bbStr
#define BB
#define BBStr( x,y,z ) ;
#define bb
#define bbStr( x,y,z ) ;
#ifndef procNestOn
#undef BB
#undef BBStr
#undef bb
#undef bbStr
#undef LB_
#undef LE_
#undef LE_ret
#undef ret
#undef ret_
#undef __
#undef ___
#define BB if ( 1 < call_nr || errno )
#define bb if ( 1 < call_nr || errno )
#define BBStr( x,y,z )
{
BB traceStr( x,y,z );
}
#define bbStr( x,y,z )
{
bb traceStr( x,y,z );
}
#define __
{
bb
{
printf( "\nLine %i", __LINE__ );
}
}
#define ___
#define ret_
{
__ return ;
}
#define LE_ __ return ;
#define LE_ret( x ) __ return( x );
#define ret( x )
{
__ return( x );
}
#define LB_( x )
{
bb printf( "\n-> %s", x ); safe_ut.showSysCalls = 1 ;
#endif
/* Module ut/brcode brcode.ic
*****************************************************************************
Author Gebhard.Greiter@softlab.de
*/
#include for_spu.h
#include btree.h : cpp
class BRCode
top . is_inc_for . C++
/* _____________________________________________________________________________ R e u s e . f o r . ALL A class for pretty printing curly bracket code (such as C, C++, Java). Code in *.ic file is - because of strange macros - NOT supported. Such code however is already nice to read. _____________________________________________________________________________ */ { public: BOOL done ; protected: private: char * tmp1 ; char * tmp2 ; char * tmp3 ; char * tmp4 ; char * tmpX ; char * kopf ; char * t1 ; char * t2 ; BOOL traceAt ; Btree classes ; uint codez ; // Lines of Code uint commz ; // Lines of Comment // exported methods: public: BRCode :: BRCode ( // ----------------------------------------------------------------------------- ) ; public: ~BRCode ( // ----------------------------------------------------------------------------- ) ; public: void BRCode :: norm /* ----------------------------------------------------------------------------- Make 'to a pretty version of 'from ----------------------------------------------------------------------------- */ ( char * from , char * code_oc , char * code_mc ) ; public: void BRCode :: cpp_to_htm /* ----------------------------------------------------------------------------- present *.cpp in form of *.htm |---------------------------------------------------------------------------- */ ( char * to , char * from ) ; public: void BRCode :: catMe /* ----------------------------------------------------------------------------- Make 'dest the file containing all text found in files .//*.ext ----------------------------------------------------------------------------- */ ( FILE * f , char * dir , Btree & ext , char * tmp ) ; public: void BRCode :: pretty_XML // ----------------------------------------------------------------------------- ( int step , char * from , char mode ) ; public: void BRCode :: norm_base ( char * xsd /* ----------------------------------------------------------------------------- Normiert ein XSD fuer Castor ----------------------------------------------------------------------------- */ ) ; public: void BRCode :: no_choice_1 ( char * xsd /* ----------------------------------------------------------------------------- Normiert ein XSD fuer Castor -- Variante 1 Castor hat Probleme mit <xs:choice>. Wir versuchen, es durch <xs:all> zu ersetzen. Das geht aber - wie XMLSpy zeigt - nicht in allen Situationen. ----------------------------------------------------------------------------- */ ) ; public: void BRCode :: no_choice_2 ( char * xsd /* ----------------------------------------------------------------------------- Normiert ein XSD fuer Castor -- Variante 2 Hier wird <choice> nicht durch <all> ersetzt. Stattdessen wird es in ein <group maxOccurrs="unbounded"> geklammert, und alle Elemente darin werden mit minOccurs//0" gegeben. Am <choice> selbst stehe weder minOccurs noch maxOccours. See: http://jira.codehaus.org/browse/CASTOR-1150 ----------------------------------------------------------------------------- */ ) ; public: void BRCode :: unions ( char * xsd /* ----------------------------------------------------------------------------- Normiert ein XSD fuer Castor Das Castor zu <union> keinerlei Code erzeugt, muss man ELEMENTe solchen Typs aus seiner Sich als Werte vom Typ xs:string betrachten. Daher: ----------------------------------------------------------------------------- */ ) ; public: void BRCode :: alle_Namen ( char * xsd /* ----------------------------------------------------------------------------- Zeigt alle Namen (um sie harmonisieren zu k”nnen) ----------------------------------------------------------------------------- */ ) ; public: void BRCode :: alle_Getter ( /* ----------------------------------------------------------------------------- Zeigt alle Getter + Returntyp in ./de ----------------------------------------------------------------------------- */ ) ; public: void BRCode :: nur_noch_ref ( char * xsd /* ----------------------------------------------------------------------------- Durch Castor generierter Code macht Probleme, wenn man in Typen lokal auftretende <xs:element> Zeilen nicht per ref= definiert. Castor erzeugt dann Namspace Silben, zu denen es keine Definition gibt. Daher nun auch diese Zeilen korrigieren (wo das m”glich ist - es ist nicht m”glich, wenn es Elemente gibt, die gleichen Namen aber unterschiedlichen Typ haben. Mit zum Typ in diesem Sinne rechnen Elementattribute 'default=' oder 'fixed//). ----------------------------------------------------------------------------- */ ) ; public: void BRCode :: norm_XSD_ns_prefixes_in_dir ( char * dir /* ----------------------------------------------------------------------------- zeige, welchern Prozentsatz die Datentyp Angaben ausmachen ----------------------------------------------------------------------------- */ ) ; public: void BRCode :: show_ALL /* ----------------------------------------------------------------------------- zeige alle XML Elemente eines bestimmten Typs ----------------------------------------------------------------------------- */ ( char * xsd , char * elem , char * nch ) ; public: BOOL BRCode :: is_XMLType ( char * str /* ----------------------------------------------------------------------------- Castor ist EXTREM empfindlich, wenn der Namespace fehlt oder falsch angegeben ist - man bekommt dann Fehlermeldungen, die ganz andere Fehler suggerieren, Daher: Die List der xs: Typen unten vollst„ndig machen !!!! ----------------------------------------------------------------------------- */ ) ; public: void BRCode :: keine_Leerzeilen ( char * xsd /* ----------------------------------------------------------------------------- streiche alle leeren Zeilen ----------------------------------------------------------------------------- */ ) ; public: void BRCode :: force ( char * xsd /* ----------------------------------------------------------------------------- ... wenn pretty versagt ----------------------------------------------------------------------------- */ ) ; public: void BRCode :: zeige_mehrfachDef ( char * xsd /* ----------------------------------------------------------------------------- zeige mehrfach spezifizierte Typen ----------------------------------------------------------------------------- */ ) ; public: void BRCode :: escBr /* ----------------------------------------------------------------------------- HTM-escape { and } where in a string or comment ----------------------------------------------------------------------------- */ ( rBuffer & B , char * stop , FILE * f ) ; public: void BRCode :: pretty_PHP /* ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- */ ( char * aus , char * nch ) ; #include brcode.h3 : cpp } ; #endif