0.26.2 • Published 1 month ago

@cyklang/core v0.26.2

Weekly downloads
-
License
ISC
Repository
-
Last release
1 month ago

lang: fr permalink: /language-syntax/ title: Noyau

layout: default

Instructions du noyau du cadriciel

Sommaire

Conventions typographiques

ElémentDescription
literalnom de commandes ou options à taper tel quel
les éléments optionnels sont entre crochets. Les attributs optionnels sont encadrés par des crochets avec un fond différent
normalun élément défini par une autre règle syntaxique
|la barre verticale sépare des éléments optionnels alternatifs exclusifs les uns des autres
...les points de suspension indiquent que l'élément précédent peut être répété une ou plusieurs fois
{ }les accolades regroupent les éléments situés entre elles en un seul élément pour appliquer un opérateur ... ou |

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

0.26.2

1 month ago

0.26.1

1 month ago

0.26.0

1 month ago

0.25.3

3 months ago

0.25.2

3 months ago

0.20.0

5 months ago

0.19.0

6 months ago

0.25.1

4 months ago

0.25.0

4 months ago

0.23.0

4 months ago

0.21.0

5 months ago

0.18.0

6 months ago

0.24.0

4 months ago

0.22.0

4 months ago

0.17.0

7 months ago

0.16.0

7 months ago

0.15.0

7 months ago

0.14.1

7 months ago

0.14.0

7 months ago

0.13.0

7 months ago

0.12.4

8 months ago

0.12.1

8 months ago

0.12.2

8 months ago

0.12.3

8 months ago

0.12.0

8 months ago

0.11.6

8 months ago

0.11.5

8 months ago

0.11.4

8 months ago

0.11.3

9 months ago

0.11.2

9 months ago

0.11.1

9 months ago

0.11.0

9 months ago

0.10.0

9 months ago

0.9.1

10 months ago

0.9.0

10 months ago

0.8.8

11 months ago

0.8.7

11 months ago

0.8.6

11 months ago

0.8.5

11 months ago

0.8.4

11 months ago

0.8.3

12 months ago

0.8.2

12 months ago

0.8.1

12 months ago

0.8.0

12 months ago

0.6.6

1 year ago

0.6.3

1 year ago

0.5.4

1 year ago

0.4.5

1 year ago

0.6.2

1 year ago

0.5.3

1 year ago

0.6.5

1 year ago

0.6.4

1 year ago

0.4.6

1 year ago

0.5.0

1 year ago

0.7.0

1 year ago

0.6.1

1 year ago

0.5.2

1 year ago

0.5.1

1 year ago

0.4.4

2 years ago

0.4.3

2 years ago

0.4.2

2 years ago

0.4.1

2 years ago

0.3.9

2 years ago

0.3.6

2 years ago

0.3.8

2 years ago

0.3.7

2 years ago

0.4.0

2 years ago

0.3.5

2 years ago

0.3.4

2 years ago

0.3.2

2 years ago

0.3.1

2 years ago