Added a void* user_data pointer to HAction

This commit is contained in:
Dan Hirsch 2013-11-23 12:53:11 -06:00
parent bba60f5db9
commit e487d5435c
18 changed files with 83 additions and 73 deletions

View file

@ -162,7 +162,7 @@ static void test_middle(gconstpointer backend) {
#include <ctype.h>
HParsedToken* upcase(const HParseResult *p) {
HParsedToken* upcase(const HParseResult *p, void* user_data) {
switch(p->ast->token_type) {
case TT_SEQUENCE:
{
@ -202,7 +202,8 @@ static void test_action(gconstpointer backend) {
h_ch('B'),
NULL),
NULL),
upcase);
upcase,
NULL);
g_check_parse_match(action_, (HParserBackend)GPOINTER_TO_INT(backend), "ab", 2, "(u0x41 u0x42)");
g_check_parse_match(action_, (HParserBackend)GPOINTER_TO_INT(backend), "AB", 2, "(u0x41 u0x42)");
@ -433,7 +434,7 @@ static void test_ambiguous(gconstpointer backend) {
HParser *p_ = h_ch('+');
HParser *E_ = h_indirect();
h_bind_indirect(E_, h_choice(h_sequence(E_, p_, E_, NULL), d_, NULL));
HParser *expr_ = h_action(E_, h_act_flatten);
HParser *expr_ = h_action(E_, h_act_flatten, NULL);
g_check_parse_match(expr_, (HParserBackend)GPOINTER_TO_INT(backend), "d", 1, "(u0x64)");
g_check_parse_match(expr_, (HParserBackend)GPOINTER_TO_INT(backend), "d+d", 3, "(u0x64 u0x2b u0x64)");