start work on asm->c translation
[ia32rtools.git] / tools / my_str.h
CommitLineData
57e4efe9 1static int my_isblank(char c)
2{
3 return c == '\t' || c == ' ' || c == '\r' || c == '\n';
4}
5
6static int my_issep(char c)
7{
8 return c == '(' || c == ')' || c == '[' || c == ']'
9 || c == '<' || c == '>' || c == ',';
10}
11
12static char *sskip(char *s)
13{
14 while (my_isblank(*s))
15 s++;
16
17 return s;
18}
19
20static char *next_word(char *w, size_t wsize, char *s)
21{
22 size_t i;
23
24 s = sskip(s);
25
26 for (i = 0; i < wsize - 1; i++) {
27 if (*s == 0 || my_isblank(s[i]))
28 break;
29 w[i] = s[i];
30 }
31 w[i] = 0;
32
33 if (*s != 0 && !my_isblank(s[i]))
34 printf("warning: '%s' truncated\n", w);
35
36 return s + i;
37}
38
39static inline char *next_idt(char *w, size_t wsize, char *s)
40{
41 size_t i;
42
43 s = sskip(s);
44
45 for (i = 0; i < wsize - 1; i++) {
46 if (*s == 0 || my_isblank(s[i]) || my_issep(s[i]))
47 break;
48 w[i] = s[i];
49 }
50 w[i] = 0;
51
52 if (*s != 0 && !my_isblank(s[i]) && !my_issep(s[i]))
53 printf("warning: '%s' truncated\n", w);
54
55 return s + i;
56}