List<HiddenTokenAwareTree> children = token.getChildren();
return new IdSelector(token, toInterpolableName(token, children));
}
private InterpolableName toInterpolableName(HiddenTokenAwareTree token, List<HiddenTokenAwareTree> children) {
InterpolableName result = new InterpolableName(token);
for (HiddenTokenAwareTree kid : children) {
String text = kid.getText();
if (text == null || text.length() < 1)
throw new BugHappened(GRAMMAR_MISMATCH, kid);
if (kid.getType() == LessLexer.INTERPOLATED_VARIABLE) {
result.add(new VariableNamePart(kid, toInterpolabledVariable(kid, text)));
} else if (kid.getType() == LessLexer.HASH_SYMBOL) {
// do nothing
} else {
result.add(new FixedNamePart(kid, toFixedName(kid.getType(), text)));
}
}
return result;
}