while (node.nextASTNode != null) node = node.nextASTNode;
node = analyzeNegation(node);
node = analyzeSubstatement(node);
if (node instanceof BinaryOperation) {
BinaryOperation binaryOperation = (BinaryOperation)node;
left = analyzeNode(binaryOperation.getLeft());
operation = BooleanOperator.fromMvelOpCode(binaryOperation.getOperation());
right = analyzeNode(binaryOperation.getRight());
} else if (node instanceof RegExMatch) {
left = analyzeNode(node);
operation = BooleanOperator.MATCHES;
Pattern pattern = getFieldValue(RegExMatch.class, "p", (RegExMatch)node);
right = new FixedExpression(String.class, pattern.pattern());