Sign in Join
Wiki copytemporary

Chelper/fr: what changed

Revision 1 to 2. Removed lines have a minus sign; added lines have a plus sign.

OldNewLine
11### A propos
22
33Chelper est un outil d'extension de Lazarus, qui aide à convertir les fichiers d'entête C en Pascal. Oui c'est un autre outil de conversion C vers Pascal comme beaucoup qui lui sont similaires ([[H2Pas/fr|H2Pas]], ToPas), mais on pourrait le trouver plus utile.
44
55L'extension n'essaie pas de convertir un en-tête pour l'utilisateur, c'est plutôt un outil d'aide à la traduction manuelle, faisant presque tout le "sale boulot" pour l'utilisateur.
66
77Chelper supporte aussi la conversion des déclarations Objective-C vers Objective-P.
88
99### Auteur
1010
1111Dmitry 'skalogryz' Boyarintsev
1212
1313### Licence
1414
1515[modified](http://svn.freepascal.org/svn/lazarus/trunk/COPYING.modifiedLGPL) [LGPL](http://svn.freepascal.org/svn/lazarus/trunk/COPYING.LGPL) (comme pour les FPC RTL et Lazarus LCL). Vous pouvez contacter l'auteur si la LGPL ne convient pas à la licence de votre projet.
1616
1717### Téléchargement
1818
1919Il n'y a pas encore de paquet téléchargeable", vous pouvez accéder à louil depuis SVN: <https://sourceforge.net/p/lazarus-ccr/svn/HEAD/tree/components/chelper/>
2020
2121`svn checkout `[`https://svn.code.sf.net/p/lazarus-ccr/svn/components/chelper/`](https://svn.code.sf.net/p/lazarus-ccr/svn/components/chelper/)
2222
2323### Journal des modifications
2424
2525- Version 0.8, 8 août 2010
2626
2727### Dependencies / System Requirements
2828
2929- Lazarus 0.9.29 ou supérieur
3030
3131Etat: *Beta*
3232
3333### Problèmes
3434
3535Aucun analyseur d'expression complet pour construire l'arborescence d'expression.
3636
3737i vous trouvez un bug dans la convertisseur, veuillez le rapporter dans [bugs.freepascal.org](http://bugs.freepascal.org) pour le projet Lazarus-CCR. Merci d'attacher le fichier d'entête C et les explications sur ce qui ne fonctionne pas comme voulu.
3838
3939### Installation
4040
4141- Obtenez le paquet depuis SVN.
4242- Installez le paquet Chelper.lpk depuis Lazarus.
4343- Allez vers *Outils-\>C to Pascal Options-\>Converter*, décochez *Use external converter* si vous voulez utiliser le paquet de convertisseur intégré.
4444
4545L'utilisation du convertisseur intégré présente un avantage en termes de performances. Cependant, si vous devez mettre à jour le convertisseur, vous devrez reconstruire l'intégralité de l'IDE. Il est également possible que le convertisseur provoque des plantages ou des blocages. Vous devriez le signaler, mais vous risquez de perdre toutes vos données.
4646
4747Il est beaucoup plus sûr d'utiliser l'outil externe cconvert. Il est également plus facile de mettre à jour le convertisseur si de nouvelles fonctionnalités sont ajoutées ou si des bogues sont corrigés. Tout ce dont vous avez besoin est de reconstruire l'exécutable cconverter beaucoup plus rapidement que de reconstruire Lazarus.
4848
4949Pour utiliser l'outil externe, vous devez faire ce qui suit:
5050
5151- Ouvrir et construire le projet cconvert.lpi (placé dans le répertoire du paquet). Vous devriez obtenir le fichier exécutable "cconvert".
5252- Ouvrir Outils-\>C to Pascal Options-\>Converter, pressez sur Select et choisissez le fichier exécutable cconvert.
5353- Contrôlez *Use external converter* depuis *Tools-\>C to Pascal Options-\>Converter*.
5454
5555### Comment l'utiliser
5656
5757#### Raccourcis
5858
5959- ctrl+b - convertit une déclaration C simple en Pascal.
6060- ctrl+shift+b - convertit toutes les déclarations C vers Pascal depuis la position courante du curseur jusqu'à la fin du fichier.
6161
6262#### Général
6363
6464- Ouvrez un fichier avec des déclarations C dans l'EDI Lazarus ou démarrer un nouveau fichier en y copiant les déclarations.
6565- Placez le curseur sur la ligne où se trouve la déclaration c et pressez sur Ctrl+B (ce raccourci pourra être modifié à l'avenir).
6666
6767Par exemple:
6868
6969`int c;`\
7070`int b; `
7171
7272Si le curseur estplacé sur la ligne 'inc c;' et que ctrl+b est enfoncé, le résultat serait:
7373
7474`var`\
7575`  c : Integer;`\
7676`int b;`
7777
7878exactement une déclaration est convertie. Le curseur serait placé juste après la définition convertie. Vous pouvez appuyer à nouveau sur ctrl+b, et le résultat serait:
7979
8080`var`\
8181`  c : Integer;`\
8282`var `\
8383`  b : Integer;`
8484
8585L'analyse des définitions une par une préparera vos en-têtes C en très peu de temps, tout en les gardant propres et correctes du point de vue de Pascal.
8686
8787- Si vous êtes sûr que vos définitions (expliquées ci-dessous) sont suffisamment bien configurées. Vous pouvez essayer de convertir le reste du fichier en un seul appel en appuyant sur ctrl+shift+b
8888
8989i.e. vous avez 2 déclarations dans le fichier:
9090
9191`int fn(int, float);`\
9292`extern int v;`
9393
9494En plaçant le curseur avant eux puis en pressant sur ctrl+shift+b, cela générera:
9595
9696`function fn(par0: Integer; par1: Single): Integer; cdecl; external;`\
97-\
97+
9898`var`\
9999`  v : Integer; external;`
100100
101101**Vous devez être prudent, car il est courant d'utiliser des macros dans les en-têtes C. Laisser l'une des macros non définie peut produire une mauvaise déclaration pascal**. La section suivante explique comment définir une macro pour le chelper.
102102
103103#### Defines
104104
105105Dans la plupart des cas, des définitions de macro sans paramètre, comme
106106
107107`#define VALUE 1 << 2;`
108108
109109sont utilisés comme des valeurs constantes. Chelper les traduit en constantes en essayant de convertir l'expression define.
110110
111111`const`\
112112`  VALUE = 1 shr 2;`
113113
114114dans d'autres cas, les define sont utilisés pour quelques marquages "spéciaux" ou ou des informations additionnelles pour des outils exernes.
115115
116116`#define LIB_DEPRECATED `\
117117`LIB_DEPRECATED int somefunc(int p);`
118118
119119Sans la connaissance de LIB_DEPRECATED qui est la macro (de rien), il est impossible d'analyser correctement la déclaration de fonction. Vous pouvez spécifier les macros utilisées par Chelper dans le fichier définitions spécial de define.
120120
121121Sélectionnez Outils-\>C to Pascal options-\>Main, sélectionnez le fichier de define et pressez Edit.
122122
123123Cela ouvrirait le fichier de define personnalisé dans l'IDE Lazarus. Toutes les macros déclarées dans ce fichier sont utilisées par Chelper. Après avoir ajouté/modifié les définitions de macro, enregistrez le fichier et vous pouvez revenir à la conversion de l'en-tête C.
124124
125125Chelper gère également les macros de paramètres.
126126
127127`int somefunc SAFE_PARAMS( (int i))`
128128
129129Ajouter la déclaration suivante dans le fichier de définitions
130130
131131`#define SAFE_PARAMS(x) x`
132132
133133permettra d'analyser correctement la déclaration
134134
135135`function somefunc(i: Integer): Integer;`
136136
137137#### Fichier de configuration
138138
139139Le fichier de configuration représente lui-même un simple fichier .ini. La section suivante est utilisée dans le fichier:
140140
141141- Main - pour les déclarations générales, qui affecte
142142
143143- Types - section de conversion de type personnalisé. Name=Value, où Name est le nom du c-type, Value est le type pascal résultant
144144
145145exemple:
146146
147147`[Types]`\
148148`int=integer`\
149149`int*=PInteger`\
150150`float=single`\
151151`float*=PSingle`
152152
153153---
154154*From the Free Pascal wiki, page "Chelper/fr", as it stood on 2022-04-30 after a change by E-ric, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history