Started working on butnot/difference/xor, but not gonna finish those tonight.

This commit is contained in:
Meredith L. Patterson 2012-05-01 03:59:49 +01:00
parent 37ff85eae8
commit 7fa1111d84
2 changed files with 20 additions and 1 deletions

View file

@ -254,7 +254,23 @@ const parser_t* choice(const parser_t* p_array[]) {
return ret;
}
const parser_t* butnot(const parser_t* p1, const parser_t* p2) { return NULL; }
typedef struct {
const parser_t *p1;
const parser_t *p2;
} two_parsers_t;
static parse_result_t parse_butnot(void *env, parse_state_t *state) {
two_parsers_t *parsers = (two_parsers_t*)env;
input_stream_t tmp_state = state->input_stream;
}
const parser_t* butnot(const parser_t* p1, const parser_t* p2) {
two_parsers_t *env = g_new(two_parsers_t, 1);
env->p1 = p1; env->p2 = p2;
}
const parser_t* difference(const parser_t* p1, const parser_t* p2) { return NULL; }
const parser_t* xor(const parser_t* p1, const parser_t* p2) { return NULL; }
const parser_t* repeat0(const parser_t* p) { return NULL; }

View file

@ -115,7 +115,10 @@ const parser_t* nothing_p();
/* Given an array of parsers, p_array, apply each parser in order. The parse succeeds only if all parsers succeed. */
const parser_t* sequence(const parser_t* p_array[]);
/* Given an array of parsers, p_array, apply each parser in order. The first parser to succeed is the result; if no parsers succeed, the parse fails. */
const parser_t* choice(const parser_t* p_array[]);
const parser_t* butnot(const parser_t* p1, const parser_t* p2);
const parser_t* difference(const parser_t* p1, const parser_t* p2);
const parser_t* xor(const parser_t* p1, const parser_t* p2);