FPC 3.1.1+ support.

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@5938 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
inoussa
2017-06-15 09:17:38 +00:00
parent 7d59e20f9f
commit c29ba3334f
4 changed files with 20 additions and 5 deletions

View File

@ -20,7 +20,7 @@ uses
{$ELSE} {$ELSE}
TestFrameWork, xmldom, wst_delphi_xml, TestFrameWork, xmldom, wst_delphi_xml,
{$ENDIF} {$ENDIF}
pastree, pascal_parser_intf, xsd_generator, wsdl_generator; pastree, PScanner, pascal_parser_intf, xsd_generator, wsdl_generator;
type type
@ -1383,8 +1383,12 @@ var
prmDef : TPasArgument; prmDef : TPasArgument;
prmTypeDef : TPasType; prmTypeDef : TPasType;
begin begin
p := TPasFunction(tr.CreateElement(TPasFunction,'EchoWideString',cltyp,visDefault,'',0)); p := TPasFunction(tr.CreateElement(TPasFunction,'EchoWideString',cltyp,visDefault,'',0));
{$IFDEF WST_TPASSOURCEPOS}
pt := tr.CreateFunctionType('','result',p,False,Default(TPasSourcePos));
{$ELSE WST_TPASSOURCEPOS}
pt := tr.CreateFunctionType('','result',p,False,'',0); pt := tr.CreateFunctionType('','result',p,False,'',0);
{$ENDIF WST_TPASSOURCEPOS}
pt.ResultEl.ResultType := tr.FindElementNS('WideString',s_xs) as TPasType; pt.ResultEl.ResultType := tr.FindElementNS('WideString',s_xs) as TPasType;
pt.ResultEl.ResultType.AddRef(); pt.ResultEl.ResultType.AddRef();
p.ProcType := pt; p.ProcType := pt;

View File

@ -24,7 +24,7 @@ uses
TestFrameWork, xmldom, wst_delphi_xml, TestFrameWork, xmldom, wst_delphi_xml,
{$ENDIF} {$ENDIF}
test_suite_utils, metadata_generator, binary_streamer, metadata_repository, test_suite_utils, metadata_generator, binary_streamer, metadata_repository,
pastree, pascal_parser_intf, metadata_wsdl; pastree, PScanner, pascal_parser_intf, metadata_wsdl;
type type
@ -60,9 +60,13 @@ function TTestMetadata.CreateSymbolTable(): TwstPasTreeContainer;
AClass : TPasClassType; AClass : TPasClassType;
AContainer : TwstPasTreeContainer AContainer : TwstPasTreeContainer
) : TPasFunction ; ) : TPasFunction ;
begin begin
Result := TPasFunction(AContainer.CreateElement(TPasFunction,AName,AContainer.CurrentModule.InterfaceSection,visDefault,'',0)); Result := TPasFunction(AContainer.CreateElement(TPasFunction,AName,AContainer.CurrentModule.InterfaceSection,visDefault,'',0));
{$IFDEF WST_TPASSOURCEPOS}
Result.ProcType := AContainer.CreateFunctionType('','result',Result,True,Default(TPasSourcePos));
{$ELSE WST_TPASSOURCEPOS}
Result.ProcType := AContainer.CreateFunctionType('','result',Result,True,'',0); Result.ProcType := AContainer.CreateFunctionType('','result',Result,True,'',0);
{$ENDIF WST_TPASSOURCEPOS}
AClass.Members.Add(Result); AClass.Members.Add(Result);
TPasFunctionType(Result.ProcType).ResultEl.ResultType := AContainer.FindElement(AResultTypeName) as TPasType; TPasFunctionType(Result.ProcType).ResultEl.ResultType := AContainer.FindElement(AResultTypeName) as TPasType;
TPasFunctionType(Result.ProcType).ResultEl.ResultType.AddRef(); TPasFunctionType(Result.ProcType).ResultEl.ResultType.AddRef();

View File

@ -18,7 +18,7 @@ uses
Classes, SysUtils, Classes, SysUtils,
{$IFNDEF FPC}xmldom, wst_delphi_xml{$ELSE}DOM{$ENDIF}, {$IFNDEF FPC}xmldom, wst_delphi_xml{$ELSE}DOM{$ENDIF},
cursor_intf, rtti_filters, cursor_intf, rtti_filters,
pastree, pascal_parser_intf, logger_intf, xsd_parser; pastree, PScanner, pascal_parser_intf, logger_intf, xsd_parser;
const const
s_TRANSPORT = 'TRANSPORT'; s_TRANSPORT = 'TRANSPORT';
@ -852,7 +852,11 @@ function TWsdlParser.ParseOperation(
locProcType := tmpMthd.ProcType; locProcType := tmpMthd.ProcType;
locFunc := TPasFunction(SymbolTable.CreateElement(TPasFunction,tmpMthd.Name,AOwner,visDefault,'',0)); locFunc := TPasFunction(SymbolTable.CreateElement(TPasFunction,tmpMthd.Name,AOwner,visDefault,'',0));
SymbolTable.RegisterExternalAlias(locFunc,SymbolTable.GetExternalName(tmpMthd)); SymbolTable.RegisterExternalAlias(locFunc,SymbolTable.GetExternalName(tmpMthd));
{$IFDEF WST_TPASSOURCEPOS}
locFuncType := SymbolTable.CreateFunctionType('','Result',locFunc,False,Default(TPasSourcePos));
{$ELSE WST_TPASSOURCEPOS}
locFuncType := SymbolTable.CreateFunctionType('','Result',locFunc,False,'',0); locFuncType := SymbolTable.CreateFunctionType('','Result',locFunc,False,'',0);
{$ENDIF WST_TPASSOURCEPOS}
locFunc.ProcType := locFuncType; locFunc.ProcType := locFuncType;
resArgIndex := FindIndexOfResultArg(locProcType.Args); resArgIndex := FindIndexOfResultArg(locProcType.Args);
for j := 0 to ( locProcType.Args.Count - 1 ) do begin for j := 0 to ( locProcType.Args.Count - 1 ) do begin

View File

@ -55,6 +55,9 @@
{$DEFINE WST_TKFILE} {$DEFINE WST_TKFILE}
{$DEFINE WST_TKCLASSREF} {$DEFINE WST_TKCLASSREF}
{$DEFINE WST_TKPOINTER} {$DEFINE WST_TKPOINTER}
{$IFEND}
{$IF Defined(FPC_FULLVERSION) and (FPC_FULLVERSION >= 30101) }
{$DEFINE WST_TPASSOURCEPOS}
{$IFEND} {$IFEND}
{$ENDIF} {$ENDIF}