Upload 3 files
Browse files- install_maya.sh +81 -0
- maya.my +42 -0
- test.my +83 -0
install_maya.sh
ADDED
|
@@ -0,0 +1,81 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
|
| 2 |
+
#!/bin/bash
|
| 3 |
+
|
| 4 |
+
# Script d'installation Maya v5.0
|
| 5 |
+
# Installe les commandes globales Maya
|
| 6 |
+
|
| 7 |
+
RED='\033[31m'
|
| 8 |
+
GREEN='\033[32m'
|
| 9 |
+
YELLOW='\033[33m'
|
| 10 |
+
BLUE='\033[34m'
|
| 11 |
+
PINK='\033[95m'
|
| 12 |
+
RESET='\033[0m'
|
| 13 |
+
|
| 14 |
+
echo -e "${PINK}🌸 === INSTALLATION MAYA v5.0 === 🌸${RESET}"
|
| 15 |
+
|
| 16 |
+
# Vérifier que le script maya existe
|
| 17 |
+
if [ ! -f "maya" ]; then
|
| 18 |
+
echo -e "${RED}❌ Fichier 'maya' non trouvé dans le répertoire courant${RESET}"
|
| 19 |
+
exit 1
|
| 20 |
+
fi
|
| 21 |
+
|
| 22 |
+
# Vérifier que main existe et est compilé
|
| 23 |
+
if [ ! -f "main" ]; then
|
| 24 |
+
echo -e "${YELLOW}⚠️ Exécutable 'main' non trouvé. Compilation...${RESET}"
|
| 25 |
+
if [ -f "Makefile" ]; then
|
| 26 |
+
make
|
| 27 |
+
else
|
| 28 |
+
gcc -Wall -Wextra -std=c99 -g -D_GNU_SOURCE -O2 -o main main.c -lm -ldl -lpthread
|
| 29 |
+
fi
|
| 30 |
+
|
| 31 |
+
if [ ! -f "main" ]; then
|
| 32 |
+
echo -e "${RED}❌ Impossible de compiler Maya${RESET}"
|
| 33 |
+
exit 1
|
| 34 |
+
fi
|
| 35 |
+
echo -e "${GREEN}✅ Compilation réussie${RESET}"
|
| 36 |
+
fi
|
| 37 |
+
|
| 38 |
+
# Créer le répertoire d'installation si nécessaire
|
| 39 |
+
INSTALL_DIR="$HOME/.local/bin"
|
| 40 |
+
mkdir -p "$INSTALL_DIR"
|
| 41 |
+
|
| 42 |
+
# Copier le script maya
|
| 43 |
+
echo -e "${BLUE}📦 Installation du script maya...${RESET}"
|
| 44 |
+
cp maya "$INSTALL_DIR/maya"
|
| 45 |
+
chmod +x "$INSTALL_DIR/maya"
|
| 46 |
+
|
| 47 |
+
# Copier l'exécutable principal
|
| 48 |
+
echo -e "${BLUE}📦 Installation de l'interpréteur...${RESET}"
|
| 49 |
+
cp main "$INSTALL_DIR/maya-interpreter"
|
| 50 |
+
chmod +x "$INSTALL_DIR/maya-interpreter"
|
| 51 |
+
|
| 52 |
+
# Vérifier si le répertoire est dans le PATH
|
| 53 |
+
if [[ ":$PATH:" != *":$INSTALL_DIR:"* ]]; then
|
| 54 |
+
echo -e "${YELLOW}⚠️ Le répertoire $INSTALL_DIR n'est pas dans votre PATH${RESET}"
|
| 55 |
+
echo -e "${BLUE}💡 Ajoutez cette ligne à votre ~/.bashrc ou ~/.zshrc:${RESET}"
|
| 56 |
+
echo -e "${GREEN}export PATH=\"\$HOME/.local/bin:\$PATH\"${RESET}"
|
| 57 |
+
echo ""
|
| 58 |
+
|
| 59 |
+
# Ajouter automatiquement au bashrc si possible
|
| 60 |
+
if [ -f "$HOME/.bashrc" ]; then
|
| 61 |
+
if ! grep -q "$INSTALL_DIR" "$HOME/.bashrc"; then
|
| 62 |
+
echo -e "${YELLOW}📝 Ajout automatique au ~/.bashrc...${RESET}"
|
| 63 |
+
echo 'export PATH="$HOME/.local/bin:$PATH"' >> "$HOME/.bashrc"
|
| 64 |
+
echo -e "${GREEN}✅ PATH mis à jour dans ~/.bashrc${RESET}"
|
| 65 |
+
echo -e "${BLUE}💡 Exécutez: source ~/.bashrc ou redémarrez votre terminal${RESET}"
|
| 66 |
+
fi
|
| 67 |
+
fi
|
| 68 |
+
fi
|
| 69 |
+
|
| 70 |
+
echo ""
|
| 71 |
+
echo -e "${GREEN}🎉 Installation terminée avec succès!${RESET}"
|
| 72 |
+
echo -e "${PINK}🌸 Maya v5.0 est maintenant installé globalement! 🌸${RESET}"
|
| 73 |
+
echo ""
|
| 74 |
+
echo -e "${BLUE}🚀 Commandes disponibles:${RESET}"
|
| 75 |
+
echo -e " ${GREEN}maya run <fichier.my>${RESET} - Exécuter un fichier Maya"
|
| 76 |
+
echo -e " ${GREEN}maya interactive${RESET} - Mode interactif"
|
| 77 |
+
echo -e " ${GREEN}maya create <nom>${RESET} - Créer un nouveau projet"
|
| 78 |
+
echo -e " ${GREEN}maya version${RESET} - Afficher la version"
|
| 79 |
+
echo -e " ${GREEN}maya help${RESET} - Aide complète"
|
| 80 |
+
echo ""
|
| 81 |
+
echo -e "${YELLOW}💡 Testez avec: maya version${RESET}"
|
maya.my
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
|
| 2 |
+
# Test des conditions Maya
|
| 3 |
+
|
| 4 |
+
my.console('=== Test des conditions Maya ===')
|
| 5 |
+
|
| 6 |
+
# Test 1: Variables et conditions simples
|
| 7 |
+
my.variable age = 16
|
| 8 |
+
my.console('Test avec age = 16')
|
| 9 |
+
|
| 10 |
+
my.if(age < 18)
|
| 11 |
+
my.alors {
|
| 12 |
+
my.console('Vous êtes mineur!')
|
| 13 |
+
}
|
| 14 |
+
my.autre {
|
| 15 |
+
my.console('Vous êtes majeur!')
|
| 16 |
+
}
|
| 17 |
+
|
| 18 |
+
# Test 2: Autre condition
|
| 19 |
+
my.variable temperature = 25
|
| 20 |
+
my.console('Test avec temperature = 25')
|
| 21 |
+
|
| 22 |
+
my.if(temperature > 30)
|
| 23 |
+
my.alors {
|
| 24 |
+
my.console('Il fait chaud!')
|
| 25 |
+
}
|
| 26 |
+
my.autre {
|
| 27 |
+
my.console('Temperature normale')
|
| 28 |
+
}
|
| 29 |
+
|
| 30 |
+
# Test 3: Variable booléenne
|
| 31 |
+
my.variable pluie = 0
|
| 32 |
+
my.console('Test avec pluie = false (0)')
|
| 33 |
+
|
| 34 |
+
my.if(pluie)
|
| 35 |
+
my.alors {
|
| 36 |
+
my.console('Il pleut!')
|
| 37 |
+
}
|
| 38 |
+
my.autre {
|
| 39 |
+
my.console('Pas de pluie!')
|
| 40 |
+
}
|
| 41 |
+
|
| 42 |
+
my.console('=== Fin des tests ===')
|
test.my
ADDED
|
@@ -0,0 +1,83 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
|
| 2 |
+
# Test complet des nouvelles fonctionnalités Maya v2.0
|
| 3 |
+
|
| 4 |
+
my.console('🌸 === Tests Maya v2.0 === 🌸')
|
| 5 |
+
|
| 6 |
+
# Test 1: Variables améliorées avec concaténation
|
| 7 |
+
my.variable nom = 'Maya'
|
| 8 |
+
my.variable version = '2.0'
|
| 9 |
+
my.console('Bienvenue dans le langage ' + nom + ' version ' + version + '!')
|
| 10 |
+
|
| 11 |
+
# Test 2: Couleurs de console
|
| 12 |
+
my.color.console('PINK')
|
| 13 |
+
my.console('Ce texte est en rose!')
|
| 14 |
+
|
| 15 |
+
my.color.console('BLUE')
|
| 16 |
+
my.console('Ce texte est en bleu!')
|
| 17 |
+
|
| 18 |
+
my.color.console('GREEN')
|
| 19 |
+
my.console('Ce texte est en vert!')
|
| 20 |
+
|
| 21 |
+
my.color.console('DEFAULT')
|
| 22 |
+
|
| 23 |
+
# Test 3: Délais entre messages
|
| 24 |
+
my.console('Message 1...')
|
| 25 |
+
my.delai(1000)
|
| 26 |
+
my.console('Message 2 après 1 seconde!')
|
| 27 |
+
my.delai(500)
|
| 28 |
+
my.console('Message 3 après 0.5 seconde!')
|
| 29 |
+
|
| 30 |
+
# Test 4: Dessins ASCII
|
| 31 |
+
my.console('🎨 Voici quelques dessins ASCII:')
|
| 32 |
+
my.draw.heart
|
| 33 |
+
my.delai(500)
|
| 34 |
+
my.draw.tree
|
| 35 |
+
my.delai(500)
|
| 36 |
+
my.draw.dog
|
| 37 |
+
my.delai(500)
|
| 38 |
+
my.draw.horse
|
| 39 |
+
my.delai(500)
|
| 40 |
+
my.draw.goat
|
| 41 |
+
my.draw.pers('--------🍅🛑💚💚🌷🐉🌷🏹🍉🌸🍉🌸🍉🌸🍉🌸🌸🍉🌸🍉🌸🍉-------')
|
| 42 |
+
|
| 43 |
+
# Test 5: Dessin personnalisé
|
| 44 |
+
my.draw.pers(' ★ Maya ★ ')
|
| 45 |
+
|
| 46 |
+
# Test 6: Texte stylé
|
| 47 |
+
my.jolie.txt('Maya est fantastique!', 'Style1')
|
| 48 |
+
|
| 49 |
+
# Test 7: Nombres aléatoires
|
| 50 |
+
my.console('🎲 Génération de nombres aléatoires:')
|
| 51 |
+
my.nombre.random(1, 10)
|
| 52 |
+
my.nombre.random(50, 100)
|
| 53 |
+
|
| 54 |
+
# Test 8: Texte aléatoire
|
| 55 |
+
my.console('🎭 Sélection de texte aléatoire:')
|
| 56 |
+
my.random.txt('Bonjour', 'Salut', 'Coucou', 'Hello', 'Bonsoir')
|
| 57 |
+
|
| 58 |
+
# Test 9: Conditions avec variables
|
| 59 |
+
my.variable age = 20
|
| 60 |
+
my.if(age >= 18)
|
| 61 |
+
my.alors {
|
| 62 |
+
my.color.console('GREEN')
|
| 63 |
+
my.console('Vous êtes majeur!')
|
| 64 |
+
my.color.console('DEFAULT')
|
| 65 |
+
}
|
| 66 |
+
my.autre {
|
| 67 |
+
my.color.console('YELLOW')
|
| 68 |
+
my.console('Vous êtes mineur!')
|
| 69 |
+
my.color.console('DEFAULT')
|
| 70 |
+
}
|
| 71 |
+
|
| 72 |
+
# Test 10: Mathématiques avec variables
|
| 73 |
+
my.variable nombre1 = 15
|
| 74 |
+
my.variable nombre2 = 25
|
| 75 |
+
my.console('Calculs avec variables:')
|
| 76 |
+
my.math.add(nombre1 + nombre2)
|
| 77 |
+
|
| 78 |
+
my.console('🎉 Tests terminés! Maya v2.0 fonctionne parfaitement! 🎉')
|
| 79 |
+
my.random.txt('Option1', 'Option2', 'Option3')
|
| 80 |
+
my.math.add(5 + 3) # renvoie 8
|
| 81 |
+
my.math.sub(6 - 3) # renvoie 3
|
| 82 |
+
my.math.div(10 / 2) # renvoie 5
|
| 83 |
+
my.math.mult(5 * 2) #renvoie 10
|