Error: need explicit cast to convert from: int (*C func)(int ) to : char const *

Bob Paddock graceindustr... at gmail.com
Wed Apr 9 15:28:02 UTC 2008


I  assume I have something wrong in my Ragel source file,
but no idea where to look from this error message.

Can anyone shed any light on what this error message means?:

 if ( p == eof )
               ^
BootLoaderStateChart.cpp(713) : Error: need explicit cast to convert
from: int (*C func)(int ) to  : char const *
--- errorlevel 1
1 error, 0 warnings

[p or eof are pointers to functions??  I did not declare eof, was not using
it.]

If I leave out "%% write exec;" I don't get the error.
The line number of cpp(713) seems to be completely bogus.
My Ragel file is not that long, and line 713 of .cpp
isn't anywhere near the offending "p == eof".

My Code:

int BootLoaderStateChart::Execute( const uint8_t *data )
{
  const char *p  = (const char *) data;
  const char *pe = p+1;

  if( (cs == BootLoaderStateChart_error) ||
      (cs == BootLoaderStateChart_first_final)
    )
    {
      return -1; /* Error */
    }

  %% write exec;

    if ( cs == BootLoaderStateChart_error )
     {
      return -1; /* Error */
     }

    if( cs >= BootLoaderStateChart_first_final )
     {
      return 1; /* Matched */
     }
    return 0; /* No Match */
}

Ragels Code:

#line 479 "BootLoaderStateChart.rl"
 {EEPROMFileSize_u16 = 4096;}
 break;
#line 708 "BootLoaderStateChart.cpp"
  }
 }

_again:
 if ( cs == 0 )
  goto _out;
 if ( ++p != pe )
  goto _resume;
 _test_eof: {}
 if ( p == eof )
 {
 const char *__acts = _BootLoaderStateChart_actions +
_BootLoaderStateChart_eof_actions[cs];
 unsigned int __nacts = (unsigned int) *__acts++;
 while ( __nacts-- > 0 ) {
  switch ( *__acts++ ) {
 case 1:
#line 193 "BootLoaderStateChart.rl"
 {
  }
 break;
 case 10:
#line 363 "BootLoaderStateChart.rl"
 {
  }
 break;



Digital Mars Compiler command when building the above:
dmc.exe -c -oDMCDebug\BootLoaderStateChart.obj -D__WXMSW__
-D__WXDEBUG__ -g -o+none -mn -Ar -Ae -HP299 -w-
-I"G:\wx287/include" -I"G:\wx287/contrib/include"
-I"G:\wx287/lib/dmc_lib/mswd" -I" \DM\STLPORT\STLPORT"
BootLoaderStateChart.cpp
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.colm.net/pipermail/ragel/attachments/20080409/e8e2816c/attachment.html>


More information about the ragel-users mailing list