private static ExpressionTree removeParenthesis(ExpressionTree expressionTree) { if (expressionTree.is(Tree.Kind.PARENTHESISED_EXPRESSION)) { return removeParenthesis(((ParenthesisedExpressionTree) expressionTree).expression()); } return expressionTree; }
private static ExpressionTree removeParenthesis(ExpressionTree expressionTree) { if (expressionTree.is(Tree.Kind.PARENTHESISED_EXPRESSION)) { return removeParenthesis(((ParenthesisedExpressionTree) expressionTree).expression()); } return expressionTree; }
private void flattenLogicalExpression(int i, List<SyntaxToken> operators, ExpressionTree expression) { if (expression.is(CONDITIONAL_AND, CONDITIONAL_OR)) { nestedLogicalExpressions.add(expression); BinaryExpressionTree binaryExpression = (BinaryExpressionTree) expression; operators.add(i, binaryExpression.operator()); ExpressionTree leftChild = removeParenthesis(binaryExpression.leftOperand()); ExpressionTree rightChild = removeParenthesis(binaryExpression.rightOperand()); flattenLogicalExpression(i + 1, operators, rightChild); flattenLogicalExpression(i, operators, leftChild); } }
private void flattenLogicalExpression(int i, List<SyntaxToken> operators, ExpressionTree expression) { if (expression.is(CONDITIONAL_AND, CONDITIONAL_OR)) { nestedLogicalExpressions.add(expression); BinaryExpressionTree binaryExpression = (BinaryExpressionTree) expression; operators.add(i, binaryExpression.operator()); ExpressionTree leftChild = removeParenthesis(binaryExpression.leftOperand()); ExpressionTree rightChild = removeParenthesis(binaryExpression.rightOperand()); flattenLogicalExpression(i + 1, operators, rightChild); flattenLogicalExpression(i, operators, leftChild); } }