11unit grammar CSS::Module::CSS21::Gen::Grammar ;
22# | azimuth: <angle> | [ <direction> || <behind> ] | <delta>
33rule decl :sym <azimuth > { :i (azimuth) ":" <val (/<css - val - azimuth > /, & ? ROUTINE . WHY )>}
4- rule css-val-azimuth { :i <angle > || [[<direction > :my $ * A ; <!{
4+ rule css-val-azimuth { :i <angle > || [[<direction > :my $ * A ;<!{
55 $ * A ++
6- }> || <behind > :my $ * B ; <!{
6+ }> || <behind > :my $ * B ;<!{
77 $ * B ++
88}> ]+ ] || <delta > }
99# | <delta> = leftwards | rightwards
@@ -23,9 +23,9 @@ rule decl:sym<background-image> { :i ("background-image") ":" <val(/<css-val-bac
2323rule css-val-background-image { :i <uri > || none & <keyw > }
2424# | background-position: [ [ <percentage> | <length> | <align> ] [ <percentage> | <length> | <valign> ]? ] | [ <align> || <valign> ]
2525rule decl :sym <background-position > { :i ("background-position" ) ":" <val (/<css - val - background - position > /, & ? ROUTINE . WHY )>}
26- rule css-val-background-position { :i [[<percentage > || <length > || <align > ] [<percentage > || <length > || <valign > ] ? ] || [[<align > :my $ * A ; <!{
26+ rule css-val-background-position { :i [[<percentage > || <length > || <align > ] [<percentage > || <length > || <valign > ] ? ] || [[<align > :my $ * A ;<!{
2727 $ * A ++
28- }> || <valign > :my $ * B ; <!{
28+ }> || <valign > :my $ * B ;<!{
2929 $ * B ++
3030}> ]+ ] }
3131# | <align> = left | center | right
@@ -37,15 +37,15 @@ rule decl:sym<background-repeat> { :i ("background-repeat") ":" <val(/<css-val-b
3737rule css-val-background-repeat { :i [repeat | "repeat-x" | "repeat-y" | "no-repeat" ]& <keyw > }
3838# | background: ['background-color' || 'background-image' || 'background-repeat' || 'background-attachment' || 'background-position']
3939rule decl :sym <background > { :i (background) ":" <val (/<css - val - background > /, & ? ROUTINE . WHY )>}
40- rule css-val-background { :i [[<css - val - background - color > :my $ * A ; <!{
40+ rule css-val-background { :i [[<css - val - background - color > :my $ * A ;<!{
4141 $ * A ++
42- }> || <css - val - background - image > :my $ * B ; <!{
42+ }> || <css - val - background - image > :my $ * B ;<!{
4343 $ * B ++
44- }> || <css - val - background - repeat > :my $ * C ; <!{
44+ }> || <css - val - background - repeat > :my $ * C ;<!{
4545 $ * C ++
46- }> || <css - val - background - attachment > :my $ * D ; <!{
46+ }> || <css - val - background - attachment > :my $ * D ;<!{
4747 $ * D ++
48- }> || <css - val - background - position > :my $ * E ; <!{
48+ }> || <css - val - background - position > :my $ * E ;<!{
4949 $ * E ++
5050}> ]+ ] }
5151# | border-collapse: collapse | separate
@@ -64,38 +64,38 @@ rule css-val-border-style { :i <border-style> }
6464rule border-style { :i [none | hidden | dotted | dashed | solid | double | groove | ridge | inset | outset ]& <keyw > }
6565# | border-top: [ 'border-top-width' || 'border-top-style' || 'border-top-color' ]
6666rule decl :sym <border-top > { :i ("border-top" ) ":" <val (/<css - val - border - top > /, & ? ROUTINE . WHY )>}
67- rule css-val-border-top { :i [[<css - val - border - top - width > :my $ * A ; <!{
67+ rule css-val-border-top { :i [[<css - val - border - top - width > :my $ * A ;<!{
6868 $ * A ++
69- }> || <css - val - border - top - style > :my $ * B ; <!{
69+ }> || <css - val - border - top - style > :my $ * B ;<!{
7070 $ * B ++
71- }> || <css - val - border - top - color > :my $ * C ; <!{
71+ }> || <css - val - border - top - color > :my $ * C ;<!{
7272 $ * C ++
7373}> ]+ ] }
7474# | border-right: [ 'border-right-width' || 'border-right-style' || 'border-right-color' ]
7575rule decl :sym <border-right > { :i ("border-right" ) ":" <val (/<css - val - border - right > /, & ? ROUTINE . WHY )>}
76- rule css-val-border-right { :i [[<css - val - border - right - width > :my $ * A ; <!{
76+ rule css-val-border-right { :i [[<css - val - border - right - width > :my $ * A ;<!{
7777 $ * A ++
78- }> || <css - val - border - right - style > :my $ * B ; <!{
78+ }> || <css - val - border - right - style > :my $ * B ;<!{
7979 $ * B ++
80- }> || <css - val - border - right - color > :my $ * C ; <!{
80+ }> || <css - val - border - right - color > :my $ * C ;<!{
8181 $ * C ++
8282}> ]+ ] }
8383# | border-bottom: [ 'border-bottom-width' || 'border-bottom-style' || 'border-bottom-color' ]
8484rule decl :sym <border-bottom > { :i ("border-bottom" ) ":" <val (/<css - val - border - bottom > /, & ? ROUTINE . WHY )>}
85- rule css-val-border-bottom { :i [[<css - val - border - bottom - width > :my $ * A ; <!{
85+ rule css-val-border-bottom { :i [[<css - val - border - bottom - width > :my $ * A ;<!{
8686 $ * A ++
87- }> || <css - val - border - bottom - style > :my $ * B ; <!{
87+ }> || <css - val - border - bottom - style > :my $ * B ;<!{
8888 $ * B ++
89- }> || <css - val - border - bottom - color > :my $ * C ; <!{
89+ }> || <css - val - border - bottom - color > :my $ * C ;<!{
9090 $ * C ++
9191}> ]+ ] }
9292# | border-left: [ 'border-left-width' || 'border-left-style' || 'border-left-color' ]
9393rule decl :sym <border-left > { :i ("border-left" ) ":" <val (/<css - val - border - left > /, & ? ROUTINE . WHY )>}
94- rule css-val-border-left { :i [[<css - val - border - left - width > :my $ * A ; <!{
94+ rule css-val-border-left { :i [[<css - val - border - left - width > :my $ * A ;<!{
9595 $ * A ++
96- }> || <css - val - border - left - style > :my $ * B ; <!{
96+ }> || <css - val - border - left - style > :my $ * B ;<!{
9797 $ * B ++
98- }> || <css - val - border - left - color > :my $ * C ; <!{
98+ }> || <css - val - border - left - color > :my $ * C ;<!{
9999 $ * C ++
100100}> ]+ ] }
101101# | border-top-color: <color> | transparent
@@ -141,11 +141,11 @@ rule css-val-border-width { :i <border-width> }
141141rule border-width { :i [thin | medium | thick ]& <keyw > || <length > }
142142# | border: [ 'border-width' || 'border-style' || 'border-color' ]
143143rule decl :sym <border > { :i (border) ":" <val (/<css - val - border > /, & ? ROUTINE . WHY )>}
144- rule css-val-border { :i [[<css - val - border - width > :my $ * A ; <!{
144+ rule css-val-border { :i [[<css - val - border - width > :my $ * A ;<!{
145145 $ * A ++
146- }> || <css - val - border - style > :my $ * B ; <!{
146+ }> || <css - val - border - style > :my $ * B ;<!{
147147 $ * B ++
148- }> || <css - val - border - color > :my $ * C ; <!{
148+ }> || <css - val - border - color > :my $ * C ;<!{
149149 $ * C ++
150150}> ]+ ] }
151151# | bottom: <length> | <percentage> | auto
@@ -190,9 +190,9 @@ rule decl:sym<cue-before> { :i ("cue-before") ":" <val(/<css-val-cue-before> /,
190190rule css-val-cue-before { :i <uri > || none & <keyw > }
191191# | cue: [ 'cue-before' || 'cue-after' ]
192192rule decl :sym <cue > { :i (cue) ":" <val (/<css - val - cue > /, & ? ROUTINE . WHY )>}
193- rule css-val-cue { :i [[<css - val - cue - before > :my $ * A ; <!{
193+ rule css-val-cue { :i [[<css - val - cue - before > :my $ * A ;<!{
194194 $ * A ++
195- }> || <css - val - cue - after > :my $ * B ; <!{
195+ }> || <css - val - cue - after > :my $ * B ;<!{
196196 $ * B ++
197197}> ]+ ] }
198198# | cursor: [ [<uri> ,]* [ auto | crosshair | default | pointer | move | e-resize | ne-resize | nw-resize | n-resize | se-resize | sw-resize | s-resize | w-resize | text | wait | help | progress ] ]
@@ -240,11 +240,11 @@ rule decl:sym<font-weight> { :i ("font-weight") ":" <val(/<css-val-font-weight>
240240rule css-val-font-weight { :i [normal | bold | bolder | lighter ]& <keyw > || [100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 ]& <number > }
241241# | font: [ [ 'font-style' || 'font-variant' || 'font-weight' ]? 'font-size' [ / 'line-height' ]? 'font-family'# ] | caption | icon | menu | message-box | small-caption | status-bar
242242rule decl :sym <font > { :i (font) ":" <val (/<css - val - font > /, & ? ROUTINE . WHY )>}
243- rule css-val-font { :i [[[<css - val - font - style > :my $ * A ; <!{
243+ rule css-val-font { :i [[[<css - val - font - style > :my $ * A ;<!{
244244 $ * A ++
245- }> || <css - val - font - variant > :my $ * B ; <!{
245+ }> || <css - val - font - variant > :my $ * B ;<!{
246246 $ * B ++
247- }> || <css - val - font - weight > :my $ * C ; <!{
247+ }> || <css - val - font - weight > :my $ * C ;<!{
248248 $ * C ++
249249}> ]+ ] ? <css - val - font - size > [<op (" /" )> <css - val - line - height > ] ? <css - val - font - family > +% <op (" ," )> ] || [caption | icon | menu | "message-box" | "small-caption" | "status-bar" ]& <keyw > }
250250# | height: <length> | <percentage> | auto
@@ -270,11 +270,11 @@ rule decl:sym<list-style-type> { :i ("list-style-type") ":" <val(/<css-val-list-
270270rule css-val-list-style-type { :i [disc | circle | square | decimal | "decimal-leading-zero" | "lower-roman" | "upper-roman" | "lower-greek" | "lower-latin" | "upper-latin" | armenian | georgian | "lower-alpha" | "upper-alpha" | none ]& <keyw > }
271271# | list-style: [ 'list-style-type' || 'list-style-position' || 'list-style-image' ]
272272rule decl :sym <list-style > { :i ("list-style" ) ":" <val (/<css - val - list - style > /, & ? ROUTINE . WHY )>}
273- rule css-val-list-style { :i [[<css - val - list - style - type > :my $ * A ; <!{
273+ rule css-val-list-style { :i [[<css - val - list - style - type > :my $ * A ;<!{
274274 $ * A ++
275- }> || <css - val - list - style - position > :my $ * B ; <!{
275+ }> || <css - val - list - style - position > :my $ * B ;<!{
276276 $ * B ++
277- }> || <css - val - list - style - image > :my $ * C ; <!{
277+ }> || <css - val - list - style - image > :my $ * C ;<!{
278278 $ * C ++
279279}> ]+ ] }
280280# | margin-right: <margin-width>
@@ -323,11 +323,11 @@ rule decl:sym<outline-width> { :i ("outline-width") ":" <val(/<css-val-outline-w
323323rule css-val-outline-width { :i [thin | medium | thick ]& <keyw > || <length > }
324324# | outline: [ 'outline-color' || 'outline-style' || 'outline-width' ]
325325rule decl :sym <outline > { :i (outline) ":" <val (/<css - val - outline > /, & ? ROUTINE . WHY )>}
326- rule css-val-outline { :i [[<css - val - outline - color > :my $ * A ; <!{
326+ rule css-val-outline { :i [[<css - val - outline - color > :my $ * A ;<!{
327327 $ * A ++
328- }> || <css - val - outline - style > :my $ * B ; <!{
328+ }> || <css - val - outline - style > :my $ * B ;<!{
329329 $ * B ++
330- }> || <css - val - outline - width > :my $ * C ; <!{
330+ }> || <css - val - outline - width > :my $ * C ;<!{
331331 $ * C ++
332332}> ]+ ] }
333333# | overflow: visible | hidden | scroll | auto
@@ -376,9 +376,9 @@ rule decl:sym<pitch> { :i (pitch) ":" <val(/<css-val-pitch> /, &?ROUTINE.WHY)>}
376376rule css-val-pitch { :i <frequency > || ["x-low" | low | medium | high | "x-high" ]& <keyw > }
377377# | play-during: <uri> [ mix || repeat ]? | auto | none
378378rule decl :sym <play-during > { :i ("play-during" ) ":" <val (/<css - val - play - during > /, & ? ROUTINE . WHY )>}
379- rule css-val-play-during { :i <uri > [[mix & <keyw > :my $ * A ; <!{
379+ rule css-val-play-during { :i <uri > [[mix & <keyw > :my $ * A ;<!{
380380 $ * A ++
381- }> || repeat & <keyw > :my $ * B ; <!{
381+ }> || repeat & <keyw > :my $ * B ;<!{
382382 $ * B ++
383383}> ]+ ] ? || [auto | none ]& <keyw > }
384384# | position: static | relative | absolute | fixed
@@ -422,13 +422,13 @@ rule decl:sym<text-align> { :i ("text-align") ":" <val(/<css-val-text-align> /,
422422rule css-val-text-align { :i <align > || justify & <keyw > }
423423# | text-decoration: none | [ underline || overline || line-through || blink ]
424424rule decl :sym <text-decoration > { :i ("text-decoration" ) ":" <val (/<css - val - text - decoration > /, & ? ROUTINE . WHY )>}
425- rule css-val-text-decoration { :i none & <keyw > || [[underline & <keyw > :my $ * A ; <!{
425+ rule css-val-text-decoration { :i none & <keyw > || [[underline & <keyw > :my $ * A ;<!{
426426 $ * A ++
427- }> || overline & <keyw > :my $ * B ; <!{
427+ }> || overline & <keyw > :my $ * B ;<!{
428428 $ * B ++
429- }> || "line-through" & <keyw > :my $ * C ; <!{
429+ }> || "line-through" & <keyw > :my $ * C ;<!{
430430 $ * C ++
431- }> || blink & <keyw > :my $ * D ; <!{
431+ }> || blink & <keyw > :my $ * D ;<!{
432432 $ * D ++
433433}> ]+ ] }
434434# | text-indent: <length> | <percentage>
0 commit comments