From 3dd3714234537bedfa29f5ecad325887db4ec8b8 Mon Sep 17 00:00:00 2001 From: tophf Date: Fri, 26 Jun 2020 07:14:26 +0300 Subject: [PATCH] add "||" column combinator --- vendor-overwrites/csslint/parserlib.js | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/vendor-overwrites/csslint/parserlib.js b/vendor-overwrites/csslint/parserlib.js index b0a87423..3a4f5d45 100644 --- a/vendor-overwrites/csslint/parserlib.js +++ b/vendor-overwrites/csslint/parserlib.js @@ -1426,6 +1426,7 @@ self.parserlib = (() => { GREATER: {text: '>'}, COMMA: {text: ','}, TILDE: {text: '~'}, + COLUMN: {text: '||'}, // modifier NOT: {}, @@ -1468,7 +1469,6 @@ self.parserlib = (() => { // part of CSS3 grammar but not the Flex code CHAR: {}, - // TODO: Needed? // Not defined as tokens, but might as well be PIPE: {text: '|'}, SLASH: {text: '/'}, @@ -2205,6 +2205,7 @@ self.parserlib = (() => { value === '>' ? 'child' : value === '+' ? 'adjacent-sibling' : value === '~' ? 'sibling' : + value === '||' ? 'column' : !value.trim() ? 'descendant' : 'unknown'; } @@ -2943,6 +2944,7 @@ self.parserlib = (() => { * - PREFIXMATCH * - SUFFIXMATCH * - SUBSTRINGMATCH + * - COLUMN * - CHAR */ case '|': @@ -2950,10 +2952,11 @@ self.parserlib = (() => { case '^': case '$': case '*': - return reader.peek() === '=' ? - this.comparisonToken(c, pos) : - this.charToken(c, pos); - + return ( + reader.peek() === '=' ? this.comparisonToken(c, pos) : + reader.readMatch('|') ? this.createToken(Tokens.COLUMN, '||', pos) : + this.charToken(c, pos) + ); /* * Potential tokens: * - STRING @@ -4369,7 +4372,7 @@ self.parserlib = (() => { } _combinator() { - if (this._tokenStream.match([Tokens.PLUS, Tokens.GREATER, Tokens.TILDE])) { + if (this._tokenStream.match([Tokens.PLUS, Tokens.GREATER, Tokens.TILDE, Tokens.COLUMN])) { const value = new Combinator(this._tokenStream._token); this._ws(); return value; @@ -4634,7 +4637,7 @@ self.parserlib = (() => { if (stream.match([Tokens.IDENT])) { const caseMod = lower(stream._token.value); - if (caseMod === 'i' || caseMode === 's') { + if (caseMod === 'i' || caseMod === 's') { value += stream._token.value + this._ws(); } else {