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

  • From: Bastien Chevreux <bach@xxxxxxxxxxxx>
  • To: mira_talk@xxxxxxxxxxxxx
  • Date: Tue, 30 Oct 2012 00:00:09 +0100

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)

B.
--
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: