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

Création d'arbre syntaxique avec ANTLR (java)

AlphaGold
AlphaGold
Niveau 3
06 janvier 2016 à 18:39:09

Salut à tous,

j'ai un projet à réaliser sur les compilateurs et pour parvenir à réaliser mon projet je dois entre autres réaliser un arbre syntaxique abstrait. Donc je bosse avec antlr4 sous java, et pas mal des tutos sur le net ne fonctionnent qu'avec les versions antérieures à antlr4 en utliisant l'option output = AST..

Le but de cet arbre est le suivant, considérons l'expression suivante : i =3*( 4+2), alors je dois générer cet arbre:

.............. i
........... / ... \
...... + .......... *
... / .... \ ....... 3
...4 .... 2

Je fais du mieux que je peux, mais c'est censé être assez clair là :)
(L'arbre doit évidemment respecter les priorités d'opérations.)

Pour se faire j'utilise la grammaire suivante:
http://pastebin.com/bTF819jK

Vous constaterez que cette grammaire contient bien plus que les opérations, en réalité je suis censé récupérer une boucle dans un fichier .c et réaliser un arbre, mais avant de m'intéresser à ça je veux comprendre la base.. donc si jamais vous avez une grammaire plus simple je suis preneur.

Et voici le code test qui m'a été fourni:
http://pastebin.com/QapuBvQw

Je ne suis pas censé utiliser la sortie qui est écrit dans ce code, c'est juste censer m'aider dans la compréhension du compilateur.

J'en reviens à mon problème, je dois donc extraire les nombres et les opérateurs et les mettre dans des noeuds. Pour ça on m'a dit d'utiliser la méthode getChild(), sauf que je n'arrive pas à l'utiliser... Et quand j'applique la méthode getChildCount() j'obtiens 2, sauf que je ne pense pas avoir 2 enfants au total...

Merci à ceux qui pourront m'aider car je dois admettre que je suis un peu perdu dans tout ça..

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