[PATCH libxkbcommon 0/2] Use flex and bison features

Gaetan Nadon memsize at videotron.ca
Fri Feb 24 13:16:19 PST 2012


On 12-02-24 02:25 PM, Ran Benita wrote:
> On Fri, Feb 24, 2012 at 10:16:39AM -0500, Gaetan Nadon wrote:
>> On 12-02-23 07:58 PM, Ran Benita wrote:
>>> - I couldn't figure out the coding style (there seems to be use of
>>>   *all* of them...), so I just tried to match the surroundings.
>>> - I've been using libxkbcommon for some time and I have some more
>>>   patches laying around. I can send them too if all is well.
>>>
>> These look perfect to me. I build them on Linux with bison 2.4.1 and
>> flex 2.5.35.
>> I don't know if there could be differences on other platforms such as
>> Solaris, *BSD MAC, it does not look like there would be any bison/flex
>> specific features being used.
>>
>> The title of the e-mail makes it sound like you are using features that
>> are specific to flex & bison as opposed to lex & yacc. You are also
>> saying you are breaking compatibility with lex & yacc, I am confused. I
>> suppose you are aware that this library builds on multiple platforms
>> with a variety of scanner/lexer. We document the tools requirements in
>> http://www.x.org/wiki/ModularDevelopersGuide#Required_Tools, but it is
>> not very clear in this case.
> Thanks for the link. I wasn't previously aware of byacc; I tried it now.
> The first patch works fine, but the second does rely on a bison-only
> feature (the YYLTYPE location stuff). But does the link mean that I
> should refactor the code to work with byacc as well (probably possible
> with some #ifdef's)? I would imagine that if flex is required for a
> given platform (as per the link), than bison should be available as
> well. I can also add some configure checks if necessary.
We don't have an exact account of which scanner/lexer tool is used on
which platform. I guess it has been trial and error, or some people know
but it's not written down. To help the research, here are the X.Org
modules that use lex & yacc tools. You can compare to see if they use
bison specific features.

    xserver
    lib/libXaw3d
    app/xkbcomp
    app/xgc
    app/xkbevd
    app/twm

Note that the AC_PROG_YACC and AC_PROG_LEX macros job is to test for the
presence of such tools by trying various names. In the Makefile you can
see the tool name that was found, in my case:

    YACC = bison -y
    LEX = flex

I know that not all platforms use the GNU compiler, so I guess it would
be the same for lex & yacc. Hopefully others will shed some light on this.

>
>> One should run 'make maintainer-clean' to remove the old generated code.
>> Ping me if you need someone to push the patches after review.
>>
>> Acked-by: Gaetan Nadon<memsize at videotron.ca>
> Great!
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.x.org/archives/xorg-devel/attachments/20120224/05f49695/attachment.html>


More information about the xorg-devel mailing list