Initial commit for boundary support

This commit is contained in:
Daniel Holden
2014-04-16 18:16:16 +01:00
parent 8d9bf9fdda
commit 612bc046f0
3 changed files with 130 additions and 62 deletions

25
mpc.h
View File

@@ -18,7 +18,7 @@
#include <errno.h>
/*
** Error Type
** State Type
*/
typedef struct {
@@ -27,6 +27,10 @@ typedef struct {
int col;
} mpc_state_t;
/*
** Error Type
*/
typedef struct {
mpc_state_t state;
int expected_num;
@@ -86,13 +90,6 @@ void mpc_cleanup(int n, ...);
** Basic Parsers
*/
mpc_parser_t *mpc_pass(void);
mpc_parser_t *mpc_fail(const char *m);
mpc_parser_t *mpc_failf(const char *fmt, ...);
mpc_parser_t *mpc_lift(mpc_ctor_t f);
mpc_parser_t *mpc_lift_val(mpc_val_t *x);
mpc_parser_t *mpc_state(void);
mpc_parser_t *mpc_any(void);
mpc_parser_t *mpc_char(char c);
mpc_parser_t *mpc_range(char s, char e);
@@ -101,6 +98,18 @@ mpc_parser_t *mpc_noneof(const char *s);
mpc_parser_t *mpc_satisfy(int(*f)(char));
mpc_parser_t *mpc_string(const char *s);
/*
** Other Parsers
*/
mpc_parser_t *mpc_pass(void);
mpc_parser_t *mpc_fail(const char *m);
mpc_parser_t *mpc_failf(const char *fmt, ...);
mpc_parser_t *mpc_lift(mpc_ctor_t f);
mpc_parser_t *mpc_lift_val(mpc_val_t *x);
mpc_parser_t *mpc_boundary(void);
mpc_parser_t *mpc_state(void);
/*
** Combinator Parsers
*/