src/Parser/TypedefTable.cc
void TypedefTable::makeTypedef( const string & name, int kind ) {
//    Check for existence is necessary to handle:
//        struct Fred {};
//        void Fred();
//        void fred() {
//           struct Fred act; // do not add as type in this scope
//           Fred();
//        }
	if ( ! typedefTable.exists( name ) ) {
		typedefTable.addToEnclosingScope( name, kind, "MTD" );
	} // if
}
// SKULLDUGGERY: Generate a typedef for the aggregate name so the aggregate does not have to be qualified by
// "struct". Only generate the typedef, if the name is not in use. The typedef is implicitly (silently) removed if the
// name is explicitly used.
Generate a typedef for the aggregate name so the aggregate does not have to be qualified by
"struct". Only generate the typedef, if the name is not in use. The typedef is implicitly (silently) removed if the
name is explicitly used.
Generate a typedef for the aggregate name so the aggregate does not have to be qualified by " struct " . Only generate the typedef if the name is not in use . The typedef is implicitly ( silently ) removed if the name is explicitly used .
void TypedefTable::makeTypedef( const string & name, int kind ) {
	if ( ! typedefTable.exists( name ) ) {
		typedefTable.addToEnclosingScope( name, kind, "MTD" );
	} 
}
void TypedefTable :: makeTypedef ( const string & name , int kind ) { if ( ! typedefTable . exists ( name ) ) { typedefTable . addToEnclosingScope ( name , kind , " " ) ; } }
SKULLDUGGERY: Generate a typedef for the aggregate name so the aggregate does not have to be qualified by
"struct".
SKULLDUGGERY : Generate a typedef for the aggregate name so the aggregate does not have to be qualified by " struct " .
//    Check for existence is necessary to handle: //        struct Fred {}; //        void Fred(); //        void fred() { //           struct Fred act; // do not add as type in this scope //           Fred(); //        } // if