[fpc-pascal] InstantFPC and argv
Tomas Hajny
XHajT03 at hajny.biz
Sat May 5 17:31:02 CEST 2012
On 5 May 12, at 14:20, Mattias Gaertner wrote:
> On Sat, 5 May 2012 14:07:01 +0200 (CEST)
> "Tomas Hajny" <XHajT03 at hajny.biz> wrote:
>
> > On Fri, May 4, 2012 21:58, Marco van de Voort wrote:
> > > In our previous episode, Tomas Hajny said:
> > >> 1) Find the first alphabetic character after the first line (which is
> > >> already processed/skipped by InstantFPC anyway) while ignoring all
> > >> whitespaces and possible comments (in all allowed formats, i.e.
> > >> including
> > >> (* *) ) - the only small complexity here are nested comments, but even
> > >> that is not so difficult to handle.
> > >>
> > >> 2) If there is the 'program' keyword, find the semicolon and continue
> > >> searching for the next alphabetic character while still ignoring
> > >> comments
> > >> and whitespaces (to skip possible global compiler directives).
> > >>
> > >> 3) Write down 'const InstantFPCScriptName = ...;' + LineEnding
> > >> immediately
> > >> before the found alphabetic character (there should be no need to parse
> > >> it).
> > >
> > > Will cause some "misplaced global compiler switch" if after the program
> > > came
> > > an {$mode originally.
> >
> > I don't think so. That's why I suggested skipping all comments in point 1
> > (before 'program') and also point 2 (after 'program' but before anything
> > else) above and also mentioned global compiler directives explicitly
> > ($mode is obviously one of them).
>
> You also have to skip the uses section.
Yes, of course, I forgot that one, but that alone wouldn't change it
much.
> And what about ifdefs?
Well, right, ifdefs might make it fairly complex indeed. :-( The
proposal from Jonas (temporary unit with -Fa) is obviously a better
solution.
Tomas
More information about the fpc-pascal
mailing list