@cyklang/core v0.26.2
lang: fr permalink: /language-syntax/ title: Noyau
layout: default
Instructions du noyau du cadriciel
Sommaire
- Instructions du noyau du cadriciel
Conventions typographiques
Types de données
- Texte :
- Nombre :
<number/>
- Heure :
<datetime/>
- Booléen :
<boolean/>
- Object :
<object/>
- Module :
<module/>
- Fonction :
<function/>
- Undefined
Déclaration de données primitives
Déclaration de string
(chaine de caractères)
<string [ name="identifier" ] [ literal="" ] >
expression | text_literal |
</string>
- Si l'attribut
literal
est spécifié, le contenu de la balise n'est pas évalué en tant qu'expression mais considéré comme un texte litéral - Un contenu de balise vide est équivalent à la valeur
undefined
- La XML CDATA est acceptée
- L'attribut
name
est facultatif : utile dans le cas de l'initialisation d'une liste de données anonymes
Exemples
<string name="person_1"> "John Doe" </string>
<string name="person_2" literal="">John Doe</string>
<string name="math_formula_1"> <![CDATA[ "x < y" ]]> </string>
<string name="math_formula_2" literal=""> <![CDATA[ x < y ]]> </string>
Déclaration de nombre
<number [ name="identifier" ] > *expression* | undefined | </number>
Exemples
<number name="id"/>
<number name="intvalue"> 12 </number>
<number name="amount"> 10.25 </number>
Déclaration de datatime
Instructions de Contrôle
Instruction Conditionelle
conditional_instruction :
<if>
<condition> expression </condition>
<then>
instruction ...
</then>
[
<condition> expression </condition>
<then>
instruction ...
</then>
] ...
[
<else>
instruction ...
</else>
]
</if>
Instruction While
while_instruction :
<while>
<condition> expression </condition>
<then>
instruction ...
</then>
</while>
Sortie de boucle par <break/>
Itération suivante par '`
Instruction Loop
loop_instruction :
<loop>
instruction ...
</loop>
Instruction break
break_instruction :
<break>
[ expression ]
</break>
Si expression est présente, elle est évaluée Si le résultat est équivalent à VRAI, le programme quitte le bloc en cours Si expression est absente, le programme quitte le bloc en cours
Instruction Affectation
set_instruction :
<set name="identifier"> expression </set>
<let name="identifier"> expression </let>
Les noms de balise set
et let
ont la même signification
Instruction Stringexec
<stringexec> expression </stringexec>
L'expression est évaluée en tant que chaine, puis considérée comme un texte de programme qui est exécuté
Instruction Parallel
<parallel>
instruction ...
</parallel>
Chaque instruction dans le bloc est exécuté en parallèle des autres.
L'instruction <parallel/>
se termine lorsque toutes les intrutions du bloc sont terminées.
Définition de fonction
Exemple : la fonction factorielle
<function name="fact" returns="result: number">
<number name="N"/>
<block>
<if>
<condition><![CDATA[ N <= 0]]></condition>
<then>
<let name="result">1</let>
</then>
<else>
<number name="fact1">1</number>
<call function="fact" returns="fact1">
<number name="N">N - 1</number>
</call>
<let name="result">N * fact1</let>
</else>
</if>
</block>
</function>
Instruction Appel de Fonction
Function
<call function="identifier" [ returns="identifier : datatype" ] >
declare_instruction ...
</call>
Methode d'Objet
<call object="identifier" method="identifier" [ returns="identifier : datatype" ] >
declare_instruction ...
</call>
Méthode d'un Module
<call module="identifier" method="identifier" [ returns="identifier: datatype*" ] >
declare_instruction ...
</call>
Format des expressions
1 month ago
1 month ago
1 month ago
3 months ago
3 months ago
5 months ago
6 months ago
4 months ago
4 months ago
4 months ago
5 months ago
6 months ago
4 months ago
4 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
10 months ago
10 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
12 months ago
12 months ago
12 months ago
12 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago