╭────────────────────────────────────────────╮
│ 🐙 Aide pour le langage Oktopios │
╰────────────────────────────────────────────╯
📦 Commandes générales :
okp fichier.okp → Exécute un fichier Oktopios
okp 'code' → Exécute une commande en ligne
okp --help ou -h → Affiche cette aide
okp --version ou -v → Affiche la version du langage
okp --keywords ou -kw → Liste les mots-clés disponibles
okp --doc ou -d → Affiche une documentation intégrée
okp --init NomProjet → Crée une structure de projet Oktopios
🧠 Analyse et REPL :
okp --check ou -ch → Vérifie la syntaxe d'un code Oktopios
okp --repl ou --rl → Lance l'interface interactive REPL
📘 Fonctions natives :
okp --native ou -nt → Liste les fonctions natives (+doc, ex.)
okp --native-json ou -nj → Renvoie les fonctions natives en JSON
okp --native-markdown ou -nm → Génère la doc native au format Markdown
🧪 Types utilisés :
okp --types ou -tp → Affiche les types disponibles
okp --types-used ou -tu → Affiche les types utilisés dans un fichier
okp --types-detail ou -td → Affiche les variables et leurs types
okp --types-json ou -tj → Renvoie les variables et fonctions (JSON)
🔹 Exemples :
okp monfichier.okp
okp 'print("Bonjour")'
okp --native
okp --types-used monfichier.okp
Oktopios langage
Oktopios est un langage de programmation hybride inspiré du système nerveux et circulatoire de la pieuvre. Il combine des aspects orientés objet, fonctionnels et modulaires, avec une syntaxe claire inspirée de Kotlin.
🐙 Fonctionnalités principales
- Prise en charge des mots-clés hybrides :
core , ten , inject , activate , etc.
- Syntaxe moderne avec
val , var , print , if , try , catch , switch , etc.
- Exécution directe des fichiers
.okp depuis l’éditeur.
- Mise en surbrillance de la syntaxe Oktopios dans VS Code.
- Couleurs pour les mots-clés, chaînes, commentaires, etc.
▶️ Commandes disponibles
🛠️ Extension VS Code
- Prend en charge les fichiers
.okp
- Mise en surbrillance avec
oktopios.tmLanguage.json
- Auto-complétion, coloration syntaxique et configuration de blocs
📄 Licence
Ce projet est sous licence MIT. Voir le fichier LICENSE .
🧠 À propos
Développé par Ali Soule Mouanwiya, Oktopios introduit des concepts uniques comme :
- les tentacules (
tent[...] ) pour modulariser les comportements dont chacun possede son propre cœur,
- une injection fluide avec
inject ,
- un cœur central avec
core ,
- un système orienté objet mais souple et hybride.
🔹 Fonctionnalités de l’extension
- 🎨 Mise en évidence syntaxique (
.okp )
- ▶️ Commande
Oktopios: Run Current File pour exécuter le fichier actif
- 🧹 Commande
Oktopios: Lint Current File pour vérifier le code
- 🗂️ Support des commentaires
// et /* */
- 🧠 Reconnaissance des mots-clés Oktopios (
if , val , try , print , etc.)
📘 🐙 Documentation du Langage Oktopios – Version 0.2
✅ Types et Variables
val : constante
var : variable mutable
- Types disponibles :
int , float , bool , string , string[]
✅ Contrôle de Flux
✅ Erreurs et Gestion d’Exceptions
try {
// Code risqué
} catch(e) {
// Gestion
} finally {
// Toujours exécuté
}
✅ Affectation Abrégée
x += 1
x -= 2
x *= 3
x /= 2
✅ Casts et Concaténation
- Cast implicite :
print("x = "+x)
toString(val)
✅ Tableaux de chaînes
var noms: string[] = ["Ali", "Nina"]
print(noms[0])
✅ Fonctions
Déclaration :
fun nom(param1: type, param2: type): typeRetour {
return valeur
}
Surcharge : autorisée via arité
fun calcule(a: int, b: int): int { return a + b }
fun calcule(a: int, b: int, c: int): int { return (a + b) * c }
Lambda :
val doubler = lambda(x) => x * 2
Fonctions imbriquées & closures :
fun outer() {
fun inner() { print("ok") }
inner()
}
✅ Fonctions Natives
- Chaînes :
length , upper , lower , startswith , endsWith , replace , substring , camelcase , trim , indexof , contains , isempty
- Math :
abs , round , floor , ceil , sqrt , pow , log , log10 , exp , sin , cos , tan , asin , acos , atan , deg , rad , max , min
- Autres :
toString , throw
🧪 À tester automatiquement
Prévoir un fichier tests.okp avec tous les cas d’usage importants pour la non-régression.
✍️ Exemple : 1 de code
val message = "Salut"
print(message)
try {
val x = 10 / 0
} catch(e) {
print("Erreur détectée : "+e)
}
✅ Exemples : 2 Importants
val doubler = lambda(x) => x * 2
val doubler_apres_incr = composer(doubler, lambda(x) => x + 1)
print(doubler_apres_incr(4)) // → 10
| |