Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / fpc-devel / 2006-09

makeskel fails to parse file

6 messages · 2 people · –

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Graeme Geldenhuys

Hi,

I am using the latest FPC 2.0.5 from SubVersion. (rev 4550). I am trying to promote "fpdoc" to the tiOPF developers and hit a brick wall with my first attempt! :-(

I am trying to run "makeskel" against a project I work on (tiOPF), but makeskel keeps giving me the error below. I created a simple one unit demo app, with the same include file (tiDefines.inc) as used in the tiOPF project. See attached file. The project compiles fine with FPC, but makeskel fails. The IFDEF's in tiDefines.inc are needed due to tiOPF compiling against Delphi 7-2006 and FPC.

Below is the makeskel line I execute and the error I receive. Anybody got ideas as to what is causing this problem.

-------------------------------
$> makeskel --output=docs/tiopf.xml --input='-Fi. -FU. unit1.pas' --package=tiOPF

MakeSkel - FPDoc skeleton XML description file generator (c) 2000 - 2003 Areca Systems GmbH / Sebastian Guenther,

An unhandled exception occurred at $08091D93 :
EParserError : Expected "interface" at token "EOF" $08091D93
$0809225F
$080936EF
$080935B4
$080976AE
$080499AA

-------------------------------

Regards,
- Graeme -

There's no place like 127.0.0.1

Reply by email

Graeme Geldenhuys
to Graeme Geldenhuys

Anybody got some clues as to what is causing the "makeskel" program to crash?

Regrads,
- Graeme -

Graeme Geldenhuys wrote 37 lines
Hi, I am using the latest FPC 2.0.5 from SubVersion. (rev 4550). I am trying to promote "fpdoc" to the tiOPF developers and hit a brick wall with my first attempt! :-( I am trying to run "makeskel" against a project I work on (tiOPF), but makeskel keeps giving me the error below. I created a simple one unit demo app, with the same include file (tiDefines.inc) as used in the tiOPF project. See attached file. The project compiles fine with FPC, but makeskel fails. The IFDEF's in tiDefines.inc are needed due to tiOPF compiling against Delphi 7-2006 and FPC. Below is the makeskel line I execute and the error I receive. Anybody got ideas as to what is causing this problem. ------------------------------- $> makeskel --output=docs/tiopf.xml --input='-Fi. -FU. unit1.pas' --package=tiOPF MakeSkel - FPDoc skeleton XML description file generator (c) 2000 - 2003 Areca Systems GmbH / Sebastian Guenther, An unhandled exception occurred at $08091D93 : EParserError : Expected "interface" at token "EOF" $08091D93 $0809225F $080936EF $080935B4 $080976AE $080499AA ------------------------------- Regards, - Graeme -

Reply by email

Graeme Geldenhuys
to Graeme Geldenhuys: I am using the latest FPC 2.0.5 from SubVersion. (rev 4550). I am trying to promote…

Hi All,

I found the problem using a process of elimination and found the the IFDEF LINUX define causes "makeskel" to crash. Luckily I don't need the Kylix ifdef's anymore, so was able to remove it and continue working with makeskel.

Still not sure what in the IFDEF LINUX caused the problem though... Does makeskel and FPC support the "If Declared(...)" syntax?

----------  CUT  ----------------
//Delphi 6 & Kylix 1-3
{$IFDEF VER140}
  {$IFDEF MSWINDOWS}
    {$DEFINE DELPHI5ORABOVE}
    {$DEFINE DELPHI6ORABOVE}
    {$DEFINE DELPHI6}
  {$ENDIF MSWINDOWS}
  {$IFDEF LINUX}
    // Kylix is compatible with Delphi 6, so we include them here as well.
    // Might change this later.
    {$DEFINE DELPHI5ORABOVE}
    {$DEFINE DELPHI6ORABOVE}
    {$DEFINE DELPHI6}
    {$IFDEF CONDITIONALEXPRESSIONS}
      {$IFDEF CompilerVersion}
         // Important:  Don't use CompilerVersion here as
         // $IF's are evaluated before $IFDEF's
         // and Kylix 1 does not have CompilerVersion defined at all.
         {$IF Declared(RTLVersion) and (RTLVersion = 14.20)}
           {$DEFINE KYLIX2}
           {$DEFINE KYLIX1ORABOVE}
           {$DEFINE KYLIX2ORABOVE}
         {$IFEND}
         {$IF Declared(RTLVersion) and (RTLVersion = 14.50)}
           {$DEFINE KYLIX3}
           {$DEFINE KYLIX1ORABOVE}
           {$DEFINE KYLIX2ORABOVE}
           {$DEFINE KYLIX3ORABOVE}
         {$IFEND}
      {$ELSE}
         //CompilerVersion is not defined under Kylix 1
         {$DEFINE KYLIX1}
         {$DEFINE KYLIX1ORABOVE}
      {$ENDIF}
    {$ENDIF}
  {$ENDIF}
{$ENDIF}
-----------  END  --------------

Regards,
- Graeme -

Graeme Geldenhuys wrote 36 lines
Hi, I am using the latest FPC 2.0.5 from SubVersion. (rev 4550). I am trying to promote "fpdoc" to the tiOPF developers and hit a brick wall with my first attempt! :-( I am trying to run "makeskel" against a project I work on (tiOPF), but makeskel keeps giving me the error below. I created a simple one unit demo app, with the same include file (tiDefines.inc) as used in the tiOPF project. See attached file. The project compiles fine with FPC, but makeskel fails. The IFDEF's in tiDefines.inc are needed due to tiOPF compiling against Delphi 7-2006 and FPC. Below is the makeskel line I execute and the error I receive. Anybody got ideas as to what is causing this problem. ------------------------------- $> makeskel --output=docs/tiopf.xml --input='-Fi. -FU. unit1.pas' --package=tiOPF MakeSkel - FPDoc skeleton XML description file generator (c) 2000 - 2003 Areca Systems GmbH / Sebastian Guenther, An unhandled exception occurred at $08091D93 : EParserError : Expected "interface" at token "EOF" $08091D93 $0809225F $080936EF $080935B4 $080976AE $080499AA ------------------------------- Regards, - Graeme -
There's no place like 127.0.0.1

Reply by email

Pete Cervasio
to Graeme Geldenhuys
Graeme Geldenhuys wrote
Still not sure what in the IFDEF LINUX caused the problem though... Does makeskel and FPC support the "If Declared(...)" syntax?

This might not be a big help with your specific problem, but the set if IFDEFs doesn't quite work the way it looks like it's expected to, at least not in my copy of Kylix 3.

{$IFDEF CompilerVersion}

I believe this should be {$IF DECLARED (CompilerVersion) } instead. If I use the above $IFDEF, I always get the result that it's undefined unless I define it myself.

I hope this is helpful,
Pete C.

Reply by email

Graeme Geldenhuys
to Pete Cervasio

I haven't used Kylix 3 Pro for over a year. I had my copy of Kylix fully patched - not sure if that made a difference. The IFDEF's did work at that stage though. Strange I guess, seeing that yours doesn't. If I remember correctly, I got all those ifdef's from the Indy project.

Anyway, Kylix wasn't my issue as I use FPC now. I now removed all traces of Kylix out of my projects. I just thought I would mention here that that bit of IFDEF's caused makeskel to crash. Since I removed it, makeskel works against my code.

Regards,
- Graeme -

Pete Cervasio wrote 21 lines
On Thursday 14 September 2006 07:06, Graeme Geldenhuys wrote: > Still not sure what in the IFDEF LINUX caused the problem though... > Does makeskel and FPC support the "If Declared(...)" syntax? This might not be a big help with your specific problem, but the set if IFDEFs doesn't quite work the way it looks like it's expected to, at least not in my copy of Kylix 3. > {$IFDEF CompilerVersion} I believe this should be {$IF DECLARED (CompilerVersion) } instead. If I use the above $IFDEF, I always get the result that it's undefined unless I define it myself. I hope this is helpful, Pete C. _______________________________________________ fpc-devel maillist - http://lists.freepascal.org/mailman/listinfo/fpc-devel
There's no place like 127.0.0.1

Reply by email

Pete Cervasio
to Graeme Geldenhuys
Graeme Geldenhuys wrote
I haven't used Kylix 3 Pro for over a year. I had my copy of Kylix fully patched - not sure if that made a difference. The IFDEF's did work at that stage though. Strange I guess, seeing that yours doesn't.

Yeah, that's definitely strange. I think it shouldn't have worked, according to the docs. In the Kylix help they say:

"Conditional symbols are not Delphi identifiers and cannot be referenced in actual program code. Similarly, Delphi identifiers cannot be referenced in any conditional directives other than $IF and $ELSEIF."

Oh, you were right about where you found that - The Indy components shipped with Kylix 3 had that exact bit of code. It's moot now, since you took all the Kylix stuff out of your project, but Indy 10 has changed how that check is made, eschewing $IFDEF for $IF.

Best regards,
Pete C.

Reply by email