Typedefs make everything so much more readable.

This commit is contained in:
Meredith L. Patterson 2012-04-22 15:30:49 +01:00
parent 7c6451d309
commit b6c98d85f2
2 changed files with 57 additions and 54 deletions

View file

@ -36,30 +36,30 @@ const result* get_cached(parse_state *ps, const size_t pid); /* {
*/
int put_cached(parse_state *ps, const size_t pid, result cached);
result* (*token(const uint8_t *s))(parse_state *ps) { return NULL; }
result* (*ch(const uint8_t c))(parse_state *ps) { return NULL; }
result* (*range(const uint8_t lower, const uint8_t upper))(parse_state *ps) { return NULL; }
result* (*whitespace(result *(*p1)(parse_state *ps1)))(parse_state *ps) { return NULL; }
//result (*action(result *(*p1)(parse_state *ps1), /* fptr to action on AST */))(parse_state *ps) { return NULL; }
result* (*join_action(result *(*p1)(parse_state *ps1), const uint8_t *sep))(parse_state *ps) { return NULL; }
result* (*left_factor_action(result *(*p1)(parse_state *ps1)))(parse_state *ps) { return NULL; }
result* (*negate(result *(*p1)(parse_state *ps1)))(parse_state *ps) { return NULL; }
result* end_p(parse_state *ps) { return NULL; }
result* nothing_p(parse_state *ps) { return NULL; }
result* (*sequence(result *(*(*p1)(parse_state *ps1))))(parse_state *ps) { return NULL; }
result* (*choice(result *(*(*p1)(parse_state *ps1))))(parse_state *ps) { return NULL; }
result* (*butnot(result *(*p1)(parse_state *ps1), result *(*p2)(parse_state *ps2)))(parse_state *ps) { return NULL; }
result* (*difference(result *(*p1)(parse_state *ps1), result *(*p2)(parse_state *ps2)))(parse_state *ps) { return NULL; }
result* (*xor(result *(*p1)(parse_state *ps1), result *(*p2)(parse_state *ps2)))(parse_state *ps) { return NULL; }
result* (*repeat0(result *(*p1)(parse_state *ps1)))(parse_state *ps) { return NULL; }
result* (*repeat1(result *(*p1)(parse_state *ps1)))(parse_state *ps) { return NULL; }
result* (*repeatN(result *(*p1)(parse_state *ps1), const size_t n))(parse_state *ps) { return NULL; }
result* (*optional(result *(*p1)(parse_state *ps1)))(parse_state *ps) { return NULL; }
void (*expect(result *(*p1)(parse_state *ps1)))(parse_state *ps) { return NULL; }
result* (*chain(result *(*p1)(parse_state *ps1), result *(*p2)(parse_state *ps2), result *(*p3)(parse_state *ps3)))(parse_state *ps) { return NULL; }
result* (*chainl(result *(*p1)(parse_state *ps1), result *(*p2)(parse_state *ps2)))(parse_state *ps) { return NULL; }
result* (*list(result *(*p1)(parse_state *ps1), result *(*p2)(parse_state *ps2)))(parse_state *ps) { return NULL; }
result* epsilon_p(parse_state *ps) { return NULL; }
//result (*semantic(/* fptr to nullary function? */))(parse_state *ps) { return NULL; }
result* (*and(result *(*p1)(parse_state *ps1)))(parse_state *ps) { return NULL; }
result* (*not(result *(*p1)(parse_state *ps1)))(parse_state *ps) { return NULL; }
parser *token(const uint8_t *s) { return NULL; }
parser *ch(const uint8_t c) { return NULL; }
parser *range(const uint8_t lower, const uint8_t upper) { return NULL; }
parser *whitespace(parser *p) { return NULL; }
//parser *action(parser *p, /* fptr to action on AST */) { return NULL; }
parser *join_action(parser *p, const uint8_t *sep) { return NULL; }
parser *left_faction_action(parser *p) { return NULL; }
parser *negate(parser *p) { return NULL; }
parser *end_p() { return NULL; }
parser *nothing_p() { return NULL; }
parser *sequence(parser **p_array) { return NULL; }
parser *choice(parser **p_array) { return NULL; }
parser *butnot(parser *p1, parser *p2) { return NULL; }
parser *difference(parser *p1, parser *p2) { return NULL; }
parser *xor(parser *p1, parser *p2) { return NULL; }
parser *repeat0(parser *p) { return NULL; }
parser *repeat1(parser *p) { return NULL; }
parser *repeat_n(parser *p, const size_t n) { return NULL; }
parser *optional(parser *p) { return NULL; }
parser *expect(parser *p) { return NULL; }
parser *chain(parser *p1, parser *p2, parser *p3) { return NULL; }
parser *chainl(parser *p1, parser *p2) { return NULL; }
parser *list(parser *p1, parser *p2) { return NULL; }
parser *epsilon_p() { return NULL; }
//parser *semantic(/* fptr to nullary function? */) { return NULL; }
parser *and(parser *p) { return NULL; }
parser *not(parser *p) { return NULL; }

View file

@ -29,32 +29,35 @@ typedef struct {
const GSequence *ast;
} result;
result* (*token(const uint8_t *s))(parse_state *ps);
result* (*ch(const uint8_t c))(parse_state *ps);
result* (*range(const uint8_t lower, const uint8_t upper))(parse_state *ps);
result* (*whitespace(result *(*p1)(parse_state *ps1)))(parse_state *ps);
//result (*action(result *(*p1)(parse_state *ps1), /* fptr to action on AST */))(parse_state *ps);
result* (*join_action(result *(*p1)(parse_state *ps1), const uint8_t *sep))(parse_state *ps);
result* (*left_factor_action(result *(*p1)(parse_state *ps1)))(parse_state *ps);
result* (*negate(result *(*p1)(parse_state *ps1)))(parse_state *ps);
result* end_p(parse_state *ps);
result* nothing_p(parse_state *ps);
result* (*sequence(result *(*(*p1)(parse_state *ps1))))(parse_state *ps);
result* (*choice(result *(*(*p1)(parse_state *ps1))))(parse_state *ps);
result* (*butnot(result *(*p1)(parse_state *ps1), result *(*p2)(parse_state *ps2)))(parse_state *ps);
result* (*difference(result *(*p1)(parse_state *ps1), result *(*p2)(parse_state *ps2)))(parse_state *ps);
result* (*xor(result *(*p1)(parse_state *ps1), result *(*p2)(parse_state *ps2)))(parse_state *ps);
result* (*repeat0(result *(*p1)(parse_state *ps1)))(parse_state *ps);
result* (*repeat1(result *(*p1)(parse_state *ps1)))(parse_state *ps);
result* (*repeatN(result *(*p1)(parse_state *ps1), const size_t n))(parse_state *ps);
result* (*optional(result *(*p1)(parse_state *ps1)))(parse_state *ps);
void (*expect(result *(*p1)(parse_state *ps1)))(parse_state *ps);
result* (*chain(result *(*p1)(parse_state *ps1), result *(*p2)(parse_state *ps2), result *(*p3)(parse_state *ps3)))(parse_state *ps);
result* (*chainl(result *(*p1)(parse_state *ps1), result *(*p2)(parse_state *ps2)))(parse_state *ps);
result* (*list(result *(*p1)(parse_state *ps1), result *(*p2)(parse_state *ps2)))(parse_state *ps);
result* epsilon_p(parse_state *ps);
//result (*semantic(/* fptr to nullary function? */))(parse_state *ps);
result* (*and(result *(*p1)(parse_state *ps1)))(parse_state *ps);
result* (*not(result *(*p1)(parse_state *ps1)))(parse_state *ps);
typedef result*(*parser)(parse_state*);
parser *token(const uint8_t *s);
parser *ch(const uint8_t c);
parser *range(const uint8_t lower, const uint8_t upper);
parser *whitespace(parser *p);
//parser *action(parser *p, /* fptr to action on AST */);
parser *join_action(parser *p, const uint8_t *sep);
parser *left_faction_action(parser *p);
parser *negate(parser *p);
parser *end_p();
parser *nothing_p();
parser *sequence(parser **p_array);
parser *choice(parser **p_array);
parser *butnot(parser *p1, parser *p2);
parser *difference(parser *p1, parser *p2);
parser *xor(parser *p1, parser *p2);
parser *repeat0(parser *p);
parser *repeat1(parser *p);
parser *repeat_n(parser *p, const size_t n);
parser *optional(parser *p);
parser *expect(parser *p);
parser *chain(parser *p1, parser *p2, parser *p3);
parser *chainl(parser *p1, parser *p2);
parser *list(parser *p1, parser *p2);
parser *epsilon_p();
//parser *semantic(/* fptr to nullary function? */);
parser *and(parser *p);
parser *not(parser *p);