Rah purée les parenthèses aussi ça marche J'ai juste un problème avec les hexa bizarement, faut que je regarde, mais c'est sûrement trois fois rien. Par contre, la symbole % est pas bindé sur le clavier ? Au pire, je vais remplacer quelque chose, mais faudrait prévoir ça. ^^ Pedrom aussi. Hein t'as vu ça, il me faut que deux lignes pour récupérer ce que je passe en ligne de commande. "MSVC, le soft qui arrive à générer des problèmes à partir de solutions" © |
A moi aussi, depuis peu :] Mais tu économises 2 parenthèses et 2 guillemets ! Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com Quelques idées personnelles ici. |
(en fait j'ai l'impression d'être hors sujet... pourquoi Sasume parlait-il de ça? Tu n'es pas en train de faire une assembleur Folco?) "La vie est un grand terrain de jeu. On le sait quand on est enfant mais on l’oublie en grandissant." |
23 messages sont trop pour que je regarde ce qu'il faut que je dise. Folco, c'est bon ? |
PpHd (./122) : OUI Webmaster du site Ti-FRv3 (et aussi de DevLynx) Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes ! "L'erreur humaine est humaine"©Nil (2006) // http://www.yaronet.com/posts.php?s=6238 |
Thibaut (./113, ./114, ./115), ce que tu faisais, c'est exactement le genre de bidouilles qu'il faut faire pour gérer ce genre d'expressions avec du parsage LL. C'est une bidouille parce que ça ne correspond pas du tout à l'arbre de parsage naturel (tu construis un arbre différent de l'arbre de parsage) et comme tu dis c'est extrèmement compliqué. |
S'il est différent mais correct, je m'en contenterai. J'ai jamais rien compris à la formalisation mathématique des grammaires, alors j'avais pris une pile de feuilles et une après midi pour touver un algo qui semblait marcher Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com Quelques idées personnelles ici. |
C'est le mieux qu'on puisse faire avec du LL(1) de toute façon. |
PpHd, voilà les messages clés de Kevin qui posent la problématique. Mon parseur marche, et le tien marche de la même manière. Et ceci, pour Kevin, n'est pas conforme : Kevin Kofler (./99) : Kevin Kofler (./101) : Kevin Kofler (./103) : Kevin Kofler (./107) : Qu'en penses-tu ? Notre manière de faire est fondamentalement fausse et il faut corriger ? "MSVC, le soft qui arrive à générer des problèmes à partir de solutions" © |
Je n'aurais qu'une question. Est-ce que 3-2+1 donne 0 ou 2 ? |
Ben nos algos donnent 2. Kevin dit que ça fait 0. Qui a raison ? C'est pas moi le mathématicien dans l'histoire les gars, à vous de voir. "MSVC, le soft qui arrive à générer des problèmes à partir de solutions" © |
Par convention, 3-2+1 = (3-2)+1 = 1+1 = 2. Ton procédé du ./97 décompose d'abord incorrectement en Eval(3, -, *( 2 + 1 )). Mais apparemment ton ComparePriorité résout le problème. |
Kevin Kofler (./126) :Martial aussi sans doute ! D'ailleurs, tu as essayé le parenthesage à droite Martial ? Sur ta copie d'écran, les priorités sont toutes forcées à gauche. Ca roule aussi avec des calculs du genre 100+(3-1*4)*10 ? Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com Quelques idées personnelles ici. |
Oui. Pas ton exemple précisément, parce que 3-1*4 est négatif. Si je fais avec 5-1*4, oui. C'est dû au fait que je fais pas encore de vraies opérations sur 32 bits pour les multiplications et divisions. Mais l'algo est bon. Brunni (./121) : Là je suis sur l'évaluateur d'expression de mon assembleur. "MSVC, le soft qui arrive à générer des problèmes à partir de solutions" © |
il va être top mooomoot ton assembleur si il supporte ce genre de truc plus un linker |
Il faudrait déjà qu'il sorte. Mais là je suis décidé, je cherche pas à faire un proof ou à tester je ne sais quelle techno. Je ne peux prédire de rien, mais mon but est d'y arriver. <salife> En réalité, je n'ai pas fini d'écrire la gestion de la ligne de commande... mais ça fait déjà beaucoup de choses, vu qu'une partie du linker est écrite, la plus grande partie de la table des opcodes, la gestion des symboles (création des symboles, relogés ou non, accès à leur valeur), les labels, l'ouverture des fichiers, la mise en cache et encore d'autre trucs pas essentiels, mais qui serviront partout et qui ne sont plus à faire. La ligne de commande supportant "define truc=chose", je suis bien obligé de lire le symbole truc, de l'enregistrer, de vérifier son unicité, et d'évaluer l'expression chose. "MSVC, le soft qui arrive à générer des problèmes à partir de solutions" © |
En fait je me demandais, à quoi ça sert un linker pour du code ASM? En fait que réalise le linker et que réalise l'assembleur dans ton cas Folco? "La vie est un grand terrain de jeu. On le sait quand on est enfant mais on l’oublie en grandissant." |
L'assembleur produit du code objet. C'est à dire tout ce qui peut être assemblé d'entrée de jeu (move.l d0,d1 par exemple). Le liner va s'occuper de tous les sauts. Quand tu as un saut, tu connais pas encore l'endroit où tu sautes, donc tu peux pas le coder. Tu mets ça dans un table de saut à résoudre après assemblage. C'est nécessaire parce mon assembleur étant multi-source, il est impossible de savoir où seront, dans le binaire final, les binaires correpondant aux autres fichiers sources. Et ça, c'est le boulot du linker : rassembler les binaires de chaque source, en créer un unique avec un stub éventul, et résoudre les sauts et adressages entre tout ça. "MSVC, le soft qui arrive à générer des problèmes à partir de solutions" © |
Ordinairement, quels sont les opérateurs les plus prioritaites dans une expression ? Les décalages >> et << ou les opérations logiques & et | ? "MSVC, le soft qui arrive à générer des problèmes à partir de solutions" © |
Folco (./134) :Juste au hasard, tu as testé toutes ces fonctionnalités ? |
Oui, sauf la mise en cache. Pour ce qui est des symboles, je finirai de tester quand j'aurai fini ce que je fais (ajout d'un symbole avec une valeur, avec un relogement, accès aux données d'un symbole). "MSVC, le soft qui arrive à générer des problèmes à partir de solutions" © |
Cool, en pourcentage d’avancement (sur le projet dans sa totalité), tu pourrais donner un chiffre ? |
Putain, t'as des questions qui tuent toi, je revenais pour te le dire, on voit la confiance Sincèrement, je sais pas trop évaluer ça. Le linker est pas fait, mais vu mes fichiers objet ça devrait pas être trop galère (ya beaucoup de choses de machées). Je dirais 20%, peut-être que je m'avance. Je sais pas trop estimer. Tout ce qui est parsing de la ligne de commande, fichier de conf et ouverture des sources, création des données nécessaires à l'assemblage de chacune est fait et testé. Ca a fait avancer pas mal de domaines connexes, surtout au niveau du parsing, j'ai déjà quelques fonctions puissantes pour la suite. "MSVC, le soft qui arrive à générer des problèmes à partir de solutions" © |
Folco (./137) : Habituellement les >> et << sont prioritaires sur les opérateurs logiques, mais passent après les opérateurs mathématiques communs. Tu peux regarder la table "Priorité des opérateurs" en bas de cette page à titre d'information : c'est celle du langage C. |
./136> Okay merci "La vie est un grand terrain de jeu. On le sait quand on est enfant mais on l’oublie en grandissant." |
Oui. Merci Zephyr. J'étais loin d'imaginer que ces opérateurs étaient si peu prioritaires, j'aurais vraiment pensé l'inverse oO "MSVC, le soft qui arrive à générer des problèmes à partir de solutions" © |
C'est vraiment bizarre effectivement, mais ça arrange bien le C++ parce qu'on peut faire du std::cout << 2+3; sans avoir besoin de parenthèses. |
où as-tu vu un hack ? |
Le fait de surcharger les opérateurs de décalage de bits pour signifier l'entrée-sortie. |
De tte rien ne vaut printf "La vie est un grand terrain de jeu. On le sait quand on est enfant mais on l’oublie en grandissant." |