Using a real parser generator to parse numbers (and dates)

Stephan Bergmann sbergman at redhat.com
Wed Feb 29 05:57:09 PST 2012


On 02/29/2012 11:49 AM, Lionel Elie Mamane wrote:
> 2) I add a const_iterator interface to rtl::OUString. Instead of
>     coding it manually to use iterateCodePoints, I again reuse the
>     power of boost. But I have in my git history a manually-coded
>     version based on iterateCodePoints if for some reason it is
>     desirable (I don't think it is).
>
>     That's also more generally a more "C++ natural" interface to
>     OUStrings, so we can use it throughout our codebase instead of
>     iterateCodePoints.
>
>     I don't define an iterator interface, as this could be *extremely*
>     slow: writing one character in the middle of a string is O(n)
>     (linear in the length of the string) when replacing a
>     surrogates-encoded codepoint by a non-surrogate encoded one and
>     vice-versa.
[...]
> 5) I've stuck the LibreOffice<->Spirit integration in
>     svl/source/numbers/spirit/, but possibly we could move it to a more
>     general location (sal/rtl?) so that it can be reused in other parts
>     of LibreOffice.

Note that the stable sal interface historically stays clear of boost, 
because of differences in the various boost versions available in the 
various environments.  Also, the SDK does not include any boost headers, 
so client code that does not even itself make use of boost could stop to 
compile.

Stephan


More information about the LibreOffice mailing list