nl_tokens: Combinators combine elements together in a Selector . Because our parser isn t white - space sensitive special care has to be taken when parsing the descendant combinator as it s an empty space . We have to check the previous character in the input to see if it s a character . More info on how we deal with this in * combinator . js * .
pl_tokens: function ( ) { var c = parserInput . currentChar ( ) ; if ( c === '/' ) { parserInput . save ( ) ; var slashedCombinator = parserInput . $re ( / ^\/[a-z]+\/ / i ) ; if ( slashedCombinator ) { parserInput . forget ( ) ; return <mask> ( tree . Combinator ) ( slashedCombinator ) ; } parserInput . restore ( ) ; } if ( c === '>' || c === '+' || c === '~' || c === '|' || c === '^' ) { parserInput . i ++ ; if ( c === '^' && parserInput . currentChar ( ) === '^' ) { c = '^^' ; parserInput . i ++ ; } while ( parserInput . isWhitespace ( ) ) { parserInput . i ++ ; } return new ( tree . Combinator ) ( c ) ; } else if ( parserInput . isWhitespace ( - 1 ) ) { return new ( tree . Combinator ) ( ' ' ) ; } else { return new ( tree . Combinator ) ( null ) ; } }