Skip to content

Commit f39eb89

Browse files
committed
Fix double-negative on combo test
It's a negative assertion to begin with.
1 parent c53391f commit f39eb89

File tree

3 files changed

+11
-18
lines changed

3 files changed

+11
-18
lines changed

lib/CSS/Specification/Compiler/Grammars.rakumod

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -188,13 +188,6 @@ sub call(Str:D $id, :@args) is export {
188188
RakuAST::Call::Method.new: :$name, :$args;
189189
}
190190

191-
sub prefix($operand, Str:D $op) {
192-
my RakuAST::Prefix $prefix .= new($op);
193-
RakuAST::ApplyPrefix.new(
194-
:$operand, :$prefix
195-
)
196-
}
197-
198191
multi sub postfix($operand, Str:D $operator) {
199192
$operand.&postfix: RakuAST::Postfix.new(:$operator);
200193
}
@@ -206,13 +199,13 @@ multi sub postfix($operand, $postfix) {
206199
}
207200

208201

209-
sub seen(Int:D $id) is export {
202+
sub unseen(Int:D $id) is export {
210203
my RakuAST::Postcircumfix $op = $id.&arg.&array-index;
211204
my RakuAST::Var $operand = '@S'.&lexical;
212205
my RakuAST::Block $block .= new(
213206
body => RakuAST::Blockoid.new(
214207
statements(
215-
expression $operand.&postfix($op).&postfix('++').&prefix('!')
208+
expression $operand.&postfix($op).&postfix('++')
216209
)
217210
)
218211
);
@@ -270,7 +263,7 @@ multi sub compile(:@combo!, Bool :$required) {
270263
).&ws;
271264
my UInt $n = 0;
272265
my @atoms = @combo.map: {
273-
my RakuAST::Regex::Assertion $seen = $n++.&seen;
266+
my RakuAST::Regex::Assertion $seen = $n++.&unseen;
274267
my RakuAST::Regex $term = .&compile;
275268
my @seq = [$term, $seen];
276269
@seq.unshift: Seen-Decl if $n == 1;

t/00compile.t

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -106,13 +106,13 @@ for (
106106
'spec' => {
107107
input => 'bold thin && <length>',
108108
ast => :required[:seq[:keywords["bold"], :keywords["thin"]], :rule("length")],
109-
deparse => "[:my \@S\n; bold \& <keyw> thin \& <keyw> <!\{\n !\@S[0]++\n}>| <length><!\{\n !\@S[1]++\n}>]** 2",
109+
deparse => "[:my \@S\n; bold \& <keyw> thin \& <keyw> <!\{\n \@S[0]++\n}>| <length><!\{\n \@S[1]++\n}>]** 2",
110110
rule-refs => ['length'],
111111
},
112112
'spec' => {
113113
input => 'bold || thin && <length>',
114114
ast => :combo[:keywords["bold"], :required[:keywords["thin"], :rule("length")]],
115-
deparse => "[:my \@S\n; bold \& <keyw><!\{\n !\@S[0]++\n}>| [:my \@S\n; thin \& <keyw><!\{\n !\@S[0]++\n}>| <length><!\{\n !\@S[1]++\n}>]** 2<!\{\n !\@S[1]++\n}>]+",
115+
deparse => "[:my \@S\n; bold \& <keyw><!\{\n \@S[0]++\n}>| [:my \@S\n; thin \& <keyw><!\{\n \@S[0]++\n}>| <length><!\{\n \@S[1]++\n}>]** 2<!\{\n \@S[1]++\n}>]+",
116116
rule-refs => ['length'],
117117
},
118118
'property-spec' => {

t/lib/Test/CSS/Aural/Spec/Grammar.rakumod

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ unit 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
33
rule decl:sym<azimuth> { :i (azimuth) ":" <val(/<expr=.expr-azimuth> /, &?ROUTINE.WHY)> }
44
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]++
5+
@S[0]++
66
}>| behind & <keyw><!{
7-
!@S[1]++
7+
@S[1]++
88
}>]+] || [leftwards | rightwards ]& <keyw> }
99
#| cue-after: <uri> | none
1010
rule decl:sym<cue-after> { :i ("cue-after") ":" <val(/<expr=.expr-cue-after> /, &?ROUTINE.WHY)> }
@@ -15,9 +15,9 @@ rule expr-cue-before { :i <uri> || none & <keyw> }
1515
#| cue: [ 'cue-before' || 'cue-after' ]
1616
rule decl:sym<cue> { :i (cue) ":" <val(/<expr=.expr-cue> /, &?ROUTINE.WHY)> }
1717
rule expr-cue { :i [[:my @S; <expr-cue-before><!{
18-
!@S[0]++
18+
@S[0]++
1919
}>| <expr-cue-after><!{
20-
!@S[1]++
20+
@S[1]++
2121
}>]+] }
2222
#| elevation: <angle> | below | level | above | higher | lower
2323
rule decl:sym<elevation> { :i (elevation) ":" <val(/<expr=.expr-elevation> /, &?ROUTINE.WHY)> }
@@ -40,9 +40,9 @@ rule expr-pitch { :i <frequency> || ["x-low" | low | medium | high | "x-high" ]&
4040
#| play-during: <uri> [ mix || repeat ]? | auto | none
4141
rule decl:sym<play-during> { :i ("play-during") ":" <val(/<expr=.expr-play-during> /, &?ROUTINE.WHY)> }
4242
rule expr-play-during { :i <uri> [[:my @S; mix & <keyw><!{
43-
!@S[0]++
43+
@S[0]++
4444
}>| repeat & <keyw><!{
45-
!@S[1]++
45+
@S[1]++
4646
}>]+]? || [auto | none ]& <keyw> }
4747
#| richness: <number>
4848
rule decl:sym<richness> { :i (richness) ":" <val(/<expr=.expr-richness> /, &?ROUTINE.WHY)> }

0 commit comments

Comments
 (0)