1 /* src/common/parse_file.h
3 * Tools for parsing files.
9 #include <stdint.h> /* uint8_t */
13 /* Set err_line() options: "intro" message, char array used to store analyzed
14 * lines ("line"), and whether to "exit" on error message.
16 extern void set_err_line_options(char * intro, char * line, uint8_t exit);
18 /* Increment and reset (to zero) err_line() line counter. */
19 extern void err_line_inc();
20 extern void err_line_zero();
22 /* If "test", output "msg", faulty line, its number and exit if so defined by
23 * set_err_line_options(), else return 1 on "test" and 0 if "test" is 0.
25 extern uint8_t err_line(uint8_t test, char * msg);
27 /* Return next token from "line" or NULL if none is found. Tokens either a)
28 * start at the first non-whitespace character and end before the next
29 * whitespace character after that; or b) if the first non-whitespace character
30 * is a single quote followed by at least one other single quote some time later
31 * on the line, the token starts after that first single quote and ends before
32 * the second, with the next token_from_line() call starting its token search
33 * after that second quote. The only way to return an empty string (instead of
34 * NULL) as a token is to delimit the token by two succeeding single quotes.
36 extern char * token_from_line(char * line);
38 /* Test for "string" to represent proper int16 (type: "i"), uint8 ("8"), uint16
39 * ("u") or uint32 ("U"). Returns 0 if proper value, else >0.
41 extern uint8_t parsetest_int(char * string, char type);
43 /* Test for "string" to be of length 1 (excluding "\0"). Return 1 on failure. */
44 extern uint8_t parsetest_singlechar(char * string);
46 /* If "token0" fits "comparand", set "element" to value read from "token1" as
47 * string (type: "s"), char ("c") uint8 ("8"), uint16 ("u"), uint32 ("U") or
48 * int16 ("i"), and return 1; else 0.
50 extern uint8_t parse_val(char * token0, char * token1, char * comparand,
51 char type, char * element);