static void parseClass (tokenInfo *const token) { Assert (isKeyword (token, KEYWORD_class)); readToken (token); if (isType (token, TOKEN_IDENTIFIER)) { #ifndef TYPE_REFERENCE_TOOL makeEiffelClassTag (token); readToken (token); #else vStringCopy (token->className, token->string); vStringUpper (token->className); if (PrintClass) puts (vStringValue (token->className)); if (! PrintReferences) exit (0); readToken (token); #endif } do { if (isType (token, TOKEN_OPEN_BRACKET)) parseGeneric (token, TRUE); else if (! isType (token, TOKEN_KEYWORD)) readToken (token); else switch (token->keyword) { case KEYWORD_inherit: parseInherit (token); break; case KEYWORD_feature: parseFeatureClauses (token); break; default: readToken (token); break; } } while (! isKeyword (token, KEYWORD_end)); }
static void reportType (tokenInfo *const token) { vStringUpper (token->string); if (vStringLength (token->string) > 0 && ! isGeneric (token) && (SelfReferences || strcmp (vStringValue ( token->string), vStringValue (token->className)) != 0) && ! stringListHas (ReferencedTypes, vStringValue (token->string))) { printf ("%s\n", vStringValue (token->string)); stringListAdd (ReferencedTypes, vStringNewCopy (token->string)); } }
static void addGenericName (tokenInfo *const token) { vStringUpper (token->string); if (vStringLength (token->string) > 0) stringListAdd (GenericNames, vStringNewCopy (token->string)); }