11unit grammar Test::CSS::Aural::Spec::Grammar ;
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 >]<!{
4+ rule expr-azimuth { :i <angle > || [[:my @ S ; [["left-side" | "far-left" | left | "center-left" | center | "center-right" | right | "far-right" | "right-side" ]& <keyw > ]<!{
55 @ S [0 ]++
6- }> | behind & <keyw ><!{
6+ }> | behind & <keyw > <!{
77 @ S [1 ]++
8- }> ]+ ] || [leftwards | rightwards ]& <keyw > }
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 )> }
1717rule expr-cue { :i [[:my @ S ; <expr - cue - before ><!{
@@ -21,7 +21,7 @@ rule expr-cue { :i [[:my @S; <expr-cue-before><!{
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] }
@@ -36,57 +36,57 @@ rule decl:sym<pitch-range> { :i ("pitch-range") ":" <val(/<expr=.expr-pitch-rang
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 ><!{
42+ rule expr-play-during { :i <uri > [[:my @ S ; mix & <keyw > <!{
4343 @ S [0 ]++
44- }> | repeat & <keyw ><!{
44+ }> | repeat & <keyw > <!{
4545 @ S [1 ]++
46- }> ]+ ]? || [auto | none ]& <keyw > }
46+ }> ]+ ]? || [auto | none ]& <keyw > }
4747# | richness: <number>
4848rule decl :sym <richness > { :i (richness) ":" <val (/<expr = .expr - richness > /, & ? ROUTINE . WHY )> }
4949rule expr-richness { :i <number > }
5050# | speak: normal | none | spell-out
5151rule decl :sym <speak > { :i (speak) ":" <val (/<expr = .expr - speak > /, & ? ROUTINE . WHY )> }
52- rule expr-speak { :i [normal | none | "spell-out" ]& <keyw > }
52+ rule expr-speak { :i [normal | none | "spell-out" ]& <keyw > }
5353# | speak-header: once | always
5454rule decl :sym <speak-header > { :i ("speak-header" ) ":" <val (/<expr = .expr - speak - header > /, & ? ROUTINE . WHY )> }
55- rule expr-speak-header { :i [once | always ]& <keyw > }
55+ rule expr-speak-header { :i [once | always ]& <keyw > }
5656# | speak-numeral: digits | continuous
5757rule decl :sym <speak-numeral > { :i ("speak-numeral" ) ":" <val (/<expr = .expr - speak - numeral > /, & ? ROUTINE . WHY )> }
58- rule expr-speak-numeral { :i [digits | continuous ]& <keyw > }
58+ rule expr-speak-numeral { :i [digits | continuous ]& <keyw > }
5959# | speak-punctuation: code | none
6060rule decl :sym <speak-punctuation > { :i ("speak-punctuation" ) ":" <val (/<expr = .expr - speak - punctuation > /, & ? ROUTINE . WHY )> }
61- rule expr-speak-punctuation { :i [code | none ]& <keyw > }
61+ rule 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 > }
6868# | voice-family: [<generic-voice> | <specific-voice> ]#
6969rule decl :sym <voice-family > { :i ("voice-family" ) ":" <val (/<expr = .expr - voice - family > /, & ? ROUTINE . WHY )> }
7070rule expr-voice-family { :i [<generic - voice > || <specific - voice > ]+% <op (" ," )> }
7171# | male | female | child
72- rule generic-voice { :i [male | female | child ]& <keyw > }
72+ rule generic-voice { :i [male | female | child ]& <keyw > }
7373# | <identifier> | <string>
7474rule 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 >** 1.. 4 /, & ? ROUTINE . WHY )> }
80- rule expr-border-color { :i [<color > || transparent & <keyw > ] }
80+ rule expr-border-color { :i [<color > || transparent & <keyw > ] }
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