> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Conventions lexicales

> Conventions lexicales du langage FlexiLayout : syntaxe de l’identifiant, ponctuation, priorité des opérateurs et associativité, affectation, constantes, commentaires.

Le langage FlexiLayout obéit aux conventions lexicales suivantes concernant les identifiants, la ponctuation, les opérateurs, l’affectation, les constantes et les commentaires.

<div id="identifiers">
  ## Identifiants
</div>

Un **identifiant** est une suite de caractères utilisée pour désigner l’un des éléments suivants :

* Nom de bloc
* Nom de l’élément
* Nom de constante
* Nom de variable
* Mot-clé

Les identifiants ne tiennent pas compte de la casse.

Syntaxe d’un identifiant :

```text theme={null}
identifier:
   nondigit
   identifier nondigit
   identifier digit

nondigit: one of
   _ a b c d e f g h i j k l m n o p q r s t u v w x y z
   A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

digit: one of
   0 1 2 3 4 5 6 7 8 9
```

<div id="punctuation-characters">
  ## Caractères de ponctuation
</div>

Les caractères de ponctuation suivants peuvent être utilisés :

`. , ( ) * / + - = < > { } : ; ! & |`

Les caractères de ponctuation `( )` et `{ }` doivent être utilisés par paires.

<div id="operator-precedence-and-associativity">
  ## Priorité des opérateurs et associativité
</div>

Le niveau de priorité le plus élevé se trouve en haut du tableau.

| Opérateur | Signification             | Associativité      |
| --------- | ------------------------- | ------------------ |
| `( )`     | Appel de fonction         |                    |
| `:`       | Appel de fonction         |                    |
| `.`       | Accès au membre           | De gauche à droite |
| `+`, `-`  | Plus unaire, moins unaire |                    |
| `*`, `/`  | Multiplication, division  | De gauche à droite |
| `+`, `-`  | Addition, soustraction    | De gauche à droite |
| `NOT`     | Négation logique (unaire) |                    |
| `<`       | Inférieur à               | De gauche à droite |
| `>`       | Supérieur à               | De gauche à droite |
| `<=`      | Inférieur ou égal à       | De gauche à droite |
| `>=`      | Supérieur ou égal à       | De gauche à droite |
| `==`      | Égalité                   | De gauche à droite |
| `!=`      | Inégalité                 | De gauche à droite |
| `AND`     | ET logique                | De gauche à droite |
| `OR`      | OU logique                | De gauche à droite |

<Note>
  Les opérations de comparaison (`<`, `>`, `<=`, `>=`, `==`, `!=`) ont la même priorité.
</Note>

<div id="assignment-operator">
  ## Opérateur d’affectation
</div>

L’opérateur `=` assigne une valeur à une variable.

Par exemple :

```text theme={null}
Distance a;
a = Page( 1 ).RectGlobal.Width;
```

Le type de l’expression doit être compatible avec celui de la variable.

<div id="constants">
  ## Constantes
</div>

Le langage FlexiLayout utilise uniquement des constantes globales. Les constantes globales sont définies dans la boîte de dialogue **Propriétés de FlexiLayout** et sont accessibles dans n’importe quelle section de la description de n’importe quel bloc ou élément.

Pour plus d’informations, voir [Constantes globales](/fr/flexi-capture/fls/code/global-constant).

<div id="comments">
  ## Commentaires
</div>

Vous pouvez ajouter des commentaires au code. Les commentaires ont le même format qu’en langage C et peuvent s’écrire de l’une des façons suivantes :

* Les caractères `/*` (barre oblique, astérisque), suivis d’une séquence quelconque de caractères (y compris des retours à la ligne), puis des caractères `*/`.
* Les caractères `//` (deux barres obliques), suivis d’une séquence quelconque de caractères. Un retour à la ligne qui n’est pas immédiatement précédé d’un antislash met fin à cette forme de commentaire.
