public Node createUnaryPrefixExpression(Node operand, org.parboiled.Node<Node> opNode, String symbol) {
if (opNode == null) return operand;
if (!opNode.getChildren().isEmpty() && "cast".equals(opNode.getChildren().get(0).getLabel())) {
return posify(new Cast().rawOperand(operand).rawTypeReference(opNode.getValue()));
} else {
if (symbol != null) symbol = symbol.trim();
if (!symbol.isEmpty()) {
UnaryOperator op = UnaryOperator.fromSymbol(symbol, false);
UnaryExpression expr = new UnaryExpression().rawOperand(operand);