J'écris un analyseur pour analyser CSS.Comment tester un analyseur CSS?
J'ai commencé par modifier le CSS reference grammar, pour utiliser la grammaire et la syntaxe lexer supportées par le 3rd-party parser generator tool que j'utilise.
Je pense que j'ai fini de coder la grammaire: le parseur-générateur est maintenant capable de générer des tables de transition d'état pour/de ma grammaire. Le résultat (la sortie du parseur-générateur) est d'environ 116 "règles", ce qui correspond à 116 cas dans une instruction switch
. Des exemples de ces règles/instructions switch sont:
- Stylesheet commence par la spécification d'un charset
- Stylesheet commence sans spécifier charset:
- Stylesheet est vide
- Stylesheet commence par des espaces
- ... etc
Le parseur-générateur a fait tout ce qu'il peut pour moi, et maintenant je commence à écrire (à la main) les différents cas des déclarations switch, qui vont construire ce que je pense que les gens appellent un «arbre de syntaxe abstraite».
Ma question est sur la façon de tester cela. Je pense que ce que je veux, c'est un ensemble de fichiers CSS qui exercent les diverses combinaisons et possibilités: par ex. un fichier CSS qui spécifie un jeu de caractères; un autre fichier qui ne spécifie pas de charset; etc.
Y at-il général un moyen de générer automatiquement cet ensemble de données d'entrée, pour une grammaire arbitraire ou un ensemble de règles?
Alternativement, y a-t-il un ensemble de spécifiquement CSS, dont le but est de couvrir la combinaison et les possibilités permises par la grammaire CSS standard?
N'hésitez pas à commenter aussi si je vais à ce sujet tout faux.
En ce moment je ne ai pas besoin:
fichiers pour tester le traitement des illégales entrée (ie des fichiers qui ne sont pas conformes à la grammaire)
Test de la façon dont différents navigateurs rendent basé sur leur analyse syntaxique de CSS
Le lien microsoft est mort – Dannnno