@Nonnull private CSSExpression _createExpression(@Nonnull final CSSNode aNode) { _expectNodeType(aNode, ECSSNodeType.EXPR); final CSSExpression ret = new CSSExpression(); ret.setSourceLocation(aNode.getSourceLocation()); for (final CSSNode aChildNode : aNode) { if (ECSSNodeType.EXPRTERM.isNode(aChildNode, m_eVersion)) ret.addMember(_createExpressionTerm(aChildNode)); else if (ECSSNodeType.EXPROPERATOR.isNode(aChildNode, m_eVersion)) { final String sText = aChildNode.getText(); final ECSSExpressionOperator eOp = ECSSExpressionOperator.getFromNameOrNull(sText); if (eOp == null) s_aLogger.error("Failed to parse expression operator '" + sText + "'"); else ret.addMember(eOp); } else { s_aLogger.error( "Unsupported child of " + ECSSNodeType.getNodeName(aNode, m_eVersion) + ": " + ECSSNodeType.getNodeName(aChildNode, m_eVersion)); } } return ret; }