[mira_talk] Re: Type mismatch of LexerInput and LexerOutput [PATCH]

  • From: Shaun Jackman <sjackman@xxxxxxxxx>
  • To: mira_talk@xxxxxxxxxxxxx
  • Date: Tue, 30 Oct 2012 16:30:05 -0700

On 29 October 2012 16:00, Bastien Chevreux <bach@xxxxxxxxxxxx> wrote:
> On Oct 28, 2012, at 21:39 , Shaun Jackman <sjackman@xxxxxxxxx> wrote:
>> Yes, my system is an upgrade from 10.7 to 10.8.
>>
>> I used Xcode 4.5.1 to install the command line tools:
>>
>> i686-apple-darwin11-llvm-g++-4.2 (GCC) 4.2.1 (Based on Apple Inc.
>> build 5658) (LLVM build 2336.11.00)
>
> OK, Xcode is the same as mine but things are clearing up a bit. After 
> installing Xcode and some of MacPorts, I do have the following files on my 
> machine:
>
> $ locate FlexLexer.h
> (1)   
> /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk/usr/include/FlexLexer.h
> (2)   
> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/FlexLexer.h
> (3)   /usr/include/FlexLexer.h
>
> 3 times FlexLexer.h â hmmm. Version 2 and 3 are identical, but the first 
> version (apparently belonging to the old 10.7 SDK) is different. So, what 
> changed?
> $ diff 
> /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk/usr/include/FlexLexer.h
>  /usr/include/FlexLexer.h
> .66c66
> .<      int YYLeng()    const   { return yyleng; }
> .---
> .>      size_t YYLeng() const   { return yyleng; }
> .96c96
> .<      int yyleng;
> .---
> .>      size_t yyleng;
> .133,134c133,134
> .<      virtual int LexerInput( char* buf, int max_size );
> .<      virtual void LexerOutput( const char* buf, int size );
> .---
> .>      virtual size_t LexerInput( char* buf, size_t max_size );
> .>      virtual void LexerOutput( const char* buf, size_t size );
> .163c163
> .<      int yy_n_chars;
> .---
> .>      size_t yy_n_chars;
>
> Now, I think I saw a similar pattern in the patch you wrote. However, as I 
> noted earlier, on my freshly bought 10.8 machine I did not have the 
> compilation problem like you did, everything compiled out of the box (at 
> least the 3.9.x line). Now I am wondering: could it be that, somehow, your 
> system still has an "old" flexer called by default which tries to include 
> "new" flex files (or vice versa)?
>
> What's your version of flex? Mine says:
> $ flex --version
> flex 2.5.35 Apple(flex-31)

Hi Bastien,

I believe I have the new version of flex and FlexLexer.h:

$ flex --version
flex 2.5.35 Apple(flex-31)
$ egrep -m2 'LexerInput|LexerOutput' /usr/include/FlexLexer.h
        virtual size_t LexerInput( char* buf, size_t max_size );
        virtual void LexerOutput( const char* buf, size_t size );

Cheers,
Shaun

--
You have received this mail because you are subscribed to the mira_talk mailing 
list. For information on how to subscribe or unsubscribe, please visit 
http://www.chevreux.org/mira_mailinglists.html

Other related posts: