29 lines
678 B
C
29 lines
678 B
C
|
|
#include "basic.h"
|
||
|
|
#include "stdlib.h"
|
||
|
|
#include "string.h"
|
||
|
|
#include <stdio.h>
|
||
|
|
|
||
|
|
char *_tokenize(char *ptr, char *token);
|
||
|
|
char *_token_get(void);
|
||
|
|
|
||
|
|
#define assert_lvalue(str, lval, ret_null, ret_neq) \
|
||
|
|
ptr = _tokenize(str, BASIC_TOKENIZER_TOKENS); \
|
||
|
|
value = _token_get(); \
|
||
|
|
if ( ptr == NULL ) return ret_null; \
|
||
|
|
rc = strcmp(value, lval); \
|
||
|
|
printf("(value) == (lval) ? : (%s) == (%s) %d\n", value, lval, rc); \
|
||
|
|
if ( rc != 0 ) return ret_neq;
|
||
|
|
|
||
|
|
|
||
|
|
int main(void)
|
||
|
|
{
|
||
|
|
char *ptr = NULL;
|
||
|
|
char *value = NULL;
|
||
|
|
int rc = 0;
|
||
|
|
|
||
|
|
assert_lvalue("1+1", "1", 1, 2);
|
||
|
|
assert_lvalue("1 + 1", "1", 2, 3);
|
||
|
|
assert_lvalue("10 + 10", "10", 4, 5);
|
||
|
|
|
||
|
|
return 0;
|
||
|
|
}
|