Skip to content

Latest commit

 

History

History
73 lines (53 loc) · 1.97 KB

README.md

File metadata and controls

73 lines (53 loc) · 1.97 KB

ADS4_2018

Projet d'analyse des données structurées en 2ème année universitaire.
Le projet consiste à implémenter un interpréteur permettant de tracer automatiquement et précisément des formes géométriques simples, en lisant des instructions dans un fichier.

Compilation et exécution

Pour tous les systèmes unix,

jflex lexer.flex
javac *.java
java Main Tests/fichier_test

Langage et grammaire


nombre→ [0-9]+
hex→ [0-9A-F]
couleur→ #{hex}{hex}{hex}{hex}{hex}{hex}
identificateur→ [a-z][a-zA-Z_]*

programme→
          suite-instructions
instruction→
            Begin
            suite-instructions
            End
            | DrawCircle (expr, expr, expr, couleur)
            | FillCircle (expr, expr, expr, couleur)
            | DrawRect (expr, expr, expr, expr, couleur)
            | FillRect (expr, expr, expr, expr, couleur)
            | Const identificateur = expr
            | If expr Then instruction (Else instruction)| Fi
            | Var identificateur = expr
            | While expr Do instruction
            | For (Var identificateur = expr, expr, expr) Do instruction
suite-instructions→
            instruction; suite-instructions
            | ε
expr→
            nombre
            |(expr opérateur expr)
            | identificateur

Extensions ajoutées

  • Conditionnelles sans Else

    Il est possible de rajouter des conditionnelles dans votre fichier, la syntaxe :

    If expr_condition Then instruction1 Fi

  • Variables

    Vous pouvez également utiliser des variables avec :

    Var nom_variable = valeur

  • Boucles While et For

    Si vous désirez employer des boucles dans le code de votre fichier, vous pouvez utiliser :

    While expr_condition Do instructions

    pour la boucle while() et

    For(declaration, expr_condition, incrementation) Do

    pour la boucle for().

Ce projet a été réalisé par Faridah Akinotcho et Aliaksandr Budzko, GL HF 😉