| Hey guys, 
 Remember a while back I wanted to work on (or have done) syntax
    highlighting for grammars (specifically Flex and Bison) and by doing
    it build the ground work for any utilities that mix C(++) and some
    other way of defining things at compile time?
 
 I started doing that and as first things first I started creating my
    control, a project which Eclipse either didn't like or ignored files
    of and to go from there.
 
 I didn't get that far, Eclipse CDT is making up non-existent
    semantic errors.
 
 Prototype:
 
 static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file
      ,yyscan_t yyscanner );
 
 Implementation:
 
 static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file
      , yyscan_t yyscanner)
 
 {
 
 (...)
 
 Line with error:
 
 yy_init_buffer(YY_CURRENT_BUFFER,input_file ,yyscanner);
 
 Error:
 Invalid arguments '
 Candidates are:
 void yy_init_buffer(yy_buffer_state *, _IO_FILE *, void *)
 '
 
 Typedefs and macros at play:
 
 YY_BUFFER_STATE is a yy_buffer_state* - CDT recognises this when
    I mouse over.
 
 YY_CURRENT_BUFFER is a macro that gets the current YY_BUFFER_STATE
    from a stack (array) of them, stored in yy_guts, which mousing over
    shows it's happy with.
 
 FILE is a typedef of _IO_FILE, Eclipse sees this again
 
 yyscan_t is a typedef of a void* (usually (read: to the best of my
    knowledge) a pointer to yy_guts)
 
 This is a reentrant scanner for those trying to re-create it.
    Nothing to do either with the actual lexing part, so to re-create:
 
 %option reentrant
 %%
 
 Is all you need for the grammar. I had the extra option with
    noyywrap but I've just test this, the error persists without (I knew
    this, for those thinking "why, that wouldn't have made a difference"
    - I just want you guys to know empirically that the error carries
    on)
 
 Lastly:
 Note that the compiler is fine, -Wall and -Wextra as everyone
    should (GCC 4.9 from last week) - it gives unused function warnings
    but no errors. CDT correctly marks the warnings with the yellow
    warning markers.
 
 I am compiling with --std=c++11, this is not causing the problem
    though.
 
 I also include <stdio.h> but (again not surprisingly) with or
    without the problem persists.
 
 So you can see this is not a Flex thing, CDT is somehow not
    recognising the types, even though it does... which is weird. This
    is not a using Flex problem either, everything compiles and runs, I
      am not stuck - this is about fabricating semantic errors. It
    ought not be specific to flex.
 
 (there are 3 errors it picks up, this details one, all 3 are not
    actually errors - I've created text-code that even uses the
    functions these 'error' functions have call-sites in just in case
    that'd change anything, I've rebuilt the index and rescanned, I've
    restarted the workspace....
 
 Eclipse 4.2 with the latest CDT that can be installed from the
    default update site.
 
 Alec
 
 |