[Projet] Underbasic
Re: [Projet] Underbasic
@Epharius : Ça m'intéresserait effectivement mais lorsque j'aurais plus avancé dans le projet. Après l'un des principaux objectifs du projet c'est d'être accessible aux débutants alors on compilera en passant par les paramètres par exemple...
Toujours plus loin, toujours plus haut, toujours plus geek !
Créateur du projet Haskier : Jouer ! Sujet sur OpenClassrooms
Programmez en UnderBasic ! https://tiplanet.org/forum/viewtopic.php?t=19009&p=207260
Créateur du projet Haskier : Jouer ! Sujet sur OpenClassrooms
Programmez en UnderBasic ! https://tiplanet.org/forum/viewtopic.php?t=19009&p=207260
-
Clément.7
Niveau 11: LV (Légende Vivante)- Posts: 348
- Joined: 12 Jun 2013, 15:02
- Location: Près de Nantes
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: IUT Informatique en 2017-2019
- GitHub: ClementNerma
Re: [Projet] Underbasic
UPDATE !
En français :
- Les fonctions acceptent désormais des arguments optionnels (c'est-à-dire que vous n'êtes pas obligé de les passer à la fonction). Dans ce cas-là, vous pouvoir choisir ou non d'inclure une portion de code selon si tel argument a bien été spécifié.
- Les arguments optionnels peuvent avoir une valeur par défaut. Cela signifie que si vous ne les spécifiez pas, la valeur par défaut sera attribuée à l'argument. Cependant, vous pourrez toujours ou non inclure certaines lignes selon si l'argument a été spécifié.
- Support des assignements : Le code 'A = 2' sera converti en '2->A'. Le compilateur vérifiera également que vous n'assignez pas une liste à un nombre, par exemple.
- Les noms des fonctions peuvent être traduites dans le pack de traduction
- Les noms de fonctions traduites peuvent être dé-camel-case-ée, c'est à dire que 'inverserPixel' deviendra 'inverser_pixel' ce qui permets une meilleur lisibilité dans certains cas.
- La création d'un pack de traduction est désormais plus facile grâce à leur nouveau format.
- La directive #unquote a été rajoutée pour enlever les guillemets d'une variable :
devient
1 - Ça permets d'avoir un code plus clair
2 - Le compilateur sortira "Bonjour Jacques" au lieu de "Bonjour "+"Jacques", ce qui permets de gagner quelques octets ^^
P.S. : Je ferai un tutoriel sur ce langage, sur les bases et les manipulations avancées, lorsque j'aurai terminé le compilateur (ce qui est presque le cas)
- Added optional arguments
- Added default value for optional arguments
- Added assignment support (e.g. "A = 3" become "3->A")
- Added assignment checker to verify if an assignment is valid
- Translation packages can translate functions' name
- Translated function's name can be "un-camel-cased" (e.g. "inverserPixel" become "inverser_pixel")
- Improved translation system : Make a translation pack is easier now (using a simple parameters system)
- Added #unquote directive to remove the quotes at the beginning and the end of a string to include it in another string without using concatenation
Misc. improvements
- Added notices to check problems encountered during compilation
- Fixed bug : Bug in errors display for "Missing argument for function..."
En français :
- Les fonctions acceptent désormais des arguments optionnels (c'est-à-dire que vous n'êtes pas obligé de les passer à la fonction). Dans ce cas-là, vous pouvoir choisir ou non d'inclure une portion de code selon si tel argument a bien été spécifié.
- Les arguments optionnels peuvent avoir une valeur par défaut. Cela signifie que si vous ne les spécifiez pas, la valeur par défaut sera attribuée à l'argument. Cependant, vous pourrez toujours ou non inclure certaines lignes selon si l'argument a été spécifié.
- Support des assignements : Le code 'A = 2' sera converti en '2->A'. Le compilateur vérifiera également que vous n'assignez pas une liste à un nombre, par exemple.
- Les noms des fonctions peuvent être traduites dans le pack de traduction
- Les noms de fonctions traduites peuvent être dé-camel-case-ée, c'est à dire que 'inverserPixel' deviendra 'inverser_pixel' ce qui permets une meilleur lisibilité dans certains cas.
- La création d'un pack de traduction est désormais plus facile grâce à leur nouveau format.
- La directive #unquote a été rajoutée pour enlever les guillemets d'une variable :
- Code: Select all
function hello(string name) {
print "Bonjour "+{{name}}
}
hello("Jacques")
devient
- Code: Select all
function hello(string name) {
#unquote name
print "Bonjour {{name}}"
}
hello("Jacques")
1 - Ça permets d'avoir un code plus clair
2 - Le compilateur sortira "Bonjour Jacques" au lieu de "Bonjour "+"Jacques", ce qui permets de gagner quelques octets ^^
P.S. : Je ferai un tutoriel sur ce langage, sur les bases et les manipulations avancées, lorsque j'aurai terminé le compilateur (ce qui est presque le cas)
Toujours plus loin, toujours plus haut, toujours plus geek !
Créateur du projet Haskier : Jouer ! Sujet sur OpenClassrooms
Programmez en UnderBasic ! https://tiplanet.org/forum/viewtopic.php?t=19009&p=207260
Créateur du projet Haskier : Jouer ! Sujet sur OpenClassrooms
Programmez en UnderBasic ! https://tiplanet.org/forum/viewtopic.php?t=19009&p=207260
-
Clément.7
Niveau 11: LV (Légende Vivante)- Posts: 348
- Joined: 12 Jun 2013, 15:02
- Location: Près de Nantes
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: IUT Informatique en 2017-2019
- GitHub: ClementNerma
Re: [Projet] Underbasic
[Désolé je fais un double post pour plus de lisibilité]
Bon la version bêta 0.5 est finie également !
Et en français :
- Ajout du support des fichiers : Vous pouvez maintenant, via une barre d'outils, créer et supprimer des fichiers. En cliquant sur le nom de l'un d'eux, vous accédez à son contenu. Le tout est sauvegardé en mémoire en temps réel.
- Ajout d'un auto-sauveur : Par défaut, lorsque vous modifiez n'importe quel fichier, son contenu est sauvegardé en temps réel sur votre ordinateur, si votre navigateur supporte localStorage, ce qui est le cas de tous les navigateurs récents
- Ajout de la directive #include : Vous pouvez inclure le contenu d'un fichier dans un autre en utilisant la directive #include. Par exemple, dans le fichier main, si vous mettez '#include test' le contenu du fichier 'test' sera importé à cet endroit.
- Suppression de fichiers inutiles, correction d'un bug...
Bon la version bêta 0.5 est finie également !
- Added multiple files support
- Added auto-save feature
- Added mini-config editor ('#' icon in the toolbar)
- Added #include directive to include an other file
Misc. improvements
- Fixed bug : Due v0.4, functions' name were no longer translated
- Removed unused CodeMirror's files
Et en français :
- Ajout du support des fichiers : Vous pouvez maintenant, via une barre d'outils, créer et supprimer des fichiers. En cliquant sur le nom de l'un d'eux, vous accédez à son contenu. Le tout est sauvegardé en mémoire en temps réel.
- Ajout d'un auto-sauveur : Par défaut, lorsque vous modifiez n'importe quel fichier, son contenu est sauvegardé en temps réel sur votre ordinateur, si votre navigateur supporte localStorage, ce qui est le cas de tous les navigateurs récents
- Ajout de la directive #include : Vous pouvez inclure le contenu d'un fichier dans un autre en utilisant la directive #include. Par exemple, dans le fichier main, si vous mettez '#include test' le contenu du fichier 'test' sera importé à cet endroit.
- Suppression de fichiers inutiles, correction d'un bug...
Toujours plus loin, toujours plus haut, toujours plus geek !
Créateur du projet Haskier : Jouer ! Sujet sur OpenClassrooms
Programmez en UnderBasic ! https://tiplanet.org/forum/viewtopic.php?t=19009&p=207260
Créateur du projet Haskier : Jouer ! Sujet sur OpenClassrooms
Programmez en UnderBasic ! https://tiplanet.org/forum/viewtopic.php?t=19009&p=207260
-
Clément.7
Niveau 11: LV (Légende Vivante)- Posts: 348
- Joined: 12 Jun 2013, 15:02
- Location: Près de Nantes
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: IUT Informatique en 2017-2019
- GitHub: ClementNerma
Re: [Projet] Underbasic
Le compilateur est en ligne, à la dernière version (v0.5 beta) : Compilateur UnderBasic
Tapez votre code dans le cadre de gauche et il sortira, compilé, dans le cadre de droite. Vous pouvez quitter la page à n'importe quel moment sans copier votre code, lorsque vous y reviendrez le code que vous aviez saisi sera restauré (tant que vous utilisez un navigateur récent)
EDIT : J'essaye actuellement d'implémenter un émulateur de TI dans le site, mais j'ai quelques problèmes. Je posterais à nouveau ici quand j'aurais terminé !
Tapez votre code dans le cadre de gauche et il sortira, compilé, dans le cadre de droite. Vous pouvez quitter la page à n'importe quel moment sans copier votre code, lorsque vous y reviendrez le code que vous aviez saisi sera restauré (tant que vous utilisez un navigateur récent)
EDIT : J'essaye actuellement d'implémenter un émulateur de TI dans le site, mais j'ai quelques problèmes. Je posterais à nouveau ici quand j'aurais terminé !
Toujours plus loin, toujours plus haut, toujours plus geek !
Créateur du projet Haskier : Jouer ! Sujet sur OpenClassrooms
Programmez en UnderBasic ! https://tiplanet.org/forum/viewtopic.php?t=19009&p=207260
Créateur du projet Haskier : Jouer ! Sujet sur OpenClassrooms
Programmez en UnderBasic ! https://tiplanet.org/forum/viewtopic.php?t=19009&p=207260
-
Clément.7
Niveau 11: LV (Légende Vivante)- Posts: 348
- Joined: 12 Jun 2013, 15:02
- Location: Près de Nantes
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: IUT Informatique en 2017-2019
- GitHub: ClementNerma
Re: [Projet] Underbasic
Après 6 mois d'arrêt, le projet reprend ! J'ai décidé de continuer ce compilateur et d'y implémenter de nouvelles choses.
Au programme :
- Une bibliothèque de fonctions
- Ajouter l'utilisation "naturelle" des variables (ex: Disp test) qui n'est pour l'instant pas supporté
À propos de la compilation : Est-il possible de convertir un programme TI-Basic z80 (texte) en fichier .8xp en passant par Ti-Planet ? (via de l'Ajax par exemple)
Au programme :
- Une bibliothèque de fonctions
- Ajouter l'utilisation "naturelle" des variables (ex: Disp test) qui n'est pour l'instant pas supporté
À propos de la compilation : Est-il possible de convertir un programme TI-Basic z80 (texte) en fichier .8xp en passant par Ti-Planet ? (via de l'Ajax par exemple)
Toujours plus loin, toujours plus haut, toujours plus geek !
Créateur du projet Haskier : Jouer ! Sujet sur OpenClassrooms
Programmez en UnderBasic ! https://tiplanet.org/forum/viewtopic.php?t=19009&p=207260
Créateur du projet Haskier : Jouer ! Sujet sur OpenClassrooms
Programmez en UnderBasic ! https://tiplanet.org/forum/viewtopic.php?t=19009&p=207260
-
Clément.7
Niveau 11: LV (Légende Vivante)- Posts: 348
- Joined: 12 Jun 2013, 15:02
- Location: Près de Nantes
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: IUT Informatique en 2017-2019
- GitHub: ClementNerma
Re: [Projet] Underbasic
Clément.7 wrote:À propos de la compilation : Est-il possible de convertir un programme TI-Basic z80 (texte) en fichier .8xp en passant par Ti-Planet ? (via de l'Ajax par exemple)
Pas directement.
Cependant, il est relativement simple de faire ça en JS pur, si ça t'intéresse.
( https://github.com/adriweb/tivars_lib_cpp se compile en C++ ; particulièrement je pourrais faire juste la partie qui serait requise ici, en JS emscripten )
Le problème éternel reste cependant quel formatage on veut utiliser, pour les tokens non représentables textuellement directement - et encore, il reste des ambiguités compliquées à gérer sans un input parfaitement speccé en amont ; critor me citait l'exemple du 'r²', interprétable de 3 façon différentes: lettre 'r' au carré (erreur de syntaxe, certes, mais techniquement valide), symbole 'r' (statistique) au carré, symbole 'r²' (statistique))
En effet, côté utilisateur, c'est ""simple"" de mettre en place une interface pour choisir exactement les bons tokens pour lever les ambiguités, mais sous une API, c'est déjà plus compliqué (du moins, il faut avoir fait le travail de désambiguitéifications (joli mot) en amont)
MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)My calculator programs
Mes programmes pour calculatrices
-
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)- Posts: 14737
- Images: 1119
- Joined: 01 Jun 2007, 00:00
- Location: France
- Gender:
- Calculator(s):→ MyCalcs profile
- Twitter: adriweb
- GitHub: adriweb
Re: [Projet] Underbasic
Pour ce qui est dans ambiguïtés, je me base sur la syntaxe de TokenIDE.
Exemples : LSUITE correspond à la liste "SUITE" (donc le L est le petit L de liste).
Tu penses qu'il est possible de faire ça en JS pur ? Il y a de la manipulation de données hexa et de tokens, tout de même. En PHP ça doit pouvoir se faire en tout cas. Si tu penses pouvoir porter l'outil en JS ça m'aiderait beaucoup en effet
Exemples : LSUITE correspond à la liste "SUITE" (donc le L est le petit L de liste).
Tu penses qu'il est possible de faire ça en JS pur ? Il y a de la manipulation de données hexa et de tokens, tout de même. En PHP ça doit pouvoir se faire en tout cas. Si tu penses pouvoir porter l'outil en JS ça m'aiderait beaucoup en effet
Toujours plus loin, toujours plus haut, toujours plus geek !
Créateur du projet Haskier : Jouer ! Sujet sur OpenClassrooms
Programmez en UnderBasic ! https://tiplanet.org/forum/viewtopic.php?t=19009&p=207260
Créateur du projet Haskier : Jouer ! Sujet sur OpenClassrooms
Programmez en UnderBasic ! https://tiplanet.org/forum/viewtopic.php?t=19009&p=207260
-
Clément.7
Niveau 11: LV (Légende Vivante)- Posts: 348
- Joined: 12 Jun 2013, 15:02
- Location: Près de Nantes
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: IUT Informatique en 2017-2019
- GitHub: ClementNerma
Re: [Projet] Underbasic
Logiquement, si l'utilisateur utilise bien tous les tokens spéciaux et leur bonne représentation, ca devrait être bon...
Mais bref, sinon oui, en JS pur c'est faisable (y compris télécharger le fichier généré, avec les nouveaux APIs HTML5).
Je te dirai quand j'aurais une version utilisable (bientôt, espérons )
Pour du PHP, j'ai ça aussi: https://github.com/adriweb/tivars_lib
Mais bref, sinon oui, en JS pur c'est faisable (y compris télécharger le fichier généré, avec les nouveaux APIs HTML5).
Je te dirai quand j'aurais une version utilisable (bientôt, espérons )
Pour du PHP, j'ai ça aussi: https://github.com/adriweb/tivars_lib
MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)My calculator programs
Mes programmes pour calculatrices
-
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)- Posts: 14737
- Images: 1119
- Joined: 01 Jun 2007, 00:00
- Location: France
- Gender:
- Calculator(s):→ MyCalcs profile
- Twitter: adriweb
- GitHub: adriweb
Re: [Projet] Underbasic
Pour télécharger le fichier j'ai déjà une petite fonction toute prête qui utilise l'API Blob (code piqué sur StackOverflow ).
Emscripten me semble bien compliqué à utiliser donc j'utilisais cette fameuse API que tu développes
En attendant je vais sans doute utiliser du bon vieux PHP pour convertir les codes
Emscripten me semble bien compliqué à utiliser donc j'utilisais cette fameuse API que tu développes
En attendant je vais sans doute utiliser du bon vieux PHP pour convertir les codes
Toujours plus loin, toujours plus haut, toujours plus geek !
Créateur du projet Haskier : Jouer ! Sujet sur OpenClassrooms
Programmez en UnderBasic ! https://tiplanet.org/forum/viewtopic.php?t=19009&p=207260
Créateur du projet Haskier : Jouer ! Sujet sur OpenClassrooms
Programmez en UnderBasic ! https://tiplanet.org/forum/viewtopic.php?t=19009&p=207260
-
Clément.7
Niveau 11: LV (Légende Vivante)- Posts: 348
- Joined: 12 Jun 2013, 15:02
- Location: Près de Nantes
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: IUT Informatique en 2017-2019
- GitHub: ClementNerma
Re: [Projet] Underbasic
Emscripten, ce serait moi qui m'en occupe (pas compliqué une fois qu'on sait l'utiliser ), au final ca devrait être relativement petit et simple à utiliser quand j'aurais fait les bons bindings/APIs.
Et en effet, c'est via des Blob, pour les téléchargements.
Et en effet, c'est via des Blob, pour les téléchargements.
MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)My calculator programs
Mes programmes pour calculatrices
-
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)- Posts: 14737
- Images: 1119
- Joined: 01 Jun 2007, 00:00
- Location: France
- Gender:
- Calculator(s):→ MyCalcs profile
- Twitter: adriweb
- GitHub: adriweb
Return to Langages alternatifs
Who is online
Users browsing this forum: ClaudeBot [spider] and 3 guests