CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Probleme ambiguité camlyacc

MrBungle69
MrBungle69
Niveau 4
30 octobre 2003 à 17:12:42

Voila je dois realise un compilateur pour Java en camlyacc et camllex. J ai un probleme d ambiguité que je n arrive pas a resoudre:

En java il existe une commande cast qui prend la forme suivante: ( identificateur)expression

ex: ( int)x + 5

Mais malheureusement on peut aussi avoir une expression entre parenthese qui elle meme peut etre un identificateur: ( expression) -> ( identificateur)

Par exemple l expression: ( int)(x)+5 peut etre interpreter comme un double cast alors que c est juste un cast sur l expression x qui est entre parenthese.

Quelqu un connait la solution a ce probleme?

Kelios
Kelios
Niveau 8
30 octobre 2003 à 22:37:01

Je n´ai pas de conaissances en Java, mais je vais te répondre avec mes connaissances en C++, qui est en soit similaire de ce côté en toutes réserves.

" Par exemple l expression: ( int)(x)+5 peut etre interpreter comme un double cast alors que c est juste un cast sur l expression x qui est entre parenthese. "
Heureusement non, car il y aurait ambiguité. Ça dépend x représente quoi. Si il représente un type, une classe par exemple, ça sera interprété comme étant effectivement un double castage, et ne passera pas, n´ayant rien à caster. Un opérateur sans ses opérandes....

Si X est un objet, instance de tel ou tel type, ça sera un castage en int de x.

Ça dépend de ce que x représente.

Kelios
---------

MrBungle69
MrBungle69
Niveau 4
30 octobre 2003 à 23:07:46

Oui je sais en fait c pas un specialiste en java que je cherche mais en camlyacc. Cette outil permet de reconnaitre une grammaire ( dans mon cas c une grammaire java que je dois faire reconnaitre) et je n arrive pas a faire en sorte que cette grammaire ne soit pas ambigue dans le cas du cast car un cas s ecrit ( ident)et qu on peut aussi ecrire une expression de type ident entre parenthese donc ( ident) aussi.

Je cherche juste quelqu un qui connait ce pb et qui s est le resoudre. Merci quand meme pour ton aide Kelios :)

protheus
protheus
Niveau 10
31 octobre 2003 à 23:25:10

justement, c´est pas le même " ident"
il doit bien exister un truc pour ne pas confondre " ident" de type objet et " ident" de type classe.

MrBungle69
MrBungle69
Niveau 4
01 novembre 2003 à 01:22:03

Malheureusement si, c est le meme " ident". Pour le camllex qui reconnait les mots c la meme chose. Il faut reussir a modifier la grammaire de facon a ce qu il n y es pas d ambiguité mais je n y arrive pas

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Programmation
  • Création de sites web
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment