} else {
Object evaluated = provider.getValue(expression, new Location(null, line, col, -1));
// cannot be empty
if (AuraTextUtil.isEmptyOrWhitespace(evaluated.toString())) {
throw new ParserException(atRule, String.format(INVALID_EMPTY, expression));
}
// parse the media query expression
Source source = new Source(evaluated.toString(), line, col);
SingleInterestBroadcaster<MediaQueryList> single = SingleInterestBroadcaster
.of(MediaQueryList.class, broadcaster);
ParserFactory.mediaQueryListParser().parse(source, single, refiner);
Optional<MediaQueryList> queryList = single.broadcasted();
if (queryList.isPresent()) {
atRule.expression(queryList.get());
}
// nothing should be left in the expression content
if (!source.skipWhitepace().eof()) {
throw new ParserException(source, String.format(UNABLE_PARSE, source.remaining()));
}
}
} catch (QuickFixException e) {
throw new ParserException(e);
}
// return false because we didn't refine the block, just the expression. the standard refiner will pick that up.
return false;
}