2010-12-04 14 views
2

J'ai déjà développé des analyseurs personnalisés, joués avec des analyseurs pilotés par bnf, je me suis brièvement présenté aux combinateurs d'analyseurs et j'ai lu des informations sur les dérivées des combinateurs d'analyseurs.Quel analyseur: EBNF, Custom, Parser Combinator (et leurs dérivés)?

Ma question, plutôt générale, est comment vous décidez quelle stratégie/technologie est la bonne? De toute évidence, il y a des éléments pragmatiques, si vous ne connaissez que des parseurs personnalisés et que le temps est contre vous, votre choix est peut-être limité ou peut-être si la langue (et la communauté) ne fournit pas les outils/pour écrire l'infrastructure vous-même (ce qui est bien sûr possible), mais en principe, y a-t-il des «règles empiriques» concernant les stratégies/technologies d'analyse elles-mêmes qui aident à éclairer la décision.

TIA

Simon

Répondre

2

Je recommande ce qui suit:

  1. Vérifiez si votre langue cible peut être efficacement décrit avec LR (1) grammaire.
  2. Si oui, utilisez l'un des nombreux outils tels que YACC. Ces outils sont sympas et vous devez trouver une raison pour laquelle vous ne voulez pas les utiliser.
  3. Si non, recherchez des livres spécifiques ou écrivez votre propre analyseur.