ANALYSEUR SYNTAXIQUE QUE JE JUGE PUISSANT

cs_OphidiaN Messages postés 235 Date d'inscription mercredi 4 avril 2001 Statut Membre Dernière intervention 9 novembre 2007 - 2 sept. 2003 à 22:25
cs_Zeroc00l Messages postés 367 Date d'inscription lundi 1 avril 2002 Statut Membre Dernière intervention 11 février 2010 - 11 juin 2006 à 13:28
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/8435-analyseur-syntaxique-que-je-juge-puissant

cs_Zeroc00l Messages postés 367 Date d'inscription lundi 1 avril 2002 Statut Membre Dernière intervention 11 février 2010
11 juin 2006 à 13:28
Hum desole pour ette reponse tardive, on est en tra inde rusher pour finir nos projets, c'ets de la folie .. bref

A l'epoque je souhaitais egalement faire comme les TI, le probleme c'est que c'est un probleme beaucoup plus complique de faire du calcul avec des variables qui reste "variable" : exemple:
"x + 2x" --> "3x" (on n'a pas substitue x par une valeur)

Mais bon si tu le fait tiens moi au courant :)

Pour l'analyseur je vais le refaire en le parsant correctement (tokenizer + parser) (peut etre la semaine prochaine j'ai un creux dans l'emploi du temp))
Tant qu'a faire, que ca me fait plaisir, et que je risque pas d'apprendre quelquechose de nouveau (juste reviser le vb ), je voudrais savoir si il y a des contraintes particulieres pour les pocket pc (autant se donner un peu de difficulte) ?
mortmen Messages postés 8 Date d'inscription jeudi 1 janvier 2004 Statut Membre Dernière intervention 15 août 2010
7 juin 2006 à 08:43
Salut ZerocOOl !

Je serais intéressé par ton nouvel analyseur s'il était encore un peu plus complet et performant afin de l'intégrer dans une sorte de caltoch pour PocketPC. Je voudrais faire un truc qui ressemble un peu à une TI pour ce qui est de la gestion des calculs parceque je ne trouve pas exactement ce que je veux à ce sujet !

merci
Bonne continuation et @+
cs_Zeroc00l Messages postés 367 Date d'inscription lundi 1 avril 2002 Statut Membre Dernière intervention 11 février 2010
1 mai 2006 à 03:24
Pile poil un an après ... reelle coincidence !
bref...
Exacte ! correction effectuée.
Bon après quelques annees d'experience et d'étude supplémentaires,
je trouve que le vb c'est grave *** (prise_de_risque = 0 :D)
Si on me bombarde de message (ou pas, mais je chercherai moins à trouver du temps), je ferai peut-être un vrai analyseur syntaxique.
A l'époque je connaissais meme pas les parser, le mot "token" m'était totalement inconnu, le concept d'arbre également (si j'avais poussé un peu plus loin ma réflexion j'aurais réinventé les arbres, à la place on a une espece de list lstElement bizarrement gérée :) )
Par vrai analyseur, j'entend :
--> toute les operations et fonctions traditionnelles
--> possibilite d'ajoute des declarations de fonciton à la volé
--> gestion des nombres imaginaires
--> d'autre chose si vous voyiez koi (hesiter pas a proposer)...

voili voilo
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
30 avril 2005 à 18:39
Salut,

Je réflèchi actuellement au même problème traité ici... mais j'ai un peu de mal à en comprendre le sens du découpage... enfin, tant que je me suis pas plongé à fond dedans...

Néanmoins, en passant, je pense avoir remarqué une erreur dans la vérification des profondeurs des parenthèses... je cite :


While i < Len(Equa)
i = i + 1

If Mid$(Equa, i, 1) "(" Then Var Var + 1
If Mid$(Equa, i, 1) "(" Then Var Var - 1

If Var < 0 Then GoTo TropParent
If Var = 32767 Then
MsgBox "Desolé ,il y a trop de profondeur de parentheses"
Exit Function
End If
Wend


LES deux lignes :

If Mid$(Equa, i, 1) "(" Then Var Var + 1
If Mid$(Equa, i, 1) "(" Then Var Var - 1


font le même test ! donc la variable Var est successivement incrémenté et décrémenté...


Je pense que l'idée était :

If Mid$(Equa, i, 1) ")" Then Var Var - 1

avec la parenthèse dans l'autre sens (fermeture)...


Voilà... c'était juste une remarque en passant.... mais bravo tout de même !


Amicalement,
Us.
cs_Zeroc00l Messages postés 367 Date d'inscription lundi 1 avril 2002 Statut Membre Dernière intervention 11 février 2010
30 juin 2004 à 02:19
Un petit recodage "propre" prévu normalement au cours de cet été ...

Si j'oublie n'hésitez pas ...
cs_astra Messages postés 21 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 19 mars 2004
19 mars 2004 à 18:35
bonjour

quand on appelle la fonction calcul, le code s'exécute bien mais attention à la fin :

Formule = Val(Replace(RAM.Calcul(Var - 1), ",", "."))

du coup la valeur de la fonction n'est pas definie puisque la on n'a stocké le resultat que dans "Formule"
il faut remplacer donc la ligne ci-dessus par:

Calcul = Val(Replace(RAM.Calcul(Var - 1), ",", "."))

et

Formule = "Indeterminé"
par
Calcul = "Indeterminé"

petite correction modeste mais importante...
en tout cas coup de chapeau à l'auteur de ce code qui m'a été vraiment utile...

source employant ce code corrigé sur:
http://www.chez.com/sucker/alexs/Progs/courbes.zip
(de mon site perso www.alexs.ht.st un ptit coup de promo ne fait pas de mal...)

bonne prog ++
alexs
mortmen Messages postés 8 Date d'inscription jeudi 1 janvier 2004 Statut Membre Dernière intervention 15 août 2010
17 févr. 2004 à 19:54
Saliut a todos
Moi je suis débutant en VB et j'ai eu le meme probleme que Astra (un peu plus haut ) mais j'ai pas compris son explication

ya moyen que l'on me ré explique la modif à faire ?

merci a tous
hpfx Messages postés 22 Date d'inscription vendredi 29 août 2003 Statut Membre Dernière intervention 18 novembre 2007
15 oct. 2003 à 23:54
neodante :
amateur de hp48 ?
je suis en train de faire une calculatrice RPN.
qui prends en compte : liste, chaines, nombres complexes, matrices, hexa, binaires, H:M:S, polynomes... et programmes (oui!) .... c'est encore qu'une beta (v0.45) mais ca marche pas mal !
et vous savez quoi ?.. c'est un freeware ! :)
c'est super performant , je compte y ajouter les APN (arbitrary Precision number : nombre infini si tu veux !)
je cherche des beta tester ! laissez moi un message ou un mail si ca vous interresse !!! http://xout.free.fr/rpne/

et je confirme le RPN ("reverse polish notation" ou lisp) c'est parfait pour develloper une calc (moi c'est tout des classes de partout c'est joli...)
lumesh Messages postés 564 Date d'inscription jeudi 21 février 2002 Statut Membre Dernière intervention 7 novembre 2008
12 oct. 2003 à 22:09
Zeroc00l > effectivement, c'est bien du LISP, à la base c'est meme Polonais.
cs_Zeroc00l Messages postés 367 Date d'inscription lundi 1 avril 2002 Statut Membre Dernière intervention 11 février 2010
12 oct. 2003 à 18:16
Ah ouais peut etre bien .. c'est parce qu'au debut ma fonction s'appelait 'formule'...
Etant donne que j'ai changé les noms des foncitons pour que la lecture soit plus compréhensible et plus intuitive...
J'ai donc oublié certain changement d'appel ... dsl ...
Je mettrai a jour quand j'aurais le net chez moi ( la je suis chez mes parents, mais vous vous en foutez et vous avez bien raison lol )
A++ all et bonne prog !
cs_astra Messages postés 21 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 19 mars 2004
16 sept. 2003 à 21:29
ta fonction calcul ne retourne rien car tu mets le calcul dans "formule" et non dans "calcul" et du coup ca fonctionne pas

rajoute une ligne et ce sera parfait je ve lutiliser!
cs_Zeroc00l Messages postés 367 Date d'inscription lundi 1 avril 2002 Statut Membre Dernière intervention 11 février 2010
11 sept. 2003 à 09:15
Mwa chui amateur de calculette TI...
cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 11
10 sept. 2003 à 22:40
Amateur de calculatrice HP a vos claviers !!! Vous allez pouvoir reprendre vos calculettes et comparer avec le prog !
Mindiell Messages postés 558 Date d'inscription jeudi 25 juillet 2002 Statut Membre Dernière intervention 5 septembre 2007 1
6 sept. 2003 à 12:58
C'est bien la methode polonaise, LISP est un langage de programmation qui utilise le procédé...
Et pour le probleme de decoupage, je me suis trompe, j'avais pas vu que tu tenais compte des parentheses :o)
cs_Zeroc00l Messages postés 367 Date d'inscription lundi 1 avril 2002 Statut Membre Dernière intervention 11 février 2010
6 sept. 2003 à 12:37
Aucune Idée .. on m'a suggere de transforme une equation en faisant

arg1, arg2, Operateur1 ... etc
J'ai trouve l'idée sympa et interessante... hop j'ai codé le module sinon je ne sais strictement rien ... c'est à vous de me le dire .. mais aparement vous ne semblez pas d'accord !
Ca existais deja comme méthode ? Quel est son nom ? (je changerai le titre de la source )

méthode polonaise inverse ? LISP ? les deux ? (désignant le meme principe )
wonesek Messages postés 115 Date d'inscription samedi 2 février 2002 Statut Membre Dernière intervention 13 mai 2006
6 sept. 2003 à 00:35
C'est le principe de LISP mettre les membre d'une operation en premier et l'operateur en second? c'est ca?
lumesh Messages postés 564 Date d'inscription jeudi 21 février 2002 Statut Membre Dernière intervention 7 novembre 2008
3 sept. 2003 à 19:02
Progger oui, comme la HP48G et Gx ki ont ete concue par les ingenieurs polonais ..... au debut c deroutant le 1 1 + 2 lol mais c efficace :)
cs_Zeroc00l Messages postés 367 Date d'inscription lundi 1 avril 2002 Statut Membre Dernière intervention 11 février 2010
3 sept. 2003 à 14:36
CONTENT de connaitre le nom de ma méthode (Je n'ai recu que le principe... J'ai donc fait le code moi même ; ce n'est pas une copie d'un autre code ...
et CONTENT de voir que mon explication n'est pas trop confuse :)))
Au fait cet algo (modifié afin d'etre bien integre ) me sert pour ma calculette experte :
http://www.vbfrance.com/article.aspx?Val=4187
(les source arriveront je vous le garanti, j'arrange le code petit à petit avec des commentaires, mais il faut trouver le temps <:-( )
a++ all
Proger Messages postés 248 Date d'inscription vendredi 10 novembre 2000 Statut Membre Dernière intervention 19 décembre 2008
3 sept. 2003 à 10:50
coucou la méthode polonaise inverse :) pour ceux qui comprenais pas l'interêt de cette notation sur certaines calculatrices de poche, ton explication leur répondra !!
Mindiell Messages postés 558 Date d'inscription jeudi 25 juillet 2002 Statut Membre Dernière intervention 5 septembre 2007 1
3 sept. 2003 à 09:55
Il est clair que je fais pas le meme genre de decoupage que toi, mais l'idee de ne pas refaire le decoupage a chaque fois est pas bete...
Par contre, ta methode de coupage me semble contenir un probleme, j'y reflechis quand j'ai un peu de temps...
cs_Zeroc00l Messages postés 367 Date d'inscription lundi 1 avril 2002 Statut Membre Dernière intervention 11 février 2010
3 sept. 2003 à 00:52
looooool ;)
cs_OphidiaN Messages postés 235 Date d'inscription mercredi 4 avril 2001 Statut Membre Dernière intervention 9 novembre 2007
2 sept. 2003 à 22:25
ya pas a dire, tu es mon idole dans ce domaine....
Rejoignez-nous