Les rats!

rats! est un générateur d'analyseurs facilement extensible pour les langages de type C.
Télécharger maintenant

Les rats! Classement & Résumé

Publicité

  • Rating:
  • Licence:
  • LGPL
  • Prix:
  • FREE
  • Nom de l'éditeur:
  • Robert Grimm
  • Site Internet de l'éditeur:
  • http://www.cs.nyu.edu/rgrimm/xtc/rats.html

Les rats! Mots clés


Les rats! La description

Les rats! est un générateur d'analyseur facilement extensible pour langages de type C. Les rats! est un générateur d'analyseur facilement extensible pour C comme langues; mais actuellement il ne génère que des parseurs en Java. Les rats! projet a été conçu explicitement pour que grammaires sont concis et facilement modifiables. A cette fin, les rats !? organise les grammaires en modules ,? se fonde sur l'analyse syntaxique des grammaires d'expression au lieu de grammaires indépendantes du contexte et vintegrates lexing avec l'analyse, à savoir, est scannerless ,? soutient la génération automatique des arbres de syntaxe abstraite ,? et fournit une interface bien définie pour l'extension parseurs à reconnaître les langues sensibles au contexte et formats.Parsers générés par les rats! memoize résultats intermédiaires, ce qui assure une performance en temps linéaire en présence d'anticipation et de retour en arrière illimitée. En conséquence, ils sont essentiellement fonctionnels (même si elles sont mises en uvre dans un langage impératif) et aussi appelé « parseurs packrat. » Voici quelques caractéristiques principales de « rats! »: · Les rats! repose sur un système de module de structure et grammaires leurs extensions. En particulier, il repose sur des modules à des productions liées au groupe dans des unités séparées. Ensuite, des modifications du module expriment de façon concise les extensions à d'autres modules et peut ajouter, modifier ou supprimer des alternatives individuelles dans les productions. Enfin, les paramètres du module sont utilisés pour composer des modules et leurs extensions les uns avec les autres. · Les rats!' grammaires construction sur les grammaires d'expression d'analyse syntaxique (les PEG). Alors que de nombreuses constructions partagent PEGs avec la notation EBNF familière, une différence essentielle est qu'ils utilisent des choix ordonnés au lieu des choix désordonnées utilisés par grammaires hors contexte (GFR) et d'autres générateurs d'analyseur, comme Yacc ou ANTLR. En conséquence, des rats! éviter les ambiguïtés et les grammaires soutien des changements localisés. Une flexibilité supplémentaire est offerte par prédicats syntaxiques, qui correspondent à des expressions, mais ne consomment pas l'entrée, fournissant ainsi préanalyse illimitée, et par l'intégration de Lexing avec l'analyse syntaxique, ce qui simplifie grandement l'ajout de nouveaux jetons à une grammaire. PEGs ont l'avantage supplémentaire qu'ils ne sont pas fermées que dans la composition (contrairement à la LR ou LL GRAMMAIRES utilisés par Yacc et ANTLR), mais aussi intersection et complément (contrairement GFR en général). · Pour éliminer la nécessité d'actions sémantiques explicites, rats! peut générer automatiquement des arbres de syntaxe abstraite. En particulier, il prend en charge les productions qui renvoient pas de valeurs sémantiques (comme les espaces ou des commentaires reconnaissant), les valeurs de chaîne (comme ceux reconnaissant littéraux ou identifiants), et les nuds d'arbres génériques (potentiellement toutes les autres productions). · Étant donné que certains formats lisibles par ordinateur sont par nature sensible au contexte et ne peuvent pas être exprimés en (ou GFR PEGs), rats! prend en charge deux techniques de gestion de contexte d'analyseur ou de l'état, fournissant ainsi une interface bien définie pour l'extension des analyseurs. Tout d'abord, les rats! fournit des mesures d'analyseur pour reconnaître des expressions qui dépendent du contexte local, à savoir, les expressions qui dépendent immédiatement précédentes expressions à l'intérieur de la même production. Un exemple pour un tel contexte local est une longueur explicite qui précède que de nombreux cas d'une expression. Deuxièmement, les rats! soutient un objet global de l'État à reconnaître les expressions qui dépendent éventuellement contexte mondial. modifications de l'Etat sont effectuées dans les transactions légères, qui préservent la nature essentiellement fonctionnelle des rats! -generated parseurs. Un exemple pour un contexte mondial est la table de symbole utilisé pour désambiguïser les noms de variables et typedef lors de l'analyse C. Quoi de neuf dans cette version: · Cette version améliore les rapports d'erreurs par les parseurs générés et corrige un bug de génération de code.


Les rats! Logiciels associés