Sign in Join
Wiki copytemporary

Chelper/fr: what changed

Revision 4 to 5. 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
21-`svn checkout `[`https://svn.code.sf.net/p/lazarus-ccr/svn/components/chelper/`](https://svn.code.sf.net/p/lazarus-ccr/svn/components/chelper/)
21+```
22+svn checkout https://svn.code.sf.net/p/lazarus-ccr/svn/components/chelper/
23+```
2224
2325### Journal des modifications
2426
2527- Version 0.8, 8 août 2010
2628
2729### Dependencies / System Requirements
2830
2931- Lazarus 0.9.29 ou supérieur
3032
3133Etat: *Beta*
3234
3335### Problèmes
3436
3537Aucun analyseur d'expression complet pour construire l'arborescence d'expression.
3638
3739i 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.
3840
3941### Installation
4042
4143- Obtenez le paquet depuis SVN.
4244- Installez le paquet Chelper.lpk depuis Lazarus.
4345- Allez vers *Outils-\>C to Pascal Options-\>Converter*, décochez *Use external converter* si vous voulez utiliser le paquet de convertisseur intégré.
4446
4547L'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.
4648
4749Il 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.
4850
4951Pour utiliser l'outil externe, vous devez faire ce qui suit:
5052
5153- Ouvrir et construire le projet cconvert.lpi (placé dans le répertoire du paquet). Vous devriez obtenir le fichier exécutable "cconvert".
5254- Ouvrir Outils-\>C to Pascal Options-\>Converter, pressez sur Select et choisissez le fichier exécutable cconvert.
5355- Contrôlez *Use external converter* depuis *Tools-\>C to Pascal Options-\>Converter*.
5456
5557### Comment l'utiliser
5658
5759#### Raccourcis
5860
5961- ctrl+b - convertit une déclaration C simple en Pascal.
6062- ctrl+shift+b - convertit toutes les déclarations C vers Pascal depuis la position courante du curseur jusqu'à la fin du fichier.
6163
6264#### Général
6365
6466- Ouvrez un fichier avec des déclarations C dans l'EDI Lazarus ou démarrer un nouveau fichier en y copiant les déclarations.
6567- 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).
6668
6769Par exemple:
6870
69-`int c;`\
70-`int b; `
71+```
72+int c;
73+int b;
74+```
7175
7276Si le curseur estplacé sur la ligne 'inc c;' et que ctrl+b est enfoncé, le résultat serait:
7377
74-`var`\
75-`  c : Integer;`\
76-`int b;`
78+``` pascal
79+var
80+ c : Integer;
81+int b;
82+```
7783
7884exactement 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:
7985
80-`var`\
81-`  c : Integer;`\
82-`var `\
83-`  b : Integer;`
86+``` pascal
87+var
88+ c : Integer;
89+var
90+ b : Integer;
91+```
8492
8593L'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.
8694
8795- 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
8896
8997i.e. vous avez 2 déclarations dans le fichier:
9098
91-`int fn(int, float);`\
92-`extern int v;`
99+```
100+int fn(int, float);
101+extern int v;
102+```
93103
94104En plaçant le curseur avant eux puis en pressant sur ctrl+shift+b, cela générera:
95105
96-`function fn(par0: Integer; par1: Single): Integer; cdecl; external;`\
106+``` pascal
107+function fn(par0: Integer; par1: Single): Integer; cdecl; external;
97108
98-`var`\
99-`  v : Integer; external;`
109+var
110+ v : Integer; external;
111+```
100112
101113**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.
102114
103115#### Defines
104116
105117Dans la plupart des cas, des définitions de macro sans paramètre, comme
106118
107-`#define VALUE 1 << 2;`
119+```
120+#define VALUE 1 << 2;
121+```
108122
109123sont utilisés comme des valeurs constantes. Chelper les traduit en constantes en essayant de convertir l'expression define.
110124
111-`const`\
112-`  VALUE = 1 shr 2;`
125+``` pascal
126+const
127+ VALUE = 1 shr 2;
128+```
113129
114130dans d'autres cas, les define sont utilisés pour quelques marquages "spéciaux" ou ou des informations additionnelles pour des outils exernes.
115131
116-`#define LIB_DEPRECATED `\
117-`LIB_DEPRECATED int somefunc(int p);`
132+```
133+#define LIB_DEPRECATED
134+LIB_DEPRECATED int somefunc(int p);
135+```
118136
119137Sans 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.
120138
121139Sélectionnez Outils-\>C to Pascal options-\>Main, sélectionnez le fichier de define et pressez Edit.
122140
123141Cela 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.
124142
125143Chelper gère également les macros de paramètres.
126144
127-`int somefunc SAFE_PARAMS( (int i))`
145+```
146+int somefunc SAFE_PARAMS( (int i))
147+```
128148
129149Ajouter la déclaration suivante dans le fichier de définitions
130150
131-`#define SAFE_PARAMS(x) x`
151+```
152+#define SAFE_PARAMS(x) x
153+```
132154
133155permettra d'analyser correctement la déclaration
134156
135-`function somefunc(i: Integer): Integer;`
157+``` pascal
158+function somefunc(i: Integer): Integer;
159+```
136160
137161#### Fichier de configuration
138162
139163Le fichier de configuration représente lui-même un simple fichier .ini. La section suivante est utilisée dans le fichier:
140164
141165- Main - pour les déclarations générales, qui affecte
142166
143167- Types - section de conversion de type personnalisé. Name=Value, où Name est le nom du c-type, Value est le type pascal résultant
144168
145169exemple:
146170
147-`[Types]`\
148-`int=integer`\
149-`int*=PInteger`\
150-`float=single`\
151-`float*=PSingle`
171+```
172+[Types]
173+int=integer
174+int*=PInteger
175+float=single
176+float*=PSingle
177+```
152178
153179---
154180*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