public FixedMediaExpression handleMediaExpression(HiddenTokenAwareTree token) {
List<HiddenTokenAwareTree> children = token.getChildren();
HiddenTokenAwareTree featureNode = children.get(0);
if (children.size() == 1)
return new FixedMediaExpression(token, new MediaExpressionFeature(featureNode, featureNode.getText()), null);
if (children.size() == 2)
throw new BugHappened(GRAMMAR_MISMATCH, token);
HiddenTokenAwareTree colonNode = children.get(1);
featureNode.addFollowing(colonNode.getPreceding());
HiddenTokenAwareTree expressionNode = children.get(2);
Expression expression = (Expression) switchOn(expressionNode);
return new FixedMediaExpression(token, new MediaExpressionFeature(featureNode, featureNode.getText()), expression);
}