summaryrefslogtreecommitdiff
path: root/op_reg_common.h
Commit message (Collapse)AuthorAgeFilesLines
* silence picky C compiler warningDavid Mitchell2012-06-141-0/+4
| | | | and add assert that a (U32 & mask) value can fit in a U8.
* Bump several file copyright datesSteffen Schwigon2012-01-191-1/+1
| | | | | | | Sync copyright dates with actual changes according to git history. [Plus run regen_perly.h to update the SHA-256 checksums, and regen/regcharclass.pl to update regcharclass.h]
* op_reg_common.h: Fix commentKarl Williamson2011-05-181-3/+3
|
* Initial setup to accommodate /aa regex modifierKarl Williamson2011-02-141-3/+4
| | | | | This changes the bits to add a new charset type for /aa, and other bookkeeping for it.
* op_reg_common.h: add explicit castKarl Williamson2011-01-181-1/+1
| | | | | A version of the g++ compiler isn't allowing the implicit cast of U32 to an enum. Change to use an explicit cast.
* Add /a regex modifierKarl Williamson2011-01-171-1/+2
| | | | | This restricts certain constructs, like \w, to matching in the ASCII range only.
* op_reg_common: correct path in commentKarl Williamson2011-01-161-1/+2
|
* Use multi-bit field for regex character setKarl Williamson2011-01-161-5/+43
| | | | | | | | | | | | | The /d, /l, and /u regex modifiers are mutually exclusive. This patch changes the field that stores the character set to use more than one bit with an enum determining which one. This data structure more closely follows the semantics of their being mutually exclusive, and conserves bits as well, and is better expandable. A small API is added to set and query the bit field. This patch is not .xs source backwards compatible. A handful of cpan programs are affected.
* op_reg_common.h: Add guard to only expand onceKarl Williamson2011-01-161-0/+4
| | | | This is in preparation for adding some in-line functions.
* [perl #78072] use re '/xism';Father Chrysostomos2010-10-211-0/+2
|
* Add /d, /l, /u (infixed) regex modifiersKarl Williamson2010-09-221-2/+3
| | | | | | | | | | | | This patch adds recognition of these modifiers, with appropriate action for d and l. u does nothing useful yet. This allows for the interpolation of a regex into another one without losing the character set semantics that it was compiled with, as for the first time, the semantics is now specified in the stringification as one of these modifiers. To this end, it allocates an unused bit in the structures. The off- sets change so as to not disturb other bits.
* op_reg_common.h: Continue refactoringKarl Williamson2010-08-111-8/+34
| | | | | | | | | | | | | | | The new op_reg_common.h did not have in it all the things that made sense for it to have, including some comment changes that I should have made when I created it. I also realized the the new mechanism of using shifts allowed RXf_PMf_STD_PMMOD_SHIFT to actually control things, rather than be a #define that one had to remember to change if those things changed independently. Finally, I created a check so that adding bits without adding them to RXf_PMf_COMPILETIME will force a compilation error. (This came from the school of hard knocks)
* op_reg_common.h: Move things aroundKarl Williamson2010-08-111-6/+13
| | | | | | | Moving the definitions of the duplicate variables makes it easier to read. Unfortunately, the values can't be in terms of the previous ones because defsubs_h.PL doesn't pick them up. So I've made them numeric with a #if to make sure they don't drift off.
* op_reg_common.h: Refactor variable for safetyKarl Williamson2010-08-111-1/+3
| | | | | | | | This patch changes the variable that tells how many common bits there are to instead be +1 that value, so bits won't get reused. A later commit will renumber the bits in op.h and regexp.h, but for now things are left as-is there, which means the base variables in those two files must subtract one to compensate for the +1
* Refactor common parts of op.h, regexp.h into new .hKarl Williamson2010-07-291-0/+27
op.h and regexp.h share common elements in their data structures. They have had to manually be kept in sync. This patch makes it easier by putting those common parts into a common header #included by the two. To do this, it seemed easiest to change the symbol definitions to use left shifts to generate the flag bits. But this meant that regcomp.pl and axt/B/defsubs_h.PL had to be taught to recognize those forms of expressions, done in separate commits