117 lines
2.6 KiB
Markdown
117 lines
2.6 KiB
Markdown
# Exemples / DO-DON'T — Chapitre 2 — Principes généraux du langage
|
|
|
|
> Document compagnon non normatif tant qu'une règle n'est pas explicitement référencée comme normative par le chapitre.
|
|
|
|
## Exemples actuellement présents dans le chapitre
|
|
|
|
### Exemple 1
|
|
|
|
```text
|
|
and comme alias de &&
|
|
or comme alias de ||
|
|
=== en plus de l'identité explicite
|
|
++ et --
|
|
ternaire ?: si les formes productrices de `match`/`if` avec `emit` couvrent le besoin
|
|
```
|
|
|
|
### Exemple 2
|
|
|
|
```text
|
|
&& / || short-circuit
|
|
& / | / ^ logique eager sur bool
|
|
```
|
|
|
|
### Exemple 3
|
|
|
|
```text
|
|
keywords
|
|
identifiers
|
|
numeric literals
|
|
operators
|
|
punctuation
|
|
syntactic whitespace
|
|
namespace syntax
|
|
```
|
|
|
|
### Exemple 4
|
|
|
|
```text
|
|
String literals
|
|
char literals
|
|
ordinary comments
|
|
Saseldoc comments
|
|
```
|
|
|
|
### Exemple 5
|
|
|
|
```text
|
|
U+0020 SPACE
|
|
U+0009 TAB
|
|
U+000A LF
|
|
U+000D CR
|
|
```
|
|
|
|
### Exemple 6
|
|
|
|
```regex
|
|
[A-Za-z_][A-Za-z0-9_]*
|
|
```
|
|
|
|
### Exemple 7
|
|
|
|
```text
|
|
_value // utilisateur autorisé
|
|
__value // réservé interne
|
|
```
|
|
|
|
### Exemple 8
|
|
|
|
```text
|
|
( ) grouping, calls, control headers, parameters
|
|
[ ] indexing et constructions définies par leur grammaire
|
|
{ } blocks et constructions à accolades
|
|
; fin d'un statement ou d'une déclaration sans corps
|
|
, séparation de deux éléments ; séparateur de listes init/update dans for
|
|
. qualification de namespace
|
|
:: qualification de membre/symbole
|
|
=> séparateur grammatical pattern -> bloc dans match
|
|
= assignment
|
|
+ - * / % arithmetic
|
|
& | ^ ~ bitwise/logical selon type ; | sépare aussi les alternatives d'un pattern
|
|
! logical negation / !=
|
|
< > comparaison, shifts et syntaxe générique selon contexte
|
|
.. famille de délimiteurs de Range, avec >.., ..< et >..<
|
|
' char delimiter
|
|
" String delimiter
|
|
_ identifiant / séparateur numérique / wildcard de pattern selon contexte
|
|
```
|
|
|
|
### Exemple 9
|
|
|
|
```text
|
|
# raw-string delimiter et shebang autorisé seulement selon sa règle dédiée
|
|
@ réservé hors commentaires/Saseldoc
|
|
$ réservé, notamment pendant la finalisation de l'interpolation
|
|
? réservé sans sémantique V1 encore attribuée
|
|
` réservé/interdit à l'utilisateur
|
|
\ uniquement selon les règles d'escape des littéraux
|
|
```
|
|
|
|
### Exemple 10
|
|
|
|
```text
|
|
Map<String,List<int32>>
|
|
```
|
|
|
|
### Exemple 11
|
|
|
|
```text
|
|
{
|
|
int32 myvar = 42;
|
|
}
|
|
```
|
|
|
|
## DO / DON'T / WHY / compiler error / edge cases
|
|
|
|
La couverture structurée de cette section sera enrichie au fur et à mesure de la fermeture des règles du chapitre. La migration `0.2.12` conserve volontairement les exemples historiques dans le chapitre afin de ne perdre aucun contexte normatif.
|