Updated to use the new parser interface

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@470 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
inoussa 2008-06-06 15:11:41 +00:00
parent fd91a1cfe4
commit bf335843b4
3 changed files with 77 additions and 82 deletions

View File

@ -1,7 +1,7 @@
object formImport: TformImport object formImport: TformImport
Left = 431 Left = 669
Height = 538 Height = 538
Top = 153 Top = 142
Width = 526 Width = 526
HorzScrollBar.Page = 525 HorzScrollBar.Page = 525
VertScrollBar.Page = 537 VertScrollBar.Page = 537
@ -10,6 +10,7 @@ object formImport: TformImport
Caption = 'WSDL Importer' Caption = 'WSDL Importer'
ClientHeight = 538 ClientHeight = 538
ClientWidth = 526 ClientWidth = 526
LCLVersion = '0.9.25'
object Panel2: TPanel object Panel2: TPanel
Height = 490 Height = 490
Width = 526 Width = 526
@ -80,9 +81,9 @@ object formImport: TformImport
end end
object edtAddToProject: TCheckBox object edtAddToProject: TCheckBox
Left = 9 Left = 9
Height = 13 Height = 19
Top = 128 Top = 128
Width = 176 Width = 182
Caption = 'Add the generated files to project' Caption = 'Add the generated files to project'
TabOrder = 4 TabOrder = 4
end end
@ -118,9 +119,9 @@ object formImport: TformImport
TabOrder = 1 TabOrder = 1
object edtOptionIntf: TCheckBox object edtOptionIntf: TCheckBox
Left = 9 Left = 9
Height = 13 Height = 19
Top = 8 Top = 8
Width = 78 Width = 84
Caption = 'Interface file' Caption = 'Interface file'
Checked = True Checked = True
OnClick = edtOptionIntfClick OnClick = edtOptionIntfClick
@ -129,9 +130,9 @@ object formImport: TformImport
end end
object edtOptionProxy: TCheckBox object edtOptionProxy: TCheckBox
Left = 9 Left = 9
Height = 13 Height = 19
Top = 56 Top = 56
Width = 62 Width = 68
Caption = 'Proxy file' Caption = 'Proxy file'
Checked = True Checked = True
State = cbChecked State = cbChecked
@ -139,25 +140,25 @@ object formImport: TformImport
end end
object edtOptionBinder: TCheckBox object edtOptionBinder: TCheckBox
Left = 294 Left = 294
Height = 13 Height = 19
Top = 8 Top = 8
Width = 105 Width = 111
Caption = 'Service Binder file' Caption = 'Service Binder file'
TabOrder = 3 TabOrder = 3
end end
object edtOptionImp: TCheckBox object edtOptionImp: TCheckBox
Left = 294 Left = 294
Height = 13 Height = 19
Top = 56 Top = 56
Width = 152 Width = 158
Caption = 'Implementation Skeleton file' Caption = 'Implementation Skeleton file'
TabOrder = 4 TabOrder = 4
end end
object edtOptionIntfALL: TCheckBox object edtOptionIntfALL: TCheckBox
Left = 30 Left = 30
Height = 13 Height = 19
Top = 32 Top = 32
Width = 88 Width = 94
Caption = 'Parse all types' Caption = 'Parse all types'
OnClick = edtOptionIntfALLClick OnClick = edtOptionIntfALLClick
TabOrder = 1 TabOrder = 1
@ -217,7 +218,6 @@ object formImport: TformImport
end end
end end
object OD: TOpenDialog object OD: TOpenDialog
Title = 'Ouvrir un fichier existant'
Filter = 'WSDL Files ( *.wsdl )|*.wsdl' Filter = 'WSDL Files ( *.wsdl )|*.wsdl'
FilterIndex = 0 FilterIndex = 0
Options = [ofFileMustExist, ofEnableSizing, ofViewDetail] Options = [ofFileMustExist, ofEnableSizing, ofViewDetail]
@ -225,7 +225,6 @@ object formImport: TformImport
top = 32 top = 32
end end
object SDD: TSelectDirectoryDialog object SDD: TSelectDirectoryDialog
Title = 'Choisir un répertoire'
FilterIndex = 0 FilterIndex = 0
left = 224 left = 224
top = 176 top = 176

View File

@ -1,65 +1,64 @@
{ Ceci est un fichier ressource généré automatiquement par Lazarus } { Ceci est un fichier ressource généré automatiquement par Lazarus }
LazarusResources.Add('TformImport','FORMDATA',[ LazarusResources.Add('TformImport','FORMDATA',[
'TPF0'#11'TformImport'#10'formImport'#4'Left'#3#175#1#6'Height'#3#26#2#3'Top' 'TPF0'#11'TformImport'#10'formImport'#4'Left'#3#157#2#6'Height'#3#26#2#3'Top'
+#3#153#0#5'Width'#3#14#2#18'HorzScrollBar.Page'#3#13#2#18'VertScrollBar.Page' +#3#142#0#5'Width'#3#14#2#18'HorzScrollBar.Page'#3#13#2#18'VertScrollBar.Page'
+#3#25#2#13'ActiveControl'#7#7'Button1'#11'BorderStyle'#7#13'bsSizeToolWin'#7 +#3#25#2#13'ActiveControl'#7#7'Button1'#11'BorderStyle'#7#13'bsSizeToolWin'#7
+'Caption'#6#13'WSDL Importer'#12'ClientHeight'#3#26#2#11'ClientWidth'#3#14#2 +'Caption'#6#13'WSDL Importer'#12'ClientHeight'#3#26#2#11'ClientWidth'#3#14#2
+#0#6'TPanel'#6'Panel2'#6'Height'#3#234#1#5'Width'#3#14#2#5'Align'#7#8'alClie' +#10'LCLVersion'#6#6'0.9.25'#0#6'TPanel'#6'Panel2'#6'Height'#3#234#1#5'Width'
+'nt'#12'ClientHeight'#3#234#1#11'ClientWidth'#3#14#2#8'TabOrder'#2#1#0#9'TGr' +#3#14#2#5'Align'#7#8'alClient'#12'ClientHeight'#3#234#1#11'ClientWidth'#3#14
+'oupBox'#9'GroupBox1'#4'Left'#2#8#6'Height'#3#168#0#3'Top'#2#8#5'Width'#3#250 +#2#8'TabOrder'#2#1#0#9'TGroupBox'#9'GroupBox1'#4'Left'#2#8#6'Height'#3#168#0
+#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#12'ClientHeight'#3#150#0#11 +#3'Top'#2#8#5'Width'#3#250#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#12
+'ClientWidth'#3#246#1#8'TabOrder'#2#0#0#6'TLabel'#6'Label1'#4'Left'#2#9#6'He' +'ClientHeight'#3#150#0#11'ClientWidth'#3#246#1#8'TabOrder'#2#0#0#6'TLabel'#6
+'ight'#2#14#3'Top'#2#4#5'Width'#3#186#0#7'Caption'#6'&Web Services Descripti' +'Label1'#4'Left'#2#9#6'Height'#2#14#3'Top'#2#4#5'Width'#3#186#0#7'Caption'#6
+'on File ( WSDL )'#11'ParentColor'#8#0#0#6'TLabel'#6'Label2'#4'Left'#2#9#6'H' +'&Web Services Description File ( WSDL )'#11'ParentColor'#8#0#0#6'TLabel'#6
+'eight'#2#14#3'Top'#2'E'#5'Width'#2'Q'#7'Caption'#6#16'Output directory'#11 +'Label2'#4'Left'#2#9#6'Height'#2#14#3'Top'#2'E'#5'Width'#2'Q'#7'Caption'#6#16
+'ParentColor'#8#0#0#5'TEdit'#12'edtInputFile'#4'Left'#2#9#6'Height'#2#23#3'T' +'Output directory'#11'ParentColor'#8#0#0#5'TEdit'#12'edtInputFile'#4'Left'#2
+'op'#2#31#5'Width'#3#148#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#8'T' +#9#6'Height'#2#23#3'Top'#2#31#5'Width'#3#148#1#7'Anchors'#11#5'akTop'#6'akLe'
+'abOrder'#2#0#0#0#7'TButton'#7'Button2'#4'Left'#3#175#1#6'Height'#2#25#3'Top' +'ft'#7'akRight'#0#8'TabOrder'#2#0#0#0#7'TButton'#7'Button2'#4'Left'#3#175#1#6
+#2#31#5'Width'#2'('#6'Action'#7#11'actOpenFile'#7'Anchors'#11#5'akTop'#7'akR' +'Height'#2#25#3'Top'#2#31#5'Width'#2'('#6'Action'#7#11'actOpenFile'#7'Anchor'
+'ight'#0#25'BorderSpacing.InnerBorder'#2#4#8'TabOrder'#2#1#0#0#5'TEdit'#12'e' +'s'#11#5'akTop'#7'akRight'#0#25'BorderSpacing.InnerBorder'#2#4#8'TabOrder'#2
+'dtOutputDir'#4'Left'#2#9#6'Height'#2#23#3'Top'#2'X'#5'Width'#3#148#1#7'Anch' +#1#0#0#5'TEdit'#12'edtOutputDir'#4'Left'#2#9#6'Height'#2#23#3'Top'#2'X'#5'Wi'
+'ors'#11#5'akTop'#6'akLeft'#7'akRight'#0#8'TabOrder'#2#2#0#0#7'TButton'#7'Bu' +'dth'#3#148#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#8'TabOrder'#2#2#0
+'tton3'#4'Left'#3#175#1#6'Height'#2#25#3'Top'#2'X'#5'Width'#2'('#6'Action'#7 +#0#7'TButton'#7'Button3'#4'Left'#3#175#1#6'Height'#2#25#3'Top'#2'X'#5'Width'
+#10'actOpenDir'#7'Anchors'#11#5'akTop'#7'akRight'#0#25'BorderSpacing.InnerBo' +#2'('#6'Action'#7#10'actOpenDir'#7'Anchors'#11#5'akTop'#7'akRight'#0#25'Bord'
+'rder'#2#4#8'TabOrder'#2#3#0#0#9'TCheckBox'#15'edtAddToProject'#4'Left'#2#9#6 +'erSpacing.InnerBorder'#2#4#8'TabOrder'#2#3#0#0#9'TCheckBox'#15'edtAddToProj'
+'Height'#2#13#3'Top'#3#128#0#5'Width'#3#176#0#7'Caption'#6'"Add the generate' +'ect'#4'Left'#2#9#6'Height'#2#19#3'Top'#3#128#0#5'Width'#3#182#0#7'Caption'#6
+'d files to project'#8'TabOrder'#2#4#0#0#0#9'TGroupBox'#9'GroupBox2'#4'Left' +'"Add the generated files to project'#8'TabOrder'#2#4#0#0#0#9'TGroupBox'#9'G'
+#2#8#6'Height'#3#162#0#3'Top'#3'@'#1#5'Width'#3#250#1#7'Anchors'#11#5'akTop' +'roupBox2'#4'Left'#2#8#6'Height'#3#162#0#3'Top'#3'@'#1#5'Width'#3#250#1#7'An'
+#6'akLeft'#7'akRight'#8'akBottom'#0#7'Caption'#6#12' Messages '#12'ClientH' +'chors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#7'Caption'#6#12' Mes'
+'eight'#3#144#0#11'ClientWidth'#3#246#1#8'TabOrder'#2#2#0#5'TMemo'#6'mmoLog' +'sages '#12'ClientHeight'#3#144#0#11'ClientWidth'#3#246#1#8'TabOrder'#2#2#0
+#6'Height'#3#144#0#5'Width'#3#246#1#5'Align'#7#8'alClient'#8'ReadOnly'#9#10 +#5'TMemo'#6'mmoLog'#6'Height'#3#144#0#5'Width'#3#246#1#5'Align'#7#8'alClient'
+'ScrollBars'#7#6'ssBoth'#8'TabOrder'#2#0#0#0#0#9'TGroupBox'#9'GroupBox3'#4'L' +#8'ReadOnly'#9#10'ScrollBars'#7#6'ssBoth'#8'TabOrder'#2#0#0#0#0#9'TGroupBox'
+'eft'#2#8#6'Height'#2'x'#3'Top'#3#184#0#5'Width'#3#250#1#7'Anchors'#11#5'akT' +#9'GroupBox3'#4'Left'#2#8#6'Height'#2'x'#3'Top'#3#184#0#5'Width'#3#250#1#7'A'
+'op'#6'akLeft'#7'akRight'#0#7'Caption'#6#11' Options '#12'ClientHeight'#2 +'nchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#7'Caption'#6#11' Options '#12
+'f'#11'ClientWidth'#3#246#1#8'TabOrder'#2#1#0#9'TCheckBox'#13'edtOptionIntf' +'ClientHeight'#2'f'#11'ClientWidth'#3#246#1#8'TabOrder'#2#1#0#9'TCheckBox'#13
+#4'Left'#2#9#6'Height'#2#13#3'Top'#2#8#5'Width'#2'N'#7'Caption'#6#14'Interfa' +'edtOptionIntf'#4'Left'#2#9#6'Height'#2#19#3'Top'#2#8#5'Width'#2'T'#7'Captio'
+'ce file'#7'Checked'#9#7'OnClick'#7#18'edtOptionIntfClick'#5'State'#7#9'cbCh' +'n'#6#14'Interface file'#7'Checked'#9#7'OnClick'#7#18'edtOptionIntfClick'#5
+'ecked'#8'TabOrder'#2#0#0#0#9'TCheckBox'#14'edtOptionProxy'#4'Left'#2#9#6'He' +'State'#7#9'cbChecked'#8'TabOrder'#2#0#0#0#9'TCheckBox'#14'edtOptionProxy'#4
+'ight'#2#13#3'Top'#2'8'#5'Width'#2'>'#7'Caption'#6#10'Proxy file'#7'Checked' +'Left'#2#9#6'Height'#2#19#3'Top'#2'8'#5'Width'#2'D'#7'Caption'#6#10'Proxy fi'
+#9#5'State'#7#9'cbChecked'#8'TabOrder'#2#2#0#0#9'TCheckBox'#15'edtOptionBind' +'le'#7'Checked'#9#5'State'#7#9'cbChecked'#8'TabOrder'#2#2#0#0#9'TCheckBox'#15
+'er'#4'Left'#3'&'#1#6'Height'#2#13#3'Top'#2#8#5'Width'#2'i'#7'Caption'#6#19 +'edtOptionBinder'#4'Left'#3'&'#1#6'Height'#2#19#3'Top'#2#8#5'Width'#2'o'#7'C'
+'Service Binder file'#8'TabOrder'#2#3#0#0#9'TCheckBox'#12'edtOptionImp'#4'Le' +'aption'#6#19'Service Binder file'#8'TabOrder'#2#3#0#0#9'TCheckBox'#12'edtOp'
+'ft'#3'&'#1#6'Height'#2#13#3'Top'#2'8'#5'Width'#3#152#0#7'Caption'#6#28'Impl' +'tionImp'#4'Left'#3'&'#1#6'Height'#2#19#3'Top'#2'8'#5'Width'#3#158#0#7'Capti'
+'ementation Skeleton file'#8'TabOrder'#2#4#0#0#9'TCheckBox'#16'edtOptionIntf' +'on'#6#28'Implementation Skeleton file'#8'TabOrder'#2#4#0#0#9'TCheckBox'#16
+'ALL'#4'Left'#2#30#6'Height'#2#13#3'Top'#2' '#5'Width'#2'X'#7'Caption'#6#15 +'edtOptionIntfALL'#4'Left'#2#30#6'Height'#2#19#3'Top'#2' '#5'Width'#2'^'#7'C'
+'Parse all types'#7'OnClick'#7#21'edtOptionIntfALLClick'#8'TabOrder'#2#1#0#0 +'aption'#6#15'Parse all types'#7'OnClick'#7#21'edtOptionIntfALLClick'#8'TabO'
+#0#0#6'TPanel'#6'Panel1'#6'Height'#2'0'#3'Top'#3#234#1#5'Width'#3#14#2#5'Ali' +'rder'#2#1#0#0#0#0#6'TPanel'#6'Panel1'#6'Height'#2'0'#3'Top'#3#234#1#5'Width'
+'gn'#7#8'alBottom'#12'ClientHeight'#2'0'#11'ClientWidth'#3#14#2#8'TabOrder'#2 +#3#14#2#5'Align'#7#8'alBottom'#12'ClientHeight'#2'0'#11'ClientWidth'#3#14#2#8
+#0#0#7'TButton'#7'Button1'#4'Left'#3'_'#1#6'Height'#2#25#3'Top'#2#8#5'Width' +'TabOrder'#2#0#0#7'TButton'#7'Button1'#4'Left'#3'_'#1#6'Height'#2#25#3'Top'#2
+#2'K'#6'Action'#7#5'actOK'#7'Anchors'#11#5'akTop'#7'akRight'#0#25'BorderSpac' +#8#5'Width'#2'K'#6'Action'#7#5'actOK'#7'Anchors'#11#5'akTop'#7'akRight'#0#25
+'ing.InnerBorder'#2#4#7'Default'#9#8'TabOrder'#2#0#0#0#7'TButton'#7'Button4' +'BorderSpacing.InnerBorder'#2#4#7'Default'#9#8'TabOrder'#2#0#0#0#7'TButton'#7
+#4'Left'#3#183#1#6'Height'#2#25#3'Top'#2#8#5'Width'#2'K'#7'Anchors'#11#5'akT' +'Button4'#4'Left'#3#183#1#6'Height'#2#25#3'Top'#2#8#5'Width'#2'K'#7'Anchors'
+'op'#7'akRight'#0#25'BorderSpacing.InnerBorder'#2#4#6'Cancel'#9#7'Caption'#6 +#11#5'akTop'#7'akRight'#0#25'BorderSpacing.InnerBorder'#2#4#6'Cancel'#9#7'Ca'
+#6'Cancel'#11'ModalResult'#2#2#8'TabOrder'#2#1#0#0#0#11'TActionList'#2'AL'#4 +'ption'#6#6'Cancel'#11'ModalResult'#2#2#8'TabOrder'#2#1#0#0#0#11'TActionList'
+'left'#2'h'#3'top'#3'H'#1#0#7'TAction'#5'actOK'#7'Caption'#6#2'OK'#18'Disabl' +#2'AL'#4'left'#2'h'#3'top'#3'H'#1#0#7'TAction'#5'actOK'#7'Caption'#6#2'OK'#18
+'eIfNoHandler'#9#9'OnExecute'#7#12'actOKExecute'#8'OnUpdate'#7#11'actOKUpdat' +'DisableIfNoHandler'#9#9'OnExecute'#7#12'actOKExecute'#8'OnUpdate'#7#11'actO'
+'e'#0#0#7'TAction'#11'actOpenFile'#7'Caption'#6#3'...'#18'DisableIfNoHandler' +'KUpdate'#0#0#7'TAction'#11'actOpenFile'#7'Caption'#6#3'...'#18'DisableIfNoH'
+#9#9'OnExecute'#7#18'actOpenFileExecute'#0#0#7'TAction'#10'actOpenDir'#7'Cap' +'andler'#9#9'OnExecute'#7#18'actOpenFileExecute'#0#0#7'TAction'#10'actOpenDi'
+'tion'#6#3'...'#18'DisableIfNoHandler'#9#9'OnExecute'#7#17'actOpenDirExecute' +'r'#7'Caption'#6#3'...'#18'DisableIfNoHandler'#9#9'OnExecute'#7#17'actOpenDi'
+#0#0#0#11'TOpenDialog'#2'OD'#5'Title'#6#26'Ouvrir un fichier existant'#6'Fil' +'rExecute'#0#0#0#11'TOpenDialog'#2'OD'#6'Filter'#6#28'WSDL Files ( *.wsdl )|'
+'ter'#6#28'WSDL Files ( *.wsdl )|*.wsdl'#11'FilterIndex'#2#0#7'Options'#11#15 +'*.wsdl'#11'FilterIndex'#2#0#7'Options'#11#15'ofFileMustExist'#14'ofEnableSi'
+'ofFileMustExist'#14'ofEnableSizing'#12'ofViewDetail'#0#4'left'#3#16#1#3'top' +'zing'#12'ofViewDetail'#0#4'left'#3#16#1#3'top'#2' '#0#0#22'TSelectDirectory'
+#2' '#0#0#22'TSelectDirectoryDialog'#3'SDD'#5'Title'#6#21'Choisir un r'#233 +'Dialog'#3'SDD'#11'FilterIndex'#2#0#4'left'#3#224#0#3'top'#3#176#0#0#0#0
+'pertoire'#11'FilterIndex'#2#0#4'left'#3#224#0#3'top'#3#176#0#0#0#0
]); ]);

View File

@ -66,7 +66,7 @@ var
formImport: TformImport; formImport: TformImport;
implementation implementation
uses DOM, XMLRead, pastree, pascal_parser_intf, wsdl2pas_imp, source_utils, uses DOM, XMLRead, pastree, pascal_parser_intf, wsdl_parser, source_utils,
generator, metadata_generator, binary_streamer, wst_resources_utils generator, metadata_generator, binary_streamer, wst_resources_utils
{$IFDEF WST_IDE},LazIDEIntf{$ENDIF}; {$IFDEF WST_IDE},LazIDEIntf{$ENDIF};
@ -80,7 +80,7 @@ function ParseWsdlFile(
):TwstPasTreeContainer; ):TwstPasTreeContainer;
var var
locDoc : TXMLDocument; locDoc : TXMLDocument;
prsr : TWsdlParser; prsr : IParser;
symName : string; symName : string;
begin begin
Result := nil; Result := nil;
@ -89,20 +89,17 @@ begin
if ( symName[Length(symName)] = '.' ) then begin if ( symName[Length(symName)] = '.' ) then begin
Delete(symName,Length(symName),1); Delete(symName,Length(symName),1);
end; end;
prsr := nil;
ReadXMLFile(locDoc,AFileName); ReadXMLFile(locDoc,AFileName);
try try
Result := TwstPasTreeContainer.Create(); Result := TwstPasTreeContainer.Create();
try try
prsr := TWsdlParser.Create(locDoc,Result); prsr := TWsdlParser.Create(locDoc,Result,ANotifier);
prsr.OnMessage := ANotifier; prsr.Execute(pmAllTypes,symName);
prsr.Parse(pmAllTypes,symName);
except except
FreeAndNil(Result); FreeAndNil(Result);
raise; raise;
end; end;
finally finally
FreeAndNil(prsr);
FreeAndNil(locDoc); FreeAndNil(locDoc);
end; end;
end; end;