π
<-

[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%
 
Total votes : 18

Re: [Projet] Underbasic

Unread postby Clément.7 » 23 Apr 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: Select all
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: Select all
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
User avatar
Clément.7
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 29.5%
 
Posts: 348
Joined: 12 Jun 2013, 15:02
Location: Près de Nantes
Gender: Male
Calculator(s):
MyCalcs profile
Class: IUT Informatique en 2017-2019
GitHub: ClementNerma

Re: [Projet] Underbasic

Unread postby Adriweb » 24 Apr 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...

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
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 78.9%
 
Posts: 14744
Images: 1119
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb

Re: [Projet] Underbasic

Unread postby Clément.7 » 03 May 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: Select all
#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: Select all
#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
User avatar
Clément.7
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 29.5%
 
Posts: 348
Joined: 12 Jun 2013, 15:02
Location: Près de Nantes
Gender: Male
Calculator(s):
MyCalcs profile
Class: IUT Informatique en 2017-2019
GitHub: ClementNerma

Online

Re: [Projet] Underbasic

Unread postby Epharius » 03 May 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
User avatar
EphariusPremium
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 8.1%
 
Posts: 1160
Images: 4
Joined: 08 Dec 2014, 17:38
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Ensimag
GitHub: MathisLav

Re: [Projet] Underbasic

Unread postby Clément.7 » 03 May 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
User avatar
Clément.7
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 29.5%
 
Posts: 348
Joined: 12 Jun 2013, 15:02
Location: Près de Nantes
Gender: Male
Calculator(s):
MyCalcs profile
Class: IUT Informatique en 2017-2019
GitHub: ClementNerma

Re: [Projet] Underbasic

Unread postby Ti64CLi++ » 03 May 2016, 18:21

Euh, le lien du compilo en ligne ne marche pas :(
Image
User avatar
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 32.5%
 
Posts: 3446
Images: 75
Joined: 04 Jul 2014, 14:40
Location: Clermont-Ferrand 63
Gender: Male
Calculator(s):
MyCalcs profile
Class: ENS Rennes
GitHub: Ti64CLi

Re: [Projet] Underbasic

Unread postby Adriweb » 03 May 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)

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
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 78.9%
 
Posts: 14744
Images: 1119
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb

Re: [Projet] Underbasic

Unread postby Clément.7 » 03 May 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: Select all
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 ?
Last edited by Clément.7 on 03 May 2016, 20:05, edited 4 times in total.
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
User avatar
Clément.7
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 29.5%
 
Posts: 348
Joined: 12 Jun 2013, 15:02
Location: Près de Nantes
Gender: Male
Calculator(s):
MyCalcs profile
Class: IUT Informatique en 2017-2019
GitHub: ClementNerma

Re: [Projet] Underbasic

Unread postby Ti64CLi++ » 03 May 2016, 19:50

J'attends avec impatience :)
Image
User avatar
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 32.5%
 
Posts: 3446
Images: 75
Joined: 04 Jul 2014, 14:40
Location: Clermont-Ferrand 63
Gender: Male
Calculator(s):
MyCalcs profile
Class: ENS Rennes
GitHub: Ti64CLi

Re: [Projet] Underbasic

Unread postby Clément.7 » 05 May 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
User avatar
Clément.7
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 29.5%
 
Posts: 348
Joined: 12 Jun 2013, 15:02
Location: Près de Nantes
Gender: Male
Calculator(s):
MyCalcs profile
Class: IUT Informatique en 2017-2019
GitHub: ClementNerma

PreviousNext

Return to Langages alternatifs

Who is online

Users browsing this forum: ClaudeBot [spider] and 3 guests

-
Search
-
Social TI-Planet
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
769 utilisateurs:
>718 invités
>43 membres
>8 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)