Re: Pascal to C source code translator

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 05/21/2011 08:27 PM, JD wrote:
> This is the sample pascal module:

This is not PASCAL.  It might very well be Object Pascal, which is a
(slightly) different language.  Different enough that the p2c compiler
does not know about the extensions in Object Pascal, so I can see how it
would fail.  You need to find an Object Pascal to C translator....

> unit PoTranslator;
> 
> {$mode objfpc}{$H+}
> 
> interface
> 
> uses
>    Classes, SysUtils, LResources, typinfo, Translations;
> 
> type
> 
>   { TPoTranslator }
> 
>   TPoTranslator=class(TAbstractTranslator)
>   private
>    FPOFile:TPOFile;
>   public
>    constructor Create(POFileName:string);
>    destructor Destroy;override;
>    procedure TranslateStringProperty(Sender:TObject;
>      const Instance: TPersistent; PropInfo: PPropInfo; var 
> Content:string);override;
>   end;
> 
> implementation
> 
> { TPoTranslator }
> 
> constructor TPoTranslator.Create(POFileName: string);
> begin
>    inherited Create;
>    FPOFile:=TPOFile.Create(POFileName);
> end;
> 
> destructor TPoTranslator.Destroy;
> begin
>    FPOFile.Free;
>    inherited Destroy;
> end;
> 
> procedure TPoTranslator.TranslateStringProperty(Sender: TObject;
>    const Instance: TPersistent; PropInfo: PPropInfo; var Content: string);
> var
>    s: String;
> begin
>    if not Assigned(FPOFile) then exit;
>    if not Assigned(PropInfo) then exit;
> {DO we really need this?}
>    if Instance is TComponent then
>     if csDesigning in (Instance as TComponent).ComponentState then exit;
> {End DO :)}
>    if (AnsiUpperCase(PropInfo^.PropType^.Name)<>'TTRANSLATESTRING') then 
> exit;
>    s:=FPOFile.Translate(Content, Content);
>    if s<>'' then Content:=s;
> end;
> 
> end.
> 


-- 
Kevin J. Cummings
kjchome@xxxxxxxxxxx
cummings@xxxxxxxxxxxxxxxxxx
cummings@xxxxxxxxxxxxxxxxxxxxxxx
Registered Linux User #1232 (http://counter.li.org)
-- 
users mailing list
users@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe or change subscription options:
https://admin.fedoraproject.org/mailman/listinfo/users
Guidelines: http://fedoraproject.org/wiki/Mailing_list_guidelines

[Index of Archives]     [Older Fedora Users]     [Fedora Announce]     [Fedora Package Announce]     [EPEL Announce]     [EPEL Devel]     [Fedora Magazine]     [Fedora Summer Coding]     [Fedora Laptop]     [Fedora Cloud]     [Fedora Advisory Board]     [Fedora Education]     [Fedora Security]     [Fedora Scitech]     [Fedora Robotics]     [Fedora Infrastructure]     [Fedora Websites]     [Anaconda Devel]     [Fedora Devel Java]     [Fedora Desktop]     [Fedora Fonts]     [Fedora Marketing]     [Fedora Management Tools]     [Fedora Mentors]     [Fedora Package Review]     [Fedora R Devel]     [Fedora PHP Devel]     [Kickstart]     [Fedora Music]     [Fedora Packaging]     [Fedora SELinux]     [Fedora Legal]     [Fedora Kernel]     [Fedora OCaml]     [Coolkey]     [Virtualization Tools]     [ET Management Tools]     [Yum Users]     [Yosemite News]     [Gnome Users]     [KDE Users]     [Fedora Art]     [Fedora Docs]     [Fedora Sparc]     [Libvirt Users]     [Fedora ARM]

  Powered by Linux