π
<-
Chat plein-écran
[^]

[Projet] Underbasic

Assembleur, Axe, C/C++, ICE...

Votre avis

Ce projet est intéressant
9
50%
Ce projet est inutile
4
22%
J'aimerais prendre part au projet
2
11%
Je n'ai pas tout compris
2
11%
L'UnderBasic est trop complexe pour moi
1
6%
 
Nombre total de votes : 18

Re: [Projet] Underbasic

Message non lude Clément.7 » 23 Avr 2016, 18:32

Après deux longues heures de compilation (Eh oui sous Linux il faut ENTIÈREMENT compiler Emscripten) je vais essayer de compiler ce fameux tokenizer...
EDIT : Pas mal d'erreurs (7 si j'ai bien compté) dont des problèmes de syntaxe concernant les listes
Code: Tout sélectionner
src/TypeHandlers/TH_0x05.cpp:121:71: error: expected expression
        sregex_token_iterator begin(str.begin(), str.end(), eolRegex, {-1, 0});

EDIT 2 : J'ai corrigé les 6 premiers mais il bloque sur cette ligne :

Code: Tout sélectionner
for_each(begin, end, [&](const string& m) { output_text += (m == ":") ? "\n" : m; });

C'est le [&] qui le gêne (expected expression) dans TH_0x05.cpp

EDIT 3 : Après quelques tests, il me semble de plus en plus évident qu'Emscripten ne gère pas les fonctions lambdas :'(
EDIT 4 : J'ai passé output_text en variable globale dans le namespace ti_vars et défini la fameuse fonction lambda globale également. La compilation s'effectue sans problème mais lorsque j'exécute le code JS dans Chrome il n'y a apparemment aucune variable utilisable :'(

EDIT 5 : Compilation réussie après quelques "bidouillages" (décomposition en vector puisque Emscripten refuse la syntaxe {...}) et passage des fonctions lambdas en global. Cependant il faut encore utiliser le système embind et je ne sais pas trop comment faire...
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
Avatar de l’utilisateur
Clément.7
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Prochain niv.: 29.5%
 
Messages: 348
Inscription: 12 Juin 2013, 15:02
Localisation: Près de Nantes
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: IUT Informatique en 2017-2019
GitHub: ClementNerma

Re: [Projet] Underbasic

Message non lude Adriweb » 24 Avr 2016, 04:30

Ce n'est pas "emscripten" qui n'aime pas les lambda, lui il n'utilise que l'architecture LLVM et le front end clang. Et bref, selon ta version, il faut que tu dises au compilateur -std=c++11 voire -std=c++14 tant qu'à faire.

Pour moi, le Makefile avec emscripten marche tel quel sans erreurs... (du moins quand je l'avais fait)
Mais bref, je vais essayer de revoir ça demain pour en être sûr, et corriger d'éventuelles erreurs.

Et sinon, pas besoin d'utiliser embind si tu veux utiliser seulement quelques trucs - ce que j'ai "l'habitude" de faire, pour du C++ où j'ai juste quelques trucs à prendre, c'est des wrappers C (ou bien C++ avec un extern "C") avec un EMSCRIPTEN_KEEPALIVE, au moins c'est simple. C'est ce que j'ai fait ici par exemple: https://github.com/nspire-emus/firebird ... in.cpp#L66 (et regarde les autres fichiers du dossier, tu verras comment c'est appelé côté JS)


Edit: au passage, Anonyme0 et moi avons récemment updatée les tokens (meilleurs gestions anglais/francais et anciens/nouveaux tokens), et il va falloir donc que je mette ça a jour dans tivars_lib...
Image

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...)
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 80.2%
 
Messages: 14616
Images: 1218
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: [Projet] Underbasic

Message non lude Clément.7 » 03 Mai 2016, 17:03

Je viens de terminer de recréer quasiment tout le code du compilateur qui n'était pas pratique et qui, surtout, ne permettait pas de connaître la ligne des erreurs ! Le système convertit maintenant le code ligne par ligne.
Fait :
- Implémenter les blocs
- Implémenter des directives conditionnelles (#ifdef, #ifndef, #set, #endif) qui permettent d'assigner une valeur à des arguments optionnels lorsqu'ils ne sont pas définis, et éventuellement d'ajouter un code.
- Implémenter les filtres de variables (exemple : ${humeur|unquote} dans l'exemple qui permet d'intégrer la variable dans le code et d'enlever ses guillemets (car par défaut un string a des guillemets)
- Implémentation des routines (exemple 2) et des appels routines


Code: Tout sélectionner
#library alias

function bonjour(string name, int [age], string [humeur]) {
    #ifndef age // Instruction conditionnelle : si l'argument "age" n'est pas défini
    print "Je ne connais pas votre âge..." // Afficher un texte mécontent
    #endif

    #ifndef humeur // Si l'argument "humeur" n'est pas défini
    #set humeur Énervé... // On lui assigne une valeur
    #endif
   
    print "Bonjour ${name}, vous avez ${age} ans !"
    print "Votre humeur est : " + humeur
    // OU
    print "Votre humeur est : ${humeur|unquote}"
}

for(A, 1, 5) {
    print "Salut !"
}
bonjour("Michel")
bonjour("Mathieu", 18)

Code: Tout sélectionner
#library alias
#library utils
#alias AfficherSalut : 00

call(AfficherSalut)
exit()

routine(AfficherSalut) {
    print "Salut les gens !"
}


Comme ça ça peut paraître compliqué mais là je montre toutes les subtilités du langage ;)
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
Avatar de l’utilisateur
Clément.7
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Prochain niv.: 29.5%
 
Messages: 348
Inscription: 12 Juin 2013, 15:02
Localisation: Près de Nantes
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: IUT Informatique en 2017-2019
GitHub: ClementNerma

Re: [Projet] Underbasic

Message non lude Epharius » 03 Mai 2016, 17:13

Cool ! Ça à l'air bien étoffé ! Tu as un lien où l'on pourrait tester ce qui existe déjà ? D'ailleurs, il faudra que tu crées une documentation, le minimum étant de comprendre les bases du fonctionnement du langage ;)
Le projet Geometry Dash est terminé ! N'hésitez pas à aller jeter un coup d’œil au topic du projet ! Vous pouvez le télécharger ici.

Unis par la flèche sacrée de cupidon :favorite:
Image
Avatar de l’utilisateur
EphariusPremium
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 7.1%
 
Messages: 1110
Images: 4
Inscription: 08 Déc 2014, 17:38
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Ensimag
GitHub: MathisLav

Re: [Projet] Underbasic

Message non lude Clément.7 » 03 Mai 2016, 18:08

Je n'ai pas encore mis en ligne cette version je vais essayer ce soir...
J'essaye de rendre le langage le plus simple possible pour les débutants et le plus puissant possible pour ceux qui vont plus loin (demande d'argument pointeur/optionnel pour les fonctions, directives conditionnelles, ...)
Pour la Doc c'est prévu ce sera une simple page et sans doute un tuto sur openclassrooms.
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
Avatar de l’utilisateur
Clément.7
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Prochain niv.: 29.5%
 
Messages: 348
Inscription: 12 Juin 2013, 15:02
Localisation: Près de Nantes
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: IUT Informatique en 2017-2019
GitHub: ClementNerma

Re: [Projet] Underbasic

Message non lude Ti64CLi++ » 03 Mai 2016, 18:21

Euh, le lien du compilo en ligne ne marche pas :(
Image
Avatar de l’utilisateur
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 32.3%
 
Messages: 3441
Images: 75
Inscription: 04 Juil 2014, 14:40
Localisation: Clermont-Ferrand 63
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: ENS Rennes
GitHub: Ti64CLi

Re: [Projet] Underbasic

Message non lude Adriweb » 03 Mai 2016, 18:24

Joli :)

Et du coup, pour l'emscripten tout ça, tu en es où ? :P
(Parce que t'avais presque réussi, manquait plus que les bindings, et avec mon post un peu plus haut, ça devrait être bon)
Image

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...)
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 80.2%
 
Messages: 14616
Images: 1218
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: [Projet] Underbasic

Message non lude Clément.7 » 03 Mai 2016, 19:45

Je n'ai pas continué l'Emscripten, je me concentre sur le compilateur, mais je vais essayer ce soir quand même...
Pour le lien il ne marche plus en effet le site entier n'existe plus, il va falloir que je le remette en ligne... peut-être sur GitHub Pages pour être sûr d'éviter les problèmes...

EDIT : la commande emcc a disparu de mon PC :o va falloir que je le réinstalle :?
EDIT 2 : Ah non en fait il faut faire un petit coup de source à chaque lancement du shell :#fou#: !
EDIT 3 : Impossible de compiler !
Code: Tout sélectionner
src/TypeHandlers/TH_0x05.cpp:27:43: error: expected ';' after top level declarator
    extern "C" data_t EMSCRIPTEN_KEEPALIVE TH_0x05::makeDataFromString(const string& str, const options_t options)

EDIT 4 : Compilation réussie en enlevant l'opérateur EMSCRIPTEN_KEEPALIVE et en utilisant -s EXPORTED_FUNCTIONS="['_TH_0x05']" cependant impossible d'y accéder en JS :?

EDIT 5 : Le EMSCRIPTEN_BINDINGS montré en exemple sur le site d'Emscripten me génère une erreur "nom de type inconnu"

J'en profite au passage pour re-demander qui a choisi "je voudrais participer au projet" dans le sondage ?
Dernière édition par Clément.7 le 03 Mai 2016, 20:05, édité 4 fois.
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
Avatar de l’utilisateur
Clément.7
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Prochain niv.: 29.5%
 
Messages: 348
Inscription: 12 Juin 2013, 15:02
Localisation: Près de Nantes
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: IUT Informatique en 2017-2019
GitHub: ClementNerma

Re: [Projet] Underbasic

Message non lude Ti64CLi++ » 03 Mai 2016, 19:50

J'attends avec impatience :)
Image
Avatar de l’utilisateur
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 32.3%
 
Messages: 3441
Images: 75
Inscription: 04 Juil 2014, 14:40
Localisation: Clermont-Ferrand 63
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: ENS Rennes
GitHub: Ti64CLi

Re: [Projet] Underbasic

Message non lude Clément.7 » 05 Mai 2016, 15:11

Normalement je commit le repo dans l'après-midi et je mettrais en ligne le compilateur.
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
Avatar de l’utilisateur
Clément.7
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Prochain niv.: 29.5%
 
Messages: 348
Inscription: 12 Juin 2013, 15:02
Localisation: Près de Nantes
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: IUT Informatique en 2017-2019
GitHub: ClementNerma

PrécédenteSuivante

Retourner vers Langages alternatifs

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 8 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
Phi NumWorks jailbreak
123
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
873 utilisateurs:
>828 invités
>40 membres
>5 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)