clean up regexes for accuracy and internal consistency #376

Closed
wants to merge 1 commit into
from
@@ -67,13 +67,13 @@
'color': '{x11color}|{csscolor}',
'bg-gradient': r'none|{color}|[a-z-]*-gradient\(.*\)',
- 'bg-gradients': r'{bg-gradient}(?:,\s*{bg-gradient})*',
+ 'bg-gradients': r'({bg-gradient}{w},{w})*{bg-gradient}',
@chromakode
chromakode Mar 15, 2012 Contributor

Why move the optional/*'d portion to the beginning of the regex?

@Dakta
Dakta Mar 15, 2012 Contributor

It's purely style-related change for internal consistency. It's done that way in other regexes in the file.

- 'border-radius': r'(({length}|{percentage}){w}){1,2}',
+ 'border-radius': r'(({length}|{percentage}){w}/?{w})?({length}|{percentage})',
@chromakode
chromakode Mar 15, 2012 Contributor

It looks like this adds the / radius-width / radius-height. Shorthand. Could you please put it in a separate commit after your cleanup?

'single-text-shadow': r'({color}\s+)?{length}\s+{length}(\s+{length})?|{length}\s+{length}(\s+{length})?(\s+{color})?',
- 'box-shadow-pos': r'{length}\s+{length}(\s+{length})?(\s+{length})?',
+ 'box-shadow-pos': r'{length}{w}{length}({w}{length})?',
@chromakode
chromakode Mar 15, 2012 Contributor

This changes the semantics from required whitespace to optional whitespace.

}
custom_values = {
@@ -88,7 +88,7 @@
'background': r'{bg-gradients}',
'background-image': r'{bg-gradients}',
'background-color': r'{color}',
- 'background-position': r'(({percentage}|{length}){0,3})?\s*(top|center|left)?\s*(left|center|right)?',
+ 'background-position': r'(({percentage}|{length}){w}(left|top|center|right|bottom)?{w}){0,2}',
@chromakode
chromakode Mar 15, 2012 Contributor

This makes the ({percentage}|{length}) clause non-optional. This regex matches lengths and sides, whereas I believe the spec requires a length or a side.

http://www.w3.org/TR/CSS21/colors.html#propdef-background-position

@Dakta
Dakta Mar 15, 2012 Contributor

Indeed it does, my mistake, forgot a ? in there.

# http://www.w3.org/TR/css3-background/#border-top-right-radius
'border-radius': r'{border-radius}',