Feature #5820 » 0003-support-for-Ruby-1.9.3-compatible-b-B-and-POSIX-brac.patch
oniguruma.h | ||
---|---|---|
#define ONIG_OPTION_POSIX_REGION (ONIG_OPTION_NOTEOL << 1)
|
||
/* options (ctype range) */
|
||
#define ONIG_OPTION_ASCII_RANGE (ONIG_OPTION_POSIX_REGION << 1)
|
||
#define ONIG_OPTION_POSIX_BRACKET_ALL_RANGE (ONIG_OPTION_ASCII_RANGE << 1)
|
||
#define ONIG_OPTION_WORD_BOUND_ALL_RANGE (ONIG_OPTION_POSIX_BRACKET_ALL_RANGE << 1)
|
||
/* options (newline) */
|
||
#define ONIG_OPTION_NEWLINE_CRLF (ONIG_OPTION_ASCII_RANGE << 1)
|
||
#define ONIG_OPTION_NEWLINE_CRLF (ONIG_OPTION_WORD_BOUND_ALL_RANGE << 1)
|
||
#define ONIG_OPTION_MAXBIT ONIG_OPTION_NEWLINE_CRLF /* limit */
|
||
#define ONIG_OPTION_ON(options,regopt) ((options) |= (regopt))
|
||
... | ... | |
#define ONIG_SYN_OP2_ESC_CAPITAL_Q_QUOTE (1U<<0) /* \Q...\E */
|
||
#define ONIG_SYN_OP2_QMARK_GROUP_EFFECT (1U<<1) /* (?...) */
|
||
#define ONIG_SYN_OP2_OPTION_PERL (1U<<2) /* (?imsxadlu), (?-imsx), (?^imsxalu) */
|
||
#define ONIG_SYN_OP2_OPTION_RUBY (1U<<3) /* (?imx), (?-imx) */
|
||
#define ONIG_SYN_OP2_OPTION_RUBY (1U<<3) /* (?imxadu), (?-imx) */
|
||
#define ONIG_SYN_OP2_PLUS_POSSESSIVE_REPEAT (1U<<4) /* ?+,*+,++ */
|
||
#define ONIG_SYN_OP2_PLUS_POSSESSIVE_INTERVAL (1U<<5) /* {n,m}+ */
|
||
#define ONIG_SYN_OP2_CCLASS_SET_OP (1U<<6) /* [...&&..[..]..] */
|
||
... | ... | |
#define ONIG_SYN_ALLOW_MULTIPLEX_DEFINITION_NAME_CALL (1U<<10) /* (?<x>)(?<x>)(?&x) */
|
||
/* syntax (behavior) in char class [...] */
|
||
#define ONIG_SYN_POSIX_BRACKET_ALWAYS_ALL_RANGE (1U<<19) /* (?a) doesn't affect POSIX brackets */
|
||
#define ONIG_SYN_NOT_NEWLINE_IN_NEGATIVE_CC (1U<<20) /* [^...] */
|
||
#define ONIG_SYN_BACKSLASH_ESCAPE_IN_CC (1U<<21) /* [..\w..] etc.. */
|
||
#define ONIG_SYN_ALLOW_EMPTY_RANGE_IN_CC (1U<<22)
|
regint.h | ||
---|---|---|
#define IS_NOTEOL(option) ((option) & ONIG_OPTION_NOTEOL)
|
||
#define IS_POSIX_REGION(option) ((option) & ONIG_OPTION_POSIX_REGION)
|
||
#define IS_ASCII_RANGE(option) ((option) & ONIG_OPTION_ASCII_RANGE)
|
||
#define IS_POSIX_BRACKET_ALL_RANGE(option) ((option) & ONIG_OPTION_POSIX_BRACKET_ALL_RANGE)
|
||
#define IS_WORD_BOUND_ALL_RANGE(option) ((option) & ONIG_OPTION_WORD_BOUND_ALL_RANGE)
|
||
#define IS_NEWLINE_CRLF(option) ((option) & ONIG_OPTION_NEWLINE_CRLF)
|
||
/* OP_SET_OPTION is required for these options.
|
regparse.c | ||
---|---|---|
ONIG_SYN_FIXED_INTERVAL_IS_GREEDY_ONLY |
|
||
ONIG_SYN_WARN_CC_OP_NOT_ESCAPED |
|
||
ONIG_SYN_WARN_CC_DUP |
|
||
ONIG_SYN_WARN_REDUNDANT_NESTED_REPEAT |
|
||
ONIG_SYN_POSIX_BRACKET_ALWAYS_ALL_RANGE )
|
||
, ONIG_OPTION_ASCII_RANGE
|
||
ONIG_SYN_WARN_REDUNDANT_NESTED_REPEAT )
|
||
, ( ONIG_OPTION_ASCII_RANGE | ONIG_OPTION_POSIX_BRACKET_ALL_RANGE |
|
||
ONIG_OPTION_WORD_BOUND_ALL_RANGE )
|
||
,
|
||
{
|
||
(OnigCodePoint )'\\' /* esc */
|
||
... | ... | |
if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_B_WORD_BOUND)) break;
|
||
tok->type = TK_ANCHOR;
|
||
tok->u.anchor.subtype = ANCHOR_WORD_BOUND;
|
||
tok->u.anchor.ascii_range = IS_ASCII_RANGE(env->option);
|
||
tok->u.anchor.ascii_range = IS_ASCII_RANGE(env->option)
|
||
&& ! IS_WORD_BOUND_ALL_RANGE(env->option);
|
||
break;
|
||
case 'B':
|
||
if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_B_WORD_BOUND)) break;
|
||
tok->type = TK_ANCHOR;
|
||
tok->u.anchor.subtype = ANCHOR_NOT_WORD_BOUND;
|
||
tok->u.anchor.ascii_range = IS_ASCII_RANGE(env->option);
|
||
tok->u.anchor.ascii_range = IS_ASCII_RANGE(env->option)
|
||
&& ! IS_WORD_BOUND_ALL_RANGE(env->option);
|
||
break;
|
||
#ifdef USE_WORD_BEGIN_END
|
||
... | ... | |
return ONIGERR_INVALID_POSIX_BRACKET_TYPE;
|
||
r = add_ctype_to_cc(cc, pb->ctype, not,
|
||
IS_SYNTAX_BV(env->syntax, ONIG_SYN_POSIX_BRACKET_ALWAYS_ALL_RANGE),
|
||
IS_POSIX_BRACKET_ALL_RANGE(env->option),
|
||
env);
|
||
if (r != 0) return r;
|
||
... | ... | |
ONOFF(option, ONIG_OPTION_EXTEND, 1);
|
||
PFETCH(c);
|
||
}
|
||
#if 0
|
||
else if (IS_SYNTAX_OP2(env->syntax, ONIG_SYN_OP2_OPTION_RUBY)) {
|
||
/* d-imx */
|
||
ONOFF(option, ONIG_OPTION_ASCII_RANGE, 0);
|
||
ONOFF(option, ONIG_OPTION_POSIX_BRACKET_ALL_RANGE, 0);
|
||
ONOFF(option, ONIG_OPTION_WORD_BOUND_ALL_RANGE, 0);
|
||
ONOFF(option, ONIG_OPTION_IGNORECASE, 1);
|
||
ONOFF(option, ONIG_OPTION_MULTILINE, 1);
|
||
ONOFF(option, ONIG_OPTION_EXTEND, 1);
|
||
PFETCH(c);
|
||
}
|
||
#endif
|
||
else {
|
||
return ONIGERR_UNDEFINED_GROUP_OPTION;
|
||
}
|
||
... | ... | |
IS_SYNTAX_OP2(env->syntax, ONIG_SYN_OP2_OPTION_RUBY)) &&
|
||
(neg == 0)) {
|
||
ONOFF(option, ONIG_OPTION_ASCII_RANGE, 0);
|
||
ONOFF(option, ONIG_OPTION_POSIX_BRACKET_ALL_RANGE, 1);
|
||
ONOFF(option, ONIG_OPTION_WORD_BOUND_ALL_RANGE, 1);
|
||
}
|
||
else
|
||
return ONIGERR_UNDEFINED_GROUP_OPTION;
|
||
... | ... | |
IS_SYNTAX_OP2(env->syntax, ONIG_SYN_OP2_OPTION_RUBY)) &&
|
||
(neg == 0)) {
|
||
ONOFF(option, ONIG_OPTION_ASCII_RANGE, 1);
|
||
ONOFF(option, ONIG_OPTION_POSIX_BRACKET_ALL_RANGE, 1);
|
||
ONOFF(option, ONIG_OPTION_WORD_BOUND_ALL_RANGE, 1);
|
||
}
|
||
else
|
||
return ONIGERR_UNDEFINED_GROUP_OPTION;
|
||
break;
|
||
case 'd':
|
||
if (IS_SYNTAX_OP2(env->syntax, ONIG_SYN_OP2_OPTION_PERL) &&
|
||
(neg == 0)) {
|
||
ONOFF(option, ONIG_OPTION_ASCII_RANGE, 1);
|
||
}
|
||
else if (IS_SYNTAX_OP2(env->syntax, ONIG_SYN_OP2_OPTION_RUBY) &&
|
||
(neg == 0)) {
|
||
ONOFF(option, ONIG_OPTION_ASCII_RANGE, 0);
|
||
ONOFF(option, ONIG_OPTION_POSIX_BRACKET_ALL_RANGE, 0);
|
||
ONOFF(option, ONIG_OPTION_WORD_BOUND_ALL_RANGE, 0);
|
||
}
|
||
else
|
||
return ONIGERR_UNDEFINED_GROUP_OPTION;
|
||
break;
|
||
case 'd': case 'l':
|
||
case 'l':
|
||
if (IS_SYNTAX_OP2(env->syntax, ONIG_SYN_OP2_OPTION_PERL) && (neg == 0)) {
|
||
ONOFF(option, ONIG_OPTION_ASCII_RANGE, 1);
|
||
}
|
- « Previous
- 1
- …
- 3
- 4
- 5
- Next »