pparser_ParseSource_CreateDefaultDefs.pp.patch (3,802 bytes)
Index: packages/fcl-passrc/src/pparser.pp
===================================================================
--- packages/fcl-passrc/src/pparser.pp (revision 35878)
+++ packages/fcl-passrc/src/pparser.pp (working copy)
@@ -402,7 +402,8 @@
function ParseSource(AEngine: TPasTreeContainer;
const FPCCommandLine, OSTarget, CPUTarget: String;
- UseStreams : Boolean = False): TPasModule;
+ UseStreams : Boolean = False;
+ CreateDefaultDefs : Boolean = true): TPasModule;
Function IsHintToken(T : String; Out AHint : TPasMemberHint) : boolean;
Function IsProcModifier(S : String; Out PM : TProcedureModifier) : Boolean;
Function IsCallingConvention(S : String; out CC : TCallingConvention) : Boolean;
@@ -497,7 +498,8 @@
function ParseSource(AEngine: TPasTreeContainer;
const FPCCommandLine, OSTarget, CPUTarget: String;
- UseStreams : Boolean = False): TPasModule;
+ UseStreams : Boolean = False;
+ CreateDefaultDefs : Boolean = true): TPasModule;
var
FileResolver: TFileResolver;
Parser: TPasParser;
@@ -557,48 +559,51 @@
FileResolver := TFileResolver.Create;
FileResolver.UseStreams:=UseStreams;
Scanner := TPascalScanner.Create(FileResolver);
- Scanner.AddDefine('FPK');
- Scanner.AddDefine('FPC');
SCanner.LogEvents:=AEngine.ScannerLogEvents;
SCanner.OnLog:=AEngine.Onlog;
- // TargetOS
- s := UpperCase(OSTarget);
- Scanner.AddDefine(s);
- if s = 'LINUX' then
- Scanner.AddDefine('UNIX')
- else if s = 'FREEBSD' then
+ if CreateDefaultDefs then
begin
- Scanner.AddDefine('BSD');
- Scanner.AddDefine('UNIX');
- end else if s = 'NETBSD' then
- begin
- Scanner.AddDefine('BSD');
- Scanner.AddDefine('UNIX');
- end else if s = 'SUNOS' then
- begin
- Scanner.AddDefine('SOLARIS');
- Scanner.AddDefine('UNIX');
- end else if s = 'GO32V2' then
- Scanner.AddDefine('DPMI')
- else if s = 'BEOS' then
- Scanner.AddDefine('UNIX')
- else if s = 'QNX' then
- Scanner.AddDefine('UNIX')
- else if s = 'AROS' then
- Scanner.AddDefine('HASAMIGA')
- else if s = 'MORPHOS' then
- Scanner.AddDefine('HASAMIGA')
- else if s = 'AMIGA' then
- Scanner.AddDefine('HASAMIGA');
+ Scanner.AddDefine('FPK');
+ Scanner.AddDefine('FPC');
+ // TargetOS
+ s := UpperCase(OSTarget);
+ Scanner.AddDefine(s);
+ if s = 'LINUX' then
+ Scanner.AddDefine('UNIX')
+ else if s = 'FREEBSD' then
+ begin
+ Scanner.AddDefine('BSD');
+ Scanner.AddDefine('UNIX');
+ end else if s = 'NETBSD' then
+ begin
+ Scanner.AddDefine('BSD');
+ Scanner.AddDefine('UNIX');
+ end else if s = 'SUNOS' then
+ begin
+ Scanner.AddDefine('SOLARIS');
+ Scanner.AddDefine('UNIX');
+ end else if s = 'GO32V2' then
+ Scanner.AddDefine('DPMI')
+ else if s = 'BEOS' then
+ Scanner.AddDefine('UNIX')
+ else if s = 'QNX' then
+ Scanner.AddDefine('UNIX')
+ else if s = 'AROS' then
+ Scanner.AddDefine('HASAMIGA')
+ else if s = 'MORPHOS' then
+ Scanner.AddDefine('HASAMIGA')
+ else if s = 'AMIGA' then
+ Scanner.AddDefine('HASAMIGA');
- // TargetCPU
- s := UpperCase(CPUTarget);
- Scanner.AddDefine('CPU'+s);
- if (s='X86_64') then
- Scanner.AddDefine('CPU64')
- else
- Scanner.AddDefine('CPU32');
+ // TargetCPU
+ s := UpperCase(CPUTarget);
+ Scanner.AddDefine('CPU'+s);
+ if (s='X86_64') then
+ Scanner.AddDefine('CPU64')
+ else
+ Scanner.AddDefine('CPU32');
+ end;
Parser := TPasParser.Create(Scanner, FileResolver, AEngine);
Filename := '';