11unit grammar Test::CSS::Aural::Spec::GrammarAST ;
22# | azimuth: <angle> | [[ left-side | far-left | left | center-left | center | center-right | right | far-right | right-side ] || behind ] | leftwards | rightwards
33rule decl :sym <azimuth > { :i (azimuth) ":" <val (/<expr = .expr - azimuth > /, & ? ROUTINE . WHY )> }
4- rule expr-azimuth { :i <angle > || [[:my @ S ; [["left-side" | "far-left" | left | "center-left" | center | "center-right" | right | "far-right" | "right-side" ]& <keyw >]<!{
5- @ S [0 ]++
4+ rule expr-azimuth { :i <angle > || [[:my @ S ; [["left-side" | "far-left" | left | "center-left" | center | "center-right" | right | "far-right" | "right-side" ]& <keyw >]<!{
5+ @ S [0 ]++
66}> | behind & <keyw ><!{
7- @ S [1 ]++
8- }> ]+ ] || [leftwards | rightwards ]& <keyw > }
7+ @ S [1 ]++
8+ }> ]+ ] || [leftwards | rightwards ]& <keyw > }
99# | cue-after: <uri> | none
1010rule decl :sym <cue-after > { :i ("cue-after" ) ":" <val (/<expr = .expr - cue - after > /, & ? ROUTINE . WHY )> }
11- rule expr-cue-after { :i <uri > || none & <keyw > }
11+ rule expr-cue-after { :i <uri > || none & <keyw > }
1212# | cue-before: <uri> | none
1313rule decl :sym <cue-before > { :i ("cue-before" ) ":" <val (/<expr = .expr - cue - before > /, & ? ROUTINE . WHY )> }
14- rule expr-cue-before { :i <uri > || none & <keyw > }
14+ rule expr-cue-before { :i <uri > || none & <keyw > }
1515# | cue: [ 'cue-before' || 'cue-after' ]
1616rule decl :sym <cue > { :i (cue) ":" <val (/<expr = .expr - cue > /, & ? ROUTINE . WHY )> }
17- rule expr-cue { :i [[:my @ S ; <expr - cue - before ><!{
18- @ S [0 ]++
17+ rule expr-cue { :i [[:my @ S ; <expr - cue - before ><!{
18+ @ S [0 ]++
1919}> | <expr - cue - after ><!{
20- @ S [1 ]++
20+ @ S [1 ]++
2121}> ]+ ] }
2222# | elevation: <angle> | below | level | above | higher | lower
2323rule decl :sym <elevation > { :i (elevation) ":" <val (/<expr = .expr - elevation > /, & ? ROUTINE . WHY )> }
24- rule expr-elevation { :i <angle > || [below | level | above | higher | lower ]& <keyw > }
24+ rule expr-elevation { :i <angle > || [below | level | above | higher | lower ]& <keyw > }
2525# | pause: [ [<time> | <percentage>]{1,2} ]
2626rule decl :sym <pause > { :i (pause) ":" <val (/<expr = .expr - pause > /, & ? ROUTINE . WHY )> }
2727rule expr-pause { :i [[<time > || <percentage > ]** 1.. 2] }
2828# | pause-after: <time> | <percentage>
2929rule decl :sym <pause-after > { :i ("pause-after" ) ":" <val (/<expr = .expr - pause - after > /, & ? ROUTINE . WHY )> }
30- rule expr-pause-after { :i <time > || <percentage > }
30+ rule expr-pause-after { :i <time > || <percentage > }
3131# | pause-before: <time> | <percentage>
3232rule decl :sym <pause-before > { :i ("pause-before" ) ":" <val (/<expr = .expr - pause - before > /, & ? ROUTINE . WHY )> }
33- rule expr-pause-before { :i <time > || <percentage > }
33+ rule expr-pause-before { :i <time > || <percentage > }
3434# | pitch-range: <number>
3535rule decl :sym <pitch-range > { :i ("pitch-range" ) ":" <val (/<expr = .expr - pitch - range > /, & ? ROUTINE . WHY )> }
3636rule expr-pitch-range { :i <number > }
3737# | pitch: <frequency> | x-low | low | medium | high | x-high
3838rule decl :sym <pitch > { :i (pitch) ":" <val (/<expr = .expr - pitch > /, & ? ROUTINE . WHY )> }
39- rule expr-pitch { :i <frequency > || ["x-low" | low | medium | high | "x-high" ]& <keyw > }
39+ rule expr-pitch { :i <frequency > || ["x-low" | low | medium | high | "x-high" ]& <keyw > }
4040# | play-during: <uri> [ mix || repeat ]? | auto | none
4141rule decl :sym <play-during > { :i ("play-during" ) ":" <val (/<expr = .expr - play - during > /, & ? ROUTINE . WHY )> }
42- rule expr-play-during { :i <uri > [[:my @ S ; mix & <keyw ><!{
43- @ S [0 ]++
42+ rule expr-play-during { :i <uri > [[:my @ S ; mix & <keyw ><!{
43+ @ S [0 ]++
4444}> | repeat & <keyw ><!{
45- @ S [1 ]++
46- }> ]+ ]? || [auto | none ]& <keyw > }
45+ @ S [1 ]++
46+ }> ]+ ]? || [auto | none ]& <keyw > }
4747# | richness: <number>
4848rule decl :sym <richness > { :i (richness) ":" <val (/<expr = .expr - richness > /, & ? ROUTINE . WHY )> }
4949rule expr-richness { :i <number > }
@@ -61,7 +61,7 @@ rule decl:sym<speak-punctuation> { :i ("speak-punctuation") ":" <val(/<expr=.exp
6161rule expr-speak-punctuation { :i [code | none ]& <keyw > }
6262# | speech-rate: <number> | x-slow | slow | medium | fast | x-fast | faster | slower
6363rule decl :sym <speech-rate > { :i ("speech-rate" ) ":" <val (/<expr = .expr - speech - rate > /, & ? ROUTINE . WHY )> }
64- rule expr-speech-rate { :i <number > || ["x-slow" | slow | medium | fast | "x-fast" | faster | slower ]& <keyw > }
64+ rule expr-speech-rate { :i <number > || ["x-slow" | slow | medium | fast | "x-fast" | faster | slower ]& <keyw > }
6565# | stress: <number>
6666rule decl :sym <stress > { :i (stress) ":" <val (/<expr = .expr - stress > /, & ? ROUTINE . WHY )> }
6767rule expr-stress { :i <number > }
@@ -71,22 +71,22 @@ rule expr-voice-family { :i [<generic-voice> || <specific-voice> ]+% <op(",")> }
7171# | male | female | child
7272rule generic-voice { :i [male | female | child ]& <keyw > }
7373# | <identifier> | <string>
74- rule specific-voice { :i <identifier > || <string > }
74+ rule specific-voice { :i <identifier > || <string > }
7575# | volume: <number> | <percentage> | silent | x-soft | soft | medium | loud | x-loud
7676rule decl :sym <volume > { :i (volume) ":" <val (/<expr = .expr - volume > /, & ? ROUTINE . WHY )> }
77- rule expr-volume { :i <number > || <percentage > || [silent | "x-soft" | soft | medium | loud | "x-loud" ]& <keyw > }
77+ rule expr-volume { :i <number > || <percentage > || [silent | "x-soft" | soft | medium | loud | "x-loud" ]& <keyw > }
7878# | border-color: [ <color> | transparent ]{1,4}
7979rule decl :sym <border-color > { :i ("border-color" ) ":" <val (/<expr = .expr - border - color > /, & ? ROUTINE . WHY )> }
8080rule expr-border-color { :i [<color > || transparent & <keyw > ]** 1.. 4 }
8181# | border-top-color: <color> | transparent
8282rule decl :sym <border-top-color > { :i ("border-top-color" ) ":" <val (/<expr = .expr - border - top - color > /, & ? ROUTINE . WHY )> }
83- rule expr-border-top-color { :i <color > || transparent & <keyw > }
83+ rule expr-border-top-color { :i <color > || transparent & <keyw > }
8484# | border-top-color: <color> | transparent
8585rule decl :sym <border-right-color > { :i ("border-right-color" ) ":" <val (/<expr = .expr - border - right - color > /, & ? ROUTINE . WHY )> }
86- rule expr-border-right-color { :i <color > || transparent & <keyw > }
86+ rule expr-border-right-color { :i <color > || transparent & <keyw > }
8787# | border-top-color: <color> | transparent
8888rule decl :sym <border-bottom-color > { :i ("border-bottom-color" ) ":" <val (/<expr = .expr - border - bottom - color > /, & ? ROUTINE . WHY )> }
89- rule expr-border-bottom-color { :i <color > || transparent & <keyw > }
89+ rule expr-border-bottom-color { :i <color > || transparent & <keyw > }
9090# | border-top-color: <color> | transparent
9191rule decl :sym <border-left-color > { :i ("border-left-color" ) ":" <val (/<expr = .expr - border - left - color > /, & ? ROUTINE . WHY )> }
92- rule expr-border-left-color { :i <color > || transparent & <keyw > }
92+ rule expr-border-left-color { :i <color > || transparent & <keyw > }
0 commit comments