Пример #1
0
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));
}
Пример #2
0
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));
    }
}
Пример #3
0
static void addGenericName (tokenInfo *const token)
{
    vStringUpper (token->string);
    if (vStringLength (token->string) > 0)
        stringListAdd (GenericNames, vStringNewCopy (token->string));
}