give glue actions an h_ prefix and add H_ACT_APPLY macro

This commit is contained in:
Sven M. Hallberg 2013-01-17 18:31:13 +01:00
parent e875dcd19a
commit dd574bd735
5 changed files with 20 additions and 14 deletions

View file

@ -17,10 +17,16 @@
#define H_AVRULE(rule, def) const HParser *rule = \
h_action(h_attr_bool(def, validate_ ## rule), act_ ## rule)
const HParsedToken *act_ignore(const HParseResult *p);
const HParsedToken *act_index(int i, const HParseResult *p);
const HParsedToken *act_index0(const HParseResult *p);
const HParsedToken *act_flatten(const HParseResult *p);
const HParsedToken *h_act_ignore(const HParseResult *p);
const HParsedToken *h_act_index(int i, const HParseResult *p);
const HParsedToken *h_act_flatten(const HParseResult *p);
// Define 'myaction' as a specialization of 'paction' by supplying the leading
// parameters.
#define H_ACT_APPLY(myaction, paction, ...) \
const HParsedToken *myaction(const HParseResult *p) { \
return paction(__VA_ARGS__, p); \
}
const HParsedToken *h_token_flatten(HArena *arena, const HParsedToken *p);