Skip to content

Mini langage réalisé en PYTHON grâce au module PLY dans le cadre d'un projet de troisième année d'Architecture des Logiciels à l'ESGI

Notifications You must be signed in to change notification settings

jabibamman/Mini-Langage-PLY

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

81 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PLY_SC1

Auteurs : James ABIB et Ronan KIELT

Installation

  • Installer requirements.txt avec la commande pip install -r requirements.txt

  • Installer graphviz avec la commande sudo apt-get install graphviz (linux) ou brew install graphviz (pour mac) ou choco install graphviz (pour windows)

Fonctionnalités

  1. Noms de variables à plusieurs caractères

  2. Affectation dans une variable :

x=2;
x=2+2;
x= "Hello World";
  1. Affichage d’expressions numériques (pouvant contenir des variables numériques) :
x=2;
print(x+2);
print(2+2);
  1. Instructions conditionnelles :
x=2;
if (x>2) { print(x+2); } else { print(x-2); }
if (x>2) { print(x+2); } else if (x<2) { print(x-2); } else { print(x); }
if (x>2) { print(x+2); } elif (x<2) { print(x-2); } else { print(x); }
  1. Structures itératives (while et for) :
x=2;
while (x<10) { print(x); x=x+1; }
for (i=0; i<10; i=i+1) { print(i); }
  1. Affichage de l’arbre de syntaxe (sur la console ou avec graphViz)

  2. Gérer les fonctions avec/sans paramètre sans valeur de retour :

function f() { print(2); }
function f(x) { print(x); }
function f(x, y) { print(x+y); }
  1. Les tableaux :
x = [1, 2, 3];
y = [1, 2, 3, 4, 5];
z = [1, 2, 3, 4, 5, 6, 7, 8, 9];
print(x[0]);
print(y[1]);
print(z[2]);
print(x[0] + y[1] + z[2]);
  1. Gestion des erreurs (variable non initialisée, ...)

  2. String et affichage de String

x = "Hello World";
print(x);

y = "Hello";
z = "World";
print(y + " " + z);
print("Hello" + " " + "World");
print("Hello World");
  1. Incrémentation et affectation élargie :
x++; 
x--;
x+=1;
x-=1;
x/=1;
x*=1;
  1. Commentaires :
// commentaire sur une ligne
/* commentaire sur 
plusieurs lignes */
  1. Print multiples :
print(x+2, "toto");
  1. Passage des paramètres par référence
print(id(5));
x=5;
print(id(x));
  1. Affectations multiples :
a,b,c = 2,3,5;

Fonctionnalités non implémentées

  1. Comparaison multiples à la python :
1<2<3
  1. Déclaration explicite des variables :
x;
y;
z;
  1. Fonctions avec valeur de retour
function comparaison(c) {
  if(c==1) {
    return 0;
  }
  return 1;
}
  1. Scope des variables

  2. Fonctions récursives terminales

  3. Programmation Orienté Objet

  4. Variables globales

  5. Génération automatique d’une docString

About

Mini langage réalisé en PYTHON grâce au module PLY dans le cadre d'un projet de troisième année d'Architecture des Logiciels à l'ESGI

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages