Section courante

A propos

Section administrative du site

 Langage  Elément  Tutoriel  Programmation  IDE  Annexe  Aide 
ABAP/4
Ada
Assembleur
Assembly & bytecode
ASP (Active Server Pages)
Basic
C
C++
C# (C Sharp)
Cobol
ColdFusion
Fortran
HTML
Java
JavaScript
LISP
Logo
LotusScript
Oberon
Pascal
Perl
PHP
PL/1
Prolog
Python
Rebol
REXX
Ruby
Rust
SAS
NoSQL
SQL
Swift
X++ (Axapta)
GNAT
SMALLAda
VHDL
Assembleur 370
Assembleur 1802
Assembleur 4004
Assembleur 6502
Assembleur 6800
Assembleur 68000
Assembleur 8080 et 8085
Assembleur 8089
Assembleur 80x86
Assembleur AGC4
Assembleur ARM
Assembleur DPS 8000
Assembleur i860
Assembleur Itanium
Assembleur MIPS
Assembleur PDP-11
Assembleur PowerPC
Assembleur RISC-V
Assembleur SPARC
Assembleur SuperH
Assembleur UNIVAC I
Assembleur VAX
Assembleur Z80
Assembleur Z8000
Assembleur z/Architecture
ASSEMBLER/MONITOR 64
Micol Assembler
GFA Assembler
A86
MASM (Macro Assembler)
TASM (Turbo Assembler)
CIL
Jasmin
LLVM
MSIL
Parrot
P-Code (PCode)
SWEET16
G-Pascal
ASP 1.0
ASP 2.0
ASP 3.0
ASP.NET
ASP.NET Core
ABasiC (Amiga)
Adam SmartBASIC
Altair BASIC
AmigaBASIC (Amiga)
AMOS Basic (Amiga)
Atari Basic (Atari 400, 600 XL, 800, 800XL)
Basic Apple II (Integer BASIC/APPLESOFT)
Basic Commodore 64 (CBM-BASIC)
Basic Commodore 128 (BASIC 7.0)
Basic Commodore VIC-20 (CBM-BASIC 2.0)
Basic Coco 1 (Color Basic)
Basic Coco 2 (Extended Color Basic)
Basic Coco 3 (Extended Color Basic 2.0)
BASICA (PC DOS)
Basic Pro
BBC BASIC
Blitz BASIC (Amiga)
DarkBASIC
Dartmouth BASIC
GFA-Basic (Atari ST/Amiga)
GWBASIC (MS-DOS)
Liberty BASIC
Locomotive BASIC (Amstrad CPC)
MSX-Basic
Omikron Basic (Atari ST)
Oric Extended Basic
Power Basic
Quick Basic/QBasic (MS-DOS)
Sinclair BASIC (ZX80, ZX81, ZX Spectrum)
ST BASIC (Atari ST)
Turbo Basic
Vintage BASIC
VBScript
Visual Basic (VB)
Visual Basic .NET (VB .NET)
Visual Basic pour DOS
Yabasic
BeckerBASIC
SIMONS' BASIC
Basic09 d'OS-9
Disk Extended Color Basic
Basic09 d'OS-9
Disk Extended Color Basic
Access
Excel
Visual Basic pour Windows
Visual Basic .NET pour Windows
C Shell Unix (csh)
C pour Amiga
C pour Atari ST
C pour DOS
C pour Falcon030
C pour GEMDOS (Atari ST)
C pour Linux
C pour PowerTV OS
C pour OS/2
C pour Unix
C pour Windows
Aztec C
CoCo-C
GNU C
HiSoft C
IBM C/2
Introl-C
Lattice C
Microsoft C
MinGW C
MSX-C
Open Watcom C
OS-9 C Compiler
Pure C
Quick C
Turbo C
HiSoft C for Atari ST
HiSoft C for CP/M (Amstrad CPC)
C++ pour OS/2
C++ pour Windows
Borland C++
C++Builder
IBM VisualAge C++
Intel C++
MinGW C++
Open Watcom C++
Symantec C++
Turbo C++
Visual C++
Visual C++ .NET
Watcom C++
Zortech C++
C# (C Sharp) pour Windows
Apple III Cobol
Microsoft Cobol
BlueDragon
Lucee
OpenBD
Railo
Smith Project
Microsoft Fortran
WATFOR-77
CSS
FBML
Open Graph
SVG
XML
XSL/XSLT
LESS
SASS
GCJ (GNU)
JSP
Jython
Visual J++
Node.js
TypeScript
AutoLISP
ACSLogo
LotusScript pour Windows
Amiga Oberon
Oberon .NET
Apple Pascal
Delphi/Kylix/Lazarus
Free Pascal
GNU Pascal
HighSpeed Pascal
IBM Personal Computer Pascal
Lisa Pascal
Maxon Pascal
MPW Pascal
OS-9 Pascal
OSS Personal Pascal
Pascal-86
Pascal du Cray Research
Pascal/VS
Pascal-XT
PURE Pascal
QuickPascal
RemObjets Chrome
Sun Pascal
THINK Pascal
Tiny Pascal (TRS-80)
Turbo Pascal
UCSD Pascal
VAX Pascal
Virtual Pascal
Turbo Pascal for CP/M-80
Turbo Pascal for DOS
Turbo Pascal for Macintosh
Turbo Pascal for Windows
CodeIgniter (Cadre d'application)
Drupal (Projet)
Joomla! (Projet)
Phalanger (PHP .NET)
phpBB (Projet)
Smarty (balise)
Twig (balise)
Symfony (Cadre d'application)
WordPress (Projet)
Zend (Cadre d'application)
PL360
PL/M-80
PL/M-86
Turbo Prolog
CPython
IronPython
Jython
PyPy
AREXX
Regina REXX
JMP
Btrieve
Cassandra
Clipper
CouchDB
dBASE
Hbase
Hypertable
MongoDB
Redis
Access
BigQuery
DB2
H2
Interbase
MySQL
Oracle
PostgreSQL
SAP HANA
SQL Server
Sybase
U-SQL
Introduction
Les remarques
Les opérateurs
Les instruction conditionnelles
Les instructions de boucles
Type de données
Définition de fonction
Référence de mots réservés (mots clefs)
Référence de procédures et fonctions
Les modules (Packages)
Les premiers pas
Les éléments lexicaux
Les déclarations et types
Les noms et les expressions
Les instructions
Les sous-programmes
Les paquets
Les règles de visibilité
Les tâches
Structure du programme et problèmes de compilation
Les exceptions
Les unités génériques
Clauses de représentation et fonctionnalités dépendantes de la mise en oeuvre
Les entrées-sorties
Bonjour
Biochimie
Géographie
Géométrie
Histoire
Mathématique
Médicale
Météorologie
Océanographie
Sport
Temps
Trigonométrie
Validation
Calcul du calcium corrigé
Distance en Km entre deux longitudes et latitudes
Aire d'un cercle
Aire d'une surface de prisme rectangulaire
Aire d'un triangle
Distance entre deux points
Chiffre romain
Ackermann
Exp
Factoriel
Fibonacci
Log
Nombre premier
Odd
Random
Sqrt
Triangle Pascal
Hauteur utérine
Unité de mesure
Fréquence des vagues
Hockey
Année bissextile
Date de la Pâque
Atn/ATan/ArcTan
Courriel
AdaGIDE
GNAT Programming Studio
SET's Editor
Attributs de langages prédéfinis
Les pragma de langage prédéfinis
Environnement de langage prédéfini
Référence de termes et du vocabulaire
Téléchargement
Préface
Notes légal
Dictionnaire
Recherche

Éléments lexicaux

Le texte d'un programme est constitué des textes d'une ou plusieurs compilations. Le texte d'une compilation est une suite d'éléments lexicaux, chacun composé de caractères; les règles de composition sont données dans cette page. Les pragmas, fournissant certaines informations au compilateur, sont également décrits dans cette page.

Ensemble de caractères

Les seuls caractères autorisés dans le texte d'un programme sont les caractères graphiques et les effecteurs de format. Chaque caractère graphique correspond à un code unique d'un ensemble de caractères codés ISO à sept bits (norme ISO 646) et est représenté (visuellement) par un symbole graphique. Certains caractères graphiques sont représentés par des symboles graphiques différents dans des représentations nationales alternatives de l'ensemble de caractères ISO. La description de la définition du langage de programmation dans cette section de référence standard utilise les symboles graphiques ASCII, la représentation graphique ANSI de l'ensemble de caractères ISO.

caractere_graphique ::= caractere_graphique_de_base
   | lettre_minuscule | autre_caractere_special

caractere_graphique_de_base
   lettre_majuscule | chiffre
   | caractere_special | espace_caractère

caractere_de_base ::=
   caractere_graphique_de_base | format_effecteur

L'ensemble de caractères de base est suffisant pour écrire n'importe quel programme. Les caractères inclus dans chacune des catégories de caractères graphiques de base sont définis comme suit :

Catégorie Contient
Lettres majuscules ABCDEFGHIJKLMNOPQRSTUVWXYZ
Chiffres 0123456789
Caractères spéciaux " # & ' ( ) * + , - . / : ; < = > _ |
Caractère d'espace  

Les effecteurs de format sont les caractères ISO (et ASCII) appelés tabulation horizontale, tabulation verticale, retour chariot, saut de ligne et saut de page.

Les caractères inclus dans chacune des catégories restantes de caractères graphiques sont définis comme suit :

Catégorie Contient
Lettres minuscules abcdefghijklmnopqrstuvwxyz
Autres caractères spéciaux ! $ % ? @ [ \ ] ^ ` { } ~

Les remplacements autorisés pour les caractères spéciaux barre verticale (|), dièse (#) et citation (") sont définis dans quelques section plus loin.

Remarques : Le caractère ISO correspondant au symbole graphique dièse dans la représentation ASCII apparaît comme un symbole de la livre sterling dans les représentations nationales standard françaises, allemandes et britanniques. Dans tous les cas, la conception de la police de caractères des symboles graphiques (par exemple, qu'ils soient en italique ou en gras) ne fait pas partie de la norme ISO.

La signification des acronymes utilisés dans cette section est la suivante : ANSI signifie American National Standards Institute, ASCII signifie American Standard Code for Information Interchange et ISO signifie International Organization for Standardization.

Les noms suivants sont utilisés pour désigner des caractères spéciaux et d'autres caractères spéciaux&nbps;:

Symbole Nom
" citation
# dièse
& esperluette
' apostrophe
( parenthèse gauche
) parenthèse droite
* étoile, multiplier
+ plus
, virgule
- trait d'union, moins
. point, période
/ barre oblique, diviser
: deux-points
; point-virgule
< inférieur à
= égale
> supérieur à
_ souligner
| barre verticale
! point d'exclamation
$ dollar
% pourcentage
? point d'interrogation
@ a commercial, arobas
[ crochet gauche
\ barre oblique inverse
] crochet droit
^ accent circonflexe
` accent grave
{ accolade gauche
} accolade droite
~ tilde

Éléments lexicaux, séparateurs et délimiteurs

Le texte d'un programme est constitué des textes d'une ou plusieurs compilations. Le texte de chaque compilation est une séquence d'éléments lexicaux distincts. Chaque élément lexical est soit un délimiteur, un identificateur (pouvant être un mot réservé), un littéral numérique, un littéral de caractère, un littéral de chaîne de caractères ou un commentaire. L'effet d'un programme dépend uniquement des séquences particulières d'éléments lexicaux formant ses compilations, à l'exclusion des commentaires, le cas échéant.

Dans certains cas, un séparateur explicite est nécessaire pour séparer les éléments lexicaux adjacents (c'est-à-dire, lorsque sans séparation, l'interprétation comme un élément lexical unique est possible). Un séparateur est un caractère d'espace, un effecteur de format ou une fin de ligne. Un caractère d'espace est un séparateur sauf dans un commentaire, une chaîne de caractères littérale ou un caractère d'espace littéral. Les effecteurs de format autres que la tabulation horizontale sont toujours des séparateurs. La tabulation horizontale est un séparateur sauf dans un commentaire. La fin d'une ligne est toujours un séparateur. Le langage ne définit pas ce qui provoque la fin d'une ligne. Cependant, si, pour une implémentation donnée, la fin d'une ligne est signifiée par un ou plusieurs caractères, alors ces caractères doivent être des effecteurs de format autres que la tabulation horizontale. Dans tous les cas, une séquence d'un ou plusieurs effecteurs de format autres que la tabulation horizontale doit provoquer au moins une fin de ligne.

Un ou plusieurs séparateurs sont autorisés entre deux éléments lexicaux adjacents, avant le premier de chaque compilation ou après le dernier. Au moins un séparateur est requis entre un identificateur ou un littéral numérique et un identificateur ou un littéral numérique adjacent.

Un délimiteur est l'un des caractères spéciaux suivants (dans l'ensemble de caractères de base) :

& ' ( ) * + , - . / : ; < = > |

ou l'un des délimiteurs composés suivants, chacun composé de deux caractères spéciaux adjacents :

=> .. ** := /= >= <= << >> <>

Chacun des caractères spéciaux répertoriés pour les délimiteurs de caractères simples est un délimiteur simple, sauf si ce caractère est utilisé comme caractère d'un délimiteur composé, ou comme caractère d'un commentaire, d'une chaîne littérale, d'un caractère littéral ou d'un numérique littéral.

Les autres formes d'éléments lexicaux sont décrites dans d'autres sections de cette page.

Remarques : chaque élément lexical doit tenir sur une ligne, car la fin d'une ligne est un séparateur. Les guillemets, les dièses et les caractères soulignés, ainsi que deux tirets adjacents, ne sont pas des délimiteurs, mais peuvent faire partie d'autres éléments lexicaux.

Les noms suivants sont utilisés pour désigner les délimiteurs composés :

Délimiteur Nom
=> Flèche
.. Double point
** Double étoile, exponentielle
:= affectation (prononcé : «devient»)
/= inégalité (prononcé : «pas égal»)
>= supérieur ou égal
<= inférieur ou égal
<< crochet d'étiquette gauche
>> crochet d'étiquette droit
<> boîte

Identifiants

Les identifiants sont utilisés comme noms et également comme mots réservés :

identificateur ::=
   lettre ([souligner] lettre_ou_chiffre|

lettre_ou_chiffre ::= lettre | chiffre

lettre ::= lettre_majuscule | lettre_minuscule

Tous les caractères d'un identifiant sont significatifs, y compris tout caractère de soulignement inséré entre une lettre ou un chiffre et une lettre ou un chiffre adjacent. Les identifiants qui ne diffèrent que par l'utilisation de lettres majuscules et minuscules correspondantes sont considérés comme identiques.

Exemples

  1. COUNT       X    get_symbol    Ethelyn    Marion
  2. SNOBOI_4    X1   PageCount     STORE_NEXT_ITEM

Remarque : aucun espace n'est autorisé dans un identifiant, car un espace est un séparateur.

Littéraux numériques

Il existe deux classes de littéraux numériques : les littéraux réels et les littéraux entiers. Un littéral réel est un littéral numérique incluant un point; un littéral entier est un littéral numérique sans point. Les littéraux réels sont les littéraux de type universel_real. Les littéraux entiers sont les littéraux de type universal_integer.

litteral_numerique ::= litteral_decimal | litteral_base

Littéraux décimaux

Un littéral décimal est un littéral numérique exprimé dans la notation décimale conventionnelle (c'est-à-dire que la base est implicitement dix) :

decimaLliteral ::= entier [.entier] [exposant]
entier ::= chiffre [[soulignement] chiffre]
exposant ::= E [ + ] entier | E - entier

Un caractère de soulignement inséré entre des chiffres adjacents d'un littéral décimal n'affecte pas la valeur de ce littéral numérique. La lettre E de l'exposant, le cas échéant, peut être écrite soit en minuscule, soit en majuscule, avec la même signification.

Un exposant indique la puissance de dix par laquelle la valeur du littéral décimal sans l'exposant doit être multipliée pour obtenir la valeur du littéral décimal avec l'exposant. Un exposant pour un littéral entier ne doit pas avoir de signe moins.

Exemples :

  1.    12         0           1E6     123_456       -- littéraux entiers
  2.    12.0       0.0         0.456   3.14159_26    -- littéraux réels
  3.    1.34E-12   1.0E+6                            -- littéraux réels avec exposant

Remarques : les zéros non significatifs sont autorisés. Aucun espace n'est autorisé dans un littéral numérique, pas même entre les constituants de l'exposant, car un espace est un séparateur. Un exposant nul est autorisé pour un littéral entier.

Littéraux de base

Un littéral de base est un littéral numérique exprimé sous une forme spécifiant explicitement la base. La base 1 doit être au moins égale à deux et au plus à seize :

base_litteral ::=
   base ≠ base_entier [.base_entier] # [exposant]

base ::= entier

base_entier ::=
   chiffre_etendu {[souligner] chiffre_etendu}

chiffre_etendu ::= chiffre | lettre

Un caractère de soulignement inséré entre des chiffres adjacents d'un littéral de base n'affecte pas la valeur de ce littéral numérique. La base et l'exposant, le cas échéant, sont en notation décimale. Les seules lettres autorisées comme chiffres étendus sont les lettres A à F pour les chiffres dix à quinze. Une lettre dans un littéral de base (soit un chiffre étendu, soit la lettre E d'un exposant) peut être écrite en minuscule ou en majuscule, avec la même signification.

La signification conventionnelle de la notation basée est supposée ; en particulier, la valeur de chaque chiffre étendu d'un littéral de base doit être inférieure à la base. Un exposant indique la puissance de la base par laquelle la valeur du littéral de base sans l'exposant doit être multipliée pour obtenir la valeur du littéral de base avec l'exposant.

Exemples

  1.    2#1111_1111#         16#FF#           016#0FF#      -- littéraux entiers de valeur 255
  2.    16#E#E1              2#1110_0000#                   -- littéraux entiers de valeur 224
  3.    16#F.FF#E+2          2#1.1111_1111_111#E11          -- littéraux réels de valeur 4095,0

Littéraux de caractère

Un littéral de caractère est formé en enfermant l'un des 95 caractères graphiques (espace compris) entre deux caractères d'apostrophe. Un littéral de caractère a une valeur appartenant à un type de caractère.

caractere-literale 'caractere_graphique'

Exemple

  1. 'A'     '*'     ...    ' '

Littéraux de chaîne de caractères

Un littéral de chaîne de caractères est formé d'une séquence de caractères graphiques (éventuellement aucun) enfermés entre deux guillemets utilisés comme crochets de chaîne de caractères.

chaine-litterale "{caractere_graphique}"

Un littéral de chaîne de caractères a une valeur étant une séquence de valeurs de caractères correspondant aux caractères graphiques du littéral de chaîne de caractères, à l'exception du caractère de citation lui-même. Si une valeur de caractère de citation doit être représentée dans la séquence de valeurs de caractères, une paire de caractères de citation adjacents doit être écrite à l'emplacement correspondant dans le littéral de chaîne. (Cela signifie qu'un littéral de chaîne qui comprend deux caractères de citation adjacents n'est jamais interprété comme deux littéraux de chaîne adjacents.)

a longueur d'un littéral de chaîne de caractères est le nombre de valeurs de caractères dans la séquence représentée. (Chaque caractère de citation doublé est compté comme un caractère unique.)

Exemples :

  1. "Message du jour :"
  2. ""                                  -- une chaîne de caractères littérale vide
  3. " "       "A"         """ -- trois chaînes de caractères littérales de longueur 1
  4. "Les caractères tels que $, %, et } sont autorisés dans les littéraux de chaîne de caractères"

Remarque : Une chaîne de caractères littérale doit tenir sur une seule ligne car il s'agit d'un élément lexical. Des séquences plus longues de 6 valeurs de caractères graphiques peuvent être obtenues par la chaîne de littéraux de chaîne de caractères. De même, la chaîne de caractères de constantes déclarées dans le paquet ASCII peut être utilisée pour obtenir des séquences de valeurs de caractères incluant des valeurs de caractères non graphiques (les soi-disant caractères de contrôle). Des exemples de telles utilisations de la chaîne de caractères sont donnés ci-dessous :

  1. "PREMIÈRE PARTIE D'UNE SÉQUENCE DE CARACTÈRES " &
  2. "CONTINUANT SUR LA LIGNE SUIVANTE"
  3. "séquence incluant le " & ASCII.ACK & " caractère de contrôle"

Les commentaires

Un commentaire commence par deux tirets adjacents et s'étend jusqu'à la fin de la ligne. Un commentaire peut apparaître sur n'importe quelle ligne d'un programme. La présence ou l'absence de commentaires n'a aucune influence sur la légalité ou l'illégalité d'un programme. De plus, les commentaires n'influencent pas l'effet d'un programme ; leur seul but est d'éclairer le lecteur humain.

Exemples

  1. --la dernière phrase ci-dessus fait écho au rapport Algol 68
  2. end; -- le traitement de LINE est terminé
  3. -- un long commentaire peut être divisé en
  4. -- deux ou plusieurs lignes consécutives
  5. -------- les deux premiers tirets commencent le commentaire

Remarque : la tabulation horizontale peut être utilisée dans les commentaires, après le double trait d'union, et équivaut à 3 espaces ou plus.

Les pragmas

Un pragma est utilisé pour transmettre des informations au compilateur. Un pragma commence par le mot réservé pragma suivi d'un identifiant étant le nom du pragma :

pragma ::=
   pragma identificateur [(association_parametre |, association_parametre|)];
association_parametre :=
   [identificateur_parametre =>] nom
| [identificateur_parametre =>] expression

Les pragmes ne sont autorisés qu'aux endroits suivants dans un programme :

Des restrictions supplémentaires existent pour le placement de pragmas spécifiques.

Certains pragmas ont des paramètres. Les associations d'arguments peuvent être soit positionnelles, soit nommées comme pour les associations de paramètres d'appels de sous-programmes. Les associations nommées ne sont cependant possibles que si les identifiants d'arguments sont définis. Un nom donné dans un paramètre doit être soit un nom visible à la place du pragma, soit un identifiant spécifique au pragma.

Les pragmas doivent être pris en charge par chaque implémentation. De plus, une implémentation peut fournir des pragmas définis par l'implémentation. Une implémentation n'est pas autorisée à définir des pragmas dont la présence ou l'absence influence la légalité du texte en dehors de ces pragmas. Par conséquent, la légalité d'un programme ne dépend pas de la présence ou de l'absence de pragmas définis par l'implémentation.

Un pragma qui n'est pas défini par le langage n'a aucun effet si son identifiant n'est pas reconnu par l'implémentation (actuelle). De plus, un pragma (qu'il soit défini par le langage ou par l'implémentation) n'a aucun effet si son placement ou ses paramètres ne correspondent pas à ce qui est autorisé pour le pragma. La région de texte sur laquelle un pragma a un effet dépend du pragma.

Exemples

  1. pragma LIST(OFF);
  2. pragma OPTIMIZE(TIME);
  3. pragma INLINE(SETMASK);
  4. pragma SUPPRESS(RANGE_CHECK, ON => INDEX);     

Remarque : il est recommandé (mais pas obligatoire) que les implémentations émettent des avertissements pour les pragmas n'étant pas reconnus et donc ignorés.

Les mots réservés

Les identifiants répertoriés ci-dessous sont appelés mots réservés et sont réservés pour une signification particulière dans le langage de programmation Ada. Pour une meilleure lisibilité de cette page, les mots réservés apparaissent en minuscules et en gras :

Un mot réservé ne doit pas être utilisé comme identifiant déclaré.

Remarques : les mots réservés qui ne diffèrent que par l'utilisation de lettres majuscules et minuscules correspondantes sont considérés comme identiques. Dans certains attributs, l'identifiant apparaissant après l'apostrophe est identique à un mot réservé.

Remplacements autorisés des caractères

Les remplacements suivants sont autorisés pour les caractères de base de la barre verticale, du dièse et des guillemets :

Ces remplacements ne changent pas la signification du programme.

Remarques : il est recommandé de limiter l'utilisation des remplacements pour les caractères de barre verticale, de dièse et de guillemets aux cas où les symboles graphiques correspondants ne sont pas disponibles. Notez que la barre verticale apparaît sous la forme d'une barre brisée sur certains équipements; le remplacement n'est pas recommandé dans ce cas.

Les règles données pour les identifiants et les littéraux numériques sont telles que les lettres minuscules et majuscules peuvent être utilisées indifféremment; ces éléments lexicaux peuvent ainsi être écrits en utilisant uniquement des caractères de l'ensemble de caractères de base. Si un littéral de chaîne de type prédéfini STRING contient des caractères n'étant pas dans l'ensemble de caractères de base, la même séquence de valeurs de caractères peut être obtenue en enchaînant les littéraux de chaîne de caractères ne contenant que des caractères de l'ensemble de caractères de base avec des constantes de caractères appropriées déclarées dans le paquet prédéfini ASCII. Ainsi, le littéral de chaîne "AB $CD'' pourrait être remplacé par "AB" & ASCII.DOLLAR & "CD De même, le littéral de chaîne de caractères "ABcd " avec des lettres minuscules pourrait être remplacé par "AB " & ASCII .LC_C & ASCII.IC_D.



PARTAGER CETTE PAGE SUR
Dernière mise à jour : Samedi, le 28 décembre 2024