JSON-SL
view release on metacpan or search on metacpan
srcout/tuba_dispatch_getmeth.h view on Meta::CPAN
/**
* This file was automatically generated by running the './srcutil/method_dispatch.pl'
* script. Do not modify this file directly.
*
* There are various macros in this header and they can be
* enabled within various sections of code by doing the following
*
* #define PLTUBA_METGHV_STRUCT
* #include "this_header_name"
* #undef PLTUBA_METHGV_STRUCT
*
* which will paste the definition of the methgv struct
*/
/** Structure defining GVs for all our callback methods */
#ifdef PLTUBA_METHGV_STRUCT
struct {
GV* on_string;
GV* on_key;
GV* on_number;
GV* on_object;
GV* on_list;
GV* on_data;
GV* on_json;
GV* on_special;
GV* on_boolean;
GV* on_null;
GV* on_any;
GV* start_string;
GV* start_key;
GV* start_number;
GV* start_object;
GV* start_list;
GV* start_data;
GV* start_json;
GV* start_special;
GV* start_boolean;
GV* start_null;
GV* start_any;
GV* end_string;
GV* end_key;
GV* end_number;
GV* end_object;
GV* end_list;
GV* end_data;
GV* end_json;
GV* end_special;
GV* end_boolean;
GV* end_null;
GV* end_any;
} methgv;
#endif /* PLTUBA_METHGV_STRUCT */
/** X-Macro for method names */
#ifdef PLTUBA_DEFINE_XMETHGV
#define PLTUBA_XMETHGV \
X(on, string) \
X(on, key) \
X(on, number) \
X(on, object) \
X(on, list) \
X(on, data) \
X(on, json) \
X(on, special) \
X(on, boolean) \
X(on, null) \
X(on, any) \
X(start, string) \
X(start, key) \
X(start, number) \
X(start, object) \
X(start, list) \
X(start, data) \
X(start, json) \
X(start, special) \
X(start, boolean) \
X(start, null) \
X(start, any) \
X(end, string) \
X(end, key) \
X(end, number) \
X(end, object) \
X(end, list) \
X(end, data) \
X(end, json) \
X(end, special) \
X(end, boolean) \
X(end, null) \
X(end, any) \
#endif /* PLTUBA_DEFINE_XMETHGV */
/**
* This generates a large switch statement which will
* return the proper method name and the pointer to the GV
* slot in the methgv structure
*/
#ifdef PLTUBA_METH_GETMETH
switch(action) {
/* on */
case '>': {
switch(cbtype) {
case '"':
/* string */
methname = "on_string";
methgvp = &tuba->methgv.on_string;
break;
case '#':
/* key */
methname = "on_key";
methgvp = &tuba->methgv.on_key;
break;
case '=':
( run in 1.172 second using v1.01-cache-2.11-cpan-39bf76dae61 )