Exemples de LL(1), LR(1), LR(0), LALR(1) les grammaires?

Est-il une bonne ressource en ligne avec une collection de grammaires pour certains des principaux l'analyse des algorithmes (LL(1), LR(1), LR(0), LALR(1))? J'ai trouvé de nombreuses grammaires qui tombent dans ces familles, mais je ne connais pas la bonne ressource d'où quelqu'un a écrit un grand nombre d'exemple les grammaires.

Quelqu'un sait-il de la ressource?

  • Ce sont l'analyse des algorithmes de ne pas grammaires. Entendez-vous des exemples de syntaxe qui nécessite un type de l'analyseur ou d'une autre?
  • J' pense techniquement parlant, LL(1), etc. sont en fait des familles de grammaires. L'analyse des algorithmes nommée d'après eux sont des algorithmes qui peuvent analyser toute la grammaire qui se trouve être dans la famille des langues.
  • Je vous suggère de prendre un coup d'oeil à la ANTLR site web. Il a quelques bonnes grammaires de langages 😉
  • Si vous avez eu une telle liste, ce qui sur terre feriez-vous avec elle? La liste des noms dans chaque catégorie ne semble pas très intéressant en lui-même; vous ne voulez sûrement pas à réellement traiter le contenu de toutes ces grammaires?
  • Baxter - je suis en train de l'enseignement d'une compilateurs cours et continuer de se faire voler exemple les grammaires à partir d'autres sources, quand je veux montrer les différentes analyse des algorithmes. Il est difficile (mais faisable) pour créer des grammaires non trivial dans ces catégories, et très difficile de faire des grammaires qui sont LR(1), mais pas LALR(1) ou LALR(1), mais pas SLR(1). J'espérais trouver des exemples du monde réel les grammaires qui correspondent à ces descriptions de sorte que je puisse me concentrer sur la présentation, il a le matériel plutôt que de peaufiner les grammaires.
  • Haïssent, peut-être qu'il a disparu parce que vous avez voulu trop en faire.
  • Le livre dans ma réponse ci-dessous semble avoir de bons exemples qui serait un bon ajustement pour un compilateur de classe.
  • Le suivant lien vers mon dépôt GitHub contient 4 LL(1) les grammaires, un LR(0) grammaire n'est PAS LL(1), un SLR(1) qui n'est PAS LR(0) et un LR(1) qui n'est PAS SLR(1). TOUS les exemples peut être compilé et exécuté en écrivant simplement "make" dans le terminal de tout *.nix comme OS.