private void term() {
            factor();
            while (this.currentToken == ConstantToken.AND) {
                And and = new And();
                and.left = this.root;
                factor();
                and.right = this.root;
                this.root = and;
            }
        }
The current root of the AST
common/src/main/java/me/lucko/luckperms/common/verbose/expression/BooleanExpressionCompiler.java