node_modules/gulp-sass/node_modules/node-sass/src/libsass/src/parser.cpp
// look ahead for a token with interpolation in it
// we mostly use the result if there is an interpolation
// everything that passes here gets parsed as one schema
// meaning it will not be parsed as a space separated list
look ahead for a token with interpolation in it
we mostly use the result if there is an interpolation
everything that passes here gets parsed as one schema
meaning it will not be parsed as a space separated list
look ahead for a token with interpolation in it we mostly use the result if there is an interpolation everything that passes here gets parsed as one schema meaning it will not be parsed as a space separated list
Lookahead Parser::lookahead_for_value(const char* start)
  {
    Lookahead rv = Lookahead();
    const char* p = start ? start : position;
    if (const char* q =
      peek <
        non_greedy <
          alternatives <
            block_comment, spaces,
            interpolant,
            identifier,
            variable,
            sequence <
              parenthese_scope,
              interpolant
            >
          >,
          sequence <
            optional_spaces,
            alternatives <
              exactly<'{'>,
              exactly<'}'>,
              exactly<';'>
            >
          >
        >
      >(p)
    ) {
      if (p == q) return rv;
      while (p < q) {
        if (*p == '#' && *(p+1) == '{') {
          rv.has_interpolants = true;
          p = q; break;
        }
        ++ p;
      }
      rv.position = q;
      if (peek < exactly<'{'> >(q)) rv.found = q;
      else if (peek < exactly<';'> >(q)) rv.found = q;
      else if (peek < exactly<'}'> >(q)) rv.found = q;
    }
    return rv;
  }
Lookahead Parser :: lookahead_for_value ( const char * start ) { Lookahead rv = Lookahead ( ) ; const char * p = start ? start : position ; if ( const char * q = peek < non_greedy < alternatives < block_comment , spaces , interpolant , identifier , variable , sequence < parenthese_scope , interpolant > > , sequence < optional_spaces , alternatives < exactly < ' ' > , exactly < ' ' > , exactly < ' ' > > > > > ( p ) ) { if ( p == q ) return rv ; while ( p < q ) { if ( * p == ' ' && * ( p + 1 ) == ' ' ) { rv . has_interpolants = true ; p = q ; break ; } ++ p ; } rv . position = q ; if ( peek < exactly < ' ' > > ( q ) ) rv . found = q ; else if ( peek < exactly < ' ' > > ( q ) ) rv . found = q ; else if ( peek < exactly < ' ' > > ( q ) ) rv . found = q ; } return rv ; }
look ahead for a token with interpolation in it
we mostly use the result if there is an interpolation
everything that passes here gets parsed as one schema
meaning it will not be parsed as a space separated list
look ahead for a token with interpolation in it we mostly use the result if there is an interpolation everything that passes here gets parsed as one schema meaning it will not be parsed as a space separated list
// init result struct // get start position // match in one big "regex" // consume whitespace // main tokens // issue #442 // did we have interpolations? // store anyway // ToDo: remove // check expected opening bracket // only after successfull matching // return result