Waitrud Weber’s blog

things and reminders for memories

Code Analyzer: C-Analyzer and improvement 002

When we use tokenizer, we just call getToken: And getToken must memory the index of start and end of token.

=== aToken.cpp ===

 13 :char* aToken::getToken( FILE *fp, int *index, int *file_end )
 14 :{
 15 :	char dummy[256];
 16 :	int mode_token = 0; // skip
 17 :	// 0: skip 18 :	// 1:  19 :	// 2:  20 :	int breakable = 0;
 21 :	dummy[0] = '\0';
 22 :
 23 :	for ( int i=*index; i<*file_end && breakable == 0; i++ ) {
 24 :		m_fread ( dummy, 1, fp);
 25 :		printf("dummy=%s\r\n", dummy );
 26 :		switch(mode_token) {
 27 :		case 0: 28 :			switch ( dummy[0] ) {
 29 :			case ' ':
 30 :				break;
 31 :			default:
 32 :				if ( is_alphabet( dummy ) == 1 ) {
 33 :					mode_token = 1;
 34 :				} else {
 35 :					mode_token = 2;
 36 :				}
 37 :				token = put_token ( dummy[0] );
 38 :				printf("token=%s dummy=%s dummy[0]=%c\r\n", token, dummy, dummy[0] );
 39 :				break;
 40 :			}
 41 :			break;
 42 :		case 1: 43 :			switch ( dummy[0] ) {
 44 :			case ' ':
 45 :				break;
 46 :			default:
 47 :				token = put_token ( dummy[0] );
 48 :				printf("token=%s dummy=%s dummy[0]=%c\r\n", token, dummy, dummy[0] );
 49 :				break;
 50 :			}
 51 :			break;
 52 :		case 2: 53 :			switch ( dummy[0] ) {
 54 :			case ' ':
 55 :				breakable = 1;
 56 :				break;
 57 :			default:
 58 :				token = put_token ( dummy[0] );
 59 :				printf("token=%s dummy=%s dummy[0]=%c\r\n", token, dummy, dummy[0] );
 60 :				break;
 61 :			}
 62 :			break;
 63 :		}
 64 :	}
 65 :
 66 :	backward( dummy );
 67 :	printf("token=%s\r\n", token);
 68 :	exit(-1);
 69 :
 70 :	return token;
 71 :}