Skip to content

Commit 6b3d973

Browse files
committed
Upgrade to CSS::Grammar 0.3.12
1 parent 1d51909 commit 6b3d973

File tree

10 files changed

+42
-46
lines changed

10 files changed

+42
-46
lines changed

Changes

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
{{$NEXT}}
2+
Update to CSS::Grammar 0.3.12, which:
3+
- Replaces CSS::Specification::AST with CSS::Grammar::AST
4+
- Defines resolution units for us.
25

36
0.6.6 2022-09-07T06:20:51+12:00
47
- Add :vivify mode. Allow any properties. Stub metadata is added when

META6.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"build-depends": [
77
],
88
"depends": [
9-
"CSS::Grammar:ver<0.3.9+>",
9+
"CSS::Grammar:ver<0.3.12+>",
1010
"CSS::Module::CSS3::Selectors:ver<0.0.5+>",
1111
"CSS::Specification:ver<0.4.11+>",
1212
"CSS::Writer:ver<0.2.6+>",

lib/CSS/Module/CSS1/Gen/Grammar.rakumod

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ rule relative-size {:i [ larger | smaller ] & <keyw> }
3939

4040
#| font: [ 'font-style' || 'font-variant' || 'font-weight' ]? 'font-size' [ / 'line-height' ]? 'font-family'
4141
rule decl:sym<font> {:i (font) ':' <val( rx{ <expr=.expr-font> }, &?ROUTINE.WHY)> }
42-
rule expr-font {:i :my @S; [ [ <expr-font-style> <!{@S[0]++}> | <expr-font-variant> <!{@S[1]++}> | <expr-font-weight> <!{@S[2]++}> ]+ ]? <expr-font-size> [ <op('/')> <expr-line-height> ]? <expr-font-family> }
42+
rule expr-font {:i :my @*SEEN; [ [ <expr-font-style> <!seen(0)> | <expr-font-variant> <!seen(1)> | <expr-font-weight> <!seen(2)> ]+ ]? <expr-font-size> [ <op('/')> <expr-line-height> ]? <expr-font-family> }
4343

4444
#| color: <color>
4545
rule decl:sym<color> {:i (color) ':' <val( rx{ <expr=.expr-color> }, &?ROUTINE.WHY)> }
@@ -63,7 +63,7 @@ rule expr-background-attachment {:i [ scroll | fixed ] & <keyw> }
6363

6464
#| background-position: [<percentage> | <length> | <align> ] [ <percentage> | <length> | <valign> ]? | [ <valign> || <align> ]
6565
rule decl:sym<background-position> {:i (background\-position) ':' <val( rx{ <expr=.expr-background-position> }, &?ROUTINE.WHY)> }
66-
rule expr-background-position {:i :my @S; [ [ [ <percentage> || <length> || <align> ] ] [ [ <percentage> || <length> || <valign> ] ]? || [ [ <valign> <!{@S[0]++}> | <align> <!{@S[1]++}> ]+ ] ] }
66+
rule expr-background-position {:i :my @*SEEN; [ [ [ <percentage> || <length> || <align> ] ] [ [ <percentage> || <length> || <valign> ] ]? || [ [ <valign> <!seen(0)> | <align> <!seen(1)> ]+ ] ] }
6767

6868
#| align: left | center | right
6969
rule align {:i [ left | center | right ] & <keyw> }
@@ -73,7 +73,7 @@ rule valign {:i [ top | center | bottom ] & <keyw> }
7373

7474
#| background: 'background-color' || 'background-image' || 'background-repeat' || 'background-attachment' || 'background-position'
7575
rule decl:sym<background> {:i (background) ':' <val( rx{ <expr=.expr-background> }, &?ROUTINE.WHY)> }
76-
rule expr-background {:i :my @S; [ <expr-background-color> <!{@S[0]++}> | <expr-background-image> <!{@S[1]++}> | <expr-background-repeat> <!{@S[2]++}> | <expr-background-attachment> <!{@S[3]++}> | <expr-background-position> <!{@S[4]++}> ]+ }
76+
rule expr-background {:i :my @*SEEN; [ <expr-background-color> <!seen(0)> | <expr-background-image> <!seen(1)> | <expr-background-repeat> <!seen(2)> | <expr-background-attachment> <!seen(3)> | <expr-background-position> <!seen(4)> ]+ }
7777

7878
#| word-spacing: normal | <length>
7979
rule decl:sym<word-spacing> {:i (word\-spacing) ':' <val( rx{ <expr=.expr-word-spacing> }, &?ROUTINE.WHY)> }
@@ -85,7 +85,7 @@ rule expr-letter-spacing {:i [ normal & <keyw> || <length> ] }
8585

8686
#| text-decoration: none | [ underline || overline || line-through || blink ]
8787
rule decl:sym<text-decoration> {:i (text\-decoration) ':' <val( rx{ <expr=.expr-text-decoration> }, &?ROUTINE.WHY)> }
88-
rule expr-text-decoration {:i :my @S; [ none & <keyw> || [ [ underline & <keyw> <!{@S[0]++}> | overline & <keyw> <!{@S[1]++}> | line\-through & <keyw> <!{@S[2]++}> | blink & <keyw> <!{@S[3]++}> ]+ ] ] }
88+
rule expr-text-decoration {:i :my @*SEEN; [ none & <keyw> || [ [ underline & <keyw> <!seen(0)> | overline & <keyw> <!seen(1)> | line\-through & <keyw> <!seen(2)> | blink & <keyw> <!seen(3)> ]+ ] ] }
8989

9090
#| vertical-align: baseline | sub | super | top | text-top | middle | bottom | text-bottom | <percentage>
9191
rule decl:sym<vertical-align> {:i (vertical\-align) ':' <val( rx{ <expr=.expr-vertical-align> }, &?ROUTINE.WHY)> }
@@ -177,7 +177,7 @@ rule expr-border-style {:i [ [ none | dotted | dashed | solid | double | groove
177177

178178
#| border-top: 'border-top-width' || 'border-top-style' || <color>
179179
rule decl:sym<border-top> {:i (border\-top) ':' <val( rx{ <expr=.expr-border-top> }, &?ROUTINE.WHY)> }
180-
rule expr-border-top {:i :my @S; [ <expr-border-top-width> <!{@S[0]++}> | <expr-border-top-style> <!{@S[1]++}> | <color> <!{@S[2]++}> ]+ }
180+
rule expr-border-top {:i :my @*SEEN; [ <expr-border-top-width> <!seen(0)> | <expr-border-top-style> <!seen(1)> | <color> <!seen(2)> ]+ }
181181

182182
#| border-top-color: <color> | transparent
183183
rule decl:sym<border-top-color> {:i (border\-top\-color) ':' <val( rx{ <expr=.expr-border-top-color> }, &?ROUTINE.WHY)> }
@@ -213,19 +213,19 @@ rule expr-border-left-style {:i [ [ none | dotted | dashed | solid | double | gr
213213

214214
#| border-right: 'border-right-width' || 'border-right-style' || <color>
215215
rule decl:sym<border-right> {:i (border\-right) ':' <val( rx{ <expr=.expr-border-right> }, &?ROUTINE.WHY)> }
216-
rule expr-border-right {:i :my @S; [ <expr-border-right-width> <!{@S[0]++}> | <expr-border-right-style> <!{@S[1]++}> | <color> <!{@S[2]++}> ]+ }
216+
rule expr-border-right {:i :my @*SEEN; [ <expr-border-right-width> <!seen(0)> | <expr-border-right-style> <!seen(1)> | <color> <!seen(2)> ]+ }
217217

218218
#| border-bottom: 'border-bottom-width' || 'border-bottom-style' || <color>
219219
rule decl:sym<border-bottom> {:i (border\-bottom) ':' <val( rx{ <expr=.expr-border-bottom> }, &?ROUTINE.WHY)> }
220-
rule expr-border-bottom {:i :my @S; [ <expr-border-bottom-width> <!{@S[0]++}> | <expr-border-bottom-style> <!{@S[1]++}> | <color> <!{@S[2]++}> ]+ }
220+
rule expr-border-bottom {:i :my @*SEEN; [ <expr-border-bottom-width> <!seen(0)> | <expr-border-bottom-style> <!seen(1)> | <color> <!seen(2)> ]+ }
221221

222222
#| border-left: 'border-left-width' || 'border-left-style' || <color>
223223
rule decl:sym<border-left> {:i (border\-left) ':' <val( rx{ <expr=.expr-border-left> }, &?ROUTINE.WHY)> }
224-
rule expr-border-left {:i :my @S; [ <expr-border-left-width> <!{@S[0]++}> | <expr-border-left-style> <!{@S[1]++}> | <color> <!{@S[2]++}> ]+ }
224+
rule expr-border-left {:i :my @*SEEN; [ <expr-border-left-width> <!seen(0)> | <expr-border-left-style> <!seen(1)> | <color> <!seen(2)> ]+ }
225225

226226
#| border: 'border-width' || 'border-style' || 'border-color'
227227
rule decl:sym<border> {:i (border) ':' <val( rx{ <expr=.expr-border> }, &?ROUTINE.WHY)> }
228-
rule expr-border {:i :my @S; [ <expr-border-width> <!{@S[0]++}> | <expr-border-style> <!{@S[1]++}> | <expr-border-color> <!{@S[2]++}> ]+ }
228+
rule expr-border {:i :my @*SEEN; [ <expr-border-width> <!seen(0)> | <expr-border-style> <!seen(1)> | <expr-border-color> <!seen(2)> ]+ }
229229

230230
#| float: left | right | none
231231
rule decl:sym<float> {:i (float) ':' <val( rx{ <expr=.expr-float> }, &?ROUTINE.WHY)> }
@@ -257,7 +257,7 @@ rule expr-list-style-position {:i [ inside | outside ] & <keyw> }
257257

258258
#| list-style: 'list-style-type' || 'list-style-image' || 'list-style-position'
259259
rule decl:sym<list-style> {:i (list\-style) ':' <val( rx{ <expr=.expr-list-style> }, &?ROUTINE.WHY)> }
260-
rule expr-list-style {:i :my @S; [ <expr-list-style-type> <!{@S[0]++}> | <expr-list-style-image> <!{@S[1]++}> | <expr-list-style-position> <!{@S[2]++}> ]+ }
260+
rule expr-list-style {:i :my @*SEEN; [ <expr-list-style-type> <!seen(0)> | <expr-list-style-image> <!seen(1)> | <expr-list-style-position> <!seen(2)> ]+ }
261261

262262
#| position: absolute | relative | static
263263
rule decl:sym<position> {:i (position) ':' <val( rx{ <expr=.expr-position> }, &?ROUTINE.WHY)> }

lib/CSS/Module/CSS21/Gen/Grammar.rakumod

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ unit grammar CSS::Module::CSS21::Gen::Grammar;
77

88
#| azimuth: <angle> | [ <direction> || <behind> ] | <delta>
99
rule decl:sym<azimuth> {:i (azimuth) ':' <val( rx{ <expr=.expr-azimuth> }, &?ROUTINE.WHY)> }
10-
rule expr-azimuth {:i :my @S; [ <angle> || [ [ <direction> <!{@S[0]++}> | <behind> <!{@S[1]++}> ]+ ] || <delta> ] }
10+
rule expr-azimuth {:i :my @*SEEN; [ <angle> || [ [ <direction> <!seen(0)> | <behind> <!seen(1)> ]+ ] || <delta> ] }
1111

1212
#| delta: leftwards | rightwards
1313
rule delta {:i [ leftwards | rightwards ] & <keyw> }
@@ -32,7 +32,7 @@ rule expr-background-image {:i [ <uri> || none & <keyw> ] }
3232

3333
#| background-position: [ [ <percentage> | <length> | <align> ] [ <percentage> | <length> | <valign> ]? ] | [ <align> || <valign> ]
3434
rule decl:sym<background-position> {:i (background\-position) ':' <val( rx{ <expr=.expr-background-position> }, &?ROUTINE.WHY)> }
35-
rule expr-background-position {:i :my @S; [ [ [ [ <percentage> || <length> || <align> ] ] [ [ <percentage> || <length> || <valign> ] ]? ] || [ [ <align> <!{@S[0]++}> | <valign> <!{@S[1]++}> ]+ ] ] }
35+
rule expr-background-position {:i :my @*SEEN; [ [ [ [ <percentage> || <length> || <align> ] ] [ [ <percentage> || <length> || <valign> ] ]? ] || [ [ <align> <!seen(0)> | <valign> <!seen(1)> ]+ ] ] }
3636

3737
#| align: left | center | right
3838
rule align {:i [ left | center | right ] & <keyw> }
@@ -46,7 +46,7 @@ rule expr-background-repeat {:i [ repeat | repeat\-x | repeat\-y | no\-repeat ]
4646

4747
#| background: ['background-color' || 'background-image' || 'background-repeat' || 'background-attachment' || 'background-position']
4848
rule decl:sym<background> {:i (background) ':' <val( rx{ <expr=.expr-background> }, &?ROUTINE.WHY)> }
49-
rule expr-background {:i :my @S; [ [ <expr-background-color> <!{@S[0]++}> | <expr-background-image> <!{@S[1]++}> | <expr-background-repeat> <!{@S[2]++}> | <expr-background-attachment> <!{@S[3]++}> | <expr-background-position> <!{@S[4]++}> ]+ ] }
49+
rule expr-background {:i :my @*SEEN; [ [ <expr-background-color> <!seen(0)> | <expr-background-image> <!seen(1)> | <expr-background-repeat> <!seen(2)> | <expr-background-attachment> <!seen(3)> | <expr-background-position> <!seen(4)> ]+ ] }
5050

5151
#| border-collapse: collapse | separate
5252
rule decl:sym<border-collapse> {:i (border\-collapse) ':' <val( rx{ <expr=.expr-border-collapse> }, &?ROUTINE.WHY)> }
@@ -69,19 +69,19 @@ rule border-style {:i [ none | hidden | dotted | dashed | solid | double | groov
6969

7070
#| border-top: [ 'border-top-width' || 'border-top-style' || 'border-top-color' ]
7171
rule decl:sym<border-top> {:i (border\-top) ':' <val( rx{ <expr=.expr-border-top> }, &?ROUTINE.WHY)> }
72-
rule expr-border-top {:i :my @S; [ [ <expr-border-top-width> <!{@S[0]++}> | <expr-border-top-style> <!{@S[1]++}> | <expr-border-top-color> <!{@S[2]++}> ]+ ] }
72+
rule expr-border-top {:i :my @*SEEN; [ [ <expr-border-top-width> <!seen(0)> | <expr-border-top-style> <!seen(1)> | <expr-border-top-color> <!seen(2)> ]+ ] }
7373

7474
#| border-right: [ 'border-right-width' || 'border-right-style' || 'border-right-color' ]
7575
rule decl:sym<border-right> {:i (border\-right) ':' <val( rx{ <expr=.expr-border-right> }, &?ROUTINE.WHY)> }
76-
rule expr-border-right {:i :my @S; [ [ <expr-border-right-width> <!{@S[0]++}> | <expr-border-right-style> <!{@S[1]++}> | <expr-border-right-color> <!{@S[2]++}> ]+ ] }
76+
rule expr-border-right {:i :my @*SEEN; [ [ <expr-border-right-width> <!seen(0)> | <expr-border-right-style> <!seen(1)> | <expr-border-right-color> <!seen(2)> ]+ ] }
7777

7878
#| border-bottom: [ 'border-bottom-width' || 'border-bottom-style' || 'border-bottom-color' ]
7979
rule decl:sym<border-bottom> {:i (border\-bottom) ':' <val( rx{ <expr=.expr-border-bottom> }, &?ROUTINE.WHY)> }
80-
rule expr-border-bottom {:i :my @S; [ [ <expr-border-bottom-width> <!{@S[0]++}> | <expr-border-bottom-style> <!{@S[1]++}> | <expr-border-bottom-color> <!{@S[2]++}> ]+ ] }
80+
rule expr-border-bottom {:i :my @*SEEN; [ [ <expr-border-bottom-width> <!seen(0)> | <expr-border-bottom-style> <!seen(1)> | <expr-border-bottom-color> <!seen(2)> ]+ ] }
8181

8282
#| border-left: [ 'border-left-width' || 'border-left-style' || 'border-left-color' ]
8383
rule decl:sym<border-left> {:i (border\-left) ':' <val( rx{ <expr=.expr-border-left> }, &?ROUTINE.WHY)> }
84-
rule expr-border-left {:i :my @S; [ [ <expr-border-left-width> <!{@S[0]++}> | <expr-border-left-style> <!{@S[1]++}> | <expr-border-left-color> <!{@S[2]++}> ]+ ] }
84+
rule expr-border-left {:i :my @*SEEN; [ [ <expr-border-left-width> <!seen(0)> | <expr-border-left-style> <!seen(1)> | <expr-border-left-color> <!seen(2)> ]+ ] }
8585

8686
#| border-top-color: <color> | transparent
8787
rule decl:sym<border-top-color> {:i (border\-top\-color) ':' <val( rx{ <expr=.expr-border-top-color> }, &?ROUTINE.WHY)> }
@@ -140,7 +140,7 @@ rule border-width {:i [ [ thin | medium | thick ] & <keyw> || <length> ] }
140140

141141
#| border: [ 'border-width' || 'border-style' || 'border-color' ]
142142
rule decl:sym<border> {:i (border) ':' <val( rx{ <expr=.expr-border> }, &?ROUTINE.WHY)> }
143-
rule expr-border {:i :my @S; [ [ <expr-border-width> <!{@S[0]++}> | <expr-border-style> <!{@S[1]++}> | <expr-border-color> <!{@S[2]++}> ]+ ] }
143+
rule expr-border {:i :my @*SEEN; [ [ <expr-border-width> <!seen(0)> | <expr-border-style> <!seen(1)> | <expr-border-color> <!seen(2)> ]+ ] }
144144

145145
#| bottom: <length> | <percentage> | auto
146146
rule decl:sym<bottom> {:i (bottom) ':' <val( rx{ <expr=.expr-bottom> }, &?ROUTINE.WHY)> }
@@ -184,7 +184,7 @@ rule expr-cue-before {:i [ <uri> || none & <keyw> ] }
184184

185185
#| cue: [ 'cue-before' || 'cue-after' ]
186186
rule decl:sym<cue> {:i (cue) ':' <val( rx{ <expr=.expr-cue> }, &?ROUTINE.WHY)> }
187-
rule expr-cue {:i :my @S; [ [ <expr-cue-before> <!{@S[0]++}> | <expr-cue-after> <!{@S[1]++}> ]+ ] }
187+
rule expr-cue {:i :my @*SEEN; [ [ <expr-cue-before> <!seen(0)> | <expr-cue-after> <!seen(1)> ]+ ] }
188188

189189
#| 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 ] ]
190190
rule decl:sym<cursor> {:i (cursor) ':' <val( rx{ <expr=.expr-cursor> }, &?ROUTINE.WHY)> }
@@ -247,7 +247,7 @@ rule expr-font-weight {:i [ [ normal | bold | bolder | lighter ] & <keyw> || [ 1
247247

248248
#| font: [ [ 'font-style' || 'font-variant' || 'font-weight' ]? 'font-size' [ / 'line-height' ]? 'font-family' ] | caption | icon | menu | message-box | small-caption | status-bar
249249
rule decl:sym<font> {:i (font) ':' <val( rx{ <expr=.expr-font> }, &?ROUTINE.WHY)> }
250-
rule expr-font {:i :my @S; [ [ [ [ <expr-font-style> <!{@S[0]++}> | <expr-font-variant> <!{@S[1]++}> | <expr-font-weight> <!{@S[2]++}> ]+ ]? <expr-font-size> [ <op('/')> <expr-line-height> ]? <expr-font-family> ] || [ caption | icon | menu | message\-box | small\-caption | status\-bar ] & <keyw> ] }
250+
rule expr-font {:i :my @*SEEN; [ [ [ [ <expr-font-style> <!seen(0)> | <expr-font-variant> <!seen(1)> | <expr-font-weight> <!seen(2)> ]+ ]? <expr-font-size> [ <op('/')> <expr-line-height> ]? <expr-font-family> ] || [ caption | icon | menu | message\-box | small\-caption | status\-bar ] & <keyw> ] }
251251

252252
#| height: <length> | <percentage> | auto
253253
rule decl:sym<height> {:i (height) ':' <val( rx{ <expr=.expr-height> }, &?ROUTINE.WHY)> }
@@ -279,7 +279,7 @@ rule expr-list-style-type {:i [ disc | circle | square | decimal | decimal\-lead
279279

280280
#| list-style: [ 'list-style-type' || 'list-style-position' || 'list-style-image' ]
281281
rule decl:sym<list-style> {:i (list\-style) ':' <val( rx{ <expr=.expr-list-style> }, &?ROUTINE.WHY)> }
282-
rule expr-list-style {:i :my @S; [ [ <expr-list-style-type> <!{@S[0]++}> | <expr-list-style-position> <!{@S[1]++}> | <expr-list-style-image> <!{@S[2]++}> ]+ ] }
282+
rule expr-list-style {:i :my @*SEEN; [ [ <expr-list-style-type> <!seen(0)> | <expr-list-style-position> <!seen(1)> | <expr-list-style-image> <!seen(2)> ]+ ] }
283283

284284
#| margin-right: <margin-width>
285285
rule decl:sym<margin-right> {:i (margin\-right) ':' <val( rx{ <expr=.expr-margin-right> }, &?ROUTINE.WHY)> }
@@ -342,7 +342,7 @@ rule expr-outline-width {:i [ [ thin | medium | thick ] & <keyw> || <length> ] }
342342

343343
#| outline: [ 'outline-color' || 'outline-style' || 'outline-width' ]
344344
rule decl:sym<outline> {:i (outline) ':' <val( rx{ <expr=.expr-outline> }, &?ROUTINE.WHY)> }
345-
rule expr-outline {:i :my @S; [ [ <expr-outline-color> <!{@S[0]++}> | <expr-outline-style> <!{@S[1]++}> | <expr-outline-width> <!{@S[2]++}> ]+ ] }
345+
rule expr-outline {:i :my @*SEEN; [ [ <expr-outline-color> <!seen(0)> | <expr-outline-style> <!seen(1)> | <expr-outline-width> <!seen(2)> ]+ ] }
346346

347347
#| overflow: visible | hidden | scroll | auto
348348
rule decl:sym<overflow> {:i (overflow) ':' <val( rx{ <expr=.expr-overflow> }, &?ROUTINE.WHY)> }
@@ -405,7 +405,7 @@ rule expr-pitch {:i [ <frequency> || [ x\-low | low | medium | high | x\-high ]
405405

406406
#| play-during: <uri> [ mix || repeat ]? | auto | none
407407
rule decl:sym<play-during> {:i (play\-during) ':' <val( rx{ <expr=.expr-play-during> }, &?ROUTINE.WHY)> }
408-
rule expr-play-during {:i :my @S; [ <uri> [ [ mix & <keyw> <!{@S[0]++}> | repeat & <keyw> <!{@S[1]++}> ]+ ]? || [ auto | none ] & <keyw> ] }
408+
rule expr-play-during {:i :my @*SEEN; [ <uri> [ [ mix & <keyw> <!seen(0)> | repeat & <keyw> <!seen(1)> ]+ ]? || [ auto | none ] & <keyw> ] }
409409

410410
#| position: static | relative | absolute | fixed
411411
rule decl:sym<position> {:i (position) ':' <val( rx{ <expr=.expr-position> }, &?ROUTINE.WHY)> }
@@ -461,7 +461,7 @@ rule expr-text-align {:i [ <align> || justify & <keyw> ] }
461461

462462
#| text-decoration: none | [ underline || overline || line-through || blink ]
463463
rule decl:sym<text-decoration> {:i (text\-decoration) ':' <val( rx{ <expr=.expr-text-decoration> }, &?ROUTINE.WHY)> }
464-
rule expr-text-decoration {:i :my @S; [ none & <keyw> || [ [ underline & <keyw> <!{@S[0]++}> | overline & <keyw> <!{@S[1]++}> | line\-through & <keyw> <!{@S[2]++}> | blink & <keyw> <!{@S[3]++}> ]+ ] ] }
464+
rule expr-text-decoration {:i :my @*SEEN; [ none & <keyw> || [ [ underline & <keyw> <!seen(0)> | overline & <keyw> <!seen(1)> | line\-through & <keyw> <!seen(2)> | blink & <keyw> <!seen(3)> ]+ ] ] }
465465

466466
#| text-indent: <length> | <percentage>
467467
rule decl:sym<text-indent> {:i (text\-indent) ':' <val( rx{ <expr=.expr-text-indent> }, &?ROUTINE.WHY)> }

0 commit comments

Comments
 (0)