2010-05-11 4 views
0

Pour un projet d'école, j'ai besoin d'implémenter un analyseur pour un langage de balisage (probablement basé sur XML) pour les interfaces utilisateur. Basé sur l'entrée, il génère un document HTML avec divers composants de l'interface utilisateur (zones de texte, entrées, panneaux, boîtes de dialogue, etc.)Outils pour créer un analyseur de langage de balisage de l'interface utilisateur

Avez-vous des suggestions d'outils/bibliothèques que je pourrais utiliser pour cela? (À l'école nous utilisons Flex et Bison, mais nous sommes autorisés à utiliser des outils modernes - peut-être un outil qui a les capacités de lex et yacc)

Répondre

2

Si votre entrée est, comme suggéré, XML et votre sortie est HTML, alors c'est le cas d'utilisation de base pour XSLT. Le point entier de XML est que vous n'avez pas besoin d'écrire votre propre analyseur, donc si cela était fait comme un travail plutôt que comme un projet d'école qui serait la première technique à utiliser. Si vous ne pouvez pas l'exprimer comme une transformation, alors vous pourriez chercher ailleurs. Si vous ne voulez pas utiliser XML, les outils modernes pour les langages en texte brut incluent parser expression grammars et les outils de synthèse DSL tels que Microsoft M. Les PEGs vous libèrent de laxe et de l'analyse séparément, donc un token peut être sensible au contexte sans compliquer la grammaire (comme beaucoup de jetons sont dans de nombreuses langues), et certaines implémentations signifient que vous n'avez pas à vous soucier de gauche/bonnes boucles récursives.

Les outils de synthèse DSL combinent une grammaire basée sur l'EDI avec une sémantique d'exécution. Martin Fowler a un book on DSLs on his site. Mais pour une langue de définition d'interface utilisateur qui est l'entrée d'une transformation, XML ou un autre mappage standard de structure (JSON, YAML) pouvant servir d'entrée à un processeur XSLT via l'interface SAX serait le premier chose que j'essaierais.

+0

Merci pour la direction! – Dan

Questions connexes