16:f597c8f0bcc9 | 17:a034888a2227 |
---|---|
444 */ | 444 */ |
445 | 445 |
446 | 446 |
447 static int arg_match(Token *tok, char c) | 447 static int arg_match(Token *tok, char c) |
448 { | 448 { |
449 static const char chs[]={0, 'l', 'd', 'c', 's', 'i', 0, 0}; | 449 static const char chs[]={0, 'l', 'd', 'c', 's', 'i', 'b', 0, 0}; |
450 char c2; | 450 char c2; |
451 | 451 |
452 if(c=='.' || c=='*') | 452 if(c=='.' || c=='*') |
453 return 0; | 453 return 0; |
454 | 454 |
470 if(c2=='l' && c=='d'){ | 470 if(c2=='l' && c=='d'){ |
471 TOK_SET_DOUBLE(tok, TOK_LONG_VAL(tok)); | 471 TOK_SET_DOUBLE(tok, TOK_LONG_VAL(tok)); |
472 return 0; | 472 return 0; |
473 } | 473 } |
474 | 474 |
475 if(c=='b'){ | |
476 if(c2=='l'){ | |
477 TOK_SET_BOOL(tok, TOK_LONG_VAL(tok)); | |
478 return 0; | |
479 }else if(c2=='i'){ | |
480 if(strcmp(TOK_IDENT_VAL(tok), "TRUE")==0){ | |
481 tok_free(tok); | |
482 TOK_SET_BOOL(tok, TRUE); | |
483 return 0; | |
484 }else if(strcmp(TOK_IDENT_VAL(tok), "FALSE")==0){ | |
485 tok_free(tok); | |
486 TOK_SET_BOOL(tok, FALSE); | |
487 return 0; | |
488 } | |
489 } | |
490 } | |
491 | |
475 return E_TOKZ_INVALID_ARGUMENT; | 492 return E_TOKZ_INVALID_ARGUMENT; |
476 } | 493 } |
477 | 494 |
478 | 495 |
479 static int check_argument(const char **pret, Token *tok, const char *p) | 496 static int check_argument(const char **pret, Token *tok, const char *p) |