================ CSyntaxRichEditCtrl::LoadKeyWordsFromFile ================ */
| 329 | ================ |
| 330 | */ |
| 331 | bool CSyntaxRichEditCtrl::LoadKeyWordsFromFile( const char *fileName ) { |
| 332 | idParser src; |
| 333 | idToken token, name, description; |
| 334 | byte red, green, blue; |
| 335 | keyWord_t keyword; |
| 336 | |
| 337 | if ( !src.LoadFile( fileName ) ) { |
| 338 | return false; |
| 339 | } |
| 340 | |
| 341 | FreeKeyWordsFromFile(); |
| 342 | |
| 343 | while( src.ReadToken( &token ) ) { |
| 344 | if ( token.Icmp( "keywords" ) == 0 ) { |
| 345 | src.ExpectTokenString( "{" ); |
| 346 | while( src.ReadToken( &token ) ) { |
| 347 | if ( token == "}" ) { |
| 348 | break; |
| 349 | } |
| 350 | if ( token == "{" ) { |
| 351 | |
| 352 | // parse name |
| 353 | src.ExpectTokenType( TT_STRING, 0, &name ); |
| 354 | src.ExpectTokenString( "," ); |
| 355 | |
| 356 | // parse color |
| 357 | src.ExpectTokenString( "(" ); |
| 358 | src.ExpectTokenType( TT_NUMBER, TT_INTEGER, &token ); |
| 359 | red = token.GetIntValue(); |
| 360 | src.ExpectTokenString( "," ); |
| 361 | src.ExpectTokenType( TT_NUMBER, TT_INTEGER, &token ); |
| 362 | green = token.GetIntValue(); |
| 363 | src.ExpectTokenString( "," ); |
| 364 | src.ExpectTokenType( TT_NUMBER, TT_INTEGER, &token ); |
| 365 | blue = token.GetIntValue(); |
| 366 | src.ExpectTokenString( ")" ); |
| 367 | src.ExpectTokenString( "," ); |
| 368 | |
| 369 | // parse description |
| 370 | src.ExpectTokenType( TT_STRING, 0, &description ); |
| 371 | src.ExpectTokenString( "}" ); |
| 372 | |
| 373 | keyword.keyWord = Mem_CopyString( name ); |
| 374 | keyword.color = RGB( red, green, blue ); |
| 375 | keyword.description = Mem_CopyString( description ); |
| 376 | |
| 377 | keyWordsFromFile.Append( keyword ); |
| 378 | } |
| 379 | } |
| 380 | } else { |
| 381 | src.SkipBracedSection(); |
| 382 | } |
| 383 | } |
| 384 | |
| 385 | keyword.keyWord = NULL; |
| 386 | keyword.color = RGB( 255, 255, 255 ); |
| 387 | keyword.description = NULL; |
| 388 | keyWordsFromFile.Append( keyword ); |
no test coverage detected