You've already forked lazarus-ccr
* Check for reserved words type and end as identifier names
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2342 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -77,6 +77,16 @@ begin
|
|||||||
result := AValue;
|
result := AValue;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function IdentifierNameToPascalName(AName: string) : string;
|
||||||
|
begin
|
||||||
|
case lowercase(AName) of
|
||||||
|
'type': result := 'a'+AName;
|
||||||
|
'end' : result := 'an'+AName;
|
||||||
|
else
|
||||||
|
result := AName;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure GeneratePascalSource(const AnIdlList: TIDLList; const PascalCode: tstrings;TypeConvList, CTypesList: TStrings; AlwaysAddPrefixToParam: boolean);
|
procedure GeneratePascalSource(const AnIdlList: TIDLList; const PascalCode: tstrings;TypeConvList, CTypesList: TStrings; AlwaysAddPrefixToParam: boolean);
|
||||||
|
|
||||||
var
|
var
|
||||||
@ -117,17 +127,17 @@ begin
|
|||||||
s := s + ' procedure '
|
s := s + ' procedure '
|
||||||
else
|
else
|
||||||
s := s + ' function ';
|
s := s + ' function ';
|
||||||
s := s + anIDLMember.MemberName + '(';
|
s := s + IdentifierNameToPascalName(anIDLMember.MemberName) + '(';
|
||||||
for m := 0 to anIDLMember.Params.Count-1 do
|
for m := 0 to anIDLMember.Params.Count-1 do
|
||||||
begin
|
begin
|
||||||
anIDLMemberParameter := (anIDLMember.Params.Items[m]) as TIDLMemberParameter;
|
anIDLMemberParameter := (anIDLMember.Params.Items[m]) as TIDLMemberParameter;
|
||||||
AParamName := anIDLMemberParameter.ParamName;
|
AParamName := IdentifierNameToPascalName(anIDLMemberParameter.ParamName);
|
||||||
if AlwaysAddPrefixToParam or HasDoubleIdentifier(anIDL,AParamName) then // It could be that the name is used in a inherited class
|
if AlwaysAddPrefixToParam or HasDoubleIdentifier(anIDL,AParamName) then // It could be that the name is used in a inherited class
|
||||||
begin
|
begin
|
||||||
if AParamName[1] in ['a','e','o','u','i'] then
|
if AParamName[1] in ['a','e','o','u','i'] then
|
||||||
AParamName := 'An'+AParamName
|
AParamName := 'an'+AParamName
|
||||||
else
|
else
|
||||||
AParamName := 'A'+AParamName;
|
AParamName := 'a'+AParamName;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
if m > 0 then s := s + '; ';
|
if m > 0 then s := s + '; ';
|
||||||
@ -147,7 +157,7 @@ begin
|
|||||||
if not anIDLMember.MemberReadonly then
|
if not anIDLMember.MemberReadonly then
|
||||||
s := s + ' procedure Set' +anIDLMember.MemberName + '(a'+anIDLMember.MemberName+': '+ PasType+'); safecall;' + LineEnding;
|
s := s + ' procedure Set' +anIDLMember.MemberName + '(a'+anIDLMember.MemberName+': '+ PasType+'); safecall;' + LineEnding;
|
||||||
|
|
||||||
s := s + ' property ' +anIDLMember.MemberName+ ' : '+PasType+
|
s := s + ' property ' +IdentifierNameToPascalName(anIDLMember.MemberName)+ ' : '+PasType+
|
||||||
' read Get' +anIDLMember.MemberName;
|
' read Get' +anIDLMember.MemberName;
|
||||||
if not anIDLMember.MemberReadonly then
|
if not anIDLMember.MemberReadonly then
|
||||||
s := s + ' write Set' +anIDLMember.MemberName;
|
s := s + ' write Set' +anIDLMember.MemberName;
|
||||||
|
Reference in New Issue
Block a user