X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=regcomp.h;h=b292ba36d547cd4c44bf966f816a4f2dd4c8cfcb;hb=35dcc76e92e9d0d2ee72780d700d8645acd7cae8;hp=c8094e14a42e44009b8d39b7d540d7f8010f9ebd;hpb=7ea3cd407b6ec2a3e424bdfbc486b6e01d6d28bd;p=p5sagit%2Fp5-mst-13.2.git diff --git a/regcomp.h b/regcomp.h index c8094e1..b292ba3 100644 --- a/regcomp.h +++ b/regcomp.h @@ -95,16 +95,16 @@ struct regnode_charclass { U8 type; U16 next_off; U32 arg1; - char bitmap[ANYOF_BITMAP_SIZE]; + char bitmap[ANYOF_BITMAP_SIZE]; /* only compile-time */ }; -struct regnode_charclass_class { - U8 flags; +struct regnode_charclass_class { /* has [[:blah:]] classes */ + U8 flags; /* should have ANYOF_CLASS here */ U8 type; U16 next_off; U32 arg1; - char bitmap[ANYOF_BITMAP_SIZE]; - char classflags[ANYOF_CLASSBITMAP_SIZE]; + char bitmap[ANYOF_BITMAP_SIZE]; /* both compile-time */ + char classflags[ANYOF_CLASSBITMAP_SIZE]; /* and run-time */ }; /* XXX fix this description. @@ -182,7 +182,7 @@ struct regnode_charclass_class { /* Flags for node->flags of ANYOF */ -#define ANYOF_CLASS 0x08 +#define ANYOF_CLASS 0x08 /* has [[:blah:]] classes */ #define ANYOF_INVERT 0x04 #define ANYOF_FOLD 0x02 #define ANYOF_LOCALE 0x01 @@ -192,6 +192,10 @@ struct regnode_charclass_class { /* There is a character or a range past 0xff */ #define ANYOF_UNICODE 0x20 +#define ANYOF_UNICODE_ALL 0x40 /* Can match any char past 0xff */ + +/* size of node is large (includes class pointer) */ +#define ANYOF_LARGE 0x80 /* Are there any runtime flags on in this node? */ #define ANYOF_RUNTIME(s) (ANYOF_FLAGS(s) & 0x0f) @@ -284,10 +288,11 @@ struct regnode_charclass_class { #define EXTRA_SIZE(guy) ((sizeof(guy)-1)/sizeof(struct regnode)) -#define REG_SEEN_ZERO_LEN 1 -#define REG_SEEN_LOOKBEHIND 2 -#define REG_SEEN_GPOS 4 -#define REG_SEEN_EVAL 8 +#define REG_SEEN_ZERO_LEN 1 +#define REG_SEEN_LOOKBEHIND 2 +#define REG_SEEN_GPOS 4 +#define REG_SEEN_EVAL 8 +#define REG_SEEN_SANY 16 START_EXTERN_C