Added line-reader example. Changed behaviour of eof on regex to parse either eof or a newline followed be eof (better matchers other regex engines).

This commit is contained in:
Daniel Holden
2018-10-13 18:27:42 -04:00
parent 65060137b1
commit fbc5d8f9ae
4 changed files with 112 additions and 3 deletions

34
examples/line_reader.c Normal file
View File

@@ -0,0 +1,34 @@
#include "../mpc.h"
static void* read_line(void* line) {
printf("Reading Line: %s", (char*)line);
return line;
}
int main(int argc, char **argv) {
const char *input =
"abcHVwufvyuevuy3y436782\n"
"\n"
"\n"
"rehre\n"
"rew\n"
"-ql.;qa\n"
"eg";
mpc_parser_t* Line = mpc_many(
mpcf_strfold,
mpc_apply(mpc_re("[^\\n]*(\\n|$)"), read_line));
mpc_result_t r;
(void)argc; (void)argv;
mpc_parse("input", input, Line, &r);
printf("\nParsed String: %s", (char*)r.output);
free(r.output);
mpc_delete(Line);
return 0;
}