https://bz.apache.org/bugzilla/show_bug.cgi?id=58648

--- Comment #7 from Dominik Stadler <dominik.stad...@gmx.at> ---
My approach would be to handle this in FormulaParser.intersectionExpression()
as follows, however I fear that this might lead to hard to track errors with
formula parsing and/or misleading error messages, any thoughts or ideas how to
do this better? I.e. maybe intersection is only possible in some specific
places in the formula and we can only allow it there in the first place?

   private ParseNode intersectionExpression() {
        ParseNode result = comparisonExpression();
        boolean hasIntersections = false;
        while (true) {
            SkipWhite();
            if (_inIntersection) {
                int savePointer = _pointer;

                // Don't getChar() as the space has already been eaten and
recorded by SkipWhite().
                try {
                    ParseNode other = comparisonExpression();
                    result = new ParseNode(IntersectionPtg.instance, result,
other);
                    hasIntersections = true;
                    continue;
                } catch (FormulaParseException e) {
                    // if parsing for intersection fails we assume that we
actually had an arbitrary
                    // whitespace and thus should simply skip this whitespace
                    resetPointer(_pointer);
                }
            }
            if (hasIntersections) {
                return augmentWithMemPtg(result);
            }
            return result;
        }
    }

-- 
You are receiving this mail because:
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@poi.apache.org
For additional commands, e-mail: dev-h...@poi.apache.org

Reply via email to